diff --git a/README.md b/README.md index 166759fd7..4eddaf461 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ [Official NTM Wiki](https://nucleartech.wiki/wiki/Main_Page) +[Bobcat's Blog (the blag)](https://hbmmods.github.io/), you can find lengthy yapping, upcoming features and some secrets here. + **This is for 1.7.10!** For 1.12, check out these projects: * NTM Reloaded: https://github.com/TheOriginalGolem/Hbm-s-Nuclear-Tech-GIT/releases diff --git a/changelog b/changelog index aa9da4a6f..a8c6a77e9 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,32 @@ ## Gun rework -* Place holder place holder place hooooooooooldeeeeeeeer +* Killed off most existing guns because they suck lol +* Added a bunch of new guns with all new models, animations ammo types and recipes +* Guns are now tiered, using progression related cast components +* Play with your guns! Most guns now have animations for dry firing, and an "inspect" animation that plays when hitting the reload key when reloading is not possible +* Most guns can now be aimed properly. Aiming now uses a dedicated key (mouse 3) instead of sneaking + * All new gun keybinds can be configured of course + * "why is it MMB and not RMB? i know a really easy fix" no you don't, trust me i put a lot of thought into this and that's the only way without making the keybinds inconsistent as hell +* Guns now have multiple types, "standard arsenal" (i.e. the regular selection of guns), "b-side" (alt versions of guns which are not visible in creative, although craftable), "special" (not really part of of the progression tiering) and "legendary" (neither in creative nor in NEI) +* Guns now make the screen visibly recoil. This is a bit of a bold change about which I am unsure myself, so there is an option to turn it off: `/ntmclient set GUN_VISUAL_RECOIL false` +* Special damage types now have unique death animations, explosive damage will cause gibbing and laser/electric/fire damage will incinerate the target with only the skeleton remaining + * The skeletonizer has compatibility with most bipedal vanilla mobs as well as most mobs from TechGuns +* Repairing guns is now easier, repair kits are generally cheaper, and have multiple uses +* Instead of working the same until they stop working entirely when durability runs out, new guns now decrease in accuracy (below 50%) and damage (below 33%) when durability goes down. Guns however will still remain functional with no durability left, however the gun will deal next to no damage and barely ever hot anything. +* Since every time i add recycling for deprecated features, someone ends up complaining about the balancing of the recycling or gets confused on where to source items, old guns and ammo are simply not recycleable and instead become useless. Sucks to be you! +* Stuff I did not get around finishing: + * Legendary weapons were supposed to spawn in new dungeons, however right now they just spawn in red rooms + * Bolter's ammo types don't work as advertised and aren't craftable because æügh + * Some of the remnant guns that aren't part of the new system yet are not craftable + * Armor balance may not entirely be correct (read: at all), there's a new system for resistances and current values are just a vague estimate + * You can easily test things yourself, there is a spawn egg for a new test dummy mob which can be equipped with any armor. Damage calculation applies just the same as it would with real players + * Some gun variants aren't even in yet (b-sides, legendaries) because those were super low priority + * Purple bullets don't have their special effects just yet + * Headshot mulitpliers don't apply yet + * Trechnmaster abilities do not work with the new guns yet + * Nitra doesn't craft any of the new ammo types yet, not sure what to even do with that + * Ammo backpacks. yeah! just remembered something about those +* Most of these issues are quite minor so expect them to be resolved in the next update rather soon for the next stable release +* Yes this is what i have been up to for the past months. everything hurts. now go away ## Added * `/ntmclient` @@ -13,6 +40,13 @@ * Has an immense heat transfer speed bonus, allowing ICFs to be cooled even when using higher tier pellets * Cools quite effectively in PWRs, but has a negative neutron modifier and a small penalty of how much heat ends up usable * Overall a cheap and very good coolant, just not as efficient as sodium +* Rotary furnace + * Used to make new alloys like gunmetal or weapon steel + * Can also make desh and saturnite, as well as more efficient steel from iron fragments + * Requires both solid fuel and steam to work +* Ammo press + * Makes the new ammo types + * A recipe can be selected like in the anvil, however the selection will linger since the press has a proper inventory. Therefore, hooking up a hopper allows for ammo to be automated ## Changed * Updated russian and chinese localization @@ -52,6 +86,20 @@ * Reeds rendering into water can now be toggled with the RENDER_REEDS client config * This option is usually enabled by default, unless Angelica is installed * Microwave explosions no longer destroy blocks, only the microwave and nearby players +* Wings can now be used like armor mods +* At higher pollution levels, skeletons can now spawn with guns +* Logistic drones now move at 0.625 blocks/t instead of 0.6. There is no balancing reason for this, I just hate weird numbers like 0.6 +* Fallout effects now remove snow layers in the same area where they would remove things like small plants and leaves +* Adjusted damage values to many swords and some tools +* Unsats and aromatics can now be filled into gas canisters +* Basalt asbestos ore no longer creates asbestos particles every block update, meaning volcanoes no longer cause massive delays with chunk rendering due to constant block changes +* Rockets shot by the rocket turret are no longer subject to gravity and lock onto the intended target +* Updated the anti-personell mine's model, it also now has 4 different textures which are automatically applied depending on whether the mine is placed underground or what biome it is in +* Saturnite is now exclusively made in the rotary furnace, requiring reformate gas, making it effectively post-RBMK + * To offset the increased cost, some things like ESAPI inserts and desh shredder blades/stamps no longer require saturnite at all +* Small explosions from land mines and bombers now use the new and improved explosions animations from 40mm grenades +* All mini nuclear explosions now use the VNT system, meaning their damaging AoE can no longer be blocked by tiny bumps in the terrain and they will now correctly deal knockback +* Problably a ton of other shit i forgot to document because it's been months and ther only way i even feel anything is by drinking gasoline ## Fixed * The conveyor grabber should no longer skip over items when used in long lines @@ -68,3 +116,9 @@ * Fixed issue regarding mass storage filters when using GTNH-NEI * Fixed DFC emitters calculating their original 98% inefficiency twice when hitting another emitter or tungsten crate * Fixed the wood burner destroying container items like buckets when using lava as fuel +* Fixed pollution serialization for the fluid trait config being wrong +* Fixed slag crashing the game when trying to flow into the void +* Fixed issue where drones that are too fast may skip waypoints +* Fixed the electrolyzer speed upgrades not increasing energy consumption as advertised +* Fixed giblets rendering in fullbright even in the dark +* All NTM keybinds will reset when opening a GUI, meanig that jetpacks and guns should no longer get stuck operating when opening an inventory diff --git a/gradle.properties b/gradle.properties index a49fdc272..bee7541d3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -49,7 +49,7 @@ credits=HbMinecraft,\ \ Voxelstice (OpenComputers integration, turbine spinup),\ \ BallOfEnergy1 (OpenComputers integration),\ \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ Abel1502 (optimization, crate upgrade recipes, strand caster improvements),\ + \ Abel1502 (optimization, crate upgrade recipes, strand caster improvements, varous tweaks),\ \ SuperCraftAlex (tooltips)\ \ Ice-Arrow (research reactor tweaks),\ \ 245tt (anvil GUI improvements),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 56474db0e..485c9a0ae 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -600,8 +600,9 @@ public class ModBlocks { public static Block sat_resonator; public static Block sat_dock; - + public static Block soyuz_capsule; + public static Block crate_supply; public static Block crate_iron; public static Block crate_steel; @@ -2064,6 +2065,7 @@ public class ModBlocks { sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock"); soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule"); + crate_supply = new BlockSupplyCrate(Material.wood).setBlockName("crate_supply").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":crate_can"); turret_chekhov = new TurretChekhov(Material.iron).setBlockName("turret_chekhov").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_friendly = new TurretFriendly(Material.iron).setBlockName("turret_friendly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2849,8 +2851,8 @@ public class ModBlocks { //Mines GameRegistry.registerBlock(mine_ap, mine_ap.getUnlocalizedName()); - GameRegistry.registerBlock(mine_he, mine_he.getUnlocalizedName()); GameRegistry.registerBlock(mine_shrap, mine_shrap.getUnlocalizedName()); + GameRegistry.registerBlock(mine_he, mine_he.getUnlocalizedName()); GameRegistry.registerBlock(mine_fat, mine_fat.getUnlocalizedName()); //Block Bombs @@ -3340,6 +3342,7 @@ public class ModBlocks { GameRegistry.registerBlock(soyuz_launcher, soyuz_launcher.getUnlocalizedName()); GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName()); + GameRegistry.registerBlock(crate_supply, crate_supply.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar_large, machine_radar_large.getUnlocalizedName()); GameRegistry.registerBlock(radar_screen, radar_screen.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/Landmine.java b/src/main/java/com/hbm/blocks/bomb/Landmine.java index 966cc470f..03a505e55 100644 --- a/src/main/java/com/hbm/blocks/bomb/Landmine.java +++ b/src/main/java/com/hbm/blocks/bomb/Landmine.java @@ -37,7 +37,6 @@ public class Landmine extends BlockContainer implements IBomb { public Landmine(Material mat, double range, double height) { super(mat); - this.range = range; this.height = height; } @@ -47,20 +46,9 @@ public class Landmine extends BlockContainer implements IBomb { return new TileEntityLandmine(); } - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } @Override public Item getItemDropped(int i, Random rand, int j) { @@ -70,14 +58,10 @@ public class Landmine extends BlockContainer implements IBomb { @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { float f = 0.0625F; - if(this == ModBlocks.mine_ap) - this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); - if(this == ModBlocks.mine_he) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_shrap) - this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); - if(this == ModBlocks.mine_fat) - this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); + if(this == ModBlocks.mine_ap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f); + if(this == ModBlocks.mine_he) this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); + if(this == ModBlocks.mine_shrap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f); + if(this == ModBlocks.mine_fat) this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); } @Override @@ -154,7 +138,7 @@ public class Landmine extends BlockContainer implements IBomb { if(this == ModBlocks.mine_ap) { ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 3F); - vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, 10F)); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, 10F).setupPiercing(5F, 0.2F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(5, 1F, 0.5F)); vnt.explode(); @@ -162,7 +146,7 @@ public class Landmine extends BlockContainer implements IBomb { ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 4F); vnt.setBlockAllocator(new BlockAllocatorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard()); - vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 35)); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 35).setupPiercing(15F, 0.2F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(15, 3.5F, 1.25F)); vnt.explode(); @@ -182,5 +166,4 @@ public class Landmine extends BlockContainer implements IBomb { return BombReturnCode.DETONATED; } - } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index ea7ffd968..6fa75c7fb 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -52,18 +52,6 @@ public class BlockCrate extends BlockFalling { // Supply Crate BlockCrate.addToListWithWeight(crateList, ModItems.syringe_metal_stimpak, 10); BlockCrate.addToListWithWeight(crateList, ModItems.syringe_antidote, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_iron, 9); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_gold, 4); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_lead, 6); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_revolver_cursed, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_rpg, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_fatman, 1); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_mp40, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_uzi, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_uboinik, 7); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_lever_action, 5); - BlockCrate.addToListWithWeight(crateList, ModItems.clip_bolt_action, 5); BlockCrate.addToListWithWeight(crateList, ModItems.grenade_generic, 8); BlockCrate.addToListWithWeight(crateList, ModItems.grenade_strong, 6); BlockCrate.addToListWithWeight(crateList, ModItems.grenade_mk2, 4); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java index fc053c80c..9c8176db1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java @@ -135,7 +135,7 @@ public class BlockDynamicSlag extends BlockContainer { TileEntitySlag self = (TileEntitySlag) s; /* Flow down */ - if(world.getBlock(x, y - 1, z).isReplaceable(world, x, y - 1, z)) { + if(world.getBlock(x, y - 1, z).isReplaceable(world, x, y - 1, z) && y > 0) { world.setBlock(x, y - 1, z, ModBlocks.slag); TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, x, y - 1, z); tile.mat = self.mat; diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index d3b5a1bd7..4f3368d92 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -213,7 +213,9 @@ public class BlockKeyhole extends BlockStone { public static void spawnPedestalItem(World world, int x, int y, int z) { world.setBlock(x, y, z, ModBlocks.pedestal); TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); - WeightedRandomChestContent content = (WeightedRandomChestContent) WeightedRandom.getRandomItem(world.rand, ItemPool.getPool(ItemPoolsRedRoom.POOL_RED_PEDESTAL)); + WeightedRandomChestContent content = world.rand.nextInt(20) == 0 ? + (WeightedRandomChestContent) WeightedRandom.getRandomItem(world.rand, ItemPool.getPool(ItemPoolsRedRoom.POOL_RED_WEAPON)) : + (WeightedRandomChestContent) WeightedRandom.getRandomItem(world.rand, ItemPool.getPool(ItemPoolsRedRoom.POOL_RED_PEDESTAL)); pedestal.item = content.theItemId.copy(); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java index 977051fb8..41e4a35c4 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java @@ -19,7 +19,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class BlockOreBasalt extends BlockEnumMulti { @@ -65,14 +64,7 @@ public class BlockOreBasalt extends BlockEnumMulti { } @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - int meta = world.getBlockMetadata(x, y, z); - if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_asbestos); - } - } - } + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { } //no more BUD outgassing for you, mister @Override public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int fortune) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockSupplyCrate.java b/src/main/java/com/hbm/blocks/generic/BlockSupplyCrate.java new file mode 100644 index 000000000..961032204 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSupplyCrate.java @@ -0,0 +1,130 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import com.hbm.items.ModItems; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockSupplyCrate extends BlockContainer { + + public BlockSupplyCrate(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntitySupplyCrate(); + } + + @Override public int getRenderType() { return BlockCanCrate.renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override public Item getItemDropped(int i, Random rand, int j) { return null; } + + @Override + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { + + if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) { + + ItemStack drop = new ItemStack(this); + TileEntitySupplyCrate inv = (TileEntitySupplyCrate) world.getTileEntity(x, y, z); + NBTTagCompound nbt = new NBTTagCompound(); + + if(inv != null) { + for(int i = 0; i < inv.items.size(); i++) { + ItemStack stack = inv.items.get(i); + if(stack == null) continue; + NBTTagCompound slot = new NBTTagCompound(); + stack.writeToNBT(slot); + nbt.setTag("slot" + i, slot); + } + nbt.setInteger("amount", inv.items.size()); + } + + if(!nbt.hasNoTags()) drop.stackTagCompound = nbt; + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); + } + return world.setBlockToAir(x, y, z); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + TileEntitySupplyCrate inv = (TileEntitySupplyCrate) world.getTileEntity(x, y, z); + + if(inv != null && stack.hasTagCompound()) { + int amount = stack.stackTagCompound.getInteger("amount"); + for(int i = 0; i < amount; i++) { + inv.items.add(ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); + } + } + + super.onBlockPlacedBy(world, x, y, z, player, stack); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.func_147480_a(x, y, z, false); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; + } + return false; + } + + public void dropContents(World world, int x, int y, int z) { + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntitySupplyCrate) { + TileEntitySupplyCrate crate = (TileEntitySupplyCrate) tile; + + for(ItemStack item : crate.items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + } + + public static class TileEntitySupplyCrate extends TileEntity { + + public List items = new ArrayList(); + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + items.clear(); + NBTTagList list = nbt.getTagList("items", 10); + for(int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + items.add(ItemStack.loadItemStackFromNBT(nbt1)); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + for(int i = 0; i < items.size(); i++) { + NBTTagCompound nbt1 = new NBTTagCompound(); + items.get(i).writeToNBT(nbt1); + list.appendTag(nbt1); + } + nbt.setTag("items", list); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java b/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java index 226a16a67..b54d34e7f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAmmoPress.java @@ -1,16 +1,15 @@ package com.hbm.blocks.machine; -import com.hbm.main.MainRegistry; +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class MachineAmmoPress extends BlockContainer { +public class MachineAmmoPress extends BlockDummyable { public MachineAmmoPress() { super(Material.iron); @@ -18,19 +17,14 @@ public class MachineAmmoPress extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityMachineAmmoPress(); + return meta >= 12 ? new TileEntityMachineAmmoPress() : new TileEntityProxyCombo().inventory(); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, 0); } + + @Override public int[] getDimensions() { return new int[] {1, 0, 0, 0, 1, 1}; } + @Override public int getOffset() { return 0; } } diff --git a/src/main/java/com/hbm/commands/CommandReloadRecipes.java b/src/main/java/com/hbm/commands/CommandReloadRecipes.java index 47d91ad2f..6c8c83612 100644 --- a/src/main/java/com/hbm/commands/CommandReloadRecipes.java +++ b/src/main/java/com/hbm/commands/CommandReloadRecipes.java @@ -5,6 +5,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.main.MainRegistry; import com.hbm.util.ChatBuilder; +import com.hbm.util.DamageResistanceHandler; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; @@ -32,7 +33,9 @@ public class CommandReloadRecipes extends CommandBase { try { SerializableRecipe.initialize(); ItemPoolConfigJSON.initialize(); - Fluids.reloadFluids(); + DamageResistanceHandler.init(); + Fluids.reloadFluids(); + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)")); } catch(Exception ex) { sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush()); diff --git a/src/main/java/com/hbm/config/ClientConfig.java b/src/main/java/com/hbm/config/ClientConfig.java index ffe66aeb4..d0f2165c2 100644 --- a/src/main/java/com/hbm/config/ClientConfig.java +++ b/src/main/java/com/hbm/config/ClientConfig.java @@ -30,6 +30,8 @@ public class ClientConfig { public static ConfigWrapper INFO_OFFSET_VERTICAL = new ConfigWrapper(0); public static ConfigWrapper INFO_POSITION = new ConfigWrapper(0); public static ConfigWrapper GUN_ANIMS_LEGACY = new ConfigWrapper(false); + public static ConfigWrapper GUN_MODEL_FOV = new ConfigWrapper(false); + public static ConfigWrapper GUN_VISUAL_RECOIL = new ConfigWrapper(true); public static ConfigWrapper ITEM_TOOLTIP_SHOW_OREDICT = new ConfigWrapper(true); public static ConfigWrapper ITEM_TOOLTIP_SHOW_CUSTOM_NUKE = new ConfigWrapper(true); public static ConfigWrapper MAIN_MENU_WACKY_SPLASHES = new ConfigWrapper(true); @@ -46,6 +48,8 @@ public class ClientConfig { configMap.put("INFO_OFFSET_VERTICAL", INFO_OFFSET_VERTICAL); configMap.put("INFO_POSITION", INFO_POSITION); configMap.put("GUN_ANIMS_LEGACY", GUN_ANIMS_LEGACY); + configMap.put("GUN_MODEL_FOV", GUN_MODEL_FOV); + configMap.put("GUN_VISUAL_RECOIL", GUN_VISUAL_RECOIL); configMap.put("ITEM_TOOLTIP_SHOW_OREDICT", ITEM_TOOLTIP_SHOW_OREDICT); configMap.put("ITEM_TOOLTIP_SHOW_OREDICT", ITEM_TOOLTIP_SHOW_CUSTOM_NUKE); configMap.put("MAIN_MENU_WACKY_SPLASHES", MAIN_MENU_WACKY_SPLASHES); diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 039cf060e..65636f402 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -62,6 +62,7 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry() .mB(Blocks.brown_mushroom_block).mM(10) .prim(new Triplet(ModBlocks.waste_log, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.red_mushroom_block) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.brown_mushroom_block) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); + entries.add(new FalloutEntry() .mB(Blocks.snow_layer) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); entries.add(new FalloutEntry() .mB(Blocks.planks) .prim(new Triplet(ModBlocks.waste_planks, 0, 1)) .max(woodEffectRange)); /* if it can't be petrified, destroy it */ entries.add(new FalloutEntry() .mMa(Material.wood) .prim(new Triplet(Blocks.air, 0, 1)) .max(woodEffectRange)); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 7dab34492..789a20333 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -165,8 +165,8 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ModItems.ingot_semtex }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ANY_PLASTIC.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', WEAPONSTEEL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_yharonite, 1), new Object[] { "YIY", "IYI", "YIY", 'Y', ModItems.billet_yharonite, 'I', ModItems.insert_du }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.australium_iii, 1), new Object[] { "WSW", "PAP", "SPS", 'S', STEEL.plateWelded(), 'P', ANY_PLASTIC.ingot(), 'A', AUSTRALIUM.ingot(), 'W', GOLD.wireDense() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 25ca2256a..877727e47 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -10,7 +10,6 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ItemEnums.EnumCasingType; -import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92Cell; @@ -33,6 +32,14 @@ public class WeaponRecipes { //SEDNA Parts CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_WOOD.id), new Object[] { "WWW", " W", 'W', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_WOOD.id), new Object[] { "W ", " W", " W", 'W', KEY_PLANKS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_POLYMER.id), new Object[] { "WWW", " W", 'W', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_POLYMER.id), new Object[] { "W ", " W", " W", 'W', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_BAKELITE.id), new Object[] { "WWW", " W", 'W', BAKELITE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_BAKELITE.id), new Object[] { "W ", " W", " W", 'W', BAKELITE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_HARDPLASTIC.id), new Object[] { "WWW", " W", 'W', PC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_HARDPLASTIC.id), new Object[] { "W ", " W", " W", 'W', PC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_PVC.id), new Object[] { "WWW", " W", 'W', PVC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_PVC.id), new Object[] { "W ", " W", " W", 'W', PVC.ingot() }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.SHOTSHELL, 2), new Object[] { "P", "C", 'P', GUNMETAL.plate(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE) }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.BUCKSHOT, 2), new Object[] { "P", "C", 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE) }); @@ -41,16 +48,37 @@ public class WeaponRecipes { //SEDNA Guns CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_pepperbox, 1), new Object[] { "IIW", " C", 'I', IRON.ingot(), 'W', KEY_PLANKS, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_light_revolver, 1), new Object[] { "BRM", " G", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_light_revolver_atlas, 1), new Object[] { " M ", "MAM", " M ", 'M', WEAPONSTEEL.mechanism(), 'A', ModItems.gun_light_revolver }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_henry, 1), new Object[] { "BRP", "BMS", 'B', STEEL.lightBarrel(), 'R', GUNMETAL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'S', WOOD.stock(), 'P', GUNMETAL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_greasegun, 1), new Object[] { "BRS", "SMG", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'S', STEEL.bolt(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg, 1), new Object[] { "BRM", "BGS", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.bolt(), 'S', WOOD.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg_akimbo, 1), new Object[] { "SMS", 'S', ModItems.gun_maresleg, 'M', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flaregun, 1), new Object[] { "BRM", " G", 'B', STEEL.heavyBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_heavy_revolver, 1), new Object[] { "BRM", " G", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_carbine, 1), new Object[] { "BRM", "G S", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_am180, 1), new Object[] { "BBR", "GMS", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_liberator, 1), new Object[] { "BB ", "BBM", "G G", 'B', DURA.lightBarrel(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "BM ", "BRS", "G ", 'B', DURA.heavyBarrel(), 'M', GUNMETAL.mechanism(), 'R', DURA.lightReceiver(), 'S', WOOD.stock(), 'G', WOOD.grip() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { " MG", "BBR", " GM", 'M', GUNMETAL.mechanism(), 'G', DURA.grip(), 'B', DURA.heavyBarrel(), 'R', DURA.heavyReceiver() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer_topaz, 1), new Object[] { " M ", "MFM", " M ", 'M', WEAPONSTEEL.mechanism(), 'F', ModItems.gun_flamer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_heavy_revolver, 1), new Object[] { "BRM", " G", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_carbine, 1), new Object[] { "BRM", "G S", 'B', DESH.lightBarrel(), 'R',DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "BRS", " GM", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'S', ANY_PLASTIC.stock(), 'G', ANY_PLASTIC.grip(), 'M', GUNMETAL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_akimbo, 1), new Object[] { "UMU", 'U', ModItems.gun_uzi, 'M', WEAPONSTEEL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "BRM", "BGS", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', ANY_PLASTIC.grip(), 'S', DESH.stock() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "BBB", "PGM", 'B', DESH.heavyBarrel(), 'P', STEEL.plateCast(), 'G', DESH.grip(), 'M', GUNMETAL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3, 1), new Object[] { "BRM", "WGS", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'W', WOOD.grip(), 'G', RUBBER.grip(), 'S', WOOD.stock() }); + 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_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_quadro, 1), new Object[] { "BCB", "BMB", "GG ", 'B', FERRO.heavyBarrel(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lag, 1), new Object[] { "BRM", " G", 'B', ANY_RESISTANTALLOY.lightBarrel(), 'R', ANY_RESISTANTALLOY.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "BMG", "BRE", "BGM", 'B', ANY_RESISTANTALLOY.lightBarrel(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip(), 'R', ANY_RESISTANTALLOY.heavyReceiver(), 'E', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_missile_launcher, 1), new Object[] { " CM", "BBB", "G ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', WEAPONSTEEL.mechanism(), 'B', ANY_RESISTANTALLOY.heavyBarrel(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tesla_cannon, 1), new Object[] { "CCC", "BRB", "MGE", 'C', ModItems.coil_advanced_alloy, 'B', ANY_RESISTANTALLOY.heavyBarrel(), 'R', ANY_RESISTANTALLOY.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip(), 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stg77, 1), new Object[] { " D ", "BRS", "GM ", 'D', DIAMOND.gem(), 'B', BIGMT.lightBarrel(), 'R', BIGMT.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'G', ANY_HARDPLASTIC.grip(), 'M', BIGMT.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "PPP", "BSR", "G M", 'P', BIGMT.plate(), 'B', BIGMT.heavyBarrel(), 'S', BIGMT.shell(), 'R', BIGMT.heavyReceiver(), 'G', ANY_HARDPLASTIC.grip(), 'M', BIGMT.mechanism() }); + 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[] { "LC ", "BRS", "MG ", 'L', ModItems.crystal_redstone, '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() }); //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 }); @@ -101,192 +129,19 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'D', ModItems.crt_display }); //Guns - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_rpg, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', IRON.plate(), 'M', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', STEEL.shell(), 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', STEEL.bolt() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver, 1), new Object[] { "SSM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', AL.wireFine(), 'M', ModItems.mechanism_revolver_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_saturnite, 1), new Object[] { "SSM", " RW", 'S', BIGMT.plate(), 'W', KEY_PLANKS, 'R', W.wireFine(), 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_gold, 1), new Object[] { "SSM", " RW", 'S', GOLD.plate(), 'W', W.ingot(), 'R', GOLD.wireFine(), 'M', ModItems.mechanism_revolver_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_schrabidium, 1), new Object[] { "SSM", " RW", 'S', SA326.block(), 'W', W.ingot(), 'R', SA326.wireFine(), 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_pip, 1), new Object[] { " G ", "SSP", " TI", 'G', KEY_ANYPANE, 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', W.wireFine(), 'I', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nopip, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', W.wireFine(), 'I', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_blackjack, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', W.wireFine(), 'I', KEY_PLANKS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', W.wireFine(), 'I', KEY_PLANKS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uac_pistol, 1), new Object[] { "IIM", " BI", 'B', DURA.bolt(), 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', MINGRADE.wireFine(), 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', AL.wireFine(), 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', GOLD.wireFine(), 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bio_revolver, 1), new Object[] { "SSM", "BTW", 'S', STEEL.plate(), 'M', ModItems.mechanism_revolver_2, 'B', B.ingot(), 'T', W.bolt(), 'W', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', STEEL.shell(), 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', GOLD.wireFine(), 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ANY_RUBBER.ingot(), 'L', ModItems.plate_desh, 'W', W.wireFine(), 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', STEEL.shell(), 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', STEEL.shell(), 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', STEEL.pipe(), 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', GOLD.wireFine(), 'L', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'W', W.wireFine(), 'L', KEY_LOG }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_sauer, 1), new Object[] { ModItems.ducttape, ModItems.gun_ks23, Blocks.lever, ModItems.gun_ks23 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456, 1), new Object[] { "PBB", "ACC", "PRY", 'P', STEEL.plate(), 'R', ModItems.redcoil_capacitor, 'A', ModItems.coil_advanced_alloy, 'B', ModItems.battery_generic, 'C', ModItems.coil_advanced_torus, 'Y', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { " S ", "SRS", " S ", 'S', STEEL.plate(), 'R', ModItems.waste_natural_uranium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { " S ", "SRS", " S ", 'S', STEEL.plate(), 'R', ModItems.waste_uranium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 20), new Object[] { " S ", " R ", " S ", 'S', STEEL.plate(), 'R', ModItems.waste_plate_u235 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { "SRS", 'S', STEEL.plate(), 'R', ModItems.waste_u235 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { " S ", " R ", " S ", 'S', STEEL.plate(), 'R', U238.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_xvl1456_ammo, 16), new Object[] { "SRS", 'S', STEEL.plate(), 'R', U238.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_osipr, 1), new Object[] { "CCT", "WWI", "MCC", 'C', CMB.plate(), 'T', W.ingot(), 'W', MAGTUNG.wireFine(), 'I', ModItems.mechanism_rifle_2, 'M', ModItems.coil_magnetized_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator, 1), new Object[] { "WCC", "PMT", "WAA", 'W', GOLD.wireFine(), 'C', CU.plate(), 'P', ALLOY.plate(), 'M', ModItems.mechanism_launcher_1, 'T', ModItems.tank_steel, 'A', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', COAL.dust(), 'P', P_RED.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_immolator_ammo, 24), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.canister_napalm }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator, 1), new Object[] { "SSS", "IWL", "LMI", 'S', STEEL.plate(), 'I', IRON.plate(), 'L', Items.leather, 'M', ModItems.mechanism_launcher_1, 'W', AL.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { "SPS", "PCP", "SPS", 'S', STEEL.plate(), 'C', KNO.dust(), 'P', Items.snowball }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_cryolator_ammo, 16), new Object[] { " F ", "SFS", " F ", 'S', STEEL.plate(), 'F', ModItems.powder_ice }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp, 1), new Object[] { "EEE", "SSM", "III", 'E', EUPH.ingot(), 'S', STEEL.plate(), 'I', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp, 1), new Object[] { "CPG", "CMF", "CPI", 'C', ModItems.coil_copper, 'P', PB.plate(), 'G', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', ModItems.magnetron, 'I', W.ingot(), 'F', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_emp_ammo, 8), new Object[] { "IGI", "IPI", "IPI", 'G', GOLD.plate(), 'I', IRON.plate(), 'P', ModItems.powder_power }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_jack, 1), new Object[] { "WW ", "TSD", " TT", 'W', "ingotWeidanium", 'T', ModItems.toothpicks, 'S', ModItems.gun_uboinik, 'D', ModItems.ducttape }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_jack_ammo, 1), new Object[] { ModItems.ammo_12gauge, ModItems.ammo_12gauge, ModItems.ammo_12gauge, ModItems.ammo_12gauge }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_euthanasia, 1), new Object[] { "TDT", "AAS", " T ", 'A', AUSTRALIUM.ingot(), 'T', ModItems.toothpicks, 'S', ModItems.gun_mp40, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_euthanasia_ammo, 12), new Object[] { "P", "S", "N", 'P', ModItems.powder_poison, 'N', KNO.dust(), 'S', ModItems.syringe_metal_empty }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spark, 1), new Object[] { "TTD", "AAS", " T", 'A', "ingotDaffergon", 'T', ModItems.toothpicks, 'S', ModItems.gun_rpg, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spark_ammo, 4), new Object[] { "PCP", "DDD", "PCP", 'P', PB.plate(), 'C', ModItems.coil_gold, 'D', ModItems.powder_power }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_skystinger, 1), new Object[] { "TTT", "AAS", " D ", 'A', "ingotUnobtainium", 'T', ModItems.toothpicks, 'S', ModItems.gun_stinger, 'D', ModItems.ducttape }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hp, 1), new Object[] { "TDT", "ASA", " T ", 'A', "ingotReiium", 'T', ModItems.toothpicks, 'S', ModItems.gun_xvl1456, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hp_ammo, 8), new Object[] { " R ", "BSK", " Y ", 'S', STEEL.plate(), 'K', KEY_BLACK, 'R', KEY_RED, 'B', KEY_BLUE, 'Y', KEY_YELLOW }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_defabricator_ammo, 16), new Object[] { "PCP", "DDD", "PCP", 'P', STEEL.plate(), 'C', ModItems.coil_copper, 'D', LI.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lever_action, 1), new Object[] { "PPI", "SWD", 'P', IRON.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', STEEL.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lever_action_dark, 1), new Object[] { "PPI", "SWD", 'P', STEEL.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', STEEL.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action, 1), new Object[] { "PPI", "SWD", 'P', STEEL.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', CU.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action_green, 1), new Object[] { "PPI", "SWD", 'P', IRON.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', CU.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolt_action_saturnite, 1), new Object[] { "PPI", "SWD", 'P', BIGMT.plate(), 'I', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'D', KEY_PLANKS, 'W', W.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'R', ModItems.gun_revolver_schrabidium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b93), new Object[] { "PCE", "SEB", "PCE", 'P', ModItems.plate_dineutronium, 'C', ModItems.weaponized_starblaster_cell, 'E', ModItems.component_emitter, 'B', ModItems.gun_b92, 'S', ModItems.singularity_spark }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'R', ModItems.gun_lasrifle }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PEROXIDE.getID()), GunB92Cell.getFullCell(), CU.wireFine() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', W.bolt() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', STEEL.pipe(), 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " PI", "BBM", " PI", 'P', STEEL.plate(), 'B', STEEL.pipe(), 'M', ModItems.mechanism_rifle_2, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ANY_RUBBER.ingot(), 'W', STEEL.wireFine() }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', STEEL.pipe(), 'B', STEEL.bolt(), 'T', ModItems.tank_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', STEEL.bolt(), 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', STEEL.pipe(), 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', STEEL.pipe(), 'A', AL.pipe(), 'P', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 1), new Object[] { " T ", "TST", " T ", 'T', FERRO.ingot(), 'S', BIGMT.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 2), new Object[] { " T ", "TST", " T ", 'T', RUBBER.ingot(), 'S', ANY_PLASTIC.ingot() }); - //TODO: somehow add more variance, 4 gauge is still missing - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 16), new Object[] { ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_9mm, 16), new Object[] { ModItems.nitra_small, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_5mm, 16), new Object[] { ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_357, 16, Ammo357Magnum.LEAD.ordinal()), new Object[] { ModItems.nitra, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44, 16), new Object[] { ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_45, 16), new Object[] { ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50ae, 16), new Object[] { ModItems.nitra, ModItems.nitra }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_556, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_12gauge, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_762, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra, ModItems.nitra_small }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50bmg, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra, ModItems.nitra }); //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 1), new Object[] { " I", "GC", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 1), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 1), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 1), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 1), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 1), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); - CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 1), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', STEEL.wireFine(), 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ANY_RUBBER.ingot(), 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 1), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); - - //Folly shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet_nuclear, 1), new Object[] { " N ", "UTU", "UTU", 'N', ModItems.ammo_nuke, 'U', IRON.ingot(), 'T', W.block() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet_du, 1), new Object[] { " U ", "UDU", "UTU", 'U', U238.block(), 'D', DESH.block(), 'T', W.block() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_shell, 1), new Object[] { "IPI", "IPI", "IMI", 'I', IRON.ingot(), 'P', IRON.plate(), 'M', ANY_SMOKELESS.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly, 1), new Object[] { " B ", "MEM", " S ", 'B', ModItems.folly_bullet, 'M', ModItems.powder_magic, 'E', ModItems.powder_power, 'S', ModItems.folly_shell }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_nuclear, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_nuclear, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_du, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_du, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); - - //Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { "T", "C", "G", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', STEEL.shell() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { "T", "C", "G", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', STEEL.shell() }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.HE), new Object[] { "G", "R", 'G', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY), new Object[] { "G", "R", 'G', P_RED.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.PHOSPHORUS), new Object[] { "G", "R", 'G', P_WHITE.ingot(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.EMP), new Object[] { "G", "R", 'G', "dustDiamond", 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SHRAPNEL), new Object[] { "G", "R", 'G', ModItems.pellet_buckshot, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE), new Object[] { "GGG", "GRG", "GGG", 'G', REDSTONE.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CHLORINE), new Object[] { "G", "R", 'G', ModItems.pellet_gas, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CANISTER), new Object[] { "G", "R", 'G', ModItems.pellet_canister, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', GOLD.wireFine(), 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ModItems.ball_tatb }); FluidType[] chainsawTypes = new FluidType[] {Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.BIOFUEL}; for(FluidType type : chainsawTypes) CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', type.getDict(1000), 'H', STEEL.shell(), 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - - //Stinger Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', STEEL.shell()); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE), new Object[] { "S", "R", 'S', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY), new Object[] { "S", "R", 'S', P_RED.dust(), 'R', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR), new Object[] { "RPR", "PSP", "RPR", 'R', ModItems.neutron_reflector, 'P', PU239.nugget(), 'S', ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE) }); - CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.BONES), new Object[] { " C ", "SKR", " P ", 'C', ModItems.fallout, 'S', SR90.dust(), 'K', ModItems.ammo_stinger_rocket, 'R', RA226.dust(), 'P', PU.dust() }); - - //40mm grenades - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.TRACER), new Object[] { " T ", "GCI", 'T', LAPIS.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.HE), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ANY_PLASTICEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.INCENDIARY), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_RED.dust() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.PHOSPHORUS), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_WHITE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.CHLORINE), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ModItems.powder_poison }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.CONCUSSION), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', Items.glowstone_dust }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.NUCLEAR), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE), 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER), new Object[] { "LCL", "CHC", "LML", 'L', ModItems.pellet_buckshot, 'C', ANY_SMOKELESS.dust(), 'H', AL.shell(), 'M', ModItems.motor }); //240mm Shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', STEEL.shell(), 'C', CU.ingot() }); @@ -317,35 +172,6 @@ public class WeaponRecipes { //DGK Belts CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dgk, 1), new Object[] { "LLL", "GGG", "CCC", 'L', PB.plate(), 'G', ModItems.ballistite, 'C', CU.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dgk, 1), new Object[] { "LLL", "GGG", "CCC", 'L', PB.plate(), 'G', ModItems.cordite, 'C', CU.ingot() }); - - //Mini Nuke - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1), new Object[] { "P", "S", "P", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), new Object[] { "P", "S", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), new Object[] { "PPP", "PSP", "PPP", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.TOTS), new Object[] { "PPP", "PIP", "PPP", 'P', ModItems.pellet_cluster, 'I', PU239.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), new Object[] { "G", "N", 'G', Items.glowstone_dust, 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW) }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.PUMPKIN), new Object[] { " T ", "TST", " T ", 'T', ModBlocks.tnt, 'S', ModItems.assembly_nuke }); - - //MIRV recycling - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke, 6), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); - CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.LOW), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW) }); - CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.HIGH), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH) }); - CraftingManager.addShapelessAuto(ModItems.ammo_nuke.stackFromEnum(6, AmmoFatman.SAFE), new Object[] { ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE) }); - - //MIRV - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), 'C', AL.plate(), 'D', ModBlocks.det_cord, 'S', STEEL.shell() }); - //since the milk part of the recipe isn't really present in the MIRV's effect, it might as well be replaced with something more sensible, i.e. duct tape - CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ), 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); - - //Flamer fuel - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', ModItems.canister_napalm }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.PHOSPHORUS), new Object[] { "CPC", "CDC", "CPC", 'C', COAL.dust(), 'P', P_WHITE.ingot(), 'D', ModItems.ammo_fuel }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', ModItems.pellet_gas }); - CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.VAPORIZER), new Object[] { "PSP", "SNS", "PSP", 'P', P_WHITE.ingot(), 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM) }); //Fire Extingusisher Tanks CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', STEEL.bolt(), 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); @@ -410,9 +236,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', ModItems.undefined, 'B', BIGMT.ingot() }); //Mines - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "I", "C", "S", 'I', ModItems.plate_polymer, 'C', ANY_SMOKELESS.dust(), 'S', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_shrap, 1), new Object[] { "L", "M", 'M', ModBlocks.mine_ap, 'L', ModItems.pellet_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_he, 1), new Object[] { " C ", "PTP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_shrap, 2), new Object[] { "LLL", " C ", "PTP", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', STEEL.plate(), 'T', ModBlocks.det_cord, 'L', ModItems.pellet_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'D', ModItems.ducttape, 'N', ModItems.ammo_nuke }); //Nuke parts diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 352e85ca4..76c27234b 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -124,6 +124,7 @@ public class EntityMappings { addEntity(EntityGrenadePC.class, "entity_grenade_pink_cloud", 250); addEntity(EntityGrenadeCloud.class, "entity_grenade_cloud", 250); addEntity(EntityBomber.class, "entity_bomber", 1000); + addEntity(EntityC130.class, "entity_c130", 1000); addEntity(EntityBombletZeta.class, "entity_zeta", 1000); addEntity(EntityOrangeFX.class, "entity_agent_orange", 1000); addEntity(EntityDeathBlast.class, "entity_laser_blast", 1000); @@ -148,6 +149,7 @@ public class EntityMappings { addEntity(EntityFallingNuke.class, "entity_falling_bomb", 1000); addEntity(EntityBulletBaseNT.class, "entity_bullet_mk3", 250, false); addEntity(EntityBulletBaseMK4.class, "entity_bullet_mk4", 250, false); + addEntity(EntityBulletBaseMK4CL.class, "entity_bullet_mk4_cl", 250, false); addEntity(EntityBulletBeamBase.class, "entity_beam_mk4", 250, false); addEntity(EntityMinerRocket.class, "entity_miner_lander", 1000); addEntity(EntityFogFX.class, "entity_nuclear_fog", 1000); @@ -163,6 +165,7 @@ public class EntityMappings { addEntity(EntityBuilding.class, "entity_falling_building", 1000); addEntity(EntitySoyuz.class, "entity_soyuz", 1000); addEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 1000); + addEntity(EntityParachuteCrate.class, "entity_parachute_crate", 1000); addEntity(EntityMovingItem.class, "entity_c_item", 1000); addEntity(EntityMovingPackage.class, "entity_c_package", 1000); addEntity(EntityDeliveryDrone.class, "entity_delivery_drone", 250, false); @@ -251,6 +254,7 @@ public class EntityMappings { addMob(EntityGlyphidDigger.class, "entity_glyphid_digger", 0x273038, 0x724A21); addMob(EntityPlasticBag.class, "entity_plastic_bag", 0xd0d0d0, 0x808080); addMob(EntityParasiteMaggot.class, "entity_parasite_maggot", 0xd0d0d0, 0x808080); + addMob(EntityDummy.class, "entity_ntm_test_dummy", 0xffffff, 0x000000); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/effect/EntityFireLingering.java b/src/main/java/com/hbm/entity/effect/EntityFireLingering.java index 2c101d471..1aef970e4 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFireLingering.java +++ b/src/main/java/com/hbm/entity/effect/EntityFireLingering.java @@ -19,6 +19,7 @@ public class EntityFireLingering extends Entity { public static int TYPE_DIESEL = 0; public static int TYPE_BALEFIRE = 1; + public static int TYPE_PHOSPHORUS = 2; public int maxAge = 150; public EntityFireLingering(World world) { @@ -72,6 +73,7 @@ public class EntityFireLingering extends Entity { EntityLivingBase livng = (EntityLivingBase) e; HbmLivingProps props = HbmLivingProps.getData(livng); if(this.getType() == this.TYPE_DIESEL) if(props.fire < 60) props.fire = 60; + if(this.getType() == this.TYPE_PHOSPHORUS) if(props.fire < 300) props.fire = 300; if(this.getType() == this.TYPE_BALEFIRE) if(props.balefire < 100) props.balefire = 100; } else { e.setFire(4); @@ -88,6 +90,7 @@ public class EntityFireLingering extends Entity { MovingObjectPosition mop = worldObj.func_147447_a(up, down, false, true, true); if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) down = mop.hitVec; if(this.getType() == this.TYPE_DIESEL) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_FIRE); + if(this.getType() == this.TYPE_PHOSPHORUS) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_FIRE); if(this.getType() == this.TYPE_BALEFIRE) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_BALEFIRE); } } diff --git a/src/main/java/com/hbm/entity/item/EntityDroneBase.java b/src/main/java/com/hbm/entity/item/EntityDroneBase.java index f7d12a9e2..b6e269869 100644 --- a/src/main/java/com/hbm/entity/item/EntityDroneBase.java +++ b/src/main/java/com/hbm/entity/item/EntityDroneBase.java @@ -103,14 +103,12 @@ public abstract class EntityDroneBase extends Entity { if(this.targetY != -1) { Vec3 dist = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ); - double speed = getSpeed(); + double speed = Math.min(getSpeed(), dist.lengthVector()); - if(dist.lengthVector() >= speed) { - dist = dist.normalize(); - this.motionX = dist.xCoord * speed; - this.motionY = dist.yCoord * speed; - this.motionZ = dist.zCoord * speed; - } + dist = dist.normalize(); + this.motionX = dist.xCoord * speed; + this.motionY = dist.yCoord * speed; + this.motionZ = dist.zCoord * speed; } if(isCollidedHorizontally){ motionY += 1; diff --git a/src/main/java/com/hbm/entity/item/EntityParachuteCrate.java b/src/main/java/com/hbm/entity/item/EntityParachuteCrate.java new file mode 100644 index 000000000..b18195288 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityParachuteCrate.java @@ -0,0 +1,75 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockSupplyCrate.TileEntitySupplyCrate; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.World; + +public class EntityParachuteCrate extends Entity { + + public List items = new ArrayList(); + + public EntityParachuteCrate(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.isImmuneToFire = true; + } + + @Override + public void onUpdate() { + + 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); + + if(this.motionY > -0.2) this.motionY -= 0.02; + if(posY > 600) posY = 600; + + if(this.worldObj.getBlock((int) Math.floor(this.posX), (int) Math.floor(this.posY), (int) Math.floor(this.posZ)) != Blocks.air) { + + this.setDead(); + + if(!worldObj.isRemote) { + + worldObj.setBlock((int) Math.floor(this.posX), (int) Math.floor(this.posY + 1), (int) Math.floor(this.posZ), ModBlocks.crate_supply); + TileEntitySupplyCrate crate = (TileEntitySupplyCrate) worldObj.getTileEntity((int) Math.floor(this.posX), (int) Math.floor(this.posY + 1), (int) Math.floor(this.posZ)); + if(crate != null) crate.items.addAll(this.items); + } + } + } + + @Override protected void entityInit() { } + @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + items.clear(); + NBTTagList list = nbt.getTagList("items", 10); + for(int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + items.add(ItemStack.loadItemStackFromNBT(nbt1)); + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + NBTTagList list = new NBTTagList(); + for(int i = 0; i < items.size(); i++) { + NBTTagCompound nbt1 = new NBTTagCompound(); + items.get(i).writeToNBT(nbt1); + list.appendTag(nbt1); + } + nbt.setTag("items", list); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java index 9a63c5dfd..6e8a742a1 100644 --- a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -199,7 +199,7 @@ public class EntityRequestDrone extends EntityDroneBase { @Override public double getSpeed() { - return 0.6D; + return 0.625D; } @Override diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 25cc3acb4..1fcb7bbb7 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -1,516 +1,275 @@ package com.hbm.entity.logic; -import java.util.ArrayList; -import java.util.List; - import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBombletZeta; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityRocketHoming; import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.lib.ModDamageSource; +import com.hbm.interfaces.NotableComments; import com.hbm.main.MainRegistry; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.LoopedEntitySoundPacket; -import com.hbm.util.ParticleUtil; +import com.hbm.sound.AudioWrapper; -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.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityBomber extends Entity implements IChunkLoader { +@NotableComments +public class EntityBomber extends EntityPlaneBase { - int timer = 200; + /* This was probably the dumbest fucking way that I could have handled this. Not gonna change it now, be glad I made a superclass at all. */ int bombStart = 75; int bombStop = 125; int bombRate = 3; int type = 0; - - public int health = 50; - public EntityBomber(World p_i1582_1_) { - super(p_i1582_1_); + protected AudioWrapper audio; + + public EntityBomber(World world) { + super(world); this.ignoreFrustumCheck = true; - this.setSize(8.0F, 4.0F); + this.setSize(8.0F, 4.0F); + } + + @Override + public void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); } - public boolean canBeCollidedWith() - { - return this.health > 0; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) - { - if(p_70097_1_ == ModDamageSource.nuclearBlast) - return false; - - if (this.isEntityInvulnerable()) - { - return false; - } - else - { - if (!this.isDead && !this.worldObj.isRemote && this.health > 0) - { - health -= p_70097_2_; - - if (this.health <= 0) - { - this.killBomber(); - } - } - - return true; - } - } - - private void killBomber() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.planeShotDown", 25.0F, 1.0F); - } - + /** This sucks balls. Too bad! */ @Override public void onUpdate() { + super.onUpdate(); - //super.onUpdate(); - - this.lastTickPosX = this.prevPosX = posX; - this.lastTickPosY = this.prevPosY = posY; - this.lastTickPosZ = this.prevPosZ = posZ; - - this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); - - if(!worldObj.isRemote) { - - this.dataWatcher.updateObject(17, health); - - if(health > 0) - PacketDispatcher.wrapper.sendToAllAround(new LoopedEntitySoundPacket(this.getEntityId()), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 250)); - } else { - health = this.dataWatcher.getWatchableObjectInt(17); - } - - this.rotation(); - - if(this.health <= 0) { - motionY -= 0.025; - - for(int i = 0; i < 10; i++) - ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); - - if(worldObj.getBlock((int)posX, (int)posY, (int)posZ).isNormalCube() && !worldObj.isRemote) { - this.setDead(); - - /*worldObj.setBlock((int)posX, (int)posY, (int)posZ, ModBlocks.bomber); - TileEntityBomber te = (TileEntityBomber)worldObj.getTileEntity((int)posX, (int)posY, (int)posZ); - - if(te != null) { - te.yaw = (int)(this.rotationYaw); - te.pitch = (int)(this.rotationPitch); - - te.type = this.getDataWatcher().getWatchableObjectByte(16); - }*/ - - ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 25, true, false, true); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.planeCrash", 10.0F, 1.0F); - - return; + if(worldObj.isRemote) { + if(this.getDataWatcher().getWatchableObjectFloat(17) > 0) { + if(audio == null || !audio.isPlaying()) { + int bomberType = this.dataWatcher.getWatchableObjectByte(16); + audio = MainRegistry.proxy.getLoopedSound(bomberType <= 4 ? "hbm:entity.bomberSmallLoop" : "hbm:entity.bomberLoop", (float) posX, (float) posY, (float) posZ, 2F, 250F, 1F, 20); + audio.startSound(); + } + audio.keepAlive(); + audio.updatePosition((float) posX, (float) posY, (float) posZ); + } else { + if(audio != null && audio.isPlaying()) { + audio.stopSound(); + audio = null; + } } } - if(this.ticksExisted > timer) - this.setDead(); - if(!worldObj.isRemote && this.health > 0 && this.ticksExisted > bombStart && this.ticksExisted < bombStop && this.ticksExisted % bombRate == 0) { 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); + 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); - - } else if(type == 5) { - - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); - EntityRocketHoming rocket = new EntityRocketHoming(worldObj); - rocket.setIsCritical(true); - //rocket.motionX = motionX; - //rocket.motionZ = motionZ; - rocket.motionY = -1; - rocket.shootingEntity = this; - rocket.homingRadius = 50; - rocket.homingMod = 5; - - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - - worldObj.spawnEntityInWorld(rocket); - - } else if(type == 6) { - - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); - EntityBoxcar rocket = new EntityBoxcar(worldObj); - - rocket.posX = posX + rand.nextDouble() - 0.5; - rocket.posY = posY - rand.nextDouble(); - rocket.posZ = posZ + rand.nextDouble() - 0.5; - - worldObj.spawnEntityInWorld(rocket); - - } 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); - + } else if(type == 5) { + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); + EntityRocketHoming rocket = new EntityRocketHoming(worldObj); + rocket.setIsCritical(true); + rocket.motionY = -1; + rocket.shootingEntity = this; + rocket.homingRadius = 50; + rocket.homingMod = 5; + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + worldObj.spawnEntityInWorld(rocket); + + } else if(type == 6) { + worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:weapon.missileTakeOff", 10.0F, 0.9F + rand.nextFloat() * 0.2F); + EntityBoxcar rocket = new EntityBoxcar(worldObj); + rocket.posX = posX + rand.nextDouble() - 0.5; + rocket.posY = posY - rand.nextDouble(); + rocket.posZ = posZ + rand.nextDouble() - 0.5; + worldObj.spawnEntityInWorld(rocket); + + } 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); + } 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); - + 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); EntityBombletZeta zeta = new EntityBombletZeta(worldObj); - /*zeta.prevRotationYaw = zeta.rotationYaw = this.rotationYaw; - zeta.prevRotationPitch = zeta.rotationPitch = this.rotationPitch;*/ - zeta.rotation(); - zeta.type = type; - zeta.posX = posX + rand.nextDouble() - 0.5; zeta.posY = posY - rand.nextDouble(); zeta.posZ = posZ + rand.nextDouble() - 0.5; - if(type == 0) { - zeta.motionX = motionX + rand.nextGaussian() * 0.15; - zeta.motionZ = motionZ + rand.nextGaussian() * 0.15; + zeta.motionX = motionX + rand.nextGaussian() * 0.15; zeta.motionZ = motionZ + rand.nextGaussian() * 0.15; } else { - zeta.motionX = motionX; - zeta.motionZ = motionZ; + zeta.motionX = motionX; zeta.motionZ = motionZ; } - worldObj.spawnEntityInWorld(zeta); } } - - if(!worldObj.isRemote) - loadNeighboringChunks((int)(posX / 16), (int)(posZ / 16)); - } - - public void fac(World world, double x, double y, double z) { - - Vec3 vector = Vec3.createVectorHelper(world.rand.nextDouble() - 0.5, 0, world.rand.nextDouble() - 0.5); - vector = vector.normalize(); - vector.xCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; - vector.zCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; - - this.setLocationAndAngles(x - vector.xCoord * 100, y + 50, z - vector.zCoord * 100, 0.0F, 0.0F); - this.loadNeighboringChunks((int)(x / 16), (int)(z / 16)); - - this.motionX = vector.xCoord; - this.motionZ = vector.zCoord; - this.motionY = 0.0D; - - this.rotation(); - - int i = 1; - - int rand = world.rand.nextInt(7); - - switch(rand) { - case 0: - case 1: i = 1; break; - case 2: - case 3: i = 2; break; - case 4: i = 5; break; - case 5: i = 6; break; - case 6: i = 7; break; - } - - if(world.rand.nextInt(100) == 0) { - rand = world.rand.nextInt(4); - switch(rand) { - case 0: i = 0; break; - case 1: i = 3; break; - case 2: i = 4; break; - case 3: i = 8; break; - } - } - - this.getDataWatcher().updateObject(16, (byte)i); - this.setSize(8.0F, 4.0F); - } - - public static EntityBomber statFacCarpet(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 100; - bomber.bombRate = 2; + public void fac(World world, double x, double y, double z) { - bomber.fac(world, x, y, z); - - bomber.type = 0; - - return bomber; - } - - public static EntityBomber statFacNapalm(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 100; - bomber.bombRate = 5; + Vec3 vector = Vec3.createVectorHelper(world.rand.nextDouble() - 0.5, 0, world.rand.nextDouble() - 0.5); + vector = vector.normalize(); + vector.xCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; + vector.zCoord *= GeneralConfig.enableBomberShortMode ? 1 : 2; - bomber.fac(world, x, y, z); - - bomber.type = 1; - - return bomber; - } - - public static EntityBomber statFacChlorine(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 100; - bomber.bombRate = 4; + this.setLocationAndAngles(x - vector.xCoord * 100, y + 50, z - vector.zCoord * 100, 0.0F, 0.0F); + this.loadNeighboringChunks((int) (x / 16), (int) (z / 16)); - bomber.fac(world, x, y, z); - - bomber.type = 2; - - return bomber; - } - - public static EntityBomber statFacOrange(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 75; - bomber.bombStop = 125; - bomber.bombRate = 1; + this.motionX = vector.xCoord; + this.motionZ = vector.zCoord; + this.motionY = 0.0D; - bomber.fac(world, x, y, z); - - bomber.type = 3; - - return bomber; - } - - public static EntityBomber statFacABomb(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 60; - bomber.bombStop = 70; - bomber.bombRate = 65; + this.rotation(); - bomber.fac(world, x, y, z); - - int i = 1; - - int rand = world.rand.nextInt(3); - - switch(rand) { - case 0: i = 5; break; - case 1: i = 6; break; - case 2: i = 7; break; - } - - if(world.rand.nextInt(100) == 0) { - i = 8; - } - - bomber.getDataWatcher().updateObject(16, (byte)i); - - bomber.type = 4; - - return bomber; - } - - public static EntityBomber statFacStinger(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 150; - bomber.bombRate = 10; + int i = 1; - bomber.fac(world, x, y, z); - - bomber.getDataWatcher().updateObject(16, (byte)4); - - bomber.type = 5; - - return bomber; - } - - public static EntityBomber statFacBoxcar(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 50; - bomber.bombStop = 150; - bomber.bombRate = 10; + int rand = world.rand.nextInt(7); - bomber.fac(world, x, y, z); - - bomber.getDataWatcher().updateObject(16, (byte)6); - - bomber.type = 6; - - return bomber; - } - - public static EntityBomber statFacPC(World world, double x, double y, double z) { - - EntityBomber bomber = new EntityBomber(world); - - bomber.timer = 200; - bomber.bombStart = 75; - bomber.bombStop = 125; - bomber.bombRate = 1; + switch(rand) { + case 0: case 1: i = 1; break; + case 2: case 3: i = 2; break; + case 4: i = 5; break; + case 5: i = 6; break; + case 6: i = 7; break; + } - bomber.fac(world, x, y, z); - - bomber.getDataWatcher().updateObject(16, (byte)6); - - bomber.type = 7; - - return bomber; - } + if(world.rand.nextInt(100) == 0) { + rand = world.rand.nextInt(4); + switch(rand) { + case 0: i = 0; break; + case 1: i = 3; break; + case 2: i = 4; break; + case 3: i = 8; break; + } + } - @Override - public void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - this.dataWatcher.addObject(17, Integer.valueOf((int)50)); - } + this.getDataWatcher().updateObject(16, (byte) i); + this.setSize(8.0F, 4.0F); + } + + public static EntityBomber statFacCarpet(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 100; + bomber.bombRate = 2; + bomber.fac(world, x, y, z); + bomber.type = 0; + return bomber; + } + + public static EntityBomber statFacNapalm(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 100; + bomber.bombRate = 5; + bomber.fac(world, x, y, z); + bomber.type = 1; + return bomber; + } + + public static EntityBomber statFacChlorine(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 100; + bomber.bombRate = 4; + bomber.fac(world, x, y, z); + bomber.type = 2; + return bomber; + } + + public static EntityBomber statFacOrange(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 75; + bomber.bombStop = 125; + bomber.bombRate = 1; + bomber.fac(world, x, y, z); + bomber.type = 3; + return bomber; + } + + public static EntityBomber statFacABomb(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 60; + bomber.bombStop = 70; + bomber.bombRate = 65; + bomber.fac(world, x, y, z); + int i = 1; + + int rand = world.rand.nextInt(3); + + switch(rand) { + case 0: i = 5; break; + case 1: i = 6; break; + case 2: i = 7; break; + } + if(world.rand.nextInt(100) == 0) i = 8; + + bomber.getDataWatcher().updateObject(16, (byte) i); + bomber.type = 4; + return bomber; + } + + public static EntityBomber statFacStinger(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 150; + bomber.bombRate = 10; + bomber.fac(world, x, y, z); + bomber.getDataWatcher().updateObject(16, (byte) 4); + bomber.type = 5; + return bomber; + } + + public static EntityBomber statFacBoxcar(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 50; + bomber.bombStop = 150; + bomber.bombRate = 10; + bomber.fac(world, x, y, z); + bomber.getDataWatcher().updateObject(16, (byte) 6); + bomber.type = 6; + return bomber; + } + + public static EntityBomber statFacPC(World world, double x, double y, double z) { + EntityBomber bomber = new EntityBomber(world); + bomber.timer = 200; + bomber.bombStart = 75; + bomber.bombStop = 125; + bomber.bombRate = 1; + bomber.fac(world, x, y, z); + bomber.getDataWatcher().updateObject(16, (byte) 6); + bomber.type = 7; + return bomber; + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { - ticksExisted = nbt.getInteger("ticksExisted"); + super.readEntityFromNBT(nbt); bombStart = nbt.getInteger("bombStart"); bombStop = nbt.getInteger("bombStop"); bombRate = nbt.getInteger("bombRate"); type = nbt.getInteger("type"); - - this.getDataWatcher().updateObject(16, nbt.getByte("style")); - this.getDataWatcher().updateObject(17, nbt.getInteger("health")); - this.setSize(8.0F, 4.0F); + this.getDataWatcher().updateObject(16, nbt.getByte("style")); + this.setSize(8.0F, 4.0F); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setInteger("ticksExisted", ticksExisted); + super.writeEntityToNBT(nbt); nbt.setInteger("bombStart", bombStart); nbt.setInteger("bombStop", bombStop); nbt.setInteger("bombRate", bombRate); nbt.setInteger("type", type); nbt.setByte("style", this.getDataWatcher().getWatchableObjectByte(16)); - nbt.setInteger("health", this.getDataWatcher().getWatchableObjectInt(17)); } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } - - private Ticket loaderTicket; - - public void init(Ticket ticket) { - - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) - { - if(!worldObj.isRemote && loaderTicket != null) - { - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); - - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } } diff --git a/src/main/java/com/hbm/entity/logic/EntityC130.java b/src/main/java/com/hbm/entity/logic/EntityC130.java new file mode 100644 index 000000000..0b0927845 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityC130.java @@ -0,0 +1,98 @@ +package com.hbm.entity.logic; + +import com.hbm.entity.item.EntityParachuteCrate; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsC130; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.util.EnumUtil; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityC130 extends EntityPlaneBase { + + protected AudioWrapper audio; + public C130PayloadType payload = C130PayloadType.SUPPLIES; + + public EntityC130(World world) { + super(world); + this.ignoreFrustumCheck = true; + this.setSize(8.0F, 4.0F); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(worldObj.isRemote) { + if(this.getDataWatcher().getWatchableObjectFloat(17) > 0) { + if(audio == null || !audio.isPlaying()) { + audio = MainRegistry.proxy.getLoopedSound("hbm:entity.bomberLoop", (float) posX, (float) posY, (float) posZ, 2F, 250F, 1F, 20); + audio.startSound(); + } + audio.keepAlive(); + audio.updatePosition((float) posX, (float) posY, (float) posZ); + } else { + if(audio != null && audio.isPlaying()) { + audio.stopSound(); + audio = null; + } + } + } + + if(!worldObj.isRemote && this.ticksExisted == this.getLifetime() / 2 && this.health > 0) { + EntityParachuteCrate crate = new EntityParachuteCrate(worldObj); + crate.setPosition(posX - motionX * 7, posY - 10, posZ - motionZ * 7); + + if(this.payload == C130PayloadType.SUPPLIES) { + for(int i = 0; i < 5; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_SUPPLIES, this.rand)); + } + if(this.payload == C130PayloadType.WEAPONS) { + int amount = 1 + rand.nextInt(2); + for(int i = 0; i < amount; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_WEAPONS, this.rand)); + for(int i = 0; i < 6; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_AMMO, this.rand)); + } + + worldObj.spawnEntityInWorld(crate); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.payload = EnumUtil.grabEnumSafely(C130PayloadType.class, nbt.getInteger("payload")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("payload", this.payload.ordinal()); + } + + public void fac(World world, double x, double y, double z, C130PayloadType payload) { + + Vec3 vector = Vec3.createVectorHelper(world.rand.nextDouble() - 0.5, 0, world.rand.nextDouble() - 0.5); + vector = vector.normalize(); + vector.xCoord *= 2; + vector.zCoord *= 2; + + this.payload = payload; + + this.setLocationAndAngles(x - vector.xCoord * 100, y + 100, z - vector.zCoord * 100, 0.0F, 0.0F); + this.loadNeighboringChunks((int) (x / 16), (int) (z / 16)); + + this.motionX = vector.xCoord; + this.motionZ = vector.zCoord; + this.motionY = 0.0D; + + this.rotation(); + } + + public static enum C130PayloadType { + SUPPLIES, + WEAPONS, + A_FUCKING_FUEL_TRUCK + } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java new file mode 100644 index 000000000..d34fec111 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java @@ -0,0 +1,151 @@ +package com.hbm.entity.logic; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.ExplosionSmallCreator; +import com.hbm.util.ParticleUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityPlaneBase extends Entity implements IChunkLoader { + + private Ticket loaderTicket; + private List loadedChunks = new ArrayList(); + + public float health = getMaxHealth(); + public int timer = getLifetime(); + + public EntityPlaneBase(World world) { super(world); } + + public float getMaxHealth() { return 50F; } + public int getLifetime() { return 200; } + + @Override public boolean canBeCollidedWith() { return this.health > 0; } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(source == ModDamageSource.nuclearBlast) return false; + if(this.isEntityInvulnerable()) return false; + if(!this.isDead && !this.worldObj.isRemote && this.health > 0) { + health -= amount; + if(this.health <= 0) this.killPlane(); + } + return true; + } + + protected void killPlane() { + ExplosionSmallCreator.composeEffect(worldObj, posX, posY, posZ, 25, 3.5F, 2F); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:entity.planeShotDown", 25.0F, 1.0F); + } + + @Override + protected void entityInit() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.dataWatcher.addObject(17, new Float(50F)); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + @Override + public void onUpdate() { + + this.lastTickPosX = this.prevPosX = posX; + this.lastTickPosY = this.prevPosY = posY; + this.lastTickPosZ = this.prevPosZ = posZ; + this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); + + if(!worldObj.isRemote) { + this.dataWatcher.updateObject(17, health); + } else { + health = this.dataWatcher.getWatchableObjectFloat(17); + } + + this.rotation(); + + if(this.health <= 0) { + motionY -= 0.025; + + for(int i = 0; i < 10; i++) ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); + + if((!worldObj.getBlock((int) posX, (int) posY, (int) posZ).isAir(worldObj, (int) posX, (int) posY, (int) posZ) || posY < 0) && !worldObj.isRemote) { + this.setDead(); + new ExplosionVNT(worldObj, posX, posY, posZ, 15F).makeStandard().explode(); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:entity.planeCrash", 25.0F, 1.0F); + return; + } + } else { + this.motionY = 0F; + } + + if(this.ticksExisted > timer) this.setDead(); + if(!worldObj.isRemote) loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + } + + protected void rotation() { + float motionHorizontal = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, motionHorizontal) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + ticksExisted = nbt.getInteger("ticksExisted"); + this.getDataWatcher().updateObject(17, nbt.getFloat("health")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("ticksExisted", ticksExisted); + nbt.setFloat("health", this.getDataWatcher().getWatchableObjectFloat(17)); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + clearChunkLoader(); + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + + @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 7429e0b8e..3b171440f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -30,8 +30,8 @@ import net.minecraft.world.World; public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLoader { - protected float fuel; - protected float consumption; + public float fuel; + public float consumption; public EntityMissileCustom(World world) { super(world); @@ -81,6 +81,12 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo @Override public void onUpdate() { + + ItemCustomMissilePart part = (ItemCustomMissilePart) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); + WarheadType type = (WarheadType) part.attributes[0]; + if(type != null && type.updateCustom != null) { + type.updateCustom.accept(this); + } if(!worldObj.isRemote) { if(this.hasPropulsion()) this.fuel -= this.consumption; @@ -152,6 +158,11 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo WarheadType type = (WarheadType) part.attributes[0]; float strength = (Float) part.attributes[1]; + + if(type.impactCustom != null) { + type.impactCustom.accept(this); + return; + } switch(type) { case HE: diff --git a/src/main/java/com/hbm/entity/mob/EntityDummy.java b/src/main/java/com/hbm/entity/mob/EntityDummy.java new file mode 100644 index 000000000..cd64ff427 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityDummy.java @@ -0,0 +1,34 @@ +package com.hbm.entity.mob; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.world.World; + +public class EntityDummy extends EntityLiving implements IAnimals { + + public EntityDummy(World world) { + super(world); + } + + @Override + public boolean interact(EntityPlayer player) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemArmor) { + ItemArmor armor = (ItemArmor) player.getHeldItem().getItem(); + this.setCurrentItemOrArmor(4 - armor.armorType, player.getHeldItem().copy()); + } + + return super.interact(player); + } + + @Override @SideOnly(Side.CLIENT) public boolean getAlwaysRenderNameTagForRender() { return true; } + @Override public String getCommandSenderName() { + return (int) (this.getHealth() * 10) / 10F + " / " + (int) (this.getMaxHealth() * 10) / 10F; } + //return (int) this.rotationYaw + " " + (int) this.renderYawOffset + " " + (int) this.rotationYawHead + " " + (int) this.newRotationYaw; } + + @Override protected void dropEquipment(boolean b, int i) { } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java index bd228c2e0..0d9161b98 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4.java @@ -5,6 +5,8 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; import com.hbm.util.Vec3NT; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityTrackerEntry; @@ -29,6 +31,7 @@ public class EntityBulletBaseMK4 extends EntityThrowableInterp { super(world); this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); + this.isImmuneToFire = true; } public EntityBulletBaseMK4(EntityLivingBase entity, BulletConfig config, float baseDamage, float gunSpread, double sideOffset, double heightOffset, double frontOffset) { @@ -61,6 +64,22 @@ public class EntityBulletBaseMK4 extends EntityThrowableInterp { this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread + gunSpread); } + + /** For turrets - angles are in radians, andp itch is negative! */ + public EntityBulletBaseMK4(World world, BulletConfig config, float baseDamage, float gunSpread, float yaw, float pitch) { + this(world); + + this.setBulletConfig(config); + this.damage = baseDamage * this.config.damageMult; + + this.prevRotationYaw = this.rotationYaw = yaw * 180F / (float) Math.PI; + this.prevRotationPitch = this.rotationPitch = -pitch * 180F / (float) Math.PI; + + this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread + gunSpread); + } @Override protected void entityInit() { @@ -165,4 +184,6 @@ public class EntityBulletBaseMK4 extends EntityThrowableInterp { @Override public boolean doesPenetrate() { return this.config.doesPenetrate; } @Override public boolean isSpectral() { return this.config.isSpectral; } @Override public int selfDamageDelay() { return this.config.selfDamageDelay; } + + @Override @SideOnly(Side.CLIENT) public boolean canRenderOnFire() { return false; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java new file mode 100644 index 000000000..42591af80 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java @@ -0,0 +1,81 @@ +package com.hbm.entity.projectile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public class EntityBulletBaseMK4CL extends EntityBulletBaseMK4 implements IChunkLoader { + + private Ticket loaderTicket; + private List loadedChunks = new ArrayList(); + + public EntityBulletBaseMK4CL(World world) { + super(world); + } + + public EntityBulletBaseMK4CL(EntityLivingBase entity, BulletConfig config, float damage, float spread, double sideOffset, double heightOffset, double forwardOffset) { + super(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + } + + @Override + protected void entityInit() { + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + } + + @Override + public void setDead() { + super.setDead(); + clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + 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/projectile/EntityBulletBeamBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java index ad675f469..aaa65b397 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java @@ -33,8 +33,11 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa this.ignoreFrustumCheck = true; this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); + this.isImmuneToFire = true; } + public EntityLivingBase getThrower() { return this.thrower; } + public EntityBulletBeamBase(EntityLivingBase entity, BulletConfig config, float baseDamage, float angularInaccuracy, double sideOffset, double heightOffset, double frontOffset) { this(entity.worldObj); @@ -59,7 +62,7 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa this.headingZ = (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); this.headingY = (double) (-MathHelper.sin((this.rotationPitch) / 180.0F * (float) Math.PI)); - double range = 150D; + double range = 250D; this.headingX *= range; this.headingY *= range; this.headingZ *= range; @@ -93,6 +96,8 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa return; } + if(config.onUpdate != null) config.onUpdate.accept(this); + super.onUpdate(); if(!worldObj.isRemote && this.ticksExisted > config.expires) this.setDead(); @@ -186,8 +191,14 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa @Override public void writeSpawnData(ByteBuf buf) { buf.writeDouble(beamLength); + buf.writeFloat(rotationYaw); + buf.writeFloat(rotationPitch); } @Override public void readSpawnData(ByteBuf buf) { this.beamLength = buf.readDouble(); + this.rotationYaw = buf.readFloat(); + this.rotationPitch = buf.readFloat(); } + + @Override @SideOnly(Side.CLIENT) public boolean canRenderOnFire() { return false; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index f3b70f6a6..31a3c2392 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -193,7 +193,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { for(int j = 0; j < list.size(); ++j) { Entity entity = (Entity) list.get(j); - if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= this.selfDamageDelay())) { + if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= this.selfDamageDelay()) && entity.isEntityAlive()) { double hitbox = 0.3F; AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox); MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java index 3bc9f6870..27bd3d7f4 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler; import com.hbm.explosion.vanillant.interfaces.IEntityProcessor; @@ -96,9 +97,11 @@ public class EntityProcessorCross implements IEntityProcessor { if(!damageMap.containsKey(entity) || damageMap.get(entity) < dmg) damageMap.put(entity, dmg); double enchKnockback = EnchantmentProtection.func_92092_a(entity, knockback); - entity.motionX += deltaX * enchKnockback; - entity.motionY += deltaY * enchKnockback; - entity.motionZ += deltaZ * enchKnockback; + if(!(entity instanceof EntityBulletBaseMK4)) { + entity.motionX += deltaX * enchKnockback; + entity.motionY += deltaY * enchKnockback; + entity.motionZ += deltaZ * enchKnockback; + } if(entity instanceof EntityPlayer) { affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback)); @@ -110,7 +113,7 @@ public class EntityProcessorCross implements IEntityProcessor { for(Entry entry : damageMap.entrySet()) { Entity entity = entry.getKey(); - entity.attackEntityFrom(setExplosionSource(explosion.compat), entry.getValue()); + attackEntity(entity, explosion, entry.getValue()); if(damage != null) { double distanceScaled = entity.getDistance(x, y, z) / size; @@ -121,6 +124,10 @@ public class EntityProcessorCross implements IEntityProcessor { return affectedPlayers; } + public void attackEntity(Entity entity, ExplosionVNT source, float amount) { + entity.attackEntityFrom(setExplosionSource(source.compat), amount); + } + public float calculateDamage(double distanceScaled, double density, double knockback, float size) { return (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D)); } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java index 725b9fc92..48d25e4a2 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCrossSmooth.java @@ -1,14 +1,51 @@ package com.hbm.explosion.vanillant.standard; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.ConfettiUtil; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.DamageSource; + public class EntityProcessorCrossSmooth extends EntityProcessorCross { protected float fixedDamage; + protected float pierceDT = 0; + protected float pierceDR = 0; + protected DamageClass clazz = DamageClass.EXPLOSIVE; public EntityProcessorCrossSmooth(double nodeDist, float fixedDamage) { super(nodeDist); this.fixedDamage = fixedDamage; } + public EntityProcessorCrossSmooth setupPiercing(float pierceDT, float pierceDR) { + this.pierceDT = pierceDT; + this.pierceDR = pierceDR; + return this; + } + + public EntityProcessorCrossSmooth setDamageClass(DamageClass clazz) { + this.clazz = clazz; + return this; + } + + @Override + public void attackEntity(Entity entity, ExplosionVNT source, float amount) { + if(!entity.isEntityAlive()) return; + DamageSource dmg = BulletConfig.getDamage(null, source.exploder instanceof EntityLivingBase ? (EntityLivingBase) source.exploder : null, clazz); + if(!(entity instanceof EntityLivingBase)) { + entity.attackEntityFrom(dmg, amount); + } else { + EntityDamageUtil.attackEntityFromNT((EntityLivingBase) entity, dmg, amount, true, false, 0F, pierceDT, pierceDR); + if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti((EntityLivingBase) entity, dmg); + } + } + + @Override public float calculateDamage(double distanceScaled, double density, double knockback, float size) { return (float) (fixedDamage * (1 - distanceScaled)); } diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index e295d64bd..8a7331382 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -47,6 +47,7 @@ public class HbmLivingProps implements IExtendedEntityProperties { private int contagion; private int oil; public int fire; + public int phosphorus; public int balefire; private List contamination = new ArrayList(); @@ -284,6 +285,7 @@ public class HbmLivingProps implements IExtendedEntityProperties { props.setInteger("hfr_blacklung", blacklung); props.setInteger("hfr_oil", oil); props.setInteger("hfr_fire", fire); + props.setInteger("hfr_phosphorus", phosphorus); props.setInteger("hfr_balefire", balefire); props.setInteger("hfr_cont_count", this.contamination.size()); @@ -309,6 +311,7 @@ public class HbmLivingProps implements IExtendedEntityProperties { blacklung = props.getInteger("hfr_blacklung"); oil = props.getInteger("hfr_oil"); fire = props.getInteger("hfr_fire"); + phosphorus = props.getInteger("hfr_phosphorus"); balefire = props.getInteger("hfr_balefire"); int cont = props.getInteger("hfr_cont_count"); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index c6597b3f5..ab683b588 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -18,6 +18,7 @@ import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.IArmorModDash; import com.hbm.items.armor.ArmorFSB; +import com.hbm.items.weapon.sedna.factory.ConfettiUtil; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; @@ -572,7 +573,12 @@ public class EntityEffectHandler { HbmLivingProps props = HbmLivingProps.getData(living); Random rand = living.getRNG(); - if(living.isImmuneToFire()) props.fire = 0; + if(!entity.isEntityAlive()) return; + + if(living.isImmuneToFire()) { + props.fire = 0; + props.phosphorus = 0; + } double x = living.posX; double y = living.posY; @@ -587,6 +593,13 @@ public class EntityEffectHandler { FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_FIRE); } + if(props.phosphorus > 0) { + props.phosphorus--; + if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F); + if((living.ticksExisted + living.getEntityId()) % 40 == 0) living.attackEntityFrom(DamageSource.onFire, 5F); + FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_FIRE); + } + if(props.balefire > 0) { props.balefire--; if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F); @@ -594,6 +607,8 @@ public class EntityEffectHandler { if((living.ticksExisted + living.getEntityId()) % 20 == 0) living.attackEntityFrom(DamageSource.onFire, 5F); FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BALEFIRE); } + + if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire); } private static void handleDashing(Entity entity) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java index 287022576..62c48b7d9 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java @@ -9,13 +9,11 @@ import com.hbm.handler.GunConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.AmmoDart; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunDart; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.main.MainRegistry; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; @@ -100,28 +98,6 @@ public class GunDartFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(Potion.wither.id, 60 * 20, 2)); - bullet.bntHurt = (bulletnt, hit) -> { - - if(bulletnt.worldObj.isRemote) - return; - - if(hit instanceof EntityPlayer) { - - if(((EntityPlayer) hit).inventory.hasItem(ModItems.ingot_meteorite_forged)) - return; - - if(bulletnt.getThrower() instanceof EntityPlayer) { - - EntityPlayer shooter = (EntityPlayer) bulletnt.getThrower(); - - if(shooter.getHeldItem() != null && shooter.getHeldItem().getItem() == ModItems.gun_darter) { - ItemGunDart.writePlayer(shooter.getHeldItem(), (EntityPlayer) hit); - shooter.playSound("random.orb", 1.0F, 1.0F); - } - } - } - }; - return bullet; } diff --git a/src/main/java/com/hbm/handler/nei/AmmoPressHandler.java b/src/main/java/com/hbm/handler/nei/AmmoPressHandler.java new file mode 100644 index 000000000..3f1ba26b8 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AmmoPressHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.AmmoPressRecipes; + +public class AmmoPressHandler extends NEIUniversalHandler { + + public AmmoPressHandler() { + super(ModBlocks.machine_ammo_press.getLocalizedName(), ModBlocks.machine_ammo_press, AmmoPressRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmAmmoPress"; + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index ef6fb0d36..b918c1480 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -546,15 +546,15 @@ public class OreDictManager { for(NTMMaterial mat : Mats.orderedList) { if(mat.smeltable == SmeltingBehavior.SMELTABLE) { - if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); - if(mat.autogen.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); - if(mat.autogen.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); - if(mat.autogen.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); } + if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); + if(mat.autogen.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.FRAGMENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.FRAGMENT.name() + name, new ItemStack(ModItems.bedrock_ore_fragment, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WIRE.name() + name, new ItemStack(ModItems.wire_fine, 1, mat.id)); @@ -674,10 +674,11 @@ public class OreDictManager { public static void registerGroups() { ANY_RUBBER.addPrefix(INGOT, true); - ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); - ANY_HARDPLASTIC.addPrefix(INGOT, true); - ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); - ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true); + ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true).addPrefix(GRIP, true).addPrefix(STOCK, true); + ANY_HARDPLASTIC.addPrefix(INGOT, true).addPrefix(STOCK, true).addPrefix(GRIP, true); + ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true) + .addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); + ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true).addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); ANY_TAR.addPrefix(ANY, false); } @@ -685,9 +686,7 @@ public class OreDictManager { @SubscribeEvent public void onRegisterOre(OreRegisterEvent event) { - - if(recursionBrake) - return; + if(recursionBrake) return; recursionBrake = true; @@ -1016,6 +1015,13 @@ public class OreDictManager { public String billet() { return BILLET.name() + groupName; } public String block() { return BLOCK.name() + groupName; } public String ore() { return ORE.name() + groupName; } + public String lightBarrel() { return LIGHTBARREL.name() + groupName; } + public String heavyBarrel() { return HEAVYBARREL.name() + groupName; } + public String lightReceiver() { return LIGHTRECEIVER.name() + groupName; } + public String heavyReceiver() { return HEAVYRECEIVER.name() + groupName; } + public String mechanism() { return MECHANISM.name() + groupName; } + public String stock() { return STOCK.name() + groupName; } + public String grip() { return GRIP.name() + groupName; } } private static void addReRegistration(String original, String additional) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index fa4894c12..ec91665bc 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -308,8 +308,8 @@ public class Fluids { NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL); LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL); DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID, P_FUEL); - AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS, P_GAS); - UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS, P_GAS); //acetylene burns as hot as satan's asshole + AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x68A09A, 0xEDCF27)).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS, P_GAS); + UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x628FAE, 0xEDCF27)).addTraits(new FT_Flammable(1_000_000), GASEOUS, P_GAS); //acetylene burns as hot as satan's asshole SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java index 8f304b80f..94c5499c9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java @@ -282,7 +282,9 @@ public class GUIMachineAmmoPress extends GuiInfoContainer { GL11.glDisable(GL11.GL_BLEND); } } - + + RenderHelper.disableStandardItemLighting(); + GL11.glColor4f(1F, 1F, 1F, 1F); this.search.drawTextBox(); } diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index adfa898fb..122b660cb 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -137,13 +137,13 @@ public class Mats { public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, BLOCK).m(); public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setAutogen(BOLT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); - public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m(); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).m(); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE).m(); - public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE).m(); + public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(HEAVYBARREL, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m(); + public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m(); public static final NTMMaterial MAT_BSCCO = makeSmeltable(_AS + 18, BSCCO, 0x767BF1, 0x000000, 0x5E62C0).setAutogen(DENSEWIRE).m(); public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setAutogen(WIRE, DUST, DENSEWIRE, BLOCK).m(); public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setAutogen(DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK).m(); @@ -152,11 +152,16 @@ public class Mats { public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setAutogen(BLOCK).n(); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).n(); public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); - public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); - public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m(); + public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(SHELL, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); + public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, SHELL, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m(); //Extension public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setAutogen(FRAGMENT).n(); + public static final NTMMaterial MAT_POLYMER = makeNonSmeltable(_ES + 01, POLYMER, 0x363636, 0x040404, 0x272727).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_BAKELITE = makeNonSmeltable(_ES + 02, BAKELITE, 0xF28086, 0x2B0608, 0xC93940).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_RUBBER = makeNonSmeltable(_ES + 03, RUBBER, 0x817F75, 0x0F0D03, 0x4B4A3F).setAutogen(PIPE, GRIP).n(); + public static final NTMMaterial MAT_HARDPLASTIC = makeNonSmeltable(_ES + 04, PC, 0xEDE7C4, 0x908A67, 0xE1DBB8).setAutogen(STOCK, GRIP).n(); + public static final NTMMaterial MAT_PVC = makeNonSmeltable(_ES + 05, PVC, 0xFCFCFC, 0x9F9F9F, 0xF0F0F0).setAutogen(STOCK, GRIP).n(); public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } diff --git a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java index de3be5db7..eca9aac34 100644 --- a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java @@ -2,6 +2,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import static com.hbm.inventory.OreDictManager.*; @@ -14,11 +15,13 @@ import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class AmmoPressRecipes extends SerializableRecipe { @@ -36,9 +39,11 @@ public class AmmoPressRecipes extends SerializableRecipe { OreDictStack copper = new OreDictStack(CU.ingot()); OreDictStack plastic = new OreDictStack(ANY_PLASTIC.ingot()); OreDictStack uranium = new OreDictStack(U238.ingot()); + ComparableStack smokeful = new ComparableStack(Items.gunpowder); OreDictStack smokeless = new OreDictStack(ANY_SMOKELESS.dust()); OreDictStack he = new OreDictStack(ANY_HIGHEXPLOSIVE.ingot()); OreDictStack wp = new OreDictStack(P_WHITE.ingot()); + OreDictStack rp = new OreDictStack(P_RED.dust()); 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); @@ -46,7 +51,11 @@ public class AmmoPressRecipes extends SerializableRecipe { ComparableStack bpShell = new ComparableStack(ModItems.casing, 1, EnumCasingType.SHOTSHELL); ComparableStack pShell = new ComparableStack(ModItems.casing, 1, EnumCasingType.BUCKSHOT); ComparableStack sShell = new ComparableStack(ModItems.casing, 1, EnumCasingType.BUCKSHOT_ADVANCED); - + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_BP, 16), + null, lead.copy(2), null, + null, smokeful, null, + null, cSmall, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_SP, 8), null, lead, null, null, smokeless, null, @@ -67,7 +76,11 @@ public class AmmoPressRecipes extends SerializableRecipe { null, steel, null, null, smokeless.copy(3), null, null, cSmall, null)); - + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_BP, 12), + null, lead.copy(2), null, + null, smokeful, null, + null, cSmall, null)); recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_SP, 6), null, lead, null, null, smokeless, null, @@ -219,6 +232,144 @@ public class AmmoPressRecipes extends SerializableRecipe { null, wp, null, null, smokeless, null, null, sShell, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G26_FLARE, 4), + null, rp, null, + null, smokeless, null, + null, cBig, null)); + + ComparableStack dyn = new ComparableStack(ModItems.ball_dynamite); + OreDictStack coplate = new OreDictStack(CU.plate()); + OreDictStack diesel = new OreDictStack(Fluids.DIESEL.getDict(1_000)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE, 4), + null, dyn, null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HEAT, 4), + coplate, he, null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_DEMO, 4), + null, he.copy(2), null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_INC, 4), + diesel, dyn, null, + null, smokeless, null, + null, cBig, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_PHOSPHORUS, 4), + wp, he, null, + null, smokeless, null, + null, cBig, null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HE, 2), + null, dyn, null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HEAT, 2), + coplate, he, null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_DEMO, 2), + null, he.copy(2), null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_INC, 2), + diesel, dyn, null, + null, cBig, null, + null, smokeless.copy(2), null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_PHOSPHORUS, 2), + wp, he, null, + null, cBig, null, + null, smokeless.copy(2), null)); + + OreDictStack sPlate = new OreDictStack(STEEL.plate()); + ComparableStack napalm = new ComparableStack(ModItems.canister_napalm); + OreDictStack gas = new OreDictStack(Fluids.GAS.getDict(1000)); + OreDictStack bf = new OreDictStack(Fluids.BALEFIRE.getDict(1000)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_DIESEL, 1), + null, sPlate, null, + null, diesel, null, + null, sPlate, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_NAPALM, 1), + null, sPlate, null, + null, napalm, null, + null, sPlate, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_GAS, 1), + null, sPlate, null, + null, gas, null, + null, sPlate, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.FLAME_BALEFIRE, 1), + null, sPlate, null, + null, bf, null, + null, sPlate, null)); + + OreDictStack silicon = new OreDictStack(SI.billet()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CAPACITOR, 4), + null, plastic, null, + null, silicon.copy(4), null, + null, plastic, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CAPACITOR_OVERCHARGE, 4), + null, plastic, null, + null, silicon.copy(6), null, + null, plastic, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CAPACITOR_IR, 4), + null, plastic, null, + null, silicon.copy(4), null, + null, plastic, null)); + + OreDictStack lPlate = new OreDictStack(PB.plate()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.TAU_URANIUM, 16), + null, lPlate, null, + null, uranium, null, + null, lPlate , null)); + + OreDictStack tungsten = new OreDictStack(W.ingot()); + OreDictStack ferro = new OreDictStack(FERRO.ingot()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.COIL_TUNGSTEN, 4), + null, null, null, + null, tungsten, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.COIL_FERROURANIUM, 4), + null, null, null, + null, ferro, null, + null, null , null)); + + ComparableStack shell = new ComparableStack(ModItems.assembly_nuke); + ComparableStack tatb = new ComparableStack(ModItems.ball_tatb); + OreDictStack plutonium = new OreDictStack(PU239.nugget()); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD, 1), + null, plutonium, null, + null, shell, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_DEMO, 1), + null, plutonium.copy(2), null, + null, shell, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH, 1), + null, plutonium.copy(4), null, + null, shell, null, + null, null , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_TOTS, 1), + null, plutonium.copy(2), null, + null, tatb.copy(2), null, + null, sPlate.copy(4) , null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.NUKE_HIVE, 1), + null, he.copy(8), null, + null, sBig.copy(2), null, + null, sPlate.copy(4), null)); + } + + public static HashMap getRecipes() { + HashMap recipes = new HashMap(); + + for(AmmoPressRecipe recipe : AmmoPressRecipes.recipes) { + List inputs = new ArrayList(); + for(AStack stack : recipe.input) if(stack != null) inputs.add(stack); + recipes.put(inputs.toArray(new AStack[0]), recipe.output.copy()); + } + + return recipes; } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 06b7f69cd..3e8513f7c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -224,13 +224,6 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(60, "XENON_OXY", 20) .inputFluids(new FluidStack(Fluids.OXYGEN, 250)) .outputFluids(new FluidStack(Fluids.XENON, 50))); - recipes.add(new ChemRecipe(61, "SATURN", 60) - .inputItems( - new OreDictStack(DURA.dust(), 2), - new OreDictStack(CU.dust(), 1), - new OreDictStack(COAL.dust(), 1)) - .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) - .outputItems(new ItemStack(ModItems.ingot_saturnite, 4))); recipes.add(new ChemRecipe(62, "BALEFIRE", 100) .inputItems(new ComparableStack(ModItems.egg_balefire_shard)) .inputFluids(new FluidStack(Fluids.KEROSENE, 6000)) diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index f1333cd0c..dfb802485 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -9,9 +9,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.init.Items; import net.minecraft.inventory.InventoryCrafting; @@ -46,28 +44,6 @@ public class MagicRecipes { recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.egg_balefire_shard))); recipes.add(new MagicRecipe(new ItemStack(ModItems.mysteryshovel), new ComparableStack(Items.iron_shovel), new ComparableStack(Items.bone), new ComparableStack(ModItems.ingot_starmetal), new ComparableStack(ModItems.ducttape))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_electronium), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.ingot_dineutronium), new ComparableStack(ModItems.ingot_dineutronium))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_44, 1, ItemAmmoEnums.Ammo44Magnum.PIP.ordinal()), - new ComparableStack(ModItems.ammo_44), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_44, 1, ItemAmmoEnums.Ammo44Magnum.BJ.ordinal()), - new ComparableStack(ModItems.ammo_44), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_desh))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_44, 1, ItemAmmoEnums.Ammo44Magnum.SILVER.ordinal()), - new ComparableStack(ModItems.ammo_44), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.ingot_starmetal))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_bf), - new ComparableStack(ModItems.gun_fatman), - new ComparableStack(ModItems.egg_balefire_shard), - new ComparableStack(ModItems.powder_magic), - new ComparableStack(ModItems.powder_magic))); recipes.add(new MagicRecipe(new ItemStack(ModItems.diamond_gavel), new ComparableStack(ModBlocks.gravel_diamond), @@ -92,17 +68,6 @@ public class MagicRecipes { new OreDictStack(DNT.wireDense()), new OreDictStack(W.wireDense()), new OreDictStack(GOLD.wireDense()))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_darter), - new OreDictStack(STEEL.plate()), - new OreDictStack(STEEL.plate()), - new OreDictStack(ANY_PLASTIC.ingot()), - new OreDictStack(GOLD.plate()))); - - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), - new OreDictStack(ANY_RUBBER.ingot()), - new ComparableStack(ModItems.nugget_pu239), - new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP))); } public static List getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index d9ccaf232..dcfa350d2 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -20,9 +20,6 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ItemEnums.EnumPages; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.items.ItemAmmoEnums.Ammo556mm; -import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; @@ -102,29 +99,6 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.CIRCUIT, new OreDictStack(SI.billet()), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.IRON)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.LEAD)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.NUCLEAR)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.GOLD)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.SCHRABIDIUM)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.NIGHTMARE1)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.DESH)); - makeRecipe(StampType.C357, new OreDictStack(STEEL.ingot()), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.STEEL)); - - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), new ItemStack(ModItems.ammo_44, 24)); - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), new ItemStack(ModItems.ammo_45, 32)); - - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), new ItemStack(ModItems.ammo_9mm, 32)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), new ItemStack(ModItems.ammo_22lr, 32)); - makeRecipe(StampType.C9, new OreDictStack(GOLD.ingot()), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.GOLD)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), new ItemStack(ModItems.ammo_5mm, 64)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), new ItemStack(ModItems.ammo_556, 32)); - - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), new ItemStack(ModItems.ammo_50bmg, 12)); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), new ItemStack(ModItems.ammo_50ae, 12)); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT)); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), new ItemStack(ModItems.ammo_762, 32)); - makeRecipe(StampType.PRINTING1, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1)); makeRecipe(StampType.PRINTING2, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2)); makeRecipe(StampType.PRINTING3, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3)); diff --git a/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java index 233405e7c..4bc753665 100644 --- a/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RotaryFurnaceRecipes.java @@ -43,10 +43,10 @@ public class RotaryFurnaceRecipes extends SerializableRecipe { recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(4)), 200, 100, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()), new ComparableStack(ModItems.powder_flux))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_DESH, INGOT.q(1)), 100, 200, new FluidStack(Fluids.LIGHTOIL, 100), new ComparableStack(ModItems.powder_desh_ready))); - recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_SATURN, INGOT.q(2)), 200, 400, new FluidStack(Fluids.HEATINGOIL, 250), new OreDictStack(DURA.dust(), 2), new OreDictStack(CU.dust()))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_GUNMETAL, INGOT.q(4)), 200, 100, new OreDictStack(CU.ingot(), 3), new OreDictStack(AL.ingot(), 1))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_WEAPONSTEEL, INGOT.q(1)), 200, 400, new FluidStack(Fluids.GAS_COKER, 100), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.powder_flux, 2))); + recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_SATURN, INGOT.q(2)), 200, 400, new FluidStack(Fluids.REFORMGAS, 250), new OreDictStack(DURA.dust(), 4), new OreDictStack(CU.dust()))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 767950bd8..7da3649b4 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -18,7 +18,6 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; -import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.food.ItemFlask.EnumInfusion; @@ -27,7 +26,6 @@ import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -83,10 +81,11 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_shovel, 1), new ComparableStack(ModItems.cobalt_shovel), new ComparableStack(ModItems.ingot_meteorite))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_hoe, 1), new ComparableStack(ModItems.cobalt_hoe), new ComparableStack(ModItems.ingot_meteorite))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.gun_ar15, 1), new ComparableStack(ModItems.gun_thompson), new ComparableStack(ModItems.pipe_lead))); smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon))); smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, 1, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.ingot_gunmetal, 1), new OreDictStack(CU.ingot()), new OreDictStack(AL.ingot()))); + smithingRecipes.add(new AnvilSmithingMold(0, new OreDictStack(GOLD.nugget()), new OreDictStack("nugget"))); smithingRecipes.add(new AnvilSmithingMold(1, new OreDictStack(U.billet()), new OreDictStack("billet"))); smithingRecipes.add(new AnvilSmithingMold(2, new OreDictStack(IRON.ingot()), new OreDictStack("ingot"))); @@ -144,10 +143,12 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_lead))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_copper))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(ALLOY.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_advanced_alloy))).setTier(3)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(SA326.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_schrabidium))).setTier(3)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CMB.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_combine_steel))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(GUNMETAL.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_gunmetal))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(WEAPONSTEEL.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_weaponsteel))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BIGMT.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_saturnite))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(DURA.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_dura_steel))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(SA326.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_schrabidium))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CMB.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_combine_steel))).setTier(3)); for(NTMMaterial mat : Mats.orderedList) { if(mat.autogen.contains(MaterialShapes.WIRE) && OreDictionary.doesOreNameExist(MaterialShapes.INGOT.make(mat))) { @@ -184,9 +185,13 @@ public class AnvilRecipes { for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.SHELL)) constructionRecipes.add(new AnvilConstructionRecipe( new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4), new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1)); - for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 3), - new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1)); + for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) { + String key = (OreDictionary.doesOreNameExist(MaterialShapes.PLATE.name() + mat.names[0]) ? + MaterialShapes.PLATE.name() + mat.names[0] : MaterialShapes.INGOT.name() + mat.names[0]); + constructionRecipes.add(new AnvilConstructionRecipe( + new OreDictStack(key, 3), + new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1)); + } constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.coil_copper, 2), @@ -570,6 +575,11 @@ public class AnvilRecipes { public static void registerConstructionAmmo() { + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_9))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_50))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_desh_flat), new OreDictStack(WEAPONSTEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.stamp_desh_9))).setTier(4)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_desh_flat), new OreDictStack(WEAPONSTEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.stamp_desh_50))).setTier(4)); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 22))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 23))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 24))).setTier(2)); @@ -578,112 +588,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 27))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_357))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_44))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_9))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_50))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1)); - pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1); pullFromAssembler(new ComparableStack(ModItems.pellet_canister), 1); - - constructionRecipes.add(new AnvilConstructionRecipe( new AStack[]{ - new ComparableStack(ModItems.powder_chlorophyte, 1), - new OreDictStack(PB.nugget(), 12),}, - new AnvilOutput(new ItemStack(ModItems.pellet_chlorophyte, 2))).setTier(1)); - - Object[][] recs = new Object[][] { - {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.INCENDIARY), 2}, - {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.SHRAPNEL), 2}, - {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.DU), 3}, - {ModItems.ammo_12gauge.stackFromEnum(120, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(120, Ammo12Gauge.SLEEK), 4}, - - {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.INCENDIARY), 2}, - {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SHRAPNEL), 2}, - {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.CAUSTIC), 2}, - {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SHOCK), 2}, - {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.WITHER), 3}, - {ModItems.ammo_20gauge.stackFromEnum(120, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(120, Ammo20Gauge.SLEEK), 4}, - - {ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2}, - {ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.BALEFIRE), 4}, - {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), ModItems.ammo_rocket, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.KAMPF), 2}, - {ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.CANISTER), 3}, - {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.pellet_claws, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.CLAW), 5}, - {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.toothpicks, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.VAMPIRE), 5}, - {ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.STOCK), ModItems.pellet_charged, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VOID), 5}, - {ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.SLEEK), 4}, - - {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.AP), 2}, - {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.DU), 2}, - {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.PHOSPHORUS), 2}, - {ModItems.ammo_44.stackFromEnum(12, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(12, Ammo44Magnum.STAR), 3}, - {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.CHLOROPHYTE), 3}, - - {ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.AP), 3}, - {ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.STOCK), U238.ingot(), ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.DU), 3}, - - {ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.EXPLOSIVE), 2}, - {ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.DU), 2}, - {ModItems.ammo_5mm.stackFromEnum(32, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(32, Ammo5mm.STAR), 3}, - {ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.CHLOROPHYTE), 3}, - - {ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.AP), 2}, - {ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.DU), 2}, - {ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.CHLOROPHYTE), 3}, - - {ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.AP), 2}, - {ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.CHLOROPHYTE), 3}, - - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.INCENDIARY), 2}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.PHOSPHORUS), 2}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.EXPLOSIVE), 2}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.AP), 2}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.DU), 2}, - {ModItems.ammo_50bmg.stackFromEnum(8, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(8, Ammo50BMG.STAR), 3}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.CHLOROPHYTE), 3}, - {ModItems.ammo_50bmg.stackFromEnum(128, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(128, Ammo50BMG.SLEEK), 4}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE), 2}, - {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE_AM), 3}, - {ModItems.ammo_50bmg.stackFromEnum(32, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(32, Ammo50BMG.FLECHETTE_PO), 3}, - - {ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.AP), 2}, - {ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.DU), 2}, - {ModItems.ammo_50ae.stackFromEnum(16, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(16, Ammo50AE.STAR), 3}, - {ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.CHLOROPHYTE), 3}, - - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.PHOSPHORUS), 2}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.AP), 2}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.DU), 2}, - {ModItems.ammo_556.stackFromEnum(16, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(16, Ammo556mm.STAR), 3}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.CHLOROPHYTE), 3}, - {ModItems.ammo_556.stackFromEnum(128, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(128, Ammo556mm.SLEEK), 4}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.TRACER), 2}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), 2}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_INCENDIARY), 2}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_PHOSPHORUS), 2}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_DU), 2}, - {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(128, Ammo556mm.FLECHETTE_SLEEK), 4}, - {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3}, - - {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.TRACER), 2}, - {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.AP), 2}, - {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.PHOSPHORUS), 2}, - {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.DU), 2} - }; - - for(Object[] objs : recs) { - - ComparableStack ammoIn = new ComparableStack((ItemStack) objs[0]); - ItemStack out = (ItemStack) objs[2]; - - if(objs[1] instanceof Item) { - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new ComparableStack((Item)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); - - } else if(objs[1] instanceof String) { - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new OreDictStack((String)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); - } - } } public static void registerConstructionUpgrades() { diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java index a112f92a5..b9b537d43 100644 --- a/src/main/java/com/hbm/itempool/ItemPool.java +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -25,6 +25,7 @@ public class ItemPool { ItemPoolsRedRoom.init(); ItemPoolsSatellite.init(); ItemPoolsPile.init(); + ItemPoolsC130.init(); } public static HashMap pools = new HashMap(); diff --git a/src/main/java/com/hbm/itempool/ItemPoolsC130.java b/src/main/java/com/hbm/itempool/ItemPoolsC130.java new file mode 100644 index 000000000..63e3fb695 --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsC130.java @@ -0,0 +1,60 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; + +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsC130 { + + public static final String POOL_SUPPLIES = "POOL_SUPPLIES"; + public static final String POOL_WEAPONS = "POOL_WEAPONS"; + public static final String POOL_AMMO = "POOL_AMMO"; + + + public static void init() { + + new ItemPool(POOL_SUPPLIES) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.definitelyfood, 0, 3, 10, 25), + weighted(ModItems.syringe_metal_stimpak, 0, 1, 3, 10), + weighted(ModItems.pill_iodine, 0, 1, 2, 2), + weighted(ModItems.canister_full, Fluids.DIESEL.getID(), 1, 4, 5), + weighted(ModBlocks.machine_diesel, 0, 1, 1, 1), + weighted(ModItems.geiger_counter, 0, 1, 1, 2), + weighted(ModItems.med_bag, 0, 1, 1, 3), + weighted(ModItems.radaway, 0, 1, 5, 10), + }; + }}; + + new ItemPool(POOL_WEAPONS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.gun_light_revolver, 0, 1, 1, 10), + weighted(ModItems.gun_henry, 0, 1, 1, 10), + weighted(ModItems.gun_maresleg, 0, 1, 1, 10), + weighted(ModItems.gun_greasegun, 0, 1, 1, 10), + weighted(ModItems.gun_carbine, 0, 1, 1, 5), + weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 5), + weighted(ModItems.gun_panzerschreck, 0, 1, 1, 2), + }; + }}; + + new ItemPool(POOL_AMMO) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 12, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M357_FMJ.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M44_SP.ordinal(), 12, 12, 5), + weighted(ModItems.ammo_standard, EnumAmmo.M44_FMJ.ordinal(), 6, 6, 5), + weighted(ModItems.ammo_standard, EnumAmmo.P9_SP.ordinal(), 12, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.P9_FMJ.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.R762_SP.ordinal(), 6, 6, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G12_BP.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.ROCKET_HE.ordinal(), 1, 1, 3), + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java index 05bfdeb52..02d14641c 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsComponent.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsComponent.java @@ -77,7 +77,6 @@ public class ItemPoolsComponent { weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), weighted(ModItems.battery_advanced, 0, 1, 1, 5), weighted(ModItems.designator, 0, 1, 1, 5), - weighted(ModItems.crate_caller, 0, 1, 1, 1), weighted(ModItems.thruster_small, 0, 1, 1, 5), weighted(ModItems.thruster_medium, 0, 1, 1, 4), weighted(ModItems.fuel_tank_small, 0, 1, 1, 5), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index e1e19bd3d..78670f0ca 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -3,11 +3,10 @@ package com.hbm.itempool; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import static com.hbm.lib.HbmChestContents.*; @@ -43,8 +42,9 @@ public class ItemPoolsLegacy { weighted(ModItems.ingot_beryllium, 0, 1, 2, 4), weighted(ModItems.ingot_titanium, 0, 1, 1, 3), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 1, 1, 5), - weighted(ModItems.gun_revolver, 0, 1, 1, 3), - weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), + weighted(ModItems.gun_light_revolver, 0, 1, 1, 3), + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 2, 6, 4), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_SUPPLY.ordinal(), 1, 1, 1), weighted(ModItems.gun_kit_1, 0, 1, 3, 4), weighted(ModItems.gun_lever_action, 0, 1, 1, 1), weighted(ModItems.ammo_20gauge, 0, 2, 6, 3), @@ -106,11 +106,10 @@ public class ItemPoolsLegacy { weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 1, 1, 2), weighted(ModItems.gun_kit_1, 0, 1, 3, 6), weighted(ModItems.gun_kit_2, 0, 1, 2, 3), - weighted(ModItems.gun_rpg, 0, 1, 1, 4), - weighted(ModItems.ammo_rocket, 0, 1, 4, 5), - weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), - weighted(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), - weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), + weighted(ModItems.gun_panzerschreck, 0, 1, 1, 4), + weighted(ModItems.ammo_standard, EnumAmmo.ROCKET_HE.ordinal(), 1, 4, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_SUPPLY.ordinal(), 1, 1, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_WEAPON.ordinal(), 1, 1, 3), weighted(ModItems.grenade_nuclear, 0, 1, 1, 2), weighted(ModItems.grenade_smart, 0, 1, 3, 3), weighted(ModItems.grenade_mirv, 0, 1, 1, 2), @@ -119,7 +118,6 @@ public class ItemPoolsLegacy { weighted(ModItems.battery_advanced_cell, 0, 1, 1, 2), weighted(ModItems.battery_schrabidium, 0, 1, 1, 1), weighted(ModItems.syringe_awesome, 0, 1, 1, 1), - weighted(ModItems.crate_caller, 0, 1, 1, 3), weighted(ModItems.fusion_core, 0, 1, 1, 4), weighted(ModItems.bottle_nuka, 0, 1, 3, 6), weighted(ModItems.bottle_quantum, 0, 1, 1, 3), @@ -193,19 +191,17 @@ public class ItemPoolsLegacy { weighted(ModItems.t45_boots, 0, 1, 1, 15), weighted(ModItems.t45_kit, 0, 1, 1, 3), weighted(ModItems.fusion_core, 0, 1, 1, 10), - weighted(ModItems.gun_revolver, 0, 1, 1, 4), - weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), + weighted(ModItems.gun_light_revolver, 0, 1, 1, 4), weighted(ModItems.gun_kit_1, 0, 2, 3, 4), - weighted(ModItems.gun_rpg, 0, 1, 1, 3), - weighted(ModItems.ammo_rocket, 0, 1, 6, 3), + weighted(ModItems.ammo_standard, EnumAmmo.M357_FMJ.ordinal(), 1, 24, 4), + weighted(ModItems.ammo_standard, EnumAmmo.G40_HE.ordinal(), 1, 6, 3), + weighted(ModItems.ammo_standard, EnumAmmo.G26_FLARE_WEAPON.ordinal(), 1, 1, 5), weighted(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), weighted(ModItems.billet_uranium_fuel, 0, 1, 1, 2), weighted(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), - weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), weighted(ModItems.bottle_nuka, 0, 1, 3, 6), weighted(ModItems.bottle_quantum, 0, 1, 1, 3), weighted(ModItems.stealth_boy, 0, 1, 1, 7), - weighted(ModItems.crate_caller, 0, 1, 1, 3), weighted(ModItems.gas_mask_m65, 0, 1, 1, 5), weighted(ModItems.gas_mask_filter, 0, 1, 1, 5), weighted(ModItems.grenade_nuclear, 0, 1, 2, 2), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsPile.java b/src/main/java/com/hbm/itempool/ItemPoolsPile.java index c296003dc..b75f609ee 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsPile.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsPile.java @@ -3,9 +3,8 @@ package com.hbm.itempool; import static com.hbm.lib.HbmChestContents.weighted; import com.hbm.inventory.material.Mats; -import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import net.minecraft.init.Items; import net.minecraft.util.WeightedRandomChestContent; @@ -41,14 +40,12 @@ public class ItemPoolsPile { weighted(ModItems.steel_pickaxe, 0, 1, 1, 5), weighted(ModItems.steel_shovel, 0, 1, 1, 5), //Weapons - weighted(ModItems.gun_lever_action, 0, 1, 1, 5), - weighted(ModItems.gun_bio_revolver, 0, 1, 1, 1), + weighted(ModItems.gun_maresleg, 0, 1, 1, 5), + weighted(ModItems.gun_light_revolver, 0, 1, 1, 1), weighted(ModItems.grenade_if_generic, 0, 1, 2, 5), - weighted(ModItems.ammo_20gauge, 0, 8, 8, 10), - weighted(ModItems.ammo_12gauge, 0, 4, 4, 10), - weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 6, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.G12.ordinal(), 4, 4, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 6, 12, 10), weighted(ModItems.ammo_grenade, 0, 1, 1, 2), - weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 1, 1), //Consumables weighted(ModItems.bottle_nuka, 0, 1, 2, 20), weighted(ModItems.bottle_quantum, 0, 1, 2, 1), @@ -96,16 +93,17 @@ public class ItemPoolsPile { }}; //makeshift gun - new ItemPool(POOL_PILE_MAKESHIFT_GUN) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.gun_lever_action, 0, 1, 1, 10) }; }}; + new ItemPool(POOL_PILE_MAKESHIFT_GUN) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.gun_maresleg, 0, 1, 1, 10) }; }}; new ItemPool(POOL_PILE_MAKESHIFT_WRENCH) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wrench, 0, 1, 1, 10) }; }}; new ItemPool(POOL_PILE_MAKESHIFT_PLATES) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.plate_steel, 0, 1, 1, 10) }; }}; new ItemPool(POOL_PILE_MAKESHIFT_WIRE) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.wire_fine, Mats.MAT_ALUMINIUM.id, 1, 1, 10) }; }}; new ItemPool(POOL_PILE_NUKE_STORAGE) {{ this.pool = new WeightedRandomChestContent[] { - weighted(ModItems.ammo_nuke, AmmoFatman.STOCK.ordinal(), 1, 1, 10), - weighted(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 1, 50), - weighted(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 1, 50), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_STANDARD.ordinal(), 1, 1, 50), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_HIGH.ordinal(), 1, 1, 10), + weighted(ModItems.ammo_standard, EnumAmmo.NUKE_TOTS.ordinal(), 1, 1, 10), + }; }}; } diff --git a/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java index f2de185bb..7506e218c 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsRedRoom.java @@ -8,8 +8,9 @@ import com.hbm.items.ModItems; import net.minecraft.util.WeightedRandomChestContent; public class ItemPoolsRedRoom { - + public static final String POOL_RED_PEDESTAL = "POOL_RED_PEDESTAL"; + public static final String POOL_RED_WEAPON = "POOL_RED_WEAPON"; public static void init() { @@ -39,5 +40,19 @@ public class ItemPoolsRedRoom { weighted(ModItems.gun_revolver_pip, 0, 1, 1, 5) }; }}; + + //pedestal weapons + new ItemPool(POOL_RED_WEAPON) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.gun_light_revolver_dani, 0, 1, 1, 10), + weighted(ModItems.gun_maresleg_broken, 0, 1, 1, 10), + weighted(ModItems.gun_heavy_revolver_lilmac, 0, 1, 1, 10), + weighted(ModItems.gun_flamer_daybreaker, 0, 1, 1, 5), + weighted(ModItems.gun_autoshotgun_sexy, 0, 1, 1, 5), + weighted(ModItems.gun_minigun_lacunae, 0, 1, 1, 5), + weighted(ModItems.gun_hangman, 0, 1, 1, 5), + weighted(ModItems.gun_folly, 0, 1, 1, 1), + }; + }}; } } diff --git a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java index f4c1105db..10519c924 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsSingle.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSingle.java @@ -70,7 +70,6 @@ public class ItemPoolsSingle { weighted(ModItems.powder_yellowcake, 0, 16, 24, 1), weighted(ModItems.gun_uzi, 0, 1, 1, 1), weighted(ModItems.gun_uzi_silencer, 0, 1, 1, 1), - weighted(ModItems.clip_uzi, 0, 1, 3, 1), weighted(ModItems.circuit, EnumCircuitType.VACUUM_TUBE.ordinal(), 12, 16, 1), weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 2, 6, 1) }; @@ -91,7 +90,6 @@ public class ItemPoolsSingle { weighted(ModItems.powder_yellowcake, 0, 26, 42, 1), weighted(ModItems.ingot_u235, 0, 3, 6, 1), weighted(ModItems.gun_revolver_pip, 0, 1, 1, 1), - weighted(ModItems.clip_revolver_pip, 0, 2, 4, 1), weighted(ModItems.circuit, EnumCircuitType.CHIP.ordinal(), 18, 32, 1), weighted(ModItems.circuit, EnumCircuitType.BASIC.ordinal(), 6, 12, 1) }; @@ -100,7 +98,6 @@ public class ItemPoolsSingle { new ItemPool(POOL_VAULT_UNBREAKABLE) {{ this.pool = new WeightedRandomChestContent[] { weighted(ModItems.ammo_container, 0, 3, 6, 1), - weighted(ModItems.clip_fatman, 0, 2, 3, 1), weighted(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), weighted(ModItems.gun_mirv, 0, 1, 1, 1), weighted(ModItems.gun_proto, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c0100352d..46eb94a54 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -620,11 +620,6 @@ public class ModItems { public static Item casing; - public static Item folly_shell; - public static Item folly_bullet; - public static Item folly_bullet_nuclear; - public static Item folly_bullet_du; - public static Item wiring_red_copper; public static Item shell; public static Item pipe; @@ -784,7 +779,6 @@ public class ModItems { public static Item pellet_rtg_actinium; public static Item pellet_rtg_polonium; public static Item pellet_rtg_americium; - public static Item pellet_rtg_berkelium; public static Item pellet_rtg_gold; public static Item pellet_rtg_lead; @@ -1494,9 +1488,6 @@ public class ModItems { public static Item ammo_cell; - public static Item ammo_folly; - public static Item ammo_folly_nuclear; - public static Item ammo_folly_du; public static Item ammo_dgk; public static Item ammo_arty; public static Item ammo_himars; @@ -1523,7 +1514,6 @@ public class ModItems { public static Item gun_ar15; public static Item gun_calamity; public static Item gun_lacunae; - public static Item gun_folly; public static Item gun_proto; public static Item gun_mirv; public static Item gun_bf; @@ -1548,7 +1538,6 @@ public class ModItems { public static Item gun_b92; public static Item gun_b92_ammo; public static Item gun_b93; - public static Item gun_coilgun; public static Item gun_xvl1456; public static Item gun_xvl1456_ammo; public static Item gun_osipr; @@ -1561,7 +1550,6 @@ public class ModItems { public static Item gun_cryolator_ammo; public static Item gun_fireext; public static Item gun_mp; - public static Item gun_bolter; public static Item gun_bolter_digamma; public static Item gun_zomg; public static Item gun_super_shotgun; @@ -1591,6 +1579,7 @@ public class ModItems { 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_greasegun; @@ -1605,7 +1594,10 @@ public class ModItems { 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; @@ -1617,13 +1609,20 @@ public class ModItems { public static Item gun_quadro; public static Item gun_lag; public static Item gun_minigun; + public static Item gun_minigun_lacunae; public static Item gun_missile_launcher; public static Item gun_tesla_cannon; 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_bolter; + public static Item gun_folly; + public static Item ammo_standard; + public static Item ammo_secret; public static Item crucible; @@ -2256,38 +2255,6 @@ public class ModItems { public static Item loot_10; public static Item loot_15; public static Item loot_misc; - - public static Item clip_revolver_iron; - public static Item clip_revolver; - public static Item clip_revolver_gold; - public static Item clip_revolver_lead; - public static Item clip_revolver_schrabidium; - public static Item clip_revolver_cursed; - public static Item clip_revolver_nightmare; - public static Item clip_revolver_nightmare2; - public static Item clip_revolver_pip; - public static Item clip_revolver_nopip; - public static Item clip_rpg; - public static Item clip_stinger; - public static Item clip_fatman; - public static Item clip_mirv; - public static Item clip_bf; - public static Item clip_mp40; - public static Item clip_uzi; - public static Item clip_uboinik; - public static Item clip_lever_action; - public static Item clip_bolt_action; - public static Item clip_osipr; - public static Item clip_immolator; - public static Item clip_cryolator; - public static Item clip_mp; - public static Item clip_xvl1456; - public static Item clip_emp; - public static Item clip_jack; - public static Item clip_spark; - public static Item clip_hp; - public static Item clip_euthanasia; - public static Item clip_defabricator; public static Item ammo_container; @@ -2297,7 +2264,6 @@ public class ModItems { public static Item detonator_laser; public static Item detonator_deadman; public static Item detonator_de; - public static Item crate_caller; public static Item bomb_caller; public static Item meteor_remote; public static Item anchor_remote; @@ -3025,10 +2991,6 @@ public class ModItems { assembly_lacunae = new Item().setUnlocalizedName("assembly_lacunae").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_lacunae"); assembly_nuke = new Item().setUnlocalizedName("assembly_nuke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nuke"); assembly_luna = new Item().setUnlocalizedName("assembly_luna").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_luna"); - folly_shell = new Item().setUnlocalizedName("folly_shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_shell"); - folly_bullet = new Item().setUnlocalizedName("folly_bullet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet"); - folly_bullet_nuclear = new Item().setUnlocalizedName("folly_bullet_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet_nuclear"); - folly_bullet_du = new Item().setUnlocalizedName("folly_bullet_du").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":folly_bullet_du"); 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"); @@ -3042,7 +3004,6 @@ public class ModItems { 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_berkelium = new ItemRTGPellet(20).setUnlocalizedName("pellet_rtg_berkelium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_berkelium"); 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"); @@ -3270,8 +3231,8 @@ public class ModItems { 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(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":jetpack_tank"); - gun_kit_1 = new ItemSyringe().setUnlocalizedName("gun_kit_1").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_1"); - gun_kit_2 = new ItemSyringe().setUnlocalizedName("gun_kit_2").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); + 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"); @@ -4025,104 +3986,96 @@ public class ModItems { ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab); ammo_nuke = new ItemAmmo(AmmoFatman.class).setUnlocalizedName("ammo_nuke"); ammo_fuel = new ItemAmmo(AmmoFlamethrower.class).setUnlocalizedName("ammo_fuel"); - ammo_fireext = new ItemAmmo(AmmoFireExt.class).setUnlocalizedName("ammo_fireext"); + ammo_fireext = (ItemEnumMulti) new ItemAmmo(AmmoFireExt.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_fireext"); ammo_cell = new ItemCustomLore().setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_cell").setMaxStackSize(16); ammo_coilgun = new ItemAmmo(AmmoCoilgun.class).setUnlocalizedName("ammo_coilgun"); ammo_dart = (ItemEnumMulti) new ItemAmmo(AmmoDart.class).setUnlocalizedName("ammo_dart").setMaxStackSize(16); ammo_stinger_rocket = new ItemAmmo(AmmoStinger.class).setUnlocalizedName("ammo_stinger_rocket"); ammo_luna_sniper = new ItemAmmo(AmmoLunaticSniper.class).setUnlocalizedName("ammo_luna_sniper"); ammo_misc = new ItemAmmo(AmmoMisc.class).setUnlocalizedName("ammo_misc"); - ammo_folly = new ItemCustomLore().setUnlocalizedName("ammo_folly"); - ammo_folly_nuclear = new ItemCustomLore().setUnlocalizedName("ammo_folly_nuclear"); - ammo_folly_du = new ItemCustomLore().setUnlocalizedName("ammo_folly_du"); ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); ammo_himars = new ItemAmmoHIMARS().setUnlocalizedName("ammo_himars"); - gun_rpg = new ItemGunBase(GunRocketFactory.getGustavConfig()).setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_rpg"); - gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl"); - gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); - gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); - //gun_congolake = new ItemGunBase(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); - gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); - gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); - gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite"); - gun_revolver_gold = new ItemGunBase(Gun357MagnumFactory.getRevolverGoldConfig()).setUnlocalizedName("gun_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold"); - gun_revolver_schrabidium = new ItemGunBase(Gun357MagnumFactory.getRevolverSchrabidiumConfig()).setUnlocalizedName("gun_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium"); - gun_revolver_cursed = new ItemGunBase(Gun357MagnumFactory.getRevolverCursedConfig()).setUnlocalizedName("gun_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed"); - gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); - gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); - gun_revolver_pip = new ItemGunPip(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); - gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); - gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); - gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); - gun_revolver_red = new ItemGunBase(Gun44MagnumFactory.getRedConfig()).setUnlocalizedName("gun_revolver_red").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_red"); - gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); - gun_bio_revolver = new ItemGunBio(Gun357MagnumFactory.getRevolverBioConfig()).setUnlocalizedName("gun_bio_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bio_revolver"); - gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); - gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config(), Gun50BMGFactory.getAR15BurstConfig()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); - gun_calamity = new ItemGunBase(Gun762mmFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); - gun_lacunae = new ItemGunLacunae(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); - gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly"); - gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); - gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); - gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); - gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); - gun_thompson = new ItemGunBase(Gun45ACPFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); - gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); - gun_uzi_saturnite = new ItemGunBase(Gun22LRFactory.getSaturniteConfig()).setUnlocalizedName("gun_uzi_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite"); - gun_uzi_saturnite_silencer = new ItemGunBase(Gun22LRFactory.getSaturniteConfig().silenced()).setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer"); - gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_remington = new ItemGunBase(Gun12GaugeFactory.getRemington870Config()).setUnlocalizedName("gun_remington").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); - gun_benelli = new ItemGunBase(Gun12GaugeFactory.getBenelliModConfig()).setUnlocalizedName("gun_benelli").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); - gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_ks23 = new ItemGunBase(Gun4GaugeFactory.getKS23Config()).setUnlocalizedName("gun_ks23").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_sauer = new ItemGunBase(Gun4GaugeFactory.getSauerConfig()).setUnlocalizedName("gun_sauer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); - gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); - gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); - gun_bolt_action = new ItemGunBase(Gun762mmFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); - gun_bolt_action_green = new ItemGunBase(Gun762mmFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); - gun_bolt_action_saturnite = new ItemGunBase(Gun762mmFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); - gun_mymy = new ItemGunBase(GunDartFactory.getMymyConfig()).setUnlocalizedName("gun_mymy").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mymy"); + gun_rpg = new Item().setUnlocalizedName("gun_rpg").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg"); + gun_karl = new Item().setUnlocalizedName("gun_karl").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_karl"); + gun_hk69 = new Item().setUnlocalizedName("gun_hk69").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_hk69"); + gun_skystinger = new Item().setUnlocalizedName("gun_skystinger").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_skystinger"); + gun_revolver = new Item().setUnlocalizedName("gun_revolver").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver"); + gun_revolver_saturnite = new Item().setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite"); + gun_revolver_gold = new Item().setUnlocalizedName("gun_revolver_gold").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_gold"); + gun_revolver_schrabidium = new Item().setUnlocalizedName("gun_revolver_schrabidium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium"); + gun_revolver_cursed = new Item().setUnlocalizedName("gun_revolver_cursed").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_cursed"); + gun_revolver_nightmare = new Item().setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); + gun_revolver_nightmare2 = new Item().setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); + gun_revolver_pip = new Item().setUnlocalizedName("gun_revolver_pip").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); + gun_revolver_nopip = new Item().setUnlocalizedName("gun_revolver_nopip").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); + gun_revolver_blackjack = new Item().setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); + gun_revolver_silver = new Item().setUnlocalizedName("gun_revolver_silver").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); + gun_revolver_red = new Item().setUnlocalizedName("gun_revolver_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_red"); + gun_deagle = new Item().setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_deagle"); + gun_bio_revolver = new Item().setUnlocalizedName("gun_bio_revolver").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bio_revolver"); + gun_flechette = new Item().setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_flechette"); + gun_ar15 = new Item().setUnlocalizedName("gun_ar15").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_ar15"); + gun_calamity = new Item().setUnlocalizedName("gun_calamity").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity"); + gun_lacunae = new Item().setUnlocalizedName("gun_lacunae").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lacunae"); + gun_proto = new Item().setUnlocalizedName("gun_proto").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_fatman"); + gun_mirv = new Item().setUnlocalizedName("gun_mirv").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mirv"); + gun_bf = new Item().setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); + gun_mp40 = new Item().setUnlocalizedName("gun_mp40").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40"); + gun_thompson = new Item().setUnlocalizedName("gun_thompson").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_thompson"); + gun_uzi_silencer = new Item().setUnlocalizedName("gun_uzi_silencer").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); + gun_uzi_saturnite = new Item().setUnlocalizedName("gun_uzi_saturnite").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite"); + gun_uzi_saturnite_silencer = new Item().setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer"); + gun_uboinik = new Item().setUnlocalizedName("gun_uboinik").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik"); + gun_remington = new Item().setUnlocalizedName("gun_remington").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_spas12"); + gun_benelli = new Item().setUnlocalizedName("gun_benelli").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_spas12"); + gun_supershotgun = new Item().setUnlocalizedName("gun_supershotgun").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik"); + gun_ks23 = new Item().setUnlocalizedName("gun_ks23").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik"); + gun_sauer = new Item().setUnlocalizedName("gun_sauer").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik"); + gun_lever_action = new Item().setUnlocalizedName("gun_lever_action").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action"); + gun_lever_action_dark = new Item().setUnlocalizedName("gun_lever_action_dark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); + gun_lever_action_sonata = new Item().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); + gun_bolt_action = new Item().setUnlocalizedName("gun_bolt_action").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action"); + gun_bolt_action_green = new Item().setUnlocalizedName("gun_bolt_action_green").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); + gun_bolt_action_saturnite = new Item().setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); + gun_mymy = new Item().setUnlocalizedName("gun_mymy").setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mymy"); 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_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93"); - gun_coilgun = new ItemCoilgun(GunEnergyFactory.getCoilgunConfig()).setUnlocalizedName("gun_coilgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun"); - gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); - gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456"); - gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); - gun_osipr_ammo2 = new Item().setUnlocalizedName("gun_osipr_ammo2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo2"); - gun_osipr = new ItemGunOSIPR(GunOSIPRFactory.getOSIPRConfig(), GunOSIPRFactory.getAltConfig()).setUnlocalizedName("gun_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr"); - gun_immolator_ammo = new Item().setUnlocalizedName("gun_immolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator_ammo"); - gun_immolator = new Item().setUnlocalizedName("gun_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_immolator"); + gun_b93 = new Item().setUnlocalizedName("gun_b93").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_b93"); + gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); + gun_xvl1456 = new Item().setUnlocalizedName("gun_xvl1456").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_xvl1456"); + gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); + gun_osipr_ammo2 = new Item().setUnlocalizedName("gun_osipr_ammo2").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_osipr_ammo2"); + gun_osipr = new Item().setUnlocalizedName("gun_osipr").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_osipr"); + gun_immolator_ammo = new Item().setUnlocalizedName("gun_immolator_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_immolator_ammo"); + gun_immolator = new Item().setUnlocalizedName("gun_immolator").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_immolator"); gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo"); - gun_cryolator = new GunCryolator().setUnlocalizedName("gun_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator"); + gun_cryolator = new Item().setUnlocalizedName("gun_cryolator").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_cryolator"); gun_cryocannon = new ItemCryoCannon(GunEnergyFactory.getCryoCannonConfig()).setUnlocalizedName("gun_cryocannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryocannon"); gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); - gun_mp = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm"); - gun_bolter = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter"); - gun_bolter_digamma = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter_digamma").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter_digamma"); - gun_zomg = new ItemGunBase(GunEnergyFactory.getZOMGConfig()).setUnlocalizedName("gun_zomg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_zomg"); - gun_revolver_inverted = new GunSuicide().setUnlocalizedName("gun_revolver_inverted").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_inverted"); - gun_emp_ammo = new Item().setUnlocalizedName("gun_emp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_emp_ammo"); - gun_emp = new ItemGunBase(GunEnergyFactory.getEMPConfig()).setUnlocalizedName("gun_emp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_emp"); - gun_jack_ammo = new Item().setUnlocalizedName("gun_jack_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_jack_ammo"); - gun_jack = new GunJack().setUnlocalizedName("gun_jack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_jack"); - gun_spark_ammo = new Item().setUnlocalizedName("gun_spark_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spark_ammo"); - gun_spark = new GunSpark().setUnlocalizedName("gun_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spark"); - gun_hp_ammo = new Item().setUnlocalizedName("gun_hp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hp_ammo"); - gun_hp = new GunHP().setUnlocalizedName("gun_hp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hp"); - gun_euthanasia_ammo = new Item().setUnlocalizedName("gun_euthanasia_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_euthanasia_ammo"); - gun_euthanasia = new GunEuthanasia().setUnlocalizedName("gun_euthanasia").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_euthanasia"); - gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); - gun_defabricator = new GunDefabricator().setUnlocalizedName("gun_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_defabricator"); - gun_vortex = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_vortex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_vortex"); - gun_super_shotgun = new ItemCustomLore().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); - gun_moist_nugget = new ItemNugget(3, false).setUnlocalizedName("gun_moist_nugget").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); - gun_darter = new ItemGunDart(GunDartFactory.getDarterConfig()).setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); - gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab); - gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig(), Gun45ACPFactory.getUACPistolBurstConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab); + gun_mp = new Item().setUnlocalizedName("gun_mp").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_pm"); + gun_bolter_digamma = new Item().setUnlocalizedName("gun_bolter_digamma").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolter_digamma"); + gun_zomg = new Item().setUnlocalizedName("gun_zomg").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_zomg"); + gun_revolver_inverted = new Item().setUnlocalizedName("gun_revolver_inverted").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_inverted"); + gun_emp_ammo = new Item().setUnlocalizedName("gun_emp_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_emp_ammo"); + gun_emp = new Item().setUnlocalizedName("gun_emp").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_emp"); + gun_jack_ammo = new Item().setUnlocalizedName("gun_jack_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_jack_ammo"); + gun_jack = new Item().setUnlocalizedName("gun_jack").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_jack"); + gun_spark_ammo = new Item().setUnlocalizedName("gun_spark_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_spark_ammo"); + gun_spark = new Item().setUnlocalizedName("gun_spark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_spark"); + gun_hp_ammo = new Item().setUnlocalizedName("gun_hp_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_hp_ammo"); + gun_hp = new Item().setUnlocalizedName("gun_hp").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_hp"); + gun_euthanasia_ammo = new Item().setUnlocalizedName("gun_euthanasia_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_euthanasia_ammo"); + gun_euthanasia = new Item().setUnlocalizedName("gun_euthanasia").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_euthanasia"); + gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); + gun_defabricator = new Item().setUnlocalizedName("gun_defabricator").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_defabricator"); + gun_vortex = new Item().setUnlocalizedName("gun_vortex").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_vortex"); + gun_super_shotgun = new Item().setUnlocalizedName("gun_super_shotgun").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_super_shotgun"); + gun_moist_nugget = new Item().setUnlocalizedName("gun_moist_nugget").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); + gun_darter = new Item().setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_darter"); + gun_glass_cannon = new Item().setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_darter"); + gun_lunatic_marksman = new Item().setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(null); + gun_uac_pistol = new Item().setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(null); 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"); @@ -4419,38 +4372,6 @@ public class ModItems { 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"); - - clip_revolver_iron = new ItemClip(ammo_357.stackFromEnum(20, Ammo357Magnum.IRON)).setUnlocalizedName("clip_revolver_iron").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_iron"); - clip_revolver = new ItemClip(ammo_357.stackFromEnum(12, Ammo357Magnum.LEAD)).setUnlocalizedName("clip_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver"); - clip_revolver_gold = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.GOLD)).setUnlocalizedName("clip_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_gold"); - clip_revolver_lead = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.NUCLEAR)).setUnlocalizedName("clip_revolver_lead").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_lead"); - clip_revolver_schrabidium = new ItemClip(ammo_357.stackFromEnum(2, Ammo357Magnum.SCHRABIDIUM)).setUnlocalizedName("clip_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_schrabidium"); - clip_revolver_cursed = new ItemClip(ammo_357.stackFromEnum(17, Ammo357Magnum.STEEL)).setUnlocalizedName("clip_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_cursed"); - clip_revolver_nightmare = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE1)).setUnlocalizedName("clip_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare"); - clip_revolver_nightmare2 = new ItemClip(ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2)).setUnlocalizedName("clip_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare2"); - clip_revolver_pip = new ItemClip(ammo_44.stackFromEnum(6, Ammo44Magnum.PIP)).setUnlocalizedName("clip_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_pip"); - clip_revolver_nopip = new ItemClip(ammo_44.stackFromEnum(6, Ammo44Magnum.STOCK)).setUnlocalizedName("clip_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nopip"); - clip_rpg = new ItemClip(ammo_rocket.stackFromEnum(4, AmmoRocket.STOCK)).setUnlocalizedName("clip_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_rpg_alt"); - clip_stinger = new ItemClip(ammo_stinger_rocket.stackFromEnum(4, AmmoStinger.STOCK)).setUnlocalizedName("clip_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_stinger"); - clip_fatman = new ItemClip(ammo_nuke.stackFromEnum(6, AmmoFatman.STOCK)).setUnlocalizedName("clip_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_fatman"); - clip_mirv = new ItemClip(ammo_nuke.stackFromEnum(3, AmmoFatman.MIRV)).setUnlocalizedName("clip_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mirv"); - clip_bf = new ItemClip(ammo_nuke.stackFromEnum(2, AmmoFatman.BALEFIRE)).setUnlocalizedName("clip_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clip_bf"); - clip_mp40 = new ItemClip(ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK)).setUnlocalizedName("clip_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mp40"); - clip_uzi = new ItemClip(ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK)).setUnlocalizedName("clip_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_uzi"); - clip_uboinik = new ItemClip(ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK)).setUnlocalizedName("clip_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_uboinik"); - clip_lever_action = new ItemClip(ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK)).setUnlocalizedName("clip_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_lever_action"); - clip_bolt_action = new ItemClip(ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG)).setUnlocalizedName("clip_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_bolt_action"); - clip_osipr = new ItemClip(new ItemStack(gun_osipr_ammo, 3)).setUnlocalizedName("clip_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_osipr"); - clip_immolator = new ItemClip(new ItemStack(gun_immolator_ammo, 60)).setUnlocalizedName("clip_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_immolator"); - clip_cryolator = new ItemClip(new ItemStack(gun_cryolator_ammo, 60)).setUnlocalizedName("clip_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_cryolator"); - clip_mp = new ItemClip(ammo_556.stackFromEnum(2, Ammo556mm.GOLD)).setUnlocalizedName("clip_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mp"); - clip_xvl1456 = new ItemClip(new ItemStack(gun_xvl1456_ammo, 50)).setUnlocalizedName("clip_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_xvl1456"); - clip_emp = new ItemClip(new ItemStack(gun_emp_ammo, 12)).setUnlocalizedName("clip_emp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_emp"); - clip_jack = new ItemClip(new ItemStack(gun_jack_ammo, 12)).setUnlocalizedName("clip_jack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_jack"); - clip_spark = new ItemClip(new ItemStack(gun_spark_ammo, 12)).setUnlocalizedName("clip_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_spark"); - clip_hp = new ItemClip(new ItemStack(gun_hp_ammo, 24)).setUnlocalizedName("clip_hp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_hp"); - clip_euthanasia = new ItemClip(new ItemStack(gun_euthanasia_ammo, 32)).setUnlocalizedName("clip_euthanasia").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_euthanasia"); - clip_defabricator = new ItemClip(new ItemStack(gun_defabricator_ammo, 50)).setUnlocalizedName("clip_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_defabricator"); ammo_container = new ItemAmmoContainer().setUnlocalizedName("ammo_container").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_container"); @@ -4465,7 +4386,6 @@ public class ModItems { 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"); - crate_caller = new ItemCrateCaller().setUnlocalizedName("crate_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crate_caller"); 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"); @@ -4573,69 +4493,68 @@ public class ModItems { 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").setCap(4F).setMod(0.1F) + 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)) - .setFireproof(true).setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet"); + .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).setCap(4F).setMod(0.1F).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).setCap(4F).setMod(0.1F).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots"); - bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setCap(8F).setMod(0.3F) - .addResistance("fall", 0) + 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).setCap(8F).setMod(0.3F).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).setCap(8F).setMod(0.3F).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).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots"); - titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setMod(0.85F).setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_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").setMod(0.9F).setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet"); + 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").setMod(0.75F).setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); + 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").setCap(2F).setThreshold(2F).setMod(0.05F) + 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)) - .setFireproof(true).setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet"); + .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").setCap(6F).setMod(0.3F).setNoHelmet(true) + 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").setFireproof(true).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").setFireproof(true).setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); - asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setFireproof(true).setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); - asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); - security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.65F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); + 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").setMod(0.7F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); + 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").setMod(0.5F).setCap(15F) - .setFireproof(true).setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); + 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").setThreshold(1.0F).setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet"); + 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"); @@ -4647,27 +4566,23 @@ public class ModItems { 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").setMod(0.0F).setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs"); + 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") - .setMod(5F).setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet"); + .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).setCap(10F).setMod(0.5F) - .setFireproof(true) + t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5) .enableVATS(true) .setHasGeigerSound(true) .setHasHardLanding(true) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setBlastProtection(0.5F) - .addResistance("monoxide", 0F) - .addResistance("fall", 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"); @@ -4676,13 +4591,9 @@ public class ModItems { 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).setThreshold(5F).setMod(0.8F) - .setFireproof(true) + 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)) - .setBlastProtection(0.5F) - .addResistance("monoxide", 0F) - .addResistance("fall", 0) .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"); @@ -4691,12 +4602,11 @@ public class ModItems { 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).setThreshold(2F).setMod(0.7F) + 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) - .addResistance("fall", 0) .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"); @@ -4704,57 +4614,40 @@ public class ModItems { 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).setMod(0.25F).setCap(6.0F).setThreshold(4F) - .setFireproof(true) + 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)) - .setBlastProtection(0.25F) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("monoxide", 0F) - .addResistance("fall", 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).setMod(0.25F).setCap(6.0F).setThreshold(4F) - .setFireproof(true) + 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)) - .setBlastProtection(0.25F) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("monoxide", 0F) - .addResistance("fall", 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).setMod(0.1F).setCap(6.0F).setThreshold(20F) - .setFireproof(true) + 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)) - .setBlastProtection(0.25F) - .setProjectileProtection(0.25F) - .setProtectionLevel(1500) .setStep("hbm:step.powered") .setJump("hbm:step.powered") .setFall("hbm:step.powered") - .addResistance("fall", 0) .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"); @@ -4763,8 +4656,7 @@ public class ModItems { 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).setMod(0.25F).setCap(4.0F).setThreshold(4F) - .setFireproof(true) + bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100) .enableVATS(true) .enableThermalSight(true) .setHasGeigerSound(true) @@ -4773,12 +4665,9 @@ public class ModItems { .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)) - .setBlastProtection(0.5F) - .setProtectionLevel(500F) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); + .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"); @@ -4786,12 +4675,9 @@ public class ModItems { 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).setMod(0.5F).setThreshold(2.0F) + 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)) - .addResistance("fall", 0.25F) - .addResistance("monoxide", 0F) - .addResistance("onFire", 0F) .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"); @@ -4800,16 +4686,11 @@ public class ModItems { 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).setMod(0.20F).setCap(4.0F).setThreshold(2.0F) + 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)) - .setBlastProtection(0.25F) - .setProtectionLevel(500F) .setHasGeigerSound(true) .setHasCustomGeiger(true) - .addResistance("fall", 0.5F) - .addResistance("monoxide", 0F) - .addResistance("onFire", 0F) .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"); @@ -4821,20 +4702,14 @@ public class ModItems { 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).setMod(0.25F).setCap(4.0F).setThreshold(2.0F) + 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)) - .setBlastProtection(0.05F) - .setMod(0.05F) .setHasGeigerSound(true) .enableThermalSight(true) .setHasHardLanding(true) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") - .setProtectionLevel(1000F) - .addResistance("fall", 0F) - .addResistance("monoxide", 0F) - .setFireproof(true) .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"); @@ -4854,7 +4729,6 @@ public class ModItems { .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") - .setFireproof(true) .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"); @@ -4863,14 +4737,12 @@ public class ModItems { 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").setMod(0.125F).setThreshold(5.0F) + 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) - .addResistance("fall", 0F) - .setFireproof(true) .setStepSize(1) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); @@ -4888,7 +4760,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.ChainsawAbility(10)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); - schrabidium_sword = new ItemSwordAbility(150, 0, MainRegistry.tMatSchrab) + 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"); @@ -4939,22 +4811,22 @@ public class ModItems { 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(9F, 0, MainRegistry.tMatAlloy) + 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(6F, 0, MainRegistry.tMatAlloy, EnumToolType.PICKAXE) + 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(5F, 0, MainRegistry.tMatAlloy, EnumToolType.SHOVEL) + 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(50F, 0, MainRegistry.tMatCMB) + 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"); @@ -4964,7 +4836,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); - cmb_axe = new ItemToolAbility(12.5F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) + cmb_axe = new ItemToolAbility(30F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SmelterAbility()) .addBreakAbility(new ToolAbility.SilkAbility()) @@ -4979,16 +4851,16 @@ public class ModItems { cmb_hoe = new ModHoe(MainRegistry.tMatCMB).setUnlocalizedName("cmb_hoe").setTextureName(RefStrings.MODID + ":cmb_hoe"); - elec_sword = new ItemSwordAbilityPower(15F, 0, MainRegistry.tMatElec, 500000, 1000, 100) + 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(10F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100) + 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(12.5F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100) + 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()) @@ -4996,13 +4868,13 @@ public class ModItems { .addHitAbility(new WeaponAbility.ChainsawAbility(15)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); - elec_shovel = new ItemToolAbilityPower(7.5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) + 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(15F, 0, MainRegistry.tMatDesh) + 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) @@ -5011,7 +4883,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); - desh_axe = new ItemToolAbility(6.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE) + 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()) @@ -5093,14 +4965,14 @@ public class ModItems { .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(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 500000000, 100000, 5000) + 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(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500) + 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()) @@ -5133,7 +5005,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(2F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); - bismuth_axe = new ItemToolAbility(125F, 0, matBismuth, EnumToolType.AXE) + bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(4)) .addBreakAbility(new ToolAbility.ShredderAbility()) @@ -5155,7 +5027,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(2F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); - volcanic_axe = new ItemToolAbility(125F, 0, matVolcano, EnumToolType.AXE) + volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(4)) .addBreakAbility(new ToolAbility.SmelterAbility()) @@ -5176,7 +5048,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.VampireAbility(5F)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); - chlorophyte_axe = new ItemToolAbility(175F, 0, matChlorophyte, EnumToolType.AXE) + chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(4)) .addBreakAbility(new ToolAbility.LuckAbility(4)) @@ -5199,7 +5071,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); - mese_axe = new ItemToolAbility(250F, 0, matMese, EnumToolType.AXE) + mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE) .addBreakAbility(new ToolAbility.HammerAbility(3)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SilkAbility()) @@ -5219,18 +5091,18 @@ public class ModItems { .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(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_seared = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_reforged = new ItemSwordMeteorite(25F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_reforged").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_hardened = new ItemSwordMeteorite(35F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_hardened").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_alloyed = new ItemSwordMeteorite(50F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_alloyed").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_machined = new ItemSwordMeteorite(65F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_machined").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_treated = new ItemSwordMeteorite(80F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_treated").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_etched = new ItemSwordMeteorite(100F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_etched").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_bred = new ItemSwordMeteorite(125F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_bred").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_irradiated = new ItemSwordMeteorite(175F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_irradiated").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_fused = new ItemSwordMeteorite(250F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_fused").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_baleful = new ItemSwordMeteorite(500F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_baleful").setTextureName(RefStrings.MODID + ":meteorite_sword"); + 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"); @@ -5243,12 +5115,12 @@ public class ModItems { 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") - .setFireproof(true).setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey"); + .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") - .setFireproof(true).setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet"); + .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"); @@ -5256,9 +5128,6 @@ public class ModItems { 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") - .setThreshold(1.0F) - .setBlastProtection(0.25F) - .setFireproof(true) .setStep("hbm:step.metal") .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land").setUnlocalizedName("liquidator_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_helmet"); @@ -6095,12 +5964,6 @@ public class ModItems { GameRegistry.registerItem(assembly_nuke, assembly_nuke.getUnlocalizedName()); GameRegistry.registerItem(assembly_luna, assembly_luna.getUnlocalizedName()); - //Folly Parts - GameRegistry.registerItem(folly_shell, folly_shell.getUnlocalizedName()); - GameRegistry.registerItem(folly_bullet, folly_bullet.getUnlocalizedName()); - GameRegistry.registerItem(folly_bullet_nuclear, folly_bullet_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(folly_bullet_du, folly_bullet_du.getUnlocalizedName()); - //Wiring GameRegistry.registerItem(wiring_red_copper, wiring_red_copper.getUnlocalizedName()); @@ -6119,7 +5982,6 @@ public class ModItems { 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_berkelium, pellet_rtg_berkelium.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()); @@ -6878,7 +6740,6 @@ public class ModItems { GameRegistry.registerItem(gun_ar15, gun_ar15.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity, gun_calamity.getUnlocalizedName()); GameRegistry.registerItem(gun_lacunae, gun_lacunae.getUnlocalizedName()); - GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); GameRegistry.registerItem(gun_b93, gun_b93.getUnlocalizedName()); GameRegistry.registerItem(gun_rpg, gun_rpg.getUnlocalizedName()); @@ -6905,7 +6766,6 @@ public class ModItems { GameRegistry.registerItem(gun_bolt_action_green, gun_bolt_action_green.getUnlocalizedName()); GameRegistry.registerItem(gun_bolt_action_saturnite, gun_bolt_action_saturnite.getUnlocalizedName()); GameRegistry.registerItem(gun_mymy, gun_mymy.getUnlocalizedName()); - GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName()); GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); @@ -6913,7 +6773,6 @@ public class ModItems { GameRegistry.registerItem(gun_cryocannon, gun_cryocannon.getUnlocalizedName()); GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); GameRegistry.registerItem(gun_mp, gun_mp.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); GameRegistry.registerItem(gun_bolter_digamma, gun_bolter_digamma.getUnlocalizedName()); GameRegistry.registerItem(gun_zomg, gun_zomg.getUnlocalizedName()); GameRegistry.registerItem(gun_emp, gun_emp.getUnlocalizedName()); @@ -6939,6 +6798,7 @@ public class ModItems { 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_greasegun, gun_greasegun.getUnlocalizedName()); @@ -6953,7 +6813,10 @@ public class ModItems { 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()); @@ -6965,13 +6828,20 @@ public class ModItems { 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_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_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_bolter, gun_bolter.getUnlocalizedName()); + GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); + GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName()); //Ammo GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); @@ -7015,42 +6885,6 @@ public class ModItems { GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); GameRegistry.registerItem(ammo_himars, ammo_himars.getUnlocalizedName()); - GameRegistry.registerItem(ammo_folly, ammo_folly.getUnlocalizedName()); - GameRegistry.registerItem(ammo_folly_nuclear, ammo_folly_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(ammo_folly_du, ammo_folly_du.getUnlocalizedName()); - - //-C-l-i-p-s- Magazines - GameRegistry.registerItem(clip_revolver_iron, clip_revolver_iron.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver, clip_revolver.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_gold, clip_revolver_gold.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_lead, clip_revolver_lead.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_schrabidium, clip_revolver_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_cursed, clip_revolver_cursed.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_nightmare, clip_revolver_nightmare.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_nightmare2, clip_revolver_nightmare2.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_pip, clip_revolver_pip.getUnlocalizedName()); - GameRegistry.registerItem(clip_revolver_nopip, clip_revolver_nopip.getUnlocalizedName()); - GameRegistry.registerItem(clip_rpg, clip_rpg.getUnlocalizedName()); - GameRegistry.registerItem(clip_stinger, clip_stinger.getUnlocalizedName()); - GameRegistry.registerItem(clip_fatman, clip_fatman.getUnlocalizedName()); - GameRegistry.registerItem(clip_mirv, clip_mirv.getUnlocalizedName()); - GameRegistry.registerItem(clip_bf, clip_bf.getUnlocalizedName()); - GameRegistry.registerItem(clip_mp40, clip_mp40.getUnlocalizedName()); - GameRegistry.registerItem(clip_uzi, clip_uzi.getUnlocalizedName()); - GameRegistry.registerItem(clip_uboinik, clip_uboinik.getUnlocalizedName()); - GameRegistry.registerItem(clip_lever_action, clip_lever_action.getUnlocalizedName()); - GameRegistry.registerItem(clip_bolt_action, clip_bolt_action.getUnlocalizedName()); - GameRegistry.registerItem(clip_xvl1456, clip_xvl1456.getUnlocalizedName()); - GameRegistry.registerItem(clip_osipr, clip_osipr.getUnlocalizedName()); - GameRegistry.registerItem(clip_immolator, clip_immolator.getUnlocalizedName()); - GameRegistry.registerItem(clip_cryolator, clip_cryolator.getUnlocalizedName()); - GameRegistry.registerItem(clip_mp, clip_mp.getUnlocalizedName()); - GameRegistry.registerItem(clip_emp, clip_emp.getUnlocalizedName()); - GameRegistry.registerItem(clip_jack, clip_jack.getUnlocalizedName()); - GameRegistry.registerItem(clip_spark, clip_spark.getUnlocalizedName()); - GameRegistry.registerItem(clip_hp, clip_hp.getUnlocalizedName()); - GameRegistry.registerItem(clip_euthanasia, clip_euthanasia.getUnlocalizedName()); - GameRegistry.registerItem(clip_defabricator, clip_defabricator.getUnlocalizedName()); GameRegistry.registerItem(ammo_container, ammo_container.getUnlocalizedName()); @@ -7581,7 +7415,6 @@ public class ModItems { GameRegistry.registerItem(detonator_laser, detonator_laser.getUnlocalizedName()); GameRegistry.registerItem(detonator_deadman, detonator_deadman.getUnlocalizedName()); GameRegistry.registerItem(detonator_de, detonator_de.getUnlocalizedName()); - GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName()); GameRegistry.registerItem(bomb_caller, bomb_caller.getUnlocalizedName()); GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName()); GameRegistry.registerItem(anchor_remote, anchor_remote.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index d223e45c6..7f245c7f2 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -184,13 +184,9 @@ public class ArmorDNT extends ArmorFSBPowered { } } - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.explosionImmune")); - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.cap", 5)); - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.modifier", 0.001F)); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats")); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal")); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding")); - list.add(EnumChatFormatting.DARK_RED + " " + I18nUtil.resolveKey("armor.ignoreLimit")); list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.rocketBoots")); list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.fastFall")); list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.sprintBoost")); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 115c298fb..cf83bf1be 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -3,10 +3,8 @@ package com.hbm.items.armor; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map.Entry; import org.lwjgl.opengl.GL11; @@ -28,7 +26,6 @@ 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.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemArmor; @@ -51,21 +48,12 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { private String texture = ""; private ResourceLocation overlay = null; public List effects = new ArrayList(); - public HashMap resistance = new HashMap(); - public float blastProtection = -1; - public float projectileProtection = -1; - public float damageCap = -1; - public float damageMod = -1; - public float damageThreshold = 0; - public float protectionYield = 100F; - public boolean fireproof = false; public boolean noHelmet = false; public boolean vats = false; public boolean thermal = false; public boolean geigerSound = false; public boolean customGeiger = false; public boolean hardLanding = false; - public double gravity = 0; public int dashCount = 0; public int stepSize = 0; public String step; @@ -82,46 +70,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { return this; } - public ArmorFSB addResistance(String damage, float mod) { - resistance.put(damage, mod); - return this; - } - - public ArmorFSB setCap(float cap) { - this.damageCap = cap; - return this; - } - - public ArmorFSB setMod(float mod) { - this.damageMod = mod; - return this; - } - - public ArmorFSB setThreshold(float threshold) { - this.damageThreshold = threshold; - return this; - } - - public ArmorFSB setProtectionLevel(float damageYield) { - this.protectionYield = damageYield; - return this; - } - - public ArmorFSB setBlastProtection(float blastProtection) { - this.blastProtection = blastProtection; - return this; - } - - public ArmorFSB setProjectileProtection(float projectileProtection) { - this.projectileProtection = projectileProtection; - return this; - } - - public ArmorFSB setFireproof(boolean fire) { - this.fireproof = fire; - return this; - } - public ArmorFSB setNoHelmet(boolean noHelmet) { this.noHelmet = noHelmet; return this; @@ -151,11 +99,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { this.hardLanding = hardLanding; return this; } - - public ArmorFSB setGravity(double gravity) { - this.gravity = gravity; - return this; - } public ArmorFSB setDashCount(int dashCount) { this.dashCount = dashCount; @@ -191,21 +134,12 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { //lists aren't being modified after instantiation, so there's no need to dereference this.effects = original.effects; - this.resistance = original.resistance; - this.damageCap = original.damageCap; - this.damageMod = original.damageMod; - this.damageThreshold = original.damageThreshold; - this.protectionYield = original.protectionYield; - this.blastProtection = original.blastProtection; - this.projectileProtection = original.projectileProtection; - this.fireproof = original.fireproof; this.noHelmet = original.noHelmet; this.vats = original.vats; this.thermal = original.thermal; this.geigerSound = original.geigerSound; this.customGeiger = original.customGeiger; this.hardLanding = original.hardLanding; - this.gravity = original.gravity; this.dashCount = original.dashCount; this.stepSize = original.stepSize; this.step = original.step; @@ -222,85 +156,29 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); + + List toAdd = new ArrayList(); if(!effects.isEmpty()) { - + List potionList = new ArrayList(); for(PotionEffect effect : effects) { - list.add(EnumChatFormatting.AQUA + " " + I18n.format(Potion.potionTypes[effect.getPotionID()].getName())); + potionList.add(I18n.format(Potion.potionTypes[effect.getPotionID()].getName())); } + + toAdd.add(EnumChatFormatting.AQUA + String.join(", ", potionList)); } - if(!resistance.isEmpty()) { + if(geigerSound) toAdd.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerSound")); + if(customGeiger) toAdd.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerHUD")); + if(vats) toAdd.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats")); + if(thermal) toAdd.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal")); + if(hardLanding) toAdd.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding")); + if(stepSize != 0) toAdd.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize)); + if(dashCount > 0) toAdd.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount)); - for(Entry struct : resistance.entrySet()) { - - if(struct.getValue() != 0) - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.damageModifier", struct.getValue(), I18n.format(struct.getKey()))); - else - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.nullDamage", I18n.format(struct.getKey()))); - } - } - - if(blastProtection != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.blastProtection", blastProtection)); - } - - if(projectileProtection != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.projectileProtection", projectileProtection)); - } - - if(damageCap != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.cap", damageCap)); - } - - if(damageMod != -1) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.modifier", damageMod)); - } - - if(damageThreshold > 0) { - list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.threshold", damageThreshold)); - } - - if(fireproof) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fireproof")); - } - - if(geigerSound) { - list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerSound")); - } - - if(customGeiger) { - list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerHUD")); - } - - if(vats) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats")); - } - - if(thermal) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal")); - } - - if(hardLanding) { - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding")); - } - - if(gravity != 0) { - list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity)); - } - - if(stepSize != 0) { - list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize)); - } - - if(dashCount > 0) { - list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount)); - } - - if(protectionYield != 100F) { - list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.yield", protectionYield)); + if(!toAdd.isEmpty()) { + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); + list.addAll(toAdd); } } @@ -359,80 +237,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { return false; } - public void handleAttack(LivingAttackEvent event) { - - EntityLivingBase e = event.entityLiving; - - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) e; - - if(ArmorFSB.hasFSBArmor(player)) { - - ItemStack plate = player.inventory.armorInventory[2]; - - ArmorFSB chestplate = (ArmorFSB) plate.getItem(); - - if(chestplate.damageThreshold >= event.ammount && !event.source.isUnblockable()) { - event.setCanceled(true); - } - - if(chestplate.fireproof && event.source.isFireDamage()) { - player.extinguish(); - event.setCanceled(true); - } - - if(chestplate.resistance.get(event.source.getDamageType()) != null && chestplate.resistance.get(event.source.getDamageType()) <= 0) { - event.setCanceled(true); - } - } - } - } - - public void handleHurt(LivingHurtEvent event) { - - EntityLivingBase e = event.entityLiving; - - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) e; - - if(ArmorFSB.hasFSBArmor(player)) { - - ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); - - //store any damage above the yield - float overFlow = Math.max(0, event.ammount - chestplate.protectionYield); - //reduce the damage to the yield cap if it exceeds the yield - event.ammount = Math.min(event.ammount, chestplate.protectionYield); - - if(!event.source.isUnblockable()) - event.ammount -= chestplate.damageThreshold; - - if(chestplate.damageMod != -1) { - event.ammount *= chestplate.damageMod; - } - - if(chestplate.resistance.get(event.source.getDamageType()) != null) { - event.ammount *= chestplate.resistance.get(event.source.getDamageType()); - } - - if(chestplate.blastProtection != -1 && event.source.isExplosion()) { - event.ammount *= chestplate.blastProtection; - } - - if(chestplate.projectileProtection != -1 && event.source.isProjectile()) { - event.ammount *= chestplate.projectileProtection; - } - - if(chestplate.damageCap != -1) { - event.ammount = Math.min(event.ammount, chestplate.damageCap); - } - - //add back anything that was above the protection yield before - event.ammount += overFlow; - } - } - } - public void handleTick(TickEvent.PlayerTickEvent event) { EntityPlayer player = event.player; @@ -450,9 +254,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { } } - if(!player.capabilities.isFlying && !player.isInWater()) - player.motionY -= chestplate.gravity; - if(chestplate.step != null && player.worldObj.isRemote && player.onGround) { try { @@ -531,14 +332,9 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { @Override public void onArmorTick(World world, EntityPlayer entity, ItemStack stack) { - if(this.armorType != 1) - return; - - if(!hasFSBArmor(entity) || !this.geigerSound) - return; - - if(entity.inventory.hasItem(ModItems.geiger_counter) || entity.inventory.hasItem(ModItems.dosimeter)) - return; + if(this.armorType != 1) return; + if(!hasFSBArmor(entity) || !this.geigerSound) return; + if(entity.inventory.hasItem(ModItems.geiger_counter) || entity.inventory.hasItem(ModItems.dosimeter)) return; if(world.getTotalWorldTime() % 5 == 0) { @@ -560,26 +356,20 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { int r = list.get(world.rand.nextInt(list.size())); - if(r > 0) - world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); + if(r > 0) world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); } } } public static int check(World world, int x, int y, int z) { - int rads = (int) Math.ceil(ChunkRadiationManager.proxy.getRadiation(world, x, y, z)); return rads; } // For crazier stuff not possible without hooking the event - @SideOnly(Side.CLIENT) - public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - } + @SideOnly(Side.CLIENT) public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { } - public boolean isArmorEnabled(ItemStack stack) { - return true; - } + public boolean isArmorEnabled(ItemStack stack) { return true; } @SideOnly(Side.CLIENT) public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { @@ -624,4 +414,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { public boolean disablesPart(EntityPlayer player, ItemStack stack, EnumPlayerPart part) { return hidden.contains(part) && (!needsFullSet || hasFSBArmorIgnoreCharge(player)); } + + public void handleAttack(LivingAttackEvent event) { } + public void handleHurt(LivingHurtEvent event) { } } diff --git a/src/main/java/com/hbm/items/tool/ItemBombCaller.java b/src/main/java/com/hbm/items/tool/ItemBombCaller.java index 5ea5c732e..87394ece7 100644 --- a/src/main/java/com/hbm/items/tool/ItemBombCaller.java +++ b/src/main/java/com/hbm/items/tool/ItemBombCaller.java @@ -37,10 +37,7 @@ public class ItemBombCaller extends Item { case 5: list.add("Type: VT stinger rockets"); break; case 6: list.add("Type: PIP OH GOD"); break; case 7: list.add("Type: Cloud the cloud oh god the cloud"); break; - default: list.add("Type: INVALID, Report it to mod creator"); - } - } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemCrateCaller.java b/src/main/java/com/hbm/items/tool/ItemCrateCaller.java deleted file mode 100644 index 5ec1ff32d..000000000 --- a/src/main/java/com/hbm/items/tool/ItemCrateCaller.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.items.tool; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -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.ChatComponentText; -import net.minecraft.world.World; - -public class ItemCrateCaller extends Item { - - Random rand = new Random(); - - public ItemCrateCaller() { - this.canRepair = false; - this.setMaxDamage(4); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Right click to request supply drop!"); - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - stack.damageItem(1, player); - - int x = rand.nextInt(31) - 15; - int z = rand.nextInt(31) - 15; - - Block crate = ModBlocks.crate; - - int i = rand.nextInt(1000); - - if(i < 350) - crate = ModBlocks.crate_weapon; - if(i < 100) - crate = ModBlocks.crate_metal; - if(i < 50) - crate = ModBlocks.crate_lead; - if(i == 0) - crate = ModBlocks.crate_red; - - if(!world.isRemote) - { - if(world.getBlock((int)player.posX + x, 255, (int)player.posZ + z) == Blocks.air) - world.setBlock((int)player.posX + x, 255, (int)player.posZ + z, crate); - } - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("Called in supply drop!")); - } - - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - - player.swingItem(); - - return stack; - - } - -} diff --git a/src/main/java/com/hbm/items/tool/ItemRepairKit.java b/src/main/java/com/hbm/items/tool/ItemRepairKit.java new file mode 100644 index 000000000..11bb57989 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemRepairKit.java @@ -0,0 +1,54 @@ +package com.hbm.items.tool; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemRepairKit extends Item { + + public ItemRepairKit(int dura) { + this.setMaxStackSize(1); + this.setMaxDamage(dura - 1); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(world.isRemote) return stack; + + boolean didSomething = false; + + for(int i = 0; i < 9; i++) { + + ItemStack item = player.inventory.mainInventory[i]; + + if(item != null && item.getItem() instanceof ItemGunBaseNT) { + ItemGunBaseNT gun = (ItemGunBaseNT) item.getItem(); + int configs = gun.getConfigCount(); + + for(int j = 0; j < configs; j++) { + GunConfig cfg = gun.getConfig(item, j); + float maxDura = cfg.getDurability(item); + float wear = Math.min(gun.getWear(item, j), maxDura); + if(wear > 0) { + gun.setWear(item, j, Math.max(0F, gun.getWear(item, j) - maxDura * 0.25F)); + didSomething = true; + } + } + } + } + + if(didSomething) { + if(this == ModItems.gun_kit_1) world.playSoundAtEntity(player, "hbm:item.spray", 1.0F, 1.0F); + if(this == ModItems.gun_kit_2) world.playSoundAtEntity(player, "hbm:item.repair", 1.0F, 1.0F); + + stack.damageItem(1, player); + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/items/weapon/GunB93.java b/src/main/java/com/hbm/items/weapon/GunB93.java deleted file mode 100644 index 245279dd9..000000000 --- a/src/main/java/com/hbm/items/weapon/GunB93.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.projectile.EntityModBeam; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunB93 extends Item { - - Random rand = new Random(); - - public int dmgMin = 16; - public int dmgMax = 28; - - public GunB93() { - - this.maxStackSize = 1; - } - - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - if (!p_77615_3_.isSneaking()) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = true; - - if (flag) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - if (!p_77615_2_.isRemote) { - - EntityModBeam entityarrow1; - entityarrow1 = new EntityModBeam(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.mode = getPower(p_77615_1_) - 1; - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.spawnEntityInWorld(entityarrow1); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.sparkShoot", 5.0F, 1.0F); - } - - setAnim(p_77615_1_, 1); - setPower(p_77615_1_, 0); - } - } else { - } - } - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - int j = getAnim(stack); - - if (j > 0) { - if (j < 30) - setAnim(stack, j + 1); - else - setAnim(stack, 0); - - if (j == 15) { - world.playSoundAtEntity(entity, "hbm:weapon.b92Reload", 2F, 0.9F); - setPower(stack, getPower(stack) + 1); - - if(getPower(stack) > 10) { - - setPower(stack, 0); - - if(!world.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(world, entity.posX, entity.posY, entity.posZ, 50); - if(!ex.isDead) { - world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); - - world.spawnEntityInWorld(ex); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 50); - cloud.posX = entity.posX; - cloud.posY = entity.posY; - cloud.posZ = entity.posZ; - world.spawnEntityInWorld(cloud); - } - } - } - } - } - - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - if (!p_77659_3_.isSneaking() && getPower(p_77659_1_) > 0) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if (this.getAnim(p_77659_1_) == 0) - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } else { - if (getAnim(p_77659_1_) == 0) { - setAnim(p_77659_1_, 1); - } - } - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } - - private static int getAnim(ItemStack stack) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("animation"); - - } - - private static void setAnim(ItemStack stack, int i) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("animation", i); - - } - - private static int getPower(ItemStack stack) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("energy"); - - } - - private static void setPower(ItemStack stack, int i) { - if (stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("energy", i); - - } - - public static float getRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 7.5F; - int i = getAnim(stack); - - if (i < 10) - return 0; - i -= 10; - - if (i < 6) - return rad * i; - if (i > 14) - return rad * (5 - (i - 15)); - return rad * 5; - } - - public static float getOffsetFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if (i < 10) - return 0; - i -= 10; - - if (i < 10) - return i / 10; - else - return 2 - (i / 10); - } - - public static float getTransFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if (i < 10) - return 0; - i -= 10; - - if (i > 4 && i < 10) - return (i - 5) * 0.05F; - - if (i > 9 && i < 15) - return (10 * 0.05F) - ((i - 5) * 0.05F); - - return 0; - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - return EnumRarity.uncommon; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunCryolator.java b/src/main/java/com/hbm/items/weapon/GunCryolator.java deleted file mode 100644 index 1a0c8b44f..000000000 --- a/src/main/java/com/hbm/items/weapon/GunCryolator.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityLN2; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunCryolator extends Item { - - Random rand = new Random(); - - public GunCryolator() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_cryolator_ammo))) { - EntityLN2 entityarrow = new EntityLN2(world, player, 3.0F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - if (count % 10 == 0) - player.inventory.consumeInventoryItem(ModItems.gun_cryolator_ammo); - } - - if (count % 5 == 0) - world.playSoundAtEntity(player, "hbm:weapon.cryolatorShoot", 1.0F, 1F); - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Ice to meet you!"); - list.add(""); - list.add("Ammo: Cryolator Ammo"); - list.add("Damage: 5"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunDefabricator.java b/src/main/java/com/hbm/items/weapon/GunDefabricator.java deleted file mode 100644 index ce1457033..000000000 --- a/src/main/java/com/hbm/items/weapon/GunDefabricator.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunDefabricator extends Item { - - Random rand = new Random(); - - public GunDefabricator() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_defabricator_ammo)) - && count % 2 == 0) { - EntityBullet entitybullet = new EntityBullet(world, player, 3.0F, 40, 120, false, "tauDay"); - entitybullet.setDamage(40 + rand.nextInt(120 - 40)); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.defabShoot", 1.0F, 0.9F + (rand.nextFloat() * 0.2F)); - if(count == this.getMaxItemUseDuration(stack)) - world.playSoundAtEntity(player, "hbm:weapon.defabSpinup", 1.0F, 1.0F); - - if(count % 20 == 0 && !flag) - player.inventory.consumeInventoryItem(ModItems.gun_defabricator_ammo); - - if (!world.isRemote) { - world.spawnEntityInWorld(entitybullet); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(MainRegistry.polaroidID == 11) - list.add("Did you set your alarm for volcano day?"); - else - list.add("BAD WOLF"); - list.add(""); - list.add("Ammo: Defabricator Energy Cell"); - list.add("Damage: 40 - 120"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 6.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunEuthanasia.java b/src/main/java/com/hbm/items/weapon/GunEuthanasia.java deleted file mode 100644 index adf81090d..000000000 --- a/src/main/java/com/hbm/items/weapon/GunEuthanasia.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunEuthanasia extends Item { - - Random rand = new Random(); - - public GunEuthanasia() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_euthanasia_ammo)) - && count % 8 == 0) { - - int deadly = rand.nextInt(5); - - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 2, 8, deadly == 0, false); - entityarrow.setDamage(1 + rand.nextInt(3)); - entityarrow.antidote = true; - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_euthanasia_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Say hello to my little syringe gun!"); - list.add(""); - list.add("Ammo: Syringe"); - list.add("Damage: 1 - 4"); - list.add("Syringes have a 20% chance to instakill the enemy."); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunFolly.java b/src/main/java/com/hbm/items/weapon/GunFolly.java deleted file mode 100644 index 4fe1a0f49..000000000 --- a/src/main/java/com/hbm/items/weapon/GunFolly.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.entity.projectile.EntityBulletBaseNT; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.ModItems; -import com.hbm.items.weapon.sedna.Crosshair; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class GunFolly extends Item implements IHoldableWeapon { - - @Override - public Crosshair getCrosshair() { - return Crosshair.L_SPLIT; - } - - @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - int state = getState(stack); - - if(state == 0) { - - world.playSoundAtEntity(player, "hbm:weapon.follyOpen", 1.0F, 1.0F); - setState(stack, 1); - - } else if(state == 1) { - - if(player.inventory.hasItem(ModItems.ammo_folly)) { - - world.playSoundAtEntity(player, "hbm:weapon.follyReload", 1.0F, 1.0F); - player.inventory.consumeInventoryItem(ModItems.ammo_folly); - setState(stack, 2); - } else { - - world.playSoundAtEntity(player, "hbm:weapon.follyClose", 1.0F, 1.0F); - setState(stack, 0); - } - - } else if(state == 2) { - - world.playSoundAtEntity(player, "hbm:weapon.follyClose", 1.0F, 1.0F); - setState(stack, 3); - setTimer(stack, 100); - } else if(state == 3) { - - if(getTimer(stack) == 0) { - - setState(stack, 0); - world.playSoundAtEntity(player, "hbm:weapon.follyFire", 1.0F, 1.0F); - - double mult = 1.75D; - - player.motionX -= player.getLookVec().xCoord * mult; - player.motionY -= player.getLookVec().yCoord * mult; - player.motionZ -= player.getLookVec().zCoord * mult; - - if (!world.isRemote) { - EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, BulletConfigSyncingUtil.TEST_CONFIG, player); - world.spawnEntityInWorld(bullet); - } - } - } - - return stack; - } - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { - - if(getState(stack) == 3) { - - if(isCurrentItem) { - int timer = getTimer(stack); - - if(timer > 0) { - timer--; - - if(timer % 20 == 0 && timer != 0) - world.playSoundAtEntity(entity, "hbm:weapon.follyBuzzer", 1.0F, 1.0F); - - if(timer == 0) - world.playSoundAtEntity(entity, "hbm:weapon.follyAquired", 1.0F, 1.0F); - - setTimer(stack, timer); - } - } else { - setTimer(stack, 100); - } - } - } - - //0: closed, empty, - //1: open, empty - //2: open, full - //3: closed, full - public static void setState(ItemStack stack, int i) { - writeNBT(stack, "state", i); - } - - public static int getState(ItemStack stack) { - return readNBT(stack, "state"); - } - - public static void setTimer(ItemStack stack, int i) { - writeNBT(stack, "timer", i); - } - - public static int getTimer(ItemStack stack) { - return readNBT(stack, "timer"); - } - - private static void writeNBT(ItemStack stack, String key, int value) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger(key, value); - } - - private static int readNBT(ItemStack stack, String key) { - - if(!stack.hasTagCompound()) - return 0; - - return stack.stackTagCompound.getInteger(key); - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunHP.java b/src/main/java/com/hbm/items/weapon/GunHP.java deleted file mode 100644 index 5899bb44a..000000000 --- a/src/main/java/com/hbm/items/weapon/GunHP.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -@Deprecated -public class GunHP extends Item { - - Random rand = new Random(); - - public GunHP() { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Rrrrt - rrrrt - rrrrt, weeee!"); - list.add(""); - list.add("Ammo: Ink Cartridge"); - list.add("Damage: 25 - 45"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunJack.java b/src/main/java/com/hbm/items/weapon/GunJack.java deleted file mode 100644 index efb6e453e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunJack.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunJack extends Item { - Random rand = new Random(); - - public int dmgMin = 12; - public int dmgMax = 24; - - public GunJack() { - - this.maxStackSize = 1; - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_jack_ammo)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_jack_ammo); - } - - int k = rand.nextInt(25) + 24; - - for(int i = 0; i < k; i++) { - - EntityBullet entityarrow1 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - if(!p_77615_2_.isRemote) - p_77615_2_.spawnEntityInWorld(entityarrow1); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(ModItems.gun_jack_ammo)) { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("One barrel? Boring."); - list.add("Two barrels? Nah."); - list.add("Four barrels? Heck yes!"); - list.add(""); - list.add("Ammo: Quadruple Shotgun Shells"); - list.add("Damage: 12 - 24"); - list.add("Projectiles: 24 - 48"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunLeverActionS.java b/src/main/java/com/hbm/items/weapon/GunLeverActionS.java deleted file mode 100644 index 2d90d50ca..000000000 --- a/src/main/java/com/hbm/items/weapon/GunLeverActionS.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import com.hbm.main.MainRegistry; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.StatCollector; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunLeverActionS extends Item { - - Random rand = new Random(); - - public int dmgMin = 8; - public int dmgMax = 16; - - public GunLeverActionS() { - - this.maxStackSize = 1; - - this.setMaxDamage(500); - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_20gauge)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - Vec3 vec = p_77615_3_.getLookVec(); - vec.xCoord *= -1; - vec.yCoord *= -1; - vec.zCoord *= -1; - vec.normalize(); - - p_77615_3_.motionX += vec.xCoord * 0.75; - p_77615_3_.motionY += vec.yCoord * 0.75; - p_77615_3_.motionZ += vec.zCoord * 0.75; - - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_20gauge); - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_3_.attackEntityFrom(ModDamageSource.suicide, 10000); - if(!p_77615_3_.capabilities.isCreativeMode) - p_77615_3_.setHealth(0.0F); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShootAlt", 5.0F, 0.75F); - - setAnim(p_77615_1_, 1); - } - } - - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - int j = getAnim(stack); - - if(j > 0) { - if(j < 30) - setAnim(stack, j + 1); - else - setAnim(stack, 0); - - if(j == 15) - world.playSoundAtEntity(entity, "hbm:weapon.leverActionReload", 2F, 0.85F); - } - - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if(this.getAnim(p_77659_1_) == 0) - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - public String getItemStackDisplayName(ItemStack stack) - { - if(MainRegistry.polaroidID == 11) - return ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + "_2.name")).trim(); - else - return ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(MainRegistry.polaroidID == 11) - list.add("Vee guilt-tripped me into this."); - else - list.add("I hate your guts, Vee."); - list.add(""); - list.add("Ammo: 12x74 Buckshot"); - list.add("Damage: Infinite"); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } - - private static int getAnim(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("animation"); - - } - - private static void setAnim(ItemStack stack, int i) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("animation", i); - - } - - public static float getRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 7.5F; - int i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return rad * i; - else - return (rad * 10) - (rad * (i - 10)); - } - - public static float getOffsetFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return i / 10; - else - return 2 - (i / 10); - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunSpark.java b/src/main/java/com/hbm/items/weapon/GunSpark.java deleted file mode 100644 index 55b34c1d7..000000000 --- a/src/main/java/com/hbm/items/weapon/GunSpark.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntitySparkBeam; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunSpark extends Item { - Random rand = new Random(); - - public int dmgMin = 12; - public int dmgMax = 24; - - public GunSpark() { - - this.maxStackSize = 1; - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.gun_spark_ammo)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.sparkShoot", 1.0F, 1.0F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.gun_spark_ammo); - } - - EntitySparkBeam beam = new EntitySparkBeam(p_77615_2_, p_77615_3_, 3F); - beam.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - if(!p_77615_2_.isRemote) - p_77615_2_.spawnEntityInWorld(beam); - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("'magic does not compute'"); - list.add("'aeiou'"); - list.add(""); - list.add("Ammo: Electromagnetic Cartridge"); - list.add("Projectiles explode on impact."); - list.add(""); - list.add("[LEGENDARY WEAPON]"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 4.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunSuicide.java b/src/main/java/com/hbm/items/weapon/GunSuicide.java deleted file mode 100644 index b94700be1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunSuicide.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunSuicide extends Item { - - public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"}; - @SideOnly(Side.CLIENT) - private IIcon[] iconArray; - private Item ammo; - Random rand = new Random(); - - public GunSuicide() - { - this.maxStackSize = 1; - //if(this == ModItems.gun_revolver) - { - this.setMaxDamage(500); - } - - this.ammo = ModItems.ammo_357; - } - - /** - * called when the player releases the use item button. Args: itemstack, world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) - { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - - if (flag || p_77615_3_.inventory.hasItem(ammo)) - { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) - { - return; - } - - if (j > 10.0F) - { - f = 10.0F; - } - - p_77615_1_.damageItem(1, p_77615_3_); - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShoot", 1.0F, 1.0F); - - if (flag) - { } - else - { - p_77615_3_.inventory.consumeInventoryItem(ammo); - } - - if (!p_77615_2_.isRemote) - { - p_77615_3_.attackEntityFrom(ModDamageSource.suicide, 10000); - if(!p_77615_3_.capabilities.isCreativeMode) - p_77615_3_.setHealth(0.0F); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) - { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) - { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) - { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) - { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - @Override - public int getItemEnchantability() - { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("I've seen things..."); - list.add("...I shouldn't have seen."); - list.add(""); - list.add("Ammo: Lead Bullets"); - list.add("Damage: Infinite"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 2.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index eebc241a8..4c4000f78 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -11,7 +11,6 @@ import com.hbm.items.ItemAmmoEnums.IAmmoItemEnum; import com.hbm.items.ItemEnumMulti; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; @@ -122,7 +121,7 @@ public class ItemAmmo extends ItemEnumMulti { public ItemAmmo(Class> clazz, String altName) { super(clazz, true, true); - setCreativeTab(MainRegistry.weaponTab); + this.setCreativeTab(null); this.altName = altName; } diff --git a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java deleted file mode 100644 index 86e8dc937..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.item.ItemStack; - -public class ItemCoilgun extends ItemGunBase { - - public ItemCoilgun(GunConfiguration config) { - super(config); - } - - @Override - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(ItemStack stack, AnimType type) { - - if(type == AnimType.CYCLE) { - return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addPos(1, 0, 0, 100) - .addPos(0, 0, 0, 200)); - } - - if(type == AnimType.RELOAD) { - return new BusAnimation() - .addBus("RELOAD", new BusAnimationSequence() - .addPos(1, 0, 0, 250) - .addPos(1, 0, 0, 500) - .addPos(0, 0, 0, 250)); - } - - GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; - return config.animations.get(type); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java index 7c660a189..26c459982 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java @@ -2,7 +2,9 @@ package com.hbm.items.weapon; import java.util.HashMap; import java.util.List; +import java.util.function.Consumer; +import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.items.special.ItemLootCrate; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -86,7 +88,17 @@ public class ItemCustomMissilePart extends Item { SCHRAB, TAINT, CLOUD, - TURBINE + TURBINE, + + //shit solution but it works. this allows traits to be attached to these empty dummy types, allowing for custom warheads + CUSTOM0, CUSTOM1, CUSTOM2, CUSTOM3, CUSTOM4, CUSTOM5, CUSTOM6, CUSTOM7, CUSTOM8, CUSTOM9; + + /** Overrides that type's impact effect. Only runs serverside */ + public Consumer impactCustom = null; + /** Runs at the beginning of the missile's update cycle, both client and serverside. */ + public Consumer updateCustom = null; + /** Override for the warhead's name in the missile description */ + public String labelCustom = null; } public enum FuelType { @@ -246,6 +258,8 @@ public class ItemCustomMissilePart extends Item { public String getWarhead(WarheadType type) { + if(type.labelCustom != null) return type.labelCustom; + switch(type) { case HE: return EnumChatFormatting.YELLOW + "HE"; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java deleted file mode 100644 index 5ba412702..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.handler.GunConfiguration; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ItemGunBio extends ItemGunBase { - - public ItemGunBio(GunConfiguration config) { - super(config); - } - - public static long lastShot; - public static List smokeNodes = new ArrayList(); - - @Override - public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { } - - @Override - @SideOnly(Side.CLIENT) - protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { - super.updateClient(stack, world, entity, slot, isCurrentItem); - - boolean smoking = lastShot + 2000 > System.currentTimeMillis(); - - if(!smoking && !smokeNodes.isEmpty()) { - smokeNodes.clear(); - } - - if(smoking) { - - Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); - prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); - double accel = 15D; - double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; - double waggle = 0.025D; - - for(double[] node : smokeNodes) { - node[0] += prev.xCoord * accel + world.rand.nextGaussian() * waggle + side; - node[1] += prev.yCoord + 1.5D; - node[2] += prev.zCoord * accel + world.rand.nextGaussian() * waggle; - } - - double alpha = (System.currentTimeMillis() - ItemGunBio.lastShot) / 2000D; - alpha = (1 - alpha) * 0.5D; - - if(this.getIsReloading(stack)) alpha = 0; - - smokeNodes.add(new double[] {0, 0, 0, alpha}); - } - } - - @Override - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(ItemStack stack, AnimType type) { - - if(type == AnimType.CYCLE) { - lastShot = System.currentTimeMillis(); - 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(0, 0, 1, 50) - .addPos(0, 0, 1, 300) - .addPos(0, 0, 0, 200) - ) - .addBus("DRUM", new BusAnimationSequence() - .addPos(0, 0, 1, 50) - ); - } - - if(type == AnimType.RELOAD) { - return new BusAnimation() - .addBus("LATCH", new BusAnimationSequence() - .addPos(0, 0, 90, 300) - .addPos(0, 0, 90, 2000) - .addPos(0, 0, 0, 150) - ) - .addBus("FRONT", new BusAnimationSequence() - .addPos(0, 0, 0, 200) - .addPos(0, 0, 45, 150) - .addPos(0, 0, 45, 2000) - .addPos(0, 0, 0, 75) - ) - .addBus("RELOAD_ROT", new BusAnimationSequence() - .addPos(0, 0, 0, 300) - .addPos(60, 0, 0, 500) - .addPos(60, 0, 0, 500) - .addPos(0, -90, -90, 0) - .addPos(0, -90, -90, 600) - .addPos(0, 0, 0, 300) - .addPos(0, 0, 0, 100) - .addPos(-45, 0, 0, 50) - .addPos(-45, 0, 0, 100) - .addPos(0, 0, 0, 300) - ) - .addBus("RELOAD_MOVE", new BusAnimationSequence() - .addPos(0, 0, 0, 300) - .addPos(0, -15, 0, 1000) - .addPos(0, 0, 0, 450) - ) - .addBus("DRUM_PUSH", new BusAnimationSequence() - .addPos(0, 0, 0, 1600) - .addPos(0, 0, -5, 0) - .addPos(0, 0, 0, 300) - ); - } - - return null; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java deleted file mode 100644 index 9dec64259..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityChemical; -import com.hbm.handler.GunConfiguration; -import com.hbm.handler.guncfg.GunEnergyFactory; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.machine.ItemFluidIcon; -import com.hbm.items.weapon.sedna.Crosshair; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.GunAnimationPacket; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay; -import api.hbm.fluid.IFillableItem; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -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 ItemGunChemthrower extends ItemGunBase implements IFillableItem { - - public ItemGunChemthrower() { - super(GunEnergyFactory.getChemConfig()); - } - - @Override - protected void fire(ItemStack stack, World world, EntityPlayer player) { - - if(!hasAmmo(stack, player, true)) - return; - - int bullets = 1; - - for(int i = 0; i < bullets; i++) { - spawnProjectile(world, player, stack, 0); - } - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - - useUpAmmo(player, stack, true); - player.inventoryContainer.detectAndSendChanges(); - - int wear = (int) Math.ceil(10 / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); - setItemWear(stack, getItemWear(stack) + wear); - } - - @Override - public boolean hasAmmo(ItemStack stack, EntityPlayer player, boolean main) { - return getMag(stack) >= 0 + this.getConsumption(stack); - } - - @Override - 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; - - setMag(stack, getMag(stack) - this.getConsumption(stack)); - } - - @Override - public boolean canReload(ItemStack stack, World world, EntityPlayer player) { - return false; - } - - @Override - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - //spawn fluid projectile - EntityChemical chem = new EntityChemical(world, player, 0, 0, 0); - chem.setFluid(this.getFluidType(stack)); - world.spawnEntityInWorld(chem); - } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add("Ammo: " + getMag(stack) + " / " + mainConfig.ammoCap + "mB"); - - list.add("Ammo Type: " + this.getFluidType(stack).getLocalizedName()); - - int dura = mainConfig.durability - getItemWear(stack); - - if(dura < 0) - dura = 0; - - list.add("Durability: " + dura + " / " + mainConfig.durability); - list.add(""); - list.add("Name: " + mainConfig.name); - list.add("Manufacturer: " + mainConfig.manufacturer); - - 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)); - } - } - - @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) { - - FluidType fluid = this.getFluidType(stack); - - ItemStack ammo = ItemFluidIcon.make(fluid, 1); - - int count = ItemGunBase.getMag(stack); - int max = gcfg.ammoCap; - boolean showammo = gcfg.showAmmo; - - int dura = ItemGunBase.getItemWear(stack) * 50 / gcfg.durability; - - RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo, count, max, dura, showammo); - } - - 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); - } - } - - @Override - protected void reload2(ItemStack stack, World world, EntityPlayer player) { - this.setIsReloading(stack, false); - } - - public FluidType getFluidType(ItemStack stack) { - return Fluids.fromID(this.getMagType(stack)); - } - - public int getConsumption(ItemStack stack) { - return 3; - } - - @Override - public boolean acceptsFluid(FluidType type, ItemStack stack) { - return getFluidType(stack) == type || this.getMag(stack) == 0; - } - - public static final int transferSpeed = 50; - - @Override - public int tryFill(FluidType type, int amount, ItemStack stack) { - - if(!acceptsFluid(type, stack)) - return amount; - - if(this.getMag(stack) == 0) - this.setMagType(stack, type.getID()); - - int fill = this.getMag(stack); - int req = this.mainConfig.ammoCap - fill; - - int toFill = Math.min(amount, req); - toFill = Math.min(toFill, transferSpeed); - - this.setMag(stack, fill + toFill); - - return amount - toFill; - } - - @Override - public boolean providesFluid(FluidType type, ItemStack stack) { - return getFluidType(stack) == type; - } - - @Override - public int tryEmpty(FluidType type, int amount, ItemStack stack) { - - int fill = this.getMag(stack); - int toUnload = Math.min(fill, amount); - toUnload = Math.min(toUnload, transferSpeed); - - this.setMag(stack, fill - toUnload); - - return toUnload; - } - - @Override - public FluidType getFirstFluidType(ItemStack stack) { - return this.getFluidType(stack); - } - - @Override - public int getFill(ItemStack stack) { - return this.getMag(stack); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunDart.java b/src/main/java/com/hbm/items/weapon/ItemGunDart.java deleted file mode 100644 index 1840cda68..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunDart.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; - -import api.hbm.item.IDesignatorItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ItemGunDart extends ItemGunBase implements IDesignatorItem { - - public ItemGunDart(GunConfiguration config) { - super(config); - } - - public static void writePlayer(ItemStack stack, EntityPlayer player) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setString("player", player.getDisplayName()); - stack.stackTagCompound.setLong("lease", player.worldObj.getTotalWorldTime() + 60 * 60 * 20); - } - - public static EntityPlayer readPlayer(World world, ItemStack stack) { - - if(!stack.hasTagCompound()) - return null; - - if(stack.stackTagCompound.getLong("lease") < world.getTotalWorldTime()) - return null; - - return MinecraftServer.getServer().getConfigurationManager().func_152612_a(stack.stackTagCompound.getString("player")); - } - - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(main) { - super.startAction(stack, world, player, main); - } else { - - EntityPlayer target = readPlayer(world, stack); - - if(target != null) { - - int dim = target.worldObj.provider.dimensionId; - int x = (int)target.posX; - int y = (int)target.posY; - int z = (int)target.posZ; - int dist = (int) target.getDistanceToEntity(player); - - player.addChatComponentMessage(new ChatComponentText(target.getDisplayName()).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - player.addChatComponentMessage(new ChatComponentText("Dim: " + dim + " X:" + x + " Y:" + y + " Z:" + z + " (" + dist + " blocks away)").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - } else { - - player.addChatComponentMessage(new ChatComponentText("No Target").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); - } - } - } - - @Override - public boolean isReady(World world, ItemStack stack, int x, int y, int z) { - EntityPlayer target = readPlayer(world, stack); - return target != null && target.dimension == world.provider.dimensionId; - } - - @Override - public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z) { - EntityPlayer target = readPlayer(world, stack); - return Vec3.createVectorHelper(target.posX, target.posY, target.posZ); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java b/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java deleted file mode 100644 index ae89da2c9..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; - -import net.minecraft.item.ItemStack; - -public class ItemGunDetonator extends ItemGunBase { - - public ItemGunDetonator(GunConfiguration config) { - super(config); - } - - @Override - public boolean hasInfinity(ItemStack stack, GunConfiguration config) { - return true; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java deleted file mode 100644 index b3c7e83c0..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.entity.projectile.EntityBulletBaseNT; -import com.hbm.handler.GunConfiguration; -import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; -import com.hbm.main.MainRegistry; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.GunAnimationPacket; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.sound.AudioWrapper; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunGauss extends ItemGunBase { - - private AudioWrapper chargeLoop; - - public ItemGunGauss(GunConfiguration config, GunConfiguration alt) { - super(config, alt); - } - - public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(getHasShot(stack)) { - world.playSoundAtEntity(player, "hbm:weapon.sparkShoot", 2.0F, 1.0F); - setHasShot(stack, false); - } - - if(!main && getStored(stack) > 0) { - EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, altConfig.config.get(0), player); - bullet.overrideDamage = Math.max(getStored(stack), 1) * 10F; - world.spawnEntityInWorld(bullet); - world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 0.5F, 0.75F); - setItemWear(stack, getItemWear(stack) + (getCharge(stack)) * 2); - setCharge(stack, 0); - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - } - } - - public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(chargeLoop != null) { - chargeLoop.stopSound(); - chargeLoop = null; - } - } - - protected void altFire(ItemStack stack, World world, EntityPlayer player) { - setCharge(stack, 1); - } - - @Override - public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(!main && getItemWear(stack) < mainConfig.durability && player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 5F, 0.75F); - world.playSoundAtEntity(player, "hbm:weapon.tauChargeLoop2", 1.0F, 0.75F); - - if(chargeLoop != null) { - chargeLoop.startSound(); - } - } - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - - super.updateServer(stack, world, player, slot, isCurrentItem); - - if(getIsAltDown(stack) && getItemWear(stack) < mainConfig.durability) { - - int c = getCharge(stack); - - if(c > 200) { - setCharge(stack, 0); - setItemWear(stack, mainConfig.durability); - player.attackEntityFrom(ModDamageSource.tauBlast, 1000); - world.newExplosion(player, player.posX, player.posY + player.eyeHeight, player.posZ, 5.0F, true, true); - return; - } - - if(c > 0) { - setCharge(stack, c + 1); - - if(c % 10 == 1 && c < 140 && c > 2) { - - if(player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); - setStored(stack, getStored(stack) + 1); - } else { - setCharge(stack, 0); - setStored(stack, 0); - } - } - } else { - setStored(stack, 0); - } - } else { - setCharge(stack, 0); - setStored(stack, 0); - } - } - - protected void updateClient(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - super.updateClient(stack, world, player, slot, isCurrentItem); - - if(chargeLoop != null) { - if(!chargeLoop.isPlaying()) { - chargeLoop = rebootAudio(chargeLoop, player); - } - chargeLoop.updatePosition((float)player.posX, (float)player.posY, (float)player.posZ); - chargeLoop.updatePitch(1 + (getCharge(stack)) * 0.01F); - } - } - - public AudioWrapper rebootAudio(AudioWrapper wrapper, EntityPlayer player) { - wrapper.stopSound(); - AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getRange(), wrapper.getPitch()); - audio.startSound(); - return audio; - } - - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - - super.spawnProjectile(world, player, stack, config); - setHasShot(stack, true); - } - - public static void setHasShot(ItemStack stack, boolean b) { - writeNBT(stack, "hasShot", b ? 1 : 0); - } - - public static boolean getHasShot(ItemStack stack) { - return readNBT(stack, "hasShot") == 1; - } - - /// gauss charge state /// - public static void setCharge(ItemStack stack, int i) { - writeNBT(stack, "gauss_charge", i); - } - - public static int getCharge(ItemStack stack) { - return readNBT(stack, "gauss_charge"); - } - - public static void setStored(ItemStack stack, int i) { - writeNBT(stack, "gauss_stored", i); - } - - public static int getStored(ItemStack stack) { - return readNBT(stack, "gauss_stored"); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunLacunae.java b/src/main/java/com/hbm/items/weapon/ItemGunLacunae.java deleted file mode 100644 index 03fa31c1c..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunLacunae.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunLacunae extends ItemGunBase { - - public ItemGunLacunae(GunConfiguration config) { - super(config); - } - - @Override - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(main) { - setDelay(stack, 20); - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpinup", 1.0F, 1.0F); - } - } - - @Override - public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(main) - world.playSoundAtEntity(player, "hbm:weapon.lacunaeSpindown", 1.0F, 1.0F); - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - - super.updateServer(stack, world, player, slot, isCurrentItem); - - if(getIsMouseDown(stack)) { - - int rot = readNBT(stack, "rot") % 360; - rot += 25; - writeNBT(stack, "rot", rot); - } - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java b/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java deleted file mode 100644 index dd8f945bc..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.entity.projectile.EntityCombineBallNT; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.GunConfiguration; -import com.hbm.items.ModItems; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunOSIPR extends ItemGunBase { - - public ItemGunOSIPR(GunConfiguration config, GunConfiguration alt) { - super(config, alt); - } - - @Override - protected void altFire(ItemStack stack, World world, EntityPlayer player) { - - setCharge(stack, 1); - world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F); - } - - @Override - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - super.updateServer(stack, world, player, slot, isCurrentItem); - - if(!isCurrentItem) { - setCharge(stack, 0); - return; - } - - int i = getCharge(stack); - - if(i >= 20) { - EntityCombineBallNT energyBall = new EntityCombineBallNT(world, BulletConfigSyncingUtil.SPECIAL_OSIPR_CHARGED, player); - world.spawnEntityInWorld(energyBall); - world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, 1F); - setCharge(stack, 0); - setDelay(stack, altConfig.rateOfFire); - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo2); - - } else if(i > 0) - setCharge(stack, i + 1); - } - - @Override - protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { - - return super.tryShoot(stack, world, player, main) && getCharge(stack) == 0; - } - - /// CMB charge state /// - public static void setCharge(ItemStack stack, int i) { - writeNBT(stack, "cmb_charge", i); - } - - public static int getCharge(ItemStack stack) { - return readNBT(stack, "cmb_charge"); - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunPip.java b/src/main/java/com/hbm/items/weapon/ItemGunPip.java deleted file mode 100644 index 5e0e636ca..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunPip.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.handler.GunConfiguration; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.BusAnimationSequence; -import com.hbm.render.anim.HbmAnimations.AnimType; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class ItemGunPip extends ItemGunBase { - - public static long lastShot; - public static List smokeNodes = new ArrayList(); - - public ItemGunPip(GunConfiguration config) { - super(config); - } - - @Override - @SideOnly(Side.CLIENT) - protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { - super.updateClient(stack, world, entity, slot, isCurrentItem); - - boolean smoking = lastShot + 2000 > System.currentTimeMillis(); - - if(!smoking && !smokeNodes.isEmpty()) { - smokeNodes.clear(); - } - - if(smoking) { - Vec3 prev = Vec3.createVectorHelper(-entity.motionX, -entity.motionY, -entity.motionZ); - prev.rotateAroundY((float) (entity.rotationYaw * Math.PI / 180D)); - double accel = 15D; - double side = (entity.rotationYaw - entity.prevRotationYawHead) * 0.1D; - double waggle = 0.025D; - - for(double[] node : smokeNodes) { - node[0] += -prev.zCoord * accel + world.rand.nextGaussian() * waggle; - node[1] += prev.yCoord + 1.5D; - node[2] += prev.xCoord * accel + world.rand.nextGaussian() * waggle + side; - } - - double alpha = (System.currentTimeMillis() - lastShot) / 2000D; - alpha = (1 - alpha) * 0.5D; - - if(this.getIsReloading(stack)) alpha = 0; - - smokeNodes.add(new double[] {0, 0, 0, alpha}); - } - } - - @Override - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(ItemStack stack, AnimType type) { - - if(type == AnimType.EQUIP) { - return new BusAnimation() - .addBus("ROTATE", new BusAnimationSequence() - .addPos(-360, 0, 0, 350) - ); - } - - if(type == AnimType.CYCLE) { - lastShot = System.currentTimeMillis(); - int s = 1; - return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addPos(0, 0, 0, 50 * s) - .addPos(0, 0, -3, 50 * s) - .addPos(0, 0, 0, 250 * s) - ) - .addBus("HAMMER", new BusAnimationSequence() - .addPos(0, 0, 1, 50 * s) - .addPos(0, 0, 1, 300 * s) - .addPos(0, 0, 0, 200 * s) - ) - .addBus("DRUM", new BusAnimationSequence() - .addPos(0, 0, 1, 50 * s) - ); - } - - if(type == AnimType.RELOAD) { - int s = 1; - return new BusAnimation() - .addBus("RELAOD_TILT", new BusAnimationSequence() - .addPos(-15, 0, 0, 100 * s) - .addPos(65, 0, 0, 100 * s) //200 - .addPos(45, 0, 0, 50 * s) //250 - .addPos(0, 0, 0, 200 * s) //450 - .addPos(0, 0, 0, 1450 * s) //1900 - .addPos(-80, 0, 0, 100 * s) //2000 - .addPos(-80, 0, 0, 100 * s) //2100 - .addPos(0, 0, 0, 200 * s) //2300 - ) - .addBus("RELOAD_CYLINDER", new BusAnimationSequence() - .addPos(0, 0, 0, 200 * s) - .addPos(90, 0, 0, 100 * s) //300 - .addPos(90, 0, 0, 1700 * s) //2000 - .addPos(0, 0, 0, 70 * s) //2100 - ) - .addBus("RELOAD_LIFT", new BusAnimationSequence() - .addPos(0, 0, 0, 350 * s) - .addPos(-45, 0, 0, 250 * s) //600 - .addPos(-45, 0, 0, 350 * s) //950 - .addPos(-15, 0, 0, 200 * s) //1150 - .addPos(-15, 0, 0, 1050 * s) //2200 - .addPos(0, 0, 0, 100 * s) //2300 - ) - .addBus("RELOAD_JOLT", new BusAnimationSequence() - .addPos(0, 0, 0, 600 * s) - .addPos(2, 0, 0, 50 * s) //650 - .addPos(0, 0, 0, 100 * s) //750 - ) - .addBus("RELOAD_BULLETS", new BusAnimationSequence() - .addPos(0, 0, 0, 650 * s) - .addPos(10, 0, 0, 300 * s) //950 - .addPos(10, 0, 0, 200 * s) //1150 - .addPos(0, 0, 0, 700 * s) //1850 - ) - .addBus("RELOAD_BULLETS_CON", new BusAnimationSequence() - .addPos(1, 0, 0, 0 * s) - .addPos(1, 0, 0, 950 * s) - .addPos(0, 0, 0, 1 * s) - ); - } - - return null; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunShotty.java b/src/main/java/com/hbm/items/weapon/ItemGunShotty.java deleted file mode 100644 index 39588922c..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunShotty.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.items.weapon; - -import com.hbm.handler.GunConfiguration; -import com.hbm.util.ShadyUtil; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemGunShotty extends ItemGunBase { - - public ItemGunShotty(GunConfiguration config) { - super(config); - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - super.updateServer(stack, world, player, slot, isCurrentItem); - - if((player.getUniqueID().toString().equals(ShadyUtil.Dr_Nostalgia) || player.getDisplayName().equals("Tankish") || player.getDisplayName().equals("Tankish020")) && - this.getDelay(stack) < this.mainConfig.rateOfFire * 0.9) - this.setDelay(stack, 0); - } - -} diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java index 7b6fe25a0..ab07755b9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -10,16 +10,19 @@ import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.interfaces.NotableComments; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.ConfettiUtil; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; -import com.hbm.lib.ModDamageSource; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.particle.SpentCasing; import com.hbm.util.BobMathUtil; import com.hbm.util.EntityDamageUtil; import com.hbm.util.TrackerUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.MovingObjectPosition; @@ -42,16 +45,15 @@ public class BulletConfig implements Cloneable { public float wear = 1F; public int projectilesMin = 1; public int projectilesMax = 1; + public ProjectileType pType = ProjectileType.BULLET; public float damageMult = 1.0F; + public float armorThresholdNegation = 0.0F; public float armorPiercingPercent = 0.0F; + public float knockbackMult = 0.1F; public float headshotMult = 1.0F; - public String damageType = ModDamageSource.s_bullet; - public boolean dmgProj = true; - public boolean dmgFire = false; - public boolean dmgExplosion = false; - public boolean dmgBypass = false; + public DamageClass dmgClass = DamageClass.PHYSICAL; public float ricochetAngle = 5F; public int maxRicochetCount = 2; @@ -90,8 +92,12 @@ public class BulletConfig implements Cloneable { return this; } + public BulletConfig setBeam() { this.pType = ProjectileType.BEAM; return this; } + public BulletConfig setChunkloading() { this.pType = ProjectileType.BULLET_CHUNKLOADING; return this; } public BulletConfig setItem(Item ammo) { this.ammo = new ComparableStack(ammo); return this; } + public BulletConfig setItem(ItemStack ammo) { this.ammo = new ComparableStack(ammo); return this; } public BulletConfig setItem(EnumAmmo ammo) { this.ammo = new ComparableStack(ModItems.ammo_standard, 1, ammo.ordinal()); return this; } + public BulletConfig setItem(EnumAmmoSecret ammo) { this.ammo = new ComparableStack(ModItems.ammo_secret, 1, ammo.ordinal()); return this; } public BulletConfig setReloadCount(int ammoReloadCount) { this.ammoReloadCount = ammoReloadCount; return this; } public BulletConfig setVel(float velocity) { this.velocity = velocity; return this; } public BulletConfig setSpread(float spread) { this.spread = spread; return this; } @@ -99,10 +105,11 @@ public class BulletConfig implements Cloneable { public BulletConfig setProjectiles(int amount) { this.projectilesMin = this.projectilesMax = amount; return this; } public BulletConfig setProjectiles(int min, int max) { this.projectilesMin = min; this.projectilesMax = max; return this; } public BulletConfig setDamage(float damageMult) { this.damageMult = damageMult; return this; } + public BulletConfig setThresholdNegation(float armorThresholdNegation) { this.armorThresholdNegation = armorThresholdNegation; return this; } public BulletConfig setArmorPiercing(float armorPiercingPercent) { this.armorPiercingPercent = armorPiercingPercent; return this; } + public BulletConfig setKnockback(float knockbackMult) { this.knockbackMult = knockbackMult; return this; } public BulletConfig setHeadshot(float headshotMult) { this.headshotMult = headshotMult; return this; } - public BulletConfig setDamageType(String type) { this.damageType = type; return this; } - public BulletConfig setupDamageClass(boolean proj, boolean fire, boolean explosion, boolean bypass) { this.dmgProj = proj; this.dmgFire = fire; this.dmgExplosion = explosion; this.dmgBypass = bypass; return this; } + public BulletConfig setupDamageClass(DamageClass clazz) { this.dmgClass = clazz; return this; } public BulletConfig setRicochetAngle(float angle) { this.ricochetAngle = angle; return this; } public BulletConfig setRicochetCount(int count) { this.maxRicochetCount = count; return this; } public BulletConfig setDamageFalloutByPen(boolean falloff) { this.damageFalloffByPen = falloff; return this; } @@ -125,17 +132,28 @@ public class BulletConfig implements Cloneable { public BulletConfig setOnBeamImpact(BiConsumer lambda) { this.onImpactBeam = lambda; return this; } public BulletConfig setOnEntityHit(BiConsumer lambda) { this.onEntityHit = lambda; return this; } - public DamageSource getDamage(Entity projectile, EntityLivingBase shooter, boolean bypass) { + public static enum ProjectileType { + BULLET, + BULLET_CHUNKLOADING, + BEAM + } + + @SuppressWarnings("incomplete-switch") //shut up + public static DamageSource getDamage(Entity projectile, EntityLivingBase shooter, DamageClass dmgClass) { DamageSource dmg; - if(shooter != null) dmg = new EntityDamageSourceIndirect(damageType, projectile, shooter); - else dmg = new DamageSource(damageType); + if(shooter != null) dmg = new EntityDamageSourceIndirect(dmgClass.name(), projectile, shooter); + else dmg = new DamageSource(dmgClass.name()); - if(this.dmgProj) dmg.setProjectile(); - if(this.dmgFire) dmg.setFireDamage(); - if(this.dmgExplosion) dmg.setExplosion(); - if(this.dmgBypass || bypass) dmg.setDamageBypassesArmor(); + switch(dmgClass) { + case PHYSICAL: dmg.setProjectile(); break; + case FIRE: dmg.setFireDamage(); break; + case EXPLOSIVE: dmg.setExplosion(); break; + case ELECTRIC: break; + case LASER: break; + case SUBATOMIC: break; + } return dmg; } @@ -184,22 +202,17 @@ public class BulletConfig implements Cloneable { if(entity == bullet.getThrower() && bullet.ticksExisted < bullet.selfDamageDelay()) return; if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; - DamageSource damageCalc = bullet.config.getDamage(bullet, bullet.getThrower(), false); + DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), bullet.config.dmgClass); if(!(entity instanceof EntityLivingBase)) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, bullet.damage); + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage); return; } EntityLivingBase living = (EntityLivingBase) entity; float prevHealth = living.getHealth(); - if(bullet.config.armorPiercingPercent == 0) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, bullet.damage); - } else { - DamageSource damagePiercing = bullet.config.getDamage(bullet, bullet.getThrower(), true); - EntityDamageUtil.attackArmorPiercing(living, damageCalc, damagePiercing, bullet.damage, bullet.config.armorPiercingPercent); - } + EntityDamageUtil.attackEntityFromNT(living, source, bullet.damage, true, true, bullet.config.knockbackMult, bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent); float newHealth = living.getHealth(); @@ -208,6 +221,28 @@ public class BulletConfig implements Cloneable { bullet.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); bullet.setDead(); } + + if(!living.isEntityAlive()) ConfettiUtil.decideConfetti(living, source); + } + }; + + public static BiConsumer LAMBDA_STANDARD_BEAM_HIT = (bullet, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; + + DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), bullet.config.dmgClass); + + if(!(entity instanceof EntityLivingBase)) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage); + return; + } + + EntityLivingBase living = (EntityLivingBase) entity; + EntityDamageUtil.attackEntityFromNT(living, source, bullet.damage, true, true, bullet.config.knockbackMult, bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent); + if(!living.isEntityAlive()) ConfettiUtil.decideConfetti(living, source); } }; @@ -218,21 +253,15 @@ public class BulletConfig implements Cloneable { if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; - DamageSource damageCalc = beam.config.getDamage(beam, beam.thrower, false); + DamageSource source = beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass); if(!(entity instanceof EntityLivingBase)) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, beam.damage); + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, beam.damage); return; } EntityLivingBase living = (EntityLivingBase) entity; - - if(beam.config.armorPiercingPercent == 0) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, beam.damage); - } else { - DamageSource damagePiercing = beam.config.getDamage(beam, beam.thrower, true); - EntityDamageUtil.attackArmorPiercing(living, damageCalc, damagePiercing, beam.damage, beam.config.armorPiercingPercent); - } + EntityDamageUtil.attackEntityFromNT(living, source, beam.damage, true, false, beam.config.knockbackMult, beam.config.armorThresholdNegation, beam.config.armorPiercingPercent); } }; 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 5a4787853..90f21ddf5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java @@ -14,6 +14,7 @@ import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; /** * Despite how complicated the GunConfig looks, it actually only exists to hold together a bunch of fields. Everything else is infrastructure for getting and setting. @@ -29,9 +30,11 @@ public class GunConfig { public static final String F_DURABILITY = "F_DURABILITY"; public static final String I_DRAWDURATION = "I_DRAWDURATION"; public static final String I_INSPECTDURATION = "I_INSPECTDURATION"; + 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_RELOADANIMATIONSEQUENTIAL = "B_RELOADANIMATIONSEQUENTIAL"; + public static final String O_SCOPETEXTURE = "O_SCOPETEXTURE"; public static final String CON_SMOKE = "CON_SMOKE"; public static final String CON_ORCHESTRA = "CON_ORCHESTRA"; public static final String CON_ONPRESSPRIMARY = "CON_ONPRESSPRIMARY"; @@ -53,9 +56,11 @@ public class GunConfig { protected float durability_DNA; protected int drawDuration_DNA = 0; protected int inspectDuration_DNA = 0; + protected boolean inspectCancel_DNA = true; protected Crosshair crosshair_DNA; protected boolean hideCrosshair_DNA = true; protected boolean reloadAnimationsSequential_DNA; + protected ResourceLocation scopeTexture_DNA; /** Handles smoke clientside */ protected BiConsumer smokeHandler_DNA; /** This piece only triggers during reloads, playing sounds depending on the reload's progress making reload sounds easier and synced to animations */ @@ -82,9 +87,11 @@ public class GunConfig { public float getDurability(ItemStack stack) { return WeaponUpgradeManager.eval(durability_DNA, stack, F_DURABILITY, this); } public int getDrawDuration(ItemStack stack) { return WeaponUpgradeManager.eval(drawDuration_DNA, stack, I_DRAWDURATION, this); } public int getInspectDuration(ItemStack stack) { return WeaponUpgradeManager.eval(inspectDuration_DNA, stack, I_INSPECTDURATION, this); } + public boolean getInspectCancel(ItemStack stack) { return WeaponUpgradeManager.eval(inspectCancel_DNA, stack, I_INSPECTCANCEL, this); } public Crosshair getCrosshair(ItemStack stack) { return WeaponUpgradeManager.eval(crosshair_DNA, stack, O_CROSSHAIR, this); } public boolean getHideCrosshair(ItemStack stack) { return WeaponUpgradeManager.eval(hideCrosshair_DNA, stack, B_HIDECROSSHAIR, this); } public boolean getReloadAnimSequential(ItemStack stack) { return WeaponUpgradeManager.eval(reloadAnimationsSequential_DNA, stack, B_RELOADANIMATIONSEQUENTIAL, this); } + public ResourceLocation getScopeTexture(ItemStack stack) { return WeaponUpgradeManager.eval(scopeTexture_DNA, stack, O_SCOPETEXTURE, this); } public BiConsumer getSmokeHandler(ItemStack stack) { return WeaponUpgradeManager.eval(smokeHandler_DNA, stack, CON_SMOKE, this); } public BiConsumer getOrchestra(ItemStack stack) { return WeaponUpgradeManager.eval(this.orchestra_DNA, stack, CON_ORCHESTRA, this); } @@ -105,13 +112,15 @@ public class GunConfig { /* SETTERS */ - public GunConfig rec(Receiver... receivers) { this.receivers_DNA = receivers; return this; } - public GunConfig dura(float dura) { this.durability_DNA = dura; return this; } - public GunConfig draw(int draw) { this.drawDuration_DNA = draw; return this; } - public GunConfig inspect(int inspect) { this.inspectDuration_DNA = inspect; 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 reloadSequential(boolean flag) { this.reloadAnimationsSequential_DNA = flag; return this; } + public GunConfig rec(Receiver... receivers) { this.receivers_DNA = receivers; return this; } + public GunConfig dura(float dura) { this.durability_DNA = dura; return this; } + public GunConfig draw(int draw) { this.drawDuration_DNA = draw; return this; } + public GunConfig inspect(int inspect) { this.inspectDuration_DNA = inspect; return this; } + 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 reloadSequential(boolean flag) { this.reloadAnimationsSequential_DNA = flag; return this; } + public GunConfig scopeTexture(ResourceLocation tex) { this.scopeTexture_DNA = tex; return this; } public GunConfig smoke(BiConsumer smoke) { this.smokeHandler_DNA = smoke; return this; } public GunConfig orchestra(BiConsumer orchestra) { this.orchestra_DNA = orchestra; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java index 10af203e0..ce88b06df 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -1,5 +1,6 @@ package com.hbm.items.weapon.sedna; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; @@ -23,6 +24,7 @@ import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -43,11 +45,26 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei public long[] lastShot; /** [0;1] randomized every shot for various rendering applications */ public double shotRand = 0D; + + public static List secrets = new ArrayList(); public static float recoilVertical = 0; public static float recoilHorizontal = 0; + public static float recoilDecay = 0.75F; + public static float recoilRebound = 0.25F; public static float offsetVertical = 0; public static float offsetHorizontal = 0; + + public static void setupRecoil(float vertical, float horizontal, float decay, float rebound) { + recoilVertical += vertical; + recoilHorizontal += horizontal; + recoilDecay = decay; + recoilRebound = rebound; + } + + public static void setupRecoil(float vertical, float horizontal) { + setupRecoil(vertical, horizontal, 0.75F, 0.25F); + } public static final String O_GUNCONFIG = "O_GUNCONFIG_"; @@ -65,6 +82,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei public static final String KEY_ANIMTIMER = "animtimer_"; public static final String KEY_LOCKONTARGET = "lockontarget"; public static final String KEY_LOCKEDON = "lockedon"; + public static final String KEY_CANCELRELOAD = "cancel"; public static ConcurrentHashMap loopedSounds = new ConcurrentHashMap(); @@ -81,12 +99,17 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei return WeaponUpgradeManager.eval(cfg, stack, O_GUNCONFIG + index, this); } + public int getConfigCount() { + return configs_DNA.length; + } + public ItemGunBaseNT(WeaponQuality quality, GunConfig... cfg) { this.setMaxStackSize(1); this.configs_DNA = cfg; this.quality = quality; this.lastShot = new long[cfg.length]; - this.setCreativeTab(MainRegistry.weaponTab); + if(quality == WeaponQuality.A_SIDE || quality == WeaponQuality.SPECIAL) this.setCreativeTab(MainRegistry.weaponTab); + if(quality == WeaponQuality.LEGENDARY || quality == WeaponQuality.SECRET) this.secrets.add(this); this.setTextureName(RefStrings.MODID + ":gun_darter"); } @@ -100,12 +123,11 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei } public static enum GunState { - DRAWING, //initial delay after selecting - IDLE, //gun can be fired or reloaded - WINDUP, //fire button is down, added delay before fire - COOLDOWN, //gun has been fired, cooldown - RELOADING, //gun is currently reloading - JAMMED, //gun is jammed, either after reloading or while firing + DRAWING, //forced delay where nothing can be done + IDLE, //the gun is ready to fire or reload + COOLDOWN, //forced delay, but with option for refire + RELOADING, //forced delay after which a reload action happens, may be canceled (TBI) + JAMMED, //forced delay due to jamming } @SideOnly(Side.CLIENT) @@ -117,7 +139,12 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei for(Receiver rec : config.getReceivers(stack)) { IMagazine mag = rec.getMagazine(stack); list.add("Ammo: " + mag.getIconForHUD(stack, player).getDisplayName() + " " + mag.reportAmmoStateForHUD(stack, player)); - list.add("Base Damage: " + rec.getBaseDamage(stack)); + float dmg = rec.getBaseDamage(stack); + list.add("Base Damage: " + dmg); + if(mag.getType(stack, player.inventory) instanceof BulletConfig) { + BulletConfig bullet = (BulletConfig) mag.getType(stack, player.inventory); + list.add("Damage with current ammo: " + dmg * bullet.damageMult + (bullet.projectilesMin > 1 ? (" x" + (bullet.projectilesMin != bullet.projectilesMax ? (bullet.projectilesMin + "-" + bullet.projectilesMax) : bullet.projectilesMin)) : "")); + } } } @@ -126,7 +153,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei case B_SIDE: list.add(EnumChatFormatting.GOLD + "B-Side"); break; case LEGENDARY: list.add(EnumChatFormatting.RED + "Legendary Weapon"); break; case SPECIAL: list.add(EnumChatFormatting.AQUA + "Special Weapon"); break; - case SECRET: list.add(EnumChatFormatting.DARK_RED + "SECRET"); break; + case SECRET: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.DARK_RED : EnumChatFormatting.RED) + "SECRET"); break; case DEBUG: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD) + "DEBUG"); break; } } @@ -161,7 +188,13 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei @Override public void onEquip(EntityPlayer player, ItemStack stack) { - for(int i = 0; i < this.configs_DNA.length; i++) playAnimation(player, stack, AnimType.EQUIP, i); + for(int i = 0; i < this.configs_DNA.length; i++) { + playAnimation(player, stack, AnimType.EQUIP, i); + this.setPrimary(stack, i, false); + this.setSecondary(stack, i, false); + this.setTertiary(stack, i, false); + this.setReloadKey(stack, i, false); + } } public static void playAnimation(EntityPlayer player, ItemStack stack, AnimType type, int index) { @@ -280,6 +313,9 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei public static void setTertiary(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_TERTIARY + index, value); } public static boolean getReloadKey(ItemStack stack, int index) { return getValueBool(stack, KEY_RELOAD + index); } public static void setReloadKey(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_RELOAD + index, value); } + // RELOAD CANCEL // + public static boolean getReloadCancel(ItemStack stack) { return getValueBool(stack, KEY_CANCELRELOAD); } + public static void setReloadCancel(ItemStack stack, boolean value) { setValueBool(stack, KEY_CANCELRELOAD, value); } /// UTIL /// @@ -339,6 +375,8 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei bottomOffset += component.getComponentHeight(player, stack); } } + + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } public static class SmokeNode { diff --git a/src/main/java/com/hbm/items/weapon/sedna/Receiver.java b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java index 65428c895..fd855a430 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/Receiver.java +++ b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java @@ -39,6 +39,7 @@ public class Receiver { public static final String F_FIREPITCH = "F_FIREPITCH"; public static final String O_MAGAZINE = "O_MAGAZINE"; public static final String O_PROJECTILEOFFSET = "O_PROJECTILEOFFSET"; + public static final String O_PROJECTILEOFFSETSCOPED = "O_PROJECTILEOFFSETSCOPED"; public static final String FUN_CANFIRE = "FUN_CANFIRE"; public static final String CON_ONFIRE = "CON_ONFIRE"; public static final String CON_ONRECOIL = "CON_ONRECOIL"; @@ -69,6 +70,7 @@ public class Receiver { protected float firePitch_DNA = 1.0F; protected IMagazine magazine_DNA; protected Vec3 projectileOffset_DNA = Vec3.createVectorHelper(0, 0, 0); + protected Vec3 projectileOffsetScoped_DNA = Vec3.createVectorHelper(0, 0, 0); protected BiFunction canFire_DNA; protected BiConsumer onFire_DNA; protected BiConsumer onRecoil_DNA; @@ -95,25 +97,27 @@ public class Receiver { public float getFirePitch(ItemStack stack) { return WeaponUpgradeManager.eval(this.firePitch_DNA, stack, F_FIREPITCH, this); } public IMagazine getMagazine(ItemStack stack) { return WeaponUpgradeManager.eval(this.magazine_DNA, stack, O_MAGAZINE, this); } public Vec3 getProjectileOffset(ItemStack stack) { return WeaponUpgradeManager.eval(this.projectileOffset_DNA, stack, O_PROJECTILEOFFSET, this); } + public Vec3 getProjectileOffsetScoped(ItemStack stack) { return WeaponUpgradeManager.eval(this.projectileOffsetScoped_DNA, stack, O_PROJECTILEOFFSETSCOPED, this); } public BiFunction getCanFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.canFire_DNA, stack, FUN_CANFIRE, this); } public BiConsumer getOnFire(ItemStack stack) { return WeaponUpgradeManager.eval(this.onFire_DNA, stack, CON_ONFIRE, this); } public BiConsumer getRecoil(ItemStack stack) { return WeaponUpgradeManager.eval(this.onRecoil_DNA, stack, CON_ONRECOIL, this); } /* SETTERS */ - public Receiver dmg(float dmg) { this.baseDamage_DNA = dmg; return this; } - public Receiver delay(int delay) { this.delayAfterFire_DNA = this.delayAfterDryFire_DNA = delay; return this; } - public Receiver dry(int delay) { this.delayAfterDryFire_DNA = delay; return this; } - public Receiver rounds(int rounds) { this.roundsPerCycle_DNA = rounds; return this; } - public Receiver spread(float spread) { this.spreadModExtra_DNA = spread; return this; } - public Receiver auto(boolean auto) { this.refireOnHold_DNA = auto; return this; } - public Receiver autoAfterDry(boolean auto) { this.refireAfterDry_DNA = auto; return this; } - public Receiver dryfire(boolean dryfire) { this.doesDryFire_DNA = dryfire; return this; } - public Receiver dryfireAfterAuto(boolean dryfire) { this.doesDryFireAfterAuto_DNA = dryfire; return this; } - public Receiver ejectOnFire(boolean eject) { this.ejectOnFire_DNA = eject; return this; } - public Receiver mag(IMagazine magazine) { this.magazine_DNA = magazine; return this; } - public Receiver offset(double f, double u, double s) { this.projectileOffset_DNA = Vec3.createVectorHelper(f, u, s); return this; } - public Receiver jam(int jam) { this.jamDuration_DNA = jam; return this; } + public Receiver dmg(float dmg) { this.baseDamage_DNA = dmg; return this; } + public Receiver delay(int delay) { this.delayAfterFire_DNA = this.delayAfterDryFire_DNA = delay; return this; } + public Receiver dry(int delay) { this.delayAfterDryFire_DNA = delay; return this; } + public Receiver rounds(int rounds) { this.roundsPerCycle_DNA = rounds; return this; } + public Receiver spread(float spread) { this.spreadModExtra_DNA = spread; return this; } + public Receiver auto(boolean auto) { this.refireOnHold_DNA = auto; return this; } + public Receiver autoAfterDry(boolean auto) { this.refireAfterDry_DNA = auto; return this; } + public Receiver dryfire(boolean dryfire) { this.doesDryFire_DNA = dryfire; return this; } + public Receiver dryfireAfterAuto(boolean dryfire) { this.doesDryFireAfterAuto_DNA = dryfire; return this; } + public Receiver ejectOnFire(boolean eject) { this.ejectOnFire_DNA = eject; return this; } + public Receiver mag(IMagazine magazine) { this.magazine_DNA = magazine; return this; } + public Receiver offset(double f, double u, double s) { this.projectileOffset_DNA = Vec3.createVectorHelper(f, u, s); this.projectileOffsetScoped_DNA = Vec3.createVectorHelper(f, u, 0); return this; } + public Receiver offsetScoped(double f, double u, double s) { this.projectileOffsetScoped_DNA = Vec3.createVectorHelper(f, u, s); return this; } + public Receiver jam(int jam) { this.jamDuration_DNA = jam; return this; } public Receiver reload(int delay) { return reload(0, delay, delay, 0, 0); } public Receiver reload(int begin, int cycle, int end, int cock) { return reload(0, begin, cycle, end, cock); } @@ -138,6 +142,5 @@ public class Receiver { } public Receiver setupStandardFire() { return this.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE) .fire(Lego.LAMBDA_STANDARD_FIRE); } - public Receiver setupBeamFire() { return this.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE) .fire(Lego.LAMBDA_BEAM_FIRE); } public Receiver setupLockonFire() { return this.canFire(Lego.LAMBDA_LOCKON_CAN_FIRE) .fire(Lego.LAMBDA_STANDARD_FIRE); } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java new file mode 100644 index 000000000..78f42363a --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java @@ -0,0 +1,46 @@ +package com.hbm.items.weapon.sedna.factory; + +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.helper.AshesCreator; +import com.hbm.particle.helper.SkeletonCreator; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; + +public class ConfettiUtil { + + public static void decideConfetti(EntityLivingBase entity, DamageSource source) { + if(entity.isEntityAlive()) return; + if(source.damageType.equals(DamageClass.LASER.name())) pulverize(entity); + if(source.damageType.equals(DamageClass.ELECTRIC.name())) pulverize(entity); + if(source.isExplosion()) gib(entity); + if(source.isFireDamage()) cremate(entity); + } + + public static void pulverize(EntityLivingBase entity) { + int amount = MathHelper.clamp_int((int) (entity.width * entity.height * entity.width * 25), 5, 50); + AshesCreator.composeEffect(entity.worldObj, entity, amount, 0.125F); + SkeletonCreator.composeEffect(entity.worldObj, entity, 1F); + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.fire.disintegration", 2.0F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + + public static void cremate(EntityLivingBase entity) { + int amount = MathHelper.clamp_int((int) (entity.width * entity.height * entity.width * 25), 5, 50); + AshesCreator.composeEffect(entity.worldObj, entity, amount, 0.125F); + SkeletonCreator.composeEffect(entity.worldObj, entity, 0.25F); + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:weapon.fire.disintegration", 2.0F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + + public static void gib(EntityLivingBase entity) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", entity.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, entity.posX, entity.posY + entity.height * 0.5, entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY + entity.height * 0.5, entity.posZ, 150)); + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + entity.getRNG().nextFloat() * 0.2F); + } +} 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 85a1d3e3a..757a1e938 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 @@ -28,6 +28,7 @@ public class GunFactory { /// AMMO ITEMS /// ModItems.ammo_debug = new Item().setUnlocalizedName("ammo_debug").setTextureName(RefStrings.MODID + ":ammo_45"); ModItems.ammo_standard = new ItemEnumMulti(EnumAmmo.class, true, true).setUnlocalizedName("ammo_standard").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_standard"); + ModItems.ammo_secret = new ItemEnumMulti(EnumAmmoSecret.class, true, true).setUnlocalizedName("ammo_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ammo_secret"); /// BULLLET CFGS /// ammo_debug = new BulletConfig().setItem(ModItems.ammo_debug).setSpread(0.01F).setRicochetAngle(45).setCasing(CASING44.clone().register("DEBUG0")); @@ -41,7 +42,7 @@ public class GunFactory { .mag(new MagazineFullReload(0, 12).addConfigs(ammo_debug, ammo_debug_buckshot)) .offset(0.75, -0.0625, -0.3125D) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE)) - .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY) .pr(Lego.LAMBDA_STANDARD_RELOAD) .pt(Lego.LAMBDA_TOGGLE_AIM) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD).pt(Lego.LAMBDA_TOGGLE_AIM) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(Lego.LAMBDA_DEBUG_ANIMS) ).setUnlocalizedName("gun_debug"); @@ -61,6 +62,9 @@ public class GunFactory { XFactoryEnergy.init(); XFactoryAccelerator.init(); XFactoryCatapult.init(); + XFactory75Bolt.init(); + XFactoryFolly.init(); + XFactoryTurret.init(); /// PROXY BULLSHIT /// MainRegistry.proxy.registerGunCfg(); @@ -68,21 +72,27 @@ public class GunFactory { public static enum EnumAmmo { STONE, STONE_AP, STONE_IRON, STONE_SHOT, - M357_SP, M357_FMJ, M357_JHP, M357_AP, M357_EXPRESS, - M44_SP, M44_FMJ, M44_JHP, M44_AP, M44_EXPRESS, + M357_BP, M357_SP, M357_FMJ, M357_JHP, M357_AP, M357_EXPRESS, + M44_BP, M44_SP, M44_FMJ, M44_JHP, M44_AP, M44_EXPRESS, P22_SP, P22_FMJ, P22_JHP, P22_AP, P9_SP, P9_FMJ, P9_JHP, P9_AP, R556_SP, R556_FMJ, R556_JHP, R556_AP, R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, - G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, G12_ANTHRAX, + B75, B75_INC, B75_EXP, + G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, //G12_ANTHRAX, G26_FLARE, G26_FLARE_SUPPLY, G26_FLARE_WEAPON, G40_HE, G40_HEAT, G40_DEMO, G40_INC, G40_PHOSPHORUS, ROCKET_HE, ROCKET_HEAT, ROCKET_DEMO, ROCKET_INC, ROCKET_PHOSPHORUS, FLAME_DIESEL, FLAME_GAS, FLAME_NAPALM, FLAME_BALEFIRE, - CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_BLACKLIGHTNING, + CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR, TAU_URANIUM, - NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, + COIL_TUNGSTEN, COIL_FERROURANIUM, + NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE + } + + public static enum EnumAmmoSecret { + FOLLY_SM, FOLLY_NUKE, M44_EQUESTRIAN, G12_EQUESTRIAN, BMG50_EQUESTRIAN } } 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 2b8fa6b2d..a6d1fd2fd 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 @@ -8,12 +8,15 @@ import static com.hbm.items.weapon.sedna.factory.XFactory40mm.*; import static com.hbm.items.weapon.sedna.factory.XFactory44.*; import static com.hbm.items.weapon.sedna.factory.XFactory50.*; import static com.hbm.items.weapon.sedna.factory.XFactory556mm.*; +import static com.hbm.items.weapon.sedna.factory.XFactory75Bolt.*; import static com.hbm.items.weapon.sedna.factory.XFactory762mm.*; import static com.hbm.items.weapon.sedna.factory.XFactory9mm.*; import static com.hbm.items.weapon.sedna.factory.XFactoryAccelerator.*; import static com.hbm.items.weapon.sedna.factory.XFactoryBlackPowder.*; import static com.hbm.items.weapon.sedna.factory.XFactoryCatapult.*; import static com.hbm.items.weapon.sedna.factory.XFactoryEnergy.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryFolly.*; +import static com.hbm.items.weapon.sedna.factory.XFactoryTurret.*; import static com.hbm.items.weapon.sedna.factory.XFactoryRocket.*; import java.util.function.BiConsumer; @@ -34,7 +37,8 @@ public class GunFactoryClient { //GUNS MinecraftForgeClient.registerItemRenderer(ModItems.gun_debug, new ItemRenderDebug()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_pepperbox, new ItemRenderPepperbox()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver, new ItemRenderAtlas()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver, new ItemRenderAtlas(ResourceManager.bio_revolver_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver_atlas, new ItemRenderAtlas(ResourceManager.bio_revolver_atlas_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_light_revolver_dani, new ItemRenderDANI()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_henry, new ItemRenderHenry()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_greasegun, new ItemRenderGreasegun()); @@ -48,9 +52,12 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_am180, new ItemRenderAm180()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_liberator, new ItemRenderLiberator()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderCongoLake()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderFlamer()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderFlamer(ResourceManager.flamethrower_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_topaz, new ItemRenderFlamer(ResourceManager.flamethrower_topaz_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_daybreaker, new ItemRenderFlamer(ResourceManager.flamethrower_daybreaker_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lag, new ItemRenderLAG()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi, new ItemRenderUzi()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_akimbo, new ItemRenderUziAkimbo()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderSPAS12()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_panzerschreck, new ItemRenderPanzerschreck()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3, new ItemRenderG3()); @@ -60,12 +67,18 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderShredder(ResourceManager.sexy_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderQuadro()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun(ResourceManager.minigun_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun_lacunae, new ItemRenderMinigun(ResourceManager.minigun_lacunae_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_missile_launcher, new ItemRenderMissileLauncher()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_tesla_cannon, new ItemRenderTeslaCannon()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_stg77, new ItemRenderSTG77()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_tau, new ItemRenderTau()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fatman, new ItemRenderFatMan()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_lasrifle, new ItemRenderLasrifle()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderCoilgun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_hangman, new ItemRenderHangman()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderBolter()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_folly, new ItemRenderFolly()); //PROJECTILES ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); ammo_debug_buckshot.setRenderer(LegoClient.RENDER_STANDARD_BULLET); @@ -74,13 +87,15 @@ public class GunFactoryClient { flint.setRenderer(LegoClient.RENDER_STANDARD_BULLET); iron.setRenderer(LegoClient.RENDER_STANDARD_BULLET); shot.setRenderer(LegoClient.RENDER_STANDARD_BULLET); - + + m357_bp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m357_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m357_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m357_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m357_ap.setRenderer(LegoClient.RENDER_AP_BULLET); m357_express.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); - + + m44_bp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m44_sp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m44_fmj.setRenderer(LegoClient.RENDER_STANDARD_BULLET); m44_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); @@ -114,6 +129,10 @@ public class GunFactoryClient { bmg50_jhp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); bmg50_ap.setRenderer(LegoClient.RENDER_AP_BULLET); bmg50_du.setRenderer(LegoClient.RENDER_DU_BULLET); + + b75.setRenderer(LegoClient.RENDER_AP_BULLET); + b75_inc.setRenderer(LegoClient.RENDER_AP_BULLET); + b75_exp.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); g12_bp.setRenderer(LegoClient.RENDER_STANDARD_BULLET); g12_bp_magnum.setRenderer(LegoClient.RENDER_STANDARD_BULLET); @@ -124,14 +143,14 @@ public class GunFactoryClient { g12_magnum.setRenderer(LegoClient.RENDER_STANDARD_BULLET); g12_explosive.setRenderer(LegoClient.RENDER_EXPRESS_BULLET); g12_phosphorus.setRenderer(LegoClient.RENDER_AP_BULLET); - g12_anthrax.setRenderer(LegoClient.RENDER_STANDARD_BULLET); + //g12_anthrax.setRenderer(LegoClient.RENDER_STANDARD_BULLET); g12_equestrian.setRenderer(LegoClient.RENDER_LEGENDARY_BULLET); g26_flare.setRenderer(LegoClient.RENDER_FLARE); g26_flare_supply.setRenderer(LegoClient.RENDER_FLARE_SUPPLY); g26_flare_weapon.setRenderer(LegoClient.RENDER_FLARE_WEAPON); - setRendererBulk(LegoClient.RENDER_GRENADE, g40_he, g40_heat, g40_demo, g40_inc); + setRendererBulk(LegoClient.RENDER_GRENADE, g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus); setRendererBulk(LegoClient.RENDER_RPZB, rocket_rpzb); setRendererBulk(LegoClient.RENDER_QD, rocket_qd); @@ -144,10 +163,21 @@ public class GunFactoryClient { setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge); setRendererBulkBeam(LegoClient.RENDER_TAU, tau_uranium); setRendererBulkBeam(LegoClient.RENDER_TAU_CHARGE, tau_uranium_charge); + setRendererBulkBeam(LegoClient.RENDER_LASER_RED, energy_las, energy_las_overcharge, energy_las_ir); + setRendererBulkBeam(LegoClient.RENDER_LASER_PURPLE, energy_lacunae, energy_lacunae_overcharge, energy_lacunae_ir); + + setRendererBulk(LegoClient.RENDER_AP_BULLET, coil_tungsten, coil_ferrouranium); + + folly_sm.setRendererBeam(LegoClient.RENDER_FOLLY); + folly_nuke.setRenderer(LegoClient.RENDER_BIG_NUKE); + + setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots + //HUDS ((ItemGunBaseNT) ModItems.gun_debug) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_pepperbox) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_light_revolver) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_light_revolver_atlas) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_henry) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_greasegun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_maresleg) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); @@ -160,6 +190,8 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_liberator) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_congolake) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_flamer) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); + ((ItemGunBaseNT) ModItems.gun_flamer_topaz) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); + ((ItemGunBaseNT) ModItems.gun_flamer_daybreaker) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER); ((ItemGunBaseNT) ModItems.gun_uzi) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_spas12) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_panzerschreck) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); @@ -172,16 +204,24 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_quadro) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_lag) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_minigun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_minigun_lacunae) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_missile_launcher) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_tesla_cannon) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_stg77) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_tau) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_fatman) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_lasrifle) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_coilgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_hangman) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_bolter) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_folly) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); ((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); + ((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); } public static void setRendererBulk(BiConsumer renderer, BulletConfig... configs) { for(BulletConfig config : configs) config.setRenderer(renderer); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java index d0769f4a9..da9267e04 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunStateDecider.java @@ -63,9 +63,10 @@ public class GunStateDecider { IMagazine mag = rec.getMagazine(stack); mag.reloadAction(stack, ctx.inventory); + boolean cancel = ItemGunBaseNT.getReloadCancel(stack); //if after reloading the gun can still reload, assume a tube mag and resume reloading - if(mag.canReload(stack, ctx.inventory)) { + if(!cancel && mag.canReload(stack, ctx.inventory)) { ItemGunBaseNT.setState(stack, gunIndex, GunState.RELOADING); ItemGunBaseNT.setTimer(stack, gunIndex, rec.getReloadCycleDuration(stack)); ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD_CYCLE, gunIndex); @@ -82,6 +83,8 @@ public class GunStateDecider { ItemGunBaseNT.setTimer(stack, gunIndex, duration); ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD_END, gunIndex); } + + ItemGunBaseNT.setReloadCancel(stack, false); } mag.setAmountAfterReload(stack, mag.getAmount(stack, ctx.inventory)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index a7f9dc938..d8226936d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -6,6 +6,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBaseMK4CL; import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; @@ -13,6 +14,7 @@ import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.interfaces.NotableComments; import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.BulletConfig.ProjectileType; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; @@ -20,7 +22,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.SmokeNode; import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.mags.IMagazine; -import com.hbm.particle.helper.BlackPowderHelper; +import com.hbm.particle.helper.BlackPowderCreator; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; @@ -64,6 +66,10 @@ public class Lego { ItemGunBaseNT.playAnimation(player, stack, AnimType.RELOAD, ctx.configIndex); } else { ItemGunBaseNT.playAnimation(player, stack, AnimType.INSPECT, ctx.configIndex); + if(!ctx.config.getInspectCancel(stack)) { + ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, ctx.configIndex, ctx.config.getInspectDuration(stack)); + } } } }; @@ -101,6 +107,10 @@ public class Lego { } } } + + if(state == GunState.RELOADING) { + ItemGunBaseNT.setReloadCancel(stack, true); + } } /** If IDLE, switch mode between 0 and 1. */ @@ -120,12 +130,6 @@ public class Lego { } }; - /** Toggles isAiming. Used by keybinds. */ - public static BiConsumer LAMBDA_STANDARD_RECOIL = (stack, ctx) -> { - //ItemGunBaseNT.recoilVertical += 10; - //ItemGunBaseNT.recoilHorizontal += ctx.player.getRNG().nextGaussian() * 1.5; - }; - /** Default smoke. */ public static BiConsumer LAMBDA_STANDARD_SMOKE = (stack, ctx) -> { handleStandardSmoke(ctx.entity, stack, 2000, 0.025D, 1.15D, ctx.configIndex); @@ -190,9 +194,6 @@ public class Lego { doStandardFire(stack, ctx, AnimType.CYCLE, true); ItemGunBaseNT.setIsLockedOn(stack, false); }; - public static BiConsumer LAMBDA_BEAM_FIRE = (stack, ctx) -> { - doBeamFire(stack, ctx, AnimType.CYCLE, true); - }; public static void doStandardFire(ItemStack stack, LambdaContext ctx, AnimType anim, boolean calcWear) { EntityLivingBase entity = ctx.entity; @@ -204,11 +205,11 @@ public class Lego { Receiver primary = ctx.config.getReceivers(stack)[0]; IMagazine mag = primary.getMagazine(stack); BulletConfig config = (BulletConfig) mag.getType(stack, ctx.inventory); - - Vec3 offset = primary.getProjectileOffset(stack); + + Vec3 offset = ItemGunBaseNT.getIsAiming(stack) ? primary.getProjectileOffsetScoped(stack) : primary.getProjectileOffset(stack); double forwardOffset = offset.xCoord; double heightOffset = offset.yCoord; - double sideOffset = ItemGunBaseNT.getIsAiming(stack) ? 0 : offset.zCoord; //TODO: make this configurable + double sideOffset = offset.zCoord; /*forwardOffset = 0.75; heightOffset = -0.125; @@ -220,45 +221,21 @@ public class Lego { for(int i = 0; i < projectiles; i++) { float damage = calcDamage(ctx, stack, primary, calcWear, index); float spread = calcSpread(ctx, stack, primary, calcWear, index, aim); - EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); - if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack)); - if(i == 0 && config.blackPowder) BlackPowderHelper.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F); - entity.worldObj.spawnEntityInWorld(mk4); - } - - mag.useUpAmmo(stack, ctx.inventory, 1); - if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear, ctx.config.getDurability(stack))); - } - - //shittily copy pasted because god damn this sucks ass why do projectiles need this much fucking setup jesus christ have mercy - public static void doBeamFire(ItemStack stack, LambdaContext ctx, AnimType anim, boolean calcWear) { - EntityLivingBase entity = ctx.entity; - EntityPlayer player = ctx.getPlayer(); - int index = ctx.configIndex; - if(anim != null) ItemGunBaseNT.playAnimation(player, stack, anim, ctx.configIndex); - - float aim = ItemGunBaseNT.getIsAiming(stack) ? 0.25F : 1F; - Receiver primary = ctx.config.getReceivers(stack)[0]; - IMagazine mag = primary.getMagazine(stack); - BulletConfig config = (BulletConfig) mag.getType(stack, ctx.inventory); - - Vec3 offset = primary.getProjectileOffset(stack); - double forwardOffset = offset.xCoord; - double heightOffset = offset.yCoord; - double sideOffset = ItemGunBaseNT.getIsAiming(stack) ? 0 : offset.zCoord; - - /*forwardOffset = 0.75; - heightOffset = 0; - sideOffset = -0.375D;*/ - - int projectiles = config.projectilesMin; - if(config.projectilesMax > config.projectilesMin) projectiles += entity.getRNG().nextInt(config.projectilesMax - config.projectilesMin + 1); - - for(int i = 0; i < projectiles; i++) { - float damage = calcDamage(ctx, stack, primary, calcWear, index); - float spread = calcSpread(ctx, stack, primary, calcWear, index, aim); - EntityBulletBeamBase mk4 = new EntityBulletBeamBase(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); - entity.worldObj.spawnEntityInWorld(mk4); + + if(config.pType == ProjectileType.BULLET) { + EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack)); + if(i == 0 && config.blackPowder) BlackPowderCreator.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F); + entity.worldObj.spawnEntityInWorld(mk4); + } else if(config.pType == ProjectileType.BULLET_CHUNKLOADING) { + EntityBulletBaseMK4CL mk4 = new EntityBulletBaseMK4CL(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack)); + if(i == 0 && config.blackPowder) BlackPowderCreator.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F); + entity.worldObj.spawnEntityInWorld(mk4); + } else if(config.pType == ProjectileType.BEAM) { + EntityBulletBeamBase mk4 = new EntityBulletBeamBase(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset); + entity.worldObj.spawnEntityInWorld(mk4); + } } mag.useUpAmmo(stack, ctx.inventory, 1); @@ -296,7 +273,7 @@ public class Lego { public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); } public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) { ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range); - vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod)); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); vnt.explode(); 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 e8b97019b..a0a2c8bbb 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 @@ -19,6 +19,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -121,11 +122,18 @@ public class LegoClient { public static BiConsumer RENDER_FLARE_WEAPON = (bullet, interp) -> { renderFlare(bullet, interp, 0.5F, 1F, 0.5F); }; private static final ResourceLocation flare = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); - public static void renderFlare(EntityBulletBaseMK4 bullet, float interp, float r, float g, float b) { + public static void renderFlare(Entity bullet, float interp, float r, float g, float b) { if(bullet.ticksExisted < 2) return; - RenderArcFurnace.fullbright(true); + + double scale = Math.min(5, (bullet.ticksExisted + interp - 2) * 0.5) * (0.8 + bullet.worldObj.rand.nextDouble() * 0.4); + renderFlareSprite(bullet, interp, r, g, b, scale, 0.5F, 0.75F); + + RenderArcFurnace.fullbright(false); + } + public static void renderFlareSprite(Entity bullet, float interp, float r, float g, float b, double scale, float outerAlpha, float innerAlpha) { + GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); @@ -148,9 +156,8 @@ public class LegoClient { double posX = 0; double posY = 0; double posZ = 0; - double scale = Math.min(5, (bullet.ticksExisted + interp - 2) * 0.5) * (0.8 + bullet.worldObj.rand.nextDouble() * 0.4); - tess.setColorRGBA_F(r, g, b, 0.5F); + tess.setColorRGBA_F(r, g, b, outerAlpha); tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); @@ -158,7 +165,7 @@ public class LegoClient { scale *= 0.5D; - tess.setColorRGBA_F(1F, 1F, 1F, 0.75F); + tess.setColorRGBA_F(1F, 1F, 1F, innerAlpha); tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); @@ -172,7 +179,6 @@ public class LegoClient { GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); - RenderArcFurnace.fullbright(false); } public static BiConsumer RENDER_GRENADE = (bullet, interp) -> { @@ -184,6 +190,15 @@ public class LegoClient { GL11.glShadeModel(GL11.GL_FLAT); }; + public static BiConsumer RENDER_BIG_NUKE = (bullet, interp) -> { + GL11.glScalef(0.5F, 0.5F, 0.5F); + GL11.glRotated(90, 0, 0, 1); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.rocket_mirv_tex); + ResourceManager.projectiles.renderPart("MissileMIRV"); + GL11.glShadeModel(GL11.GL_FLAT); + }; + public static BiConsumer RENDER_RPZB = (bullet, interp) -> { GL11.glPushMatrix(); @@ -304,6 +319,54 @@ public class LegoClient { RenderArcFurnace.fullbright(false); }; + public static BiConsumer RENDER_LASER_RED = (bullet, interp) -> { + renderStandardLaser(bullet, interp, 0x80, 0x15, 0x15); + }; + + public static BiConsumer RENDER_LASER_PURPLE = (bullet, interp) -> { + renderStandardLaser(bullet, interp, 0x60, 0x15, 0x80); + }; + + public static void renderStandardLaser(EntityBulletBeamBase bullet, float interp, int r, int g, int b) { + + RenderArcFurnace.fullbright(true); + GL11.glPushMatrix(); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + GL11.glScaled(age / 2 + 0.5, 1, age / 2 + 0.5); + int colorInner = ((int)(r * age) << 16) | ((int)(g * age) << 8) | (int) (b * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 8, 0.0625F); + GL11.glPopMatrix(); + RenderArcFurnace.fullbright(false); + } + + public static BiConsumer RENDER_FOLLY = (bullet, interp) -> { + + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + RenderArcFurnace.fullbright(true); + + GL11.glPushMatrix(); + renderFlareSprite(bullet, interp, 1F, 1F, 1F, (1 - age) * 7.5 + 1.5, 0.5F * (float) age, 0.75F * (float) age); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + GL11.glScaled((1 - age) * 25 + 2.5, 1, (1 - age) * 25 + 2.5); + int colorInner = ((int)(0x20 * age) << 16) | ((int)(0x20 * age) << 8) | (int) (0x20 * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), 0F, 8, 0.0625F); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + + RenderArcFurnace.fullbright(false); + }; + public static BiConsumer RENDER_NUKE = (bullet, interp) -> { GL11.glPushMatrix(); 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 7e215b9f8..8349ae7a4 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 @@ -16,11 +16,15 @@ import com.hbm.particle.SpentCasing; import com.hbm.particle.helper.CasingCreator; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.sound.AudioWrapper; +import com.hbm.util.EntityDamageUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; /** Orchestras are server-side components that run along client-side animations. * The orchestra only knows what animation is or was playing and how long it started, but not if it is still active. @@ -569,12 +573,49 @@ public class Orchestras { } }; + public static BiConsumer ORCHESTRA_FLAMER_DAYBREAKER = (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 == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1F); + if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1F); + if(timer == 60) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.75F); + if(timer == 70) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertCanister", 1F, 1F); + if(timer == 85) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pressureValve", 1F, 1F); + } + }; + public static BiConsumer ORCHESTRA_LAG = (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.CYCLE) { + if(timer == 1) { + 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.0625, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 1F); + + } + if(type == AnimType.RELOAD) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.5F, 1.6F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } }; public static BiConsumer ORCHESTRA_UZI = (stack, ctx) -> { @@ -609,6 +650,38 @@ public class Orchestras { } }; + public static BiConsumer ORCHESTRA_UZI_AKIMBO = (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.EQUIP) { + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1.25F); + } + if(type == AnimType.CYCLE) { + if(timer == 1) { + int mult = ctx.configIndex == 0 ? -1 : 1; + 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, -0.375D * mult, 0, 0.18, -0.12 * mult, 0.01, casing.getName()); + } + } + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + + } + if(type == AnimType.RELOAD) { + if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + if(type == AnimType.JAMMED) { + if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F); + } + }; + public static BiConsumer ORCHESTRA_SPAS = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; @@ -675,8 +748,7 @@ public class Orchestras { } if(type == AnimType.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.8F); - if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); - if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 0.9F); } if(type == AnimType.RELOAD) { @@ -844,6 +916,9 @@ public class Orchestras { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); + } if(type == AnimType.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } @@ -893,9 +968,14 @@ 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(ClientConfig.GUN_ANIMS_LEGACY.get()) { if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.125, aiming ? -0.125 : -0.25, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); } if(type == AnimType.CYCLE_DRY) { @@ -918,6 +998,10 @@ public class Orchestras { } } else { if(type == AnimType.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, aiming ? 0.125 : 0.25, aiming ? -0.125 : -0.25, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 0.25F, 1.25F); } if(type == AnimType.CYCLE_DRY) { @@ -928,7 +1012,7 @@ public class Orchestras { if(type == AnimType.RELOAD) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 0.9F); if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); - if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1.25F); if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); if(timer == 43) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); } @@ -1028,4 +1112,130 @@ public class Orchestras { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.fatmanFull", 1F, 1F); } }; + + public static BiConsumer ORCHESTRA_LASRIFLE = (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.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1.5F); + } + + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 22) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_COILGUN = (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.coilgunReload", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_HANGMAN = (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.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); + } + + if(type == AnimType.RELOAD) { + + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); + if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + + if(timer == 10) { + Receiver rec = ctx.config.getReceivers(stack)[0]; + IMagazine mag = rec.getMagazine(stack); + SpentCasing casing = mag.getCasing(stack, ctx.inventory); + if(casing != null) for(int i = 0; i < mag.getCapacity(stack); i++) CasingCreator.composeEffect(entity.worldObj, entity, 0.25, -0.25, -0.125, -0.05, 0, 0, 0.01, casing.getName()); + } + } + + if(type == AnimType.INSPECT) { + if(timer == 16 && ctx.getPlayer() != null) { + MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D); + if(mop != null) { + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + float damage = 10F; + mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage); + mop.entityHit.motionX *= 2; + mop.entityHit.motionZ *= 2; + entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.smack", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + entity.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, b.stepSound.getStepResourcePath(), 2F, 0.9F + entity.getRNG().nextFloat() * 0.2F); + } + } + } + } + + if(type == AnimType.JAMMED) { + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.8F); + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 0.8F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 25) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.75F); + } + }; + + public static BiConsumer ORCHESTRA_BOLTER = (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.CYCLE) { + if(timer == 1) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.5, aiming ? 0 : -0.125, aiming ? -0.0625 : -0.25D, 0, 0.18, -0.12, 0.01, casing.getName()); + } + } + + if(type == AnimType.RELOAD) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + } + }; + + public static BiConsumer ORCHESTRA_FOLLY = (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 == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F); + if(timer == 80) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); + if(timer == 120) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F); + } + }; } 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 680fc7ed7..47932b03c 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 @@ -4,6 +4,7 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -14,6 +15,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; 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.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; import com.hbm.main.MainRegistry; @@ -50,46 +52,47 @@ public class XFactory12ga { public static void init() { - g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setBlackPowder(true).setProjectiles(8).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); - g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setBlackPowder(true).setProjectiles(4).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); - g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setBlackPowder(true).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); - g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); + g12_bp = new BulletConfig().setItem(EnumAmmo.G12_BP).setBlackPowder(true).setProjectiles(8).setDamage(0.5F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP")); + g12_bp_magnum = new BulletConfig().setItem(EnumAmmo.G12_BP_MAGNUM).setBlackPowder(true).setProjectiles(4).setDamage(0.5F/4F).setSpread(0.05F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_MAGNUM")); + g12_bp_slug = new BulletConfig().setItem(EnumAmmo.G12_BP_SLUG).setBlackPowder(true).setDamage(0.5F).setSpread(0.01F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_BRASS, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_BP_SLUG")); + g12 = new BulletConfig().setItem(EnumAmmo.G12).setProjectiles(8).setDamage(1F/8F).setSpread(0.05F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA")); g12_slug = new BulletConfig().setItem(EnumAmmo.G12_SLUG).setSpread(0.0F).setRicochetAngle(25).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x393939, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_SLUG")); - g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); - g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); - g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setOnImpact(LAMBDA_STANDARD_EXPLODE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); - g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")); - g12_anthrax = new BulletConfig().setItem(EnumAmmo.G12_ANTHRAX).setProjectiles(8).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x749300, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_ANTHRAX")); - g12_equestrian = new BulletConfig().setItem(EnumAmmo.G12_EQUESTRIAN).setDamage(0F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrian")); + g12_flechette = new BulletConfig().setItem(EnumAmmo.G12_FLECHETTE).setProjectiles(8).setDamage(1F/8F).setThresholdNegation(5F).setArmorPiercing(0.2F).setSpread(0.025F).setRicochetAngle(5).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x3C80F0, SpentCasing.COLOR_CASE_BRASS).setScale(0.75F).register("12GA_FLECHETTE")); + g12_magnum = new BulletConfig().setItem(EnumAmmo.G12_MAGNUM).setProjectiles(4).setDamage(2F/4F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x278400, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_MAGNUM")); + g12_explosive = new BulletConfig().setItem(EnumAmmo.G12_EXPLOSIVE).setDamage(2.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE).setSpread(0F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xDA4127, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_EXPLOSIVE")); + g12_phosphorus = new BulletConfig().setItem(EnumAmmo.G12_PHOSPHORUS).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x910001, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_PHOSPHORUS")) + .setOnImpact((bullet, mop) -> { if(mop.entityHit != null && mop.entityHit instanceof EntityLivingBase) { HbmLivingProps data = HbmLivingProps.getData((EntityLivingBase) mop.entityHit); if(data.phosphorus < 300) data.phosphorus = 300; } }); + //g12_anthrax = new BulletConfig().setItem(EnumAmmo.G12_ANTHRAX).setProjectiles(8).setDamage(1F/8F).setSpread(0.015F).setRicochetAngle(15).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x749300, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12GA_ANTHRAX")); + g12_equestrian = new BulletConfig().setItem(EnumAmmoSecret.G12_EQUESTRIAN).setDamage(0F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(SpentCasing.COLOR_CASE_EQUESTRIAN, SpentCasing.COLOR_CASE_12GA).setScale(0.75F).register("12gaEquestrian")); - BulletConfig[] all = new BulletConfig[] {g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus, g12_anthrax}; + BulletConfig[] all = new BulletConfig[] {g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus}; ModItems.gun_maresleg = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(600).draw(10).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 6).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) .setupStandardConfiguration() .anim(LAMBDA_MARESLEG_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG) ).setUnlocalizedName("gun_maresleg"); ModItems.gun_maresleg_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 6).addConfigs(all)) .offset(0.75, -0.0625, 0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO), new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(1, 6).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO) @@ -97,10 +100,10 @@ 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(12F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(32F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 6).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) - .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_MARESLEG)) .setupStandardConfiguration() .anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_SHORT) ).setUnlocalizedName("gun_maresleg_broken"); @@ -108,10 +111,10 @@ public class XFactory12ga { ModItems.gun_liberator = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(200).draw(20).inspect(21).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(8F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.shotgunAlt", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 4).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_LIBERATOR)) .setupStandardConfiguration() .anim(LAMBDA_LIBERATOR_ANIMS).orchestra(Orchestras.ORCHESTRA_LIBERATOR) ).setUnlocalizedName("gun_liberator"); @@ -119,10 +122,10 @@ public class XFactory12ga { ModItems.gun_spas12 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(600).draw(20).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(5, 10, 10, 10, 0).jam(36).sound("hbm:weapon.shotgunShoot", 1.0F, 1.0F) + .dmg(32F).delay(20).reload(5, 10, 10, 10, 0).jam(36).sound("hbm:weapon.shotgunShoot", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 8).addConfigs(all)) .offset(0.75, -0.0625, -0.1875) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG)) .setupStandardConfiguration().ps(LAMBDA_SPAS_SECONDARY).pt(null) .anim(LAMBDA_SPAS_ANIMS).orchestra(Orchestras.ORCHESTRA_SPAS) ).setUnlocalizedName("gun_spas12"); @@ -130,25 +133,41 @@ public class XFactory12ga { ModItems.gun_autoshotgun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(15F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(48F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 20).addConfigs(all)) .offset(0.75, -0.125, -0.25) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN)) .setupStandardConfiguration() .anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER) ).setUnlocalizedName("gun_autoshotgun"); 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(15F).delay(1).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus, g12_anthrax)) + .dmg(64F).delay(1).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, 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(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_SEXY)) .setupStandardConfiguration() .anim(LAMBDA_SEXY_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER_SEXY) ).setUnlocalizedName("gun_autoshotgun_sexy"); } - //TODO: make generic code for this crap + + public static BiConsumer LAMBDA_RECOIL_MARESLEG = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_LIBERATOR = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_AUTOSHOTGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5) + 1.5F, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_SEXY = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + public static BiConsumer LAMBDA_SPAS_SECONDARY = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; EntityPlayer player = ctx.getPlayer(); @@ -177,6 +196,9 @@ public class XFactory12ga { } } } + if(state == GunState.RELOADING) { + ItemGunBaseNT.setReloadCancel(stack, true); + } }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_MARESLEG_ANIMS = (stack, type) -> { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index 1d96625c8..9c1a3106b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -33,22 +33,22 @@ public class XFactory22lr { public static void init() { SpentCasing casing22 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.5F); - p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP) + p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP).setKnockback(0F) .setCasing(casing22.clone().register("p22")); - p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) + p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setKnockback(0F).setDamage(0.8F).setArmorPiercing(0.1F) .setCasing(casing22.clone().register("p22fmj")); - p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setDamage(1.5F).setArmorPiercing(-0.25F) + p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setKnockback(0F).setDamage(1.5F).setArmorPiercing(-0.25F) .setCasing(casing22.clone().register("p22jhp")); - p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) + p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F) .setCasing(casing22.clone().setColor(SpentCasing.COLOR_CASE_44).register("p22ap")); ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(177 * 25).draw(15).inspect(38).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(5F).delay(1).dry(10).auto(true).spread(0.02F).reload(66).jam(30).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(2F).delay(1).dry(10).auto(true).spread(0.02F).reload(66).jam(30).sound("hbm:weapon.fire.silenced", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 177).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap)) .offset(1, -0.0625 * 1.5, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_AM180)) .setupStandardConfiguration() .anim(LAMBDA_AM180_ANIMS).orchestra(Orchestras.ORCHESTRA_AM180) ).setUnlocalizedName("gun_am180"); @@ -57,6 +57,10 @@ public class XFactory22lr { public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 3000, 0.05D, 1.1D, 0); }; + + public static BiConsumer LAMBDA_RECOIL_AM180 = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); + }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AM180_ANIMS = (stack, type) -> { if(ClientConfig.GUN_ANIMS_LEGACY.get()) { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java index c3aff5e15..6d10b86be 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -1,5 +1,6 @@ package com.hbm.items.weapon.sedna.factory; +import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; @@ -8,6 +9,7 @@ import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; 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.mags.MagazineFullReload; @@ -20,6 +22,7 @@ import net.minecraft.item.ItemStack; public class XFactory357 { + public static BulletConfig m357_bp; public static BulletConfig m357_sp; public static BulletConfig m357_fmj; public static BulletConfig m357_jhp; @@ -27,6 +30,7 @@ public class XFactory357 { public static BulletConfig m357_express; public static void init() { + m357_bp = new BulletConfig().setItem(EnumAmmo.M357_BP).setDamage(0.5F).setBlackPowder(true); m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP); m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setDamage(0.8F).setArmorPiercing(0.1F); m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setDamage(1.5F).setArmorPiercing(-0.25F); @@ -36,35 +40,52 @@ public class XFactory357 { ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 6).addConfigs(m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .dmg(7.5F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) .offset(0.75, -0.0625, -0.3125D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS)) .setupStandardConfiguration() .anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS) ).setUnlocalizedName("gun_light_revolver"); - + ModItems.gun_light_revolver_atlas = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() + .dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(12.5F).delay(16).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .offset(0.75, -0.0625, -0.3125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS)) + .setupStandardConfiguration() + .anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_ATLAS) + ).setUnlocalizedName("gun_light_revolver_atlas"); ModItems.gun_light_revolver_dani = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 6).addConfigs(m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .dmg(15F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.1F) + .mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) .offset(0.75, -0.0625, 0.3125D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_DANI)) .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI), new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineFullReload(1, 6).addConfigs(m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) + .dmg(15F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 0.9F) + .mag(new MagazineFullReload(1, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express)) .offset(0.75, -0.0625, -0.3125D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_DANI)) .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI) ).setUnlocalizedName("gun_light_revolver_dani"); } + + public static BiConsumer LAMBDA_RECOIL_ATLAS = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_DANI = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.75)); + }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_ATLAS_ANIMS = (stack, type) -> { switch(type) { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java index bd4e17ae1..59568effd 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -2,8 +2,11 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Consumer; import com.hbm.entity.effect.EntityFireLingering; +import com.hbm.entity.logic.EntityC130; +import com.hbm.entity.logic.EntityC130.C130PayloadType; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; @@ -30,7 +33,11 @@ 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.util.EntityDamageUtil; +import com.hbm.util.TrackerUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -48,6 +55,7 @@ public class XFactory40mm { public static BulletConfig g40_heat; public static BulletConfig g40_demo; public static BulletConfig g40_inc; + public static BulletConfig g40_phosphorus; public static BiConsumer LAMBDA_STANDARD_IGNITE = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { @@ -62,7 +70,13 @@ public class XFactory40mm { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; - Lego.standardExplode(bullet, mop, 2.5F); bullet.setDead(); + Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead(); + if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) mop.entityHit; + EntityDamageUtil.attackEntityFromNT(living, bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F, true, true, 0.5F, 3F, 0.15F); + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + mop.entityHit.attackEntityFrom(bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F); + } }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; @@ -76,16 +90,23 @@ public class XFactory40mm { bullet.setDead(); }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> { + spawnFire(bullet, mop, false, 200); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> { + spawnFire(bullet, mop, true, 400); + }; + + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; World world = bullet.worldObj; Lego.standardExplode(bullet, mop, 3F); - EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(200).setType(EntityFireLingering.TYPE_DIESEL); + EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL); fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); world.spawnEntityInWorld(fire); bullet.setDead(); for(int dx = -1; dx <= 1; dx++) { for(int dy = -1; dy <= 1; dy++) { - for(int dz = -2; dz <= 2; dz++) { + for(int dz = -1; dz <= 1; dz++) { int x = (int) Math.floor(mop.hitVec.xCoord) + dx; int y = (int) Math.floor(mop.hitVec.yCoord) + dy; int z = (int) Math.floor(mop.hitVec.zCoord) + dz; @@ -98,19 +119,37 @@ public class XFactory40mm { } } } - }; + } + + public static Consumer LAMBDA_SPAWN_C130_SUPPLIESS = (entity) -> { spawnPlane(entity, C130PayloadType.SUPPLIES); }; + public static Consumer LAMBDA_SPAWN_C130_WEAPONS = (entity) -> { spawnPlane(entity, C130PayloadType.WEAPONS); }; + + public static void spawnPlane(Entity entity, C130PayloadType payload) { + if(!entity.worldObj.isRemote && entity.ticksExisted == 40) { + EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; + if(bullet.getThrower() != null) bullet.worldObj.playSoundAtEntity(bullet.getThrower(), "hbm:item.techBleep", 1.0F, 1.0F); + EntityC130 c130 = new EntityC130(bullet.worldObj); + int x = (int) Math.floor(bullet.posX); + int z = (int) Math.floor(bullet.posZ); + int y = bullet.worldObj.getHeightValue(x, z); + c130.fac(bullet.worldObj, x, y, z, payload); + bullet.worldObj.spawnEntityInWorld(c130); + TrackerUtil.setTrackingRange(bullet.worldObj, c130, 250); + } + } public static void init() { g26_flare = new BulletConfig().setItem(EnumAmmo.G26_FLARE).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x9E1616).setScale(2F).register("g26Flare")); - g26_flare_supply = new BulletConfig().setItem(EnumAmmo.G26_FLARE_SUPPLY).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x3C80F0).setScale(2F).register("g26FlareSupply")); - g26_flare_weapon = new BulletConfig().setItem(EnumAmmo.G26_FLARE_WEAPON).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x278400).setScale(2F).register("g26FlareWeapon")); + g26_flare_supply = new BulletConfig().setItem(EnumAmmo.G26_FLARE_SUPPLY).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_SUPPLIESS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x3C80F0).setScale(2F).register("g26FlareSupply")); + g26_flare_weapon = new BulletConfig().setItem(EnumAmmo.G26_FLARE_WEAPON).setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setOnImpact(LAMBDA_STANDARD_IGNITE).setOnUpdate(LAMBDA_SPAWN_C130_WEAPONS).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x278400).setScale(2F).register("g26FlareWeapon")); BulletConfig g40_base = new BulletConfig().setLife(200).setVel(2F).setGrav(0.035D); g40_he = g40_base.clone().setItem(EnumAmmo.G40_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x777777).setScale(2, 2F, 1.5F).register("g40")); - g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat")); - g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo")); - g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc")); + g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setDamage(0.5F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat")); + g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo")); + g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc")); + g40_phosphorus = g40_base.clone().setItem(EnumAmmo.G40_PHOSPHORUS).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xC8C8C8).setScale(2, 2F, 1.5F).register("g40phos")); ModItems.gun_flaregun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(100).draw(7).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE) @@ -118,7 +157,7 @@ public class XFactory40mm { .dmg(15F).delay(20).reload(28).jam(33).sound("hbm:weapon.hkShoot", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 1).addConfigs(g26_flare, g26_flare_supply, g26_flare_weapon)) .offset(0.75, -0.0625, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_GL)) .setupStandardConfiguration() .anim(LAMBDA_FLAREGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAREGUN) ).setUnlocalizedName("gun_flaregun"); @@ -126,10 +165,10 @@ public class XFactory40mm { ModItems.gun_congolake = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(400).draw(7).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(30F).delay(24).reload(16, 16, 16, 0).jam(0).sound("hbm:weapon.glShoot", 1.0F, 1.0F) - .mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc)) + .dmg(20F).delay(24).reload(16, 16, 16, 0).jam(0).sound("hbm:weapon.glShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus)) .offset(0.75, -0.0625, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_GL)) .setupStandardConfiguration() .anim(LAMBDA_CONGOLAKE_ANIMS).orchestra(Orchestras.ORCHESTRA_CONGOLAKE) ).setUnlocalizedName("gun_congolake"); @@ -138,6 +177,10 @@ public class XFactory40mm { public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.025D, 1.05D, 0); }; + + public static BiConsumer LAMBDA_RECOIL_GL = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FLAREGUN_ANIMS = (stack, type) -> { switch(type) { 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 e7426c319..0135faf4a 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 @@ -1,5 +1,6 @@ package com.hbm.items.weapon.sedna.factory; +import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; @@ -8,10 +9,14 @@ import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +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.MagazineFullReload; import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.lib.RefStrings; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; @@ -20,9 +25,13 @@ import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class XFactory44 { + public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); + + public static BulletConfig m44_bp; public static BulletConfig m44_sp; public static BulletConfig m44_fmj; public static BulletConfig m44_jhp; @@ -32,6 +41,8 @@ public class XFactory44 { public static void init() { SpentCasing casing44 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); + m44_bp = new BulletConfig().setItem(EnumAmmo.M44_BP).setDamage(0.5F).setBlackPowder(true) + .setCasing(casing44.clone().register("m44bp")); m44_sp = new BulletConfig().setItem(EnumAmmo.M44_SP) .setCasing(casing44.clone().register("m44")); m44_fmj = new BulletConfig().setItem(EnumAmmo.M44_FMJ).setDamage(0.8F).setArmorPiercing(0.1F) @@ -42,16 +53,16 @@ public class XFactory44 { .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_44).register("m44ap")); m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setDoesPenetrate(true).setDamage(1.5F).setArmorPiercing(0.1F).setWear(1.5F) .setCasing(casing44.clone().register("m44express")); - m44_equestrian = new BulletConfig().setItem(EnumAmmo.M44_EQUESTRIAN).setDamage(0F) + m44_equestrian = new BulletConfig().setItem(EnumAmmoSecret.M44_EQUESTRIAN).setDamage(0F) .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("m44equestrian")); ModItems.gun_henry = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(12F).delay(20).reload(25, 11, 14, 8).jam(45).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineSingleReload(0, 14).addConfigs(m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .dmg(10F).delay(20).reload(25, 11, 14, 8).jam(45).sound("hbm:weapon.fire.rifle", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 14).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) .offset(0.75, -0.0625, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_HENRY)) .setupStandardConfiguration() .anim(LAMBDA_HENRY_ANIMS).orchestra(Orchestras.ORCHESTRA_HENRY) ).setUnlocalizedName("gun_henry"); @@ -59,26 +70,55 @@ public class XFactory44 { ModItems.gun_heavy_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(600).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 6).addConfigs(m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .dmg(15F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) .offset(0.75, -0.0625, -0.3125D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) - .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY) .pr(Lego.LAMBDA_STANDARD_RELOAD) .pt(Lego.LAMBDA_TOGGLE_AIM) - .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) + .setupStandardConfiguration() .anim(LAMBDA_NOPIP_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) ).setUnlocalizedName("gun_heavy_revolver"); ModItems.gun_heavy_revolver_lilmac = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() - .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).scopeTexture(scope_lilmac).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) .offset(0.75, -0.0625, -0.3125D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) - .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY) .pr(Lego.LAMBDA_STANDARD_RELOAD) .pt(Lego.LAMBDA_TOGGLE_AIM) - .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP)) + .setupStandardConfiguration() .anim(LAMBDA_LILMAC_ANIMS).orchestra(Orchestras.ORCHESTRA_NOPIP) ).setUnlocalizedName("gun_heavy_revolver_lilmac"); + + ModItems.gun_hangman = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(600).draw(10).inspect(31).inspectCancel(false).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .rec(new Receiver(0) + .dmg(25F).delay(10).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 8).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_HANGMAN)) + .setupStandardConfiguration().ps(SMACK_A_FUCKER) + .anim(LAMBDA_HANGMAN_ANIMS).orchestra(Orchestras.ORCHESTRA_HANGMAN) + ).setUnlocalizedName("gun_hangman"); } + + public static BiConsumer SMACK_A_FUCKER = (stack, ctx) -> { + if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) == AnimType.CYCLE) { + ItemGunBaseNT.setState(stack, ctx.configIndex, GunState.DRAWING); + ItemGunBaseNT.setTimer(stack, ctx.configIndex, ctx.config.getInspectDuration(stack)); + ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.INSPECT, ctx.configIndex); + } + }; + + public static BiConsumer LAMBDA_RECOIL_HENRY = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); + }; + + public static BiConsumer LAMBDA_RECOIL_NOPIP = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_HANGMAN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); + }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HENRY_ANIMS = (stack, type) -> { switch(type) { @@ -122,6 +162,7 @@ public class XFactory44 { return null; }; + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_NOPIP_ANIMS = (stack, type) -> { switch(type) { case CYCLE: return new BusAnimation() @@ -154,4 +195,29 @@ public class XFactory44 { return LAMBDA_NOPIP_ANIMS.apply(stack, type); }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_HANGMAN_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(60, 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)); + case RELOAD: return new BusAnimation() + .addBus("LID", new BusAnimationSequence().addPos(0, 0, -90, 250).addPos(0, 0, -90, 1500).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, -10, 0, 250, IType.SIN_UP).addPos(0, -10, 0, 500).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("BULLETS", new BusAnimationSequence().addPos(1, 1, 1, 0).addPos(0, 0, 0, 500)) + .addBus("EQUIP", new BusAnimationSequence().addPos(-15, 0, 0, 500, IType.SIN_FULL).addPos(-15, 0, 0, 850).addPos(-25, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 25, 250, IType.SIN_FULL).addPos(0, 0, 25, 1000).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("TURN", new BusAnimationSequence().addPos(0, 170, 0, 500, IType.SIN_UP).addPos(0, 170, 0, 550).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 110, 500, IType.SIN_FULL).addPos(0, 0, 110, 550).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("SMACK", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 1, 150, IType.SIN_DOWN).addPos(0, 0, -3, 150, IType.SIN_UP).addPos(0, 0, 0, 350, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("LID", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, -90, 250).addPos(0, 0, -90, 300).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 250).addPos(0, -3, 0, 150, IType.SIN_UP).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(-10, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 25, 250, IType.SIN_FULL).addPos(0, 0, 25, 300).addPos(0, 0, 0, 250, IType.SIN_FULL)); + } + + return null; + }; } 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 f95114036..d43305281 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 @@ -46,10 +46,10 @@ public class XFactory50 { 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) - .dmg(5F).delay(2).dry(10).auto(true).spread(0.005F).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(7.5F).delay(2).dry(10).auto(true).spread(0.005F).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineBelt().addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_M2)) .setupStandardConfiguration() .anim(LAMBDA_M2_ANIMS).orchestra(Orchestras.ORCHESTRA_M2) ).setUnlocalizedName("gun_m2"); @@ -58,6 +58,10 @@ public class XFactory50 { public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); }; + + 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_M2_ANIMS = (stack, type) -> { switch(type) { 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 28abc2e62..fa055c59e 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 @@ -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.MagazineFullReload; +import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; @@ -25,9 +26,12 @@ import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; +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 BulletConfig r556_sp; public static BulletConfig r556_fmj; public static BulletConfig r556_jhp; @@ -47,21 +51,21 @@ public class XFactory556mm { ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(15F).delay(2).auto(true).dry(15).spread(0.0F).reload(50).jam(47).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(5F).delay(2).auto(true).dry(15).spread(0.0F).reload(50).jam(47).sound("hbm:weapon.fire.assault", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_G3)) .setupStandardConfiguration().ps(Lego.LAMBDA_STANDARD_CLICK_SECONDARY) .anim(LAMBDA_G3_ANIMS).orchestra(Orchestras.ORCHESTRA_G3) ).setUnlocalizedName("gun_g3"); ModItems.gun_stg77 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope_lilmac).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(15F).delay(2).dry(15).auto(true).spread(0.0F).reload(46).jam(0).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(10F).delay(2).dry(15).auto(true).spread(0.0F).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)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_STG)) .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD).pt(Lego.LAMBDA_TOGGLE_AIM) .decider(LAMBDA_STG77_DECIDER) .anim(LAMBDA_STG77_ANIMS).orchestra(Orchestras.ORCHESTRA_STG77) @@ -81,6 +85,12 @@ public class XFactory556mm { GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index); }); }; + public static BiConsumer LAMBDA_RECOIL_G3 = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); + }; + + public static BiConsumer LAMBDA_RECOIL_STG = (stack, ctx) -> { }; + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_G3_ANIMS = (stack, type) -> { boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; switch(type) { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java new file mode 100644 index 000000000..f1fb33ee0 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory75Bolt.java @@ -0,0 +1,74 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +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.mags.MagazineFullReload; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.item.ItemStack; + +public class XFactory75Bolt { + + public static BulletConfig b75; + public static BulletConfig b75_inc; + public static BulletConfig b75_exp; + + public static void init() { + SpentCasing casing75 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(2F, 2F, 1.5F); + + b75 = new BulletConfig().setItem(EnumAmmo.B75) + .setCasing(casing75.clone().register("b75")); + b75_inc = new BulletConfig().setItem(EnumAmmo.B75_INC).setDamage(0.8F).setArmorPiercing(0.1F) + .setCasing(casing75.clone().register("b75inc")); + b75_exp = new BulletConfig().setItem(EnumAmmo.B75_EXP).setDamage(1.5F).setArmorPiercing(-0.25F) + .setCasing(casing75.clone().register("b75exp")); + + ModItems.gun_bolter = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(15F).delay(2).auto(true).spread(0.005F).reload(40).jam(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(b75, b75_inc, b75_exp)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_BOLT)) + .setupStandardConfiguration() + .anim(LAMBDA_BOLTER_ANIMS).orchestra(Orchestras.ORCHESTRA_BOLTER) + ).setUnlocalizedName("gun_bolter"); + } + + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { + Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); + }; + + public static BiConsumer LAMBDA_RECOIL_BOLT = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_BOLTER_ANIMS = (stack, type) -> { + switch(type) { + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(1, 0, 0, 25).addPos(0, 0, 0, 75)); + case RELOAD: return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 1500).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 1, 500).addPos(1, 0, 1, 500).addPos(0, 0, 0, 500)); + case JAMMED: return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(1, 0, 0, 250).addPos(1, 0, 0, 700).addPos(0, 0, 0, 250)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0.6, 0, 0, 250).addPos(0, 0, 0, 250)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java index 31b227d53..d977e1064 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java @@ -21,6 +21,7 @@ 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.util.DamageResistanceHandler.DamageClass; import net.minecraft.item.ItemStack; @@ -32,6 +33,10 @@ public class XFactory762mm { public static BulletConfig r762_ap; public static BulletConfig r762_du; + public static BulletConfig energy_lacunae; + public static BulletConfig energy_lacunae_overcharge; + public static BulletConfig energy_lacunae_ir; + public static void init() { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS); r762_sp = new BulletConfig().setItem(EnumAmmo.R762_SP) @@ -44,33 +49,57 @@ public class XFactory762mm { .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); + + energy_lacunae = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setupDamageClass(DamageClass.FIRE).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(XFactoryEnergy.LAMBDA_IR_HIT); ModItems.gun_carbine = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(5F).delay(5).dry(15).spread(0.0F).reload(30, 0, 15, 0).jam(60).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(15F).delay(5).dry(15).spread(0.0F).reload(30, 0, 15, 0).jam(60).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 14).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE)) .setupStandardConfiguration() .anim(LAMBDA_CARBINE_ANIMS).orchestra(Orchestras.ORCHESTRA_CARBIBE) ).setUnlocalizedName("gun_carbine"); - + ModItems.gun_minigun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(10F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN)) .setupStandardConfiguration() .anim(LAMBDA_MINIGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_MINIGUN) ).setUnlocalizedName("gun_minigun"); + ModItems.gun_minigun_lacunae = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(12F).delay(1).auto(true).dry(15).reload(15).spread(0.01F).sound("hbm:weapon.fire.laserGatling", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 200).addConfigs(energy_lacunae, energy_lacunae_overcharge, energy_lacunae_ir)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_LACUNAE)) + .setupStandardConfiguration() + .anim(LAMBDA_MINIGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_MINIGUN) + ).setUnlocalizedName("gun_minigun_lacunae"); } public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { Lego.handleStandardSmoke(ctx.entity, stack, 1500, 0.075D, 1.1D, 0); }; + + public static BiConsumer LAMBDA_RECOIL_CARBINE = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_MINIGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_LACUNAE = (stack, ctx) -> { }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CARBINE_ANIMS = (stack, type) -> { boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; @@ -113,6 +142,9 @@ public class XFactory762mm { .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); case CYCLE_DRY: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-15, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); case INSPECT: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(3, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -720, 1000, IType.SIN_DOWN)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java index 72bc5ca49..e72cadf2d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java @@ -9,11 +9,13 @@ import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; 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.MagazineFullReload; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; @@ -44,21 +46,21 @@ public class XFactory9mm { ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(5F).delay(4).dry(40).auto(true).spread(0.015F).reload(60).jam(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(3F).delay(4).dry(40).auto(true).spread(0.015F).reload(60).jam(55).sound("hbm:weapon.fire.greaseGun", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_GREASEGUN)) .setupStandardConfiguration() .anim(LAMBDA_GREASEGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_GREASEGUN) ).setUnlocalizedName("gun_greasegun"); ModItems.gun_lag = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(1_700).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .dura(1_700).draw(7).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(15F).delay(4).dry(40).spread(0.005F).reload(60).jam(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(25F).delay(4).dry(10).spread(0.005F).reload(53).jam(44).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 17).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_LAG)) .setupStandardConfiguration() .anim(LAMBDA_LAG_ANIMS).orchestra(Orchestras.ORCHESTRA_LAG) ).setUnlocalizedName("gun_lag"); @@ -66,17 +68,58 @@ public class XFactory9mm { ModItems.gun_uzi = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) - .dmg(7.5F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) .setupStandardConfiguration() .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI) ).setUnlocalizedName("gun_uzi"); + ModItems.gun_uzi_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, + new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, 0.375D) + .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO), + new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(7.5F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F) + .mag(new MagazineFullReload(1, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap)) + .offset(1, -0.0625 * 2.5, -0.375D) + .setupStandardFire().recoil(LAMBDA_RECOIL_UZI)) + .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(LAMBDA_SECOND_UZI) + .anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO) + ).setUnlocalizedName("gun_uzi_akimbo"); } + public static BiConsumer LAMBDA_RECOIL_GREASEGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(2, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_LAG = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(5, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + public static BiConsumer LAMBDA_RECOIL_UZI = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(1, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); + }; + + public static BiConsumer LAMBDA_SECOND_UZI = (stack, ctx) -> { + int index = ctx.configIndex; + GunState lastState = ItemGunBaseNT.getState(stack, index); + GunStateDecider.deciderStandardFinishDraw(stack, lastState, index); + GunStateDecider.deciderStandardClearJam(stack, lastState, index); + GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index); + GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; }); + }; + public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { - Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); + Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, ctx.configIndex); }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_GREASEGUN_ANIMS = (stack, type) -> { @@ -111,7 +154,20 @@ public class XFactory9mm { return null; }; - public static BiFunction LAMBDA_LAG_ANIMS = (stack, type) -> { + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LAG_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)); + case CYCLE: return ResourceManager.lag_anim.get("Firing"); + //.addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 25, 50).addPos(0, 0, 25, 50).addPos(0, 0, 0, 100, IType.SIN_DOWN)); + case CYCLE_DRY: return ResourceManager.lag_anim.get("Dryfire"); + case RELOAD: return ResourceManager.lag_anim.get("Reload"); + case JAMMED: return ResourceManager.lag_anim.get("Jam"); + case INSPECT: return ResourceManager.lag_anim.get("Inspect") + .addBus("ADD_TRANS", new BusAnimationSequence().addPos(-4, 0, -3, 500).addPos(-4, 0, -3, 2000).addPos(0, 0, 0, 500)) + .addBus("ADD_ROT", new BusAnimationSequence().addPos(0, -2, 5, 500).addPos(0, -2, 5, 2000).addPos(0, 0, 0, 500)); + } + return null; }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java index 7ceff91f2..1e72c8e24 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Consumer; import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.items.ModItems; @@ -14,13 +15,20 @@ 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.MagazineSingleReload; +import com.hbm.main.MainRegistry; 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.util.DamageResistanceHandler.DamageClass; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; public class XFactoryAccelerator { @@ -29,23 +37,68 @@ public class XFactoryAccelerator { public static BulletConfig tau_uranium; public static BulletConfig tau_uranium_charge; + + public static BulletConfig coil_tungsten; + public static BulletConfig coil_ferrouranium; + + public static Consumer LAMBDA_UPDATE_TUNGSTEN = (entity) -> {breakInPath(entity, 1.25F); }; + public static Consumer LAMBDA_UPDATE_FERRO = (entity) -> { breakInPath(entity, 2.5F); }; + + public static void breakInPath(Entity entity, float threshold) { + + Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + double dX = entity.posX - vec.xCoord * d; + double dY = entity.posY - vec.yCoord * d; + double dZ = entity.posZ - vec.zCoord * d; + + if(entity.worldObj.isRemote) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", "fireworks"); + nbt.setDouble("posX", dX); + nbt.setDouble("posY", dY); + nbt.setDouble("posZ", dZ); + MainRegistry.proxy.effectNT(nbt); + + } else { + int x = (int) Math.floor(dX); + int y = (int) Math.floor(dY); + int z = (int) Math.floor(dZ); + Block b = entity.worldObj.getBlock(x, y, z); + float hardness = b.getBlockHardness(entity.worldObj, x, y, z); + if(b.getMaterial() != Material.air && hardness >= 0 && hardness < threshold) { + entity.worldObj.func_147480_a(x, y, z, false); + } + } + } + } public static void init() { - tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false) + tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); - tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); + + coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnUpdate(LAMBDA_UPDATE_TUNGSTEN); + coil_ferrouranium = new BulletConfig().setItem(EnumAmmo.COIL_FERROURANIUM).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + .setOnUpdate(LAMBDA_UPDATE_FERRO); tauChargeMag.addConfigs(tau_uranium_charge); ModItems.gun_tau = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(6_400).draw(10).inspect(10).crosshair(Crosshair.CIRCLE) .rec(new Receiver(0) - .dmg(10F).delay(4).auto(true).spread(0F) + .dmg(25F).delay(4).auto(true).spread(0F) .mag(new MagazineBelt().addConfigs(tau_uranium)) .offset(1, -0.0625 * 2.5, -0.25D) - .setupBeamFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_TAU)) .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY) .rp(LAMBDA_TAU_PRIMARY_RELEASE) .ps(LAMBDA_TAU_SECONDARY_PRESS) @@ -54,6 +107,17 @@ public class XFactoryAccelerator { .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) .anim(LAMBDA_TAU_ANIMS).orchestra(Orchestras.ORCHESTRA_TAU) ).setUnlocalizedName("gun_tau"); + + ModItems.gun_coilgun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(400).draw(5).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX) + .rec(new Receiver(0) + .dmg(35F).delay(5).reload(20).jam(33).sound("hbm:weapon.coilgunShoot", 1.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(coil_tungsten, coil_ferrouranium)) + .offset(0.75, -0.0625, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_COILGUN)) + .setupStandardConfiguration() + .anim(LAMBDA_COILGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_COILGUN) + ).setUnlocalizedName("gun_coilgun"); } public static BiConsumer LAMBDA_TAU_PRIMARY_RELEASE = (stack, ctx) -> { @@ -99,6 +163,12 @@ public class XFactoryAccelerator { ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.CYCLE_DRY, ctx.configIndex); } }; + + public static BiConsumer LAMBDA_RECOIL_TAU = (stack, ctx) -> { }; + + public static BiConsumer LAMBDA_RECOIL_COILGUN = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TAU_ANIMS = (stack, type) -> { switch(type) { @@ -113,11 +183,18 @@ public class XFactoryAccelerator { case CYCLE_DRY: return new BusAnimation(); case INSPECT: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(2, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) - .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -360, 500, IType.SIN_DOWN)); + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -360 * 3, 500 * 3, IType.SIN_DOWN)); case SPINUP: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 360 * 6, 3000, IType.SIN_UP).addPos(0, 0, 0, 0).addPos(0, 0, 360 * 40, 500 * 20)); } return null; }; + + public static BiFunction LAMBDA_COILGUN_ANIMS = (stack, type) -> { + if(type == AnimType.EQUIP) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 0).addPos(0, 0, 0, 250)); + if(type == AnimType.CYCLE) return new BusAnimation().addBus("RECOIL", new BusAnimationSequence().addPos(ItemGunBaseNT.getIsAiming(stack) ? 0.5 : 1, 0, 0, 100).addPos(0, 0, 0, 200)); + if(type == AnimType.RELOAD) return new BusAnimation().addBus("RELOAD", new BusAnimationSequence().addPos(1, 0, 0, 250).addPos(1, 0, 0, 500).addPos(0, 0, 0, 250)); + return null; + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java index 3cb6a8403..203770f37 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java @@ -1,5 +1,6 @@ package com.hbm.items.weapon.sedna.factory; +import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.ModItems; @@ -8,6 +9,7 @@ import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; 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.mags.MagazineFullReload; @@ -33,11 +35,15 @@ public class XFactoryBlackPowder { .dmg(5F).delay(27).reload(67).jam(58).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 6).addConfigs(stone, flint, iron, shot)) .offset(0.75, -0.0625, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_PEPPERBOX)) .setupStandardConfiguration() .anim(LAMBDA_PEPPERBOX_ANIMS).orchestra(Orchestras.ORCHESTRA_PEPPERBOX) ).setUnlocalizedName("gun_pepperbox"); } + + public static BiConsumer LAMBDA_RECOIL_PEPPERBOX = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(10, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PEPPERBOX_ANIMS = (stack, type) -> { switch(type) { 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 b1f1a9de2..0f79d93ab 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 @@ -19,6 +19,7 @@ import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; 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.mags.MagazineSingleReload; @@ -122,7 +123,7 @@ public class XFactoryCatapult { if(bullet.isDead) return; bullet.setDead(); ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5); - vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).withRangeMod(1.5F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); vnt.explode(); @@ -133,20 +134,22 @@ public class XFactoryCatapult { nuke_standard = new BulletConfig().setItem(EnumAmmo.NUKE_STANDARD).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_STANDARD); nuke_demo = new BulletConfig().setItem(EnumAmmo.NUKE_DEMO).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_DEMO); 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).setOnImpact(LAMBDA_NUKE_TINYTOT); - nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setOnImpact(LAMBDA_NUKE_HIVE); + 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); ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX) + .dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) .rec(new Receiver(0) - .dmg(25F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F) + .dmg(100F).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)) - .offset(1, -0.0625 * 1.5, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D) + .setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN)) .setupStandardConfiguration() .anim(LAMBDA_FATMAN_ANIMS).orchestra(Orchestras.ORCHESTRA_FATMAN) ).setUnlocalizedName("gun_fatman"); } + + public static BiConsumer LAMBDA_RECOIL_FATMAN = (stack, ctx) -> { }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FATMAN_ANIMS = (stack, type) -> { switch(type) { 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 ec67884b5..8280ee681 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 @@ -3,19 +3,24 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import com.hbm.entity.effect.EntityFireLingering; import com.hbm.entity.projectile.EntityBulletBeamBase; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; 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.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -23,21 +28,31 @@ 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.util.DamageResistanceHandler.DamageClass; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; 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 BulletConfig energy_tesla; public static BulletConfig energy_tesla_overcharge; - public static BulletConfig energy_tesla_blacklightning; + + public static BulletConfig energy_las; + public static BulletConfig energy_las_overcharge; + public static BulletConfig energy_las_ir; public static BiConsumer LAMBDA_LIGHTNING_HIT = (beam, mop) -> { @@ -49,7 +64,7 @@ public class XFactoryEnergy { } ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F); - vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage)); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage).setDamageClass(beam.config.dmgClass)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "hbm:entity.ufoBlast", 5.0F, 0.9F + beam.worldObj.rand.nextFloat() * 0.2F); @@ -77,26 +92,69 @@ public class XFactoryEnergy { } }; + public static BiConsumer LAMBDA_IR_HIT = (beam, mop) -> { + BulletConfig.LAMBDA_STANDARD_BEAM_HIT.accept(beam, mop); + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + if(mop.entityHit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) mop.entityHit; + HbmLivingProps props = HbmLivingProps.getData(living); + if(props.fire < 100) props.fire = 100; + } + } + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + World world = beam.worldObj; + Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + if(b.isFlammable(world, mop.blockX, mop.blockY, mop.blockZ, dir.getOpposite())) { + if(world.getBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ).isAir(world, mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ)) { + world.setBlock(mop.blockX + dir.offsetX, mop.blockY + dir.offsetY, mop.blockZ + dir.offsetZ, Blocks.fire); + return; + } + } + + EntityFireLingering fire = new EntityFireLingering(beam.worldObj).setArea(2, 1).setDuration(100).setType(EntityFireLingering.TYPE_DIESEL); + fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + beam.worldObj.spawnEntityInWorld(fire); + } + }; + public static void init() { - energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) + energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) .setOnBeamImpact(LAMBDA_LIGHTNING_HIT); - energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) + energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) .setDamage(1.5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT); - energy_tesla_blacklightning = new BulletConfig().setItem(EnumAmmo.CAPACITOR_BLACKLIGHTNING).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) - .setDamage(5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT); + + energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).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).setupDamageClass(DamageClass.FIRE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(LAMBDA_IR_HIT); ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.CIRCLE) .rec(new Receiver(0) - .dmg(15F).delay(20).reload(44).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) - .mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge, energy_tesla_blacklightning)) - .offset(0.75, 0, -0.375) - .setupBeamFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .dmg(35F).delay(20).reload(44).jam(19).sound("hbm:weapon.fire.tesla", 1.0F, 1.0F) + .mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge)) + .offset(0.75, 0, -0.375).offsetScoped(0.75, 0, -0.25) + .setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY)) .setupStandardConfiguration() .anim(LAMBDA_TESLA_ANIMS).orchestra(Orchestras.ORCHESTRA_TESLA) ).setUnlocalizedName("gun_tesla_cannon"); + + ModItems.gun_lasrifle = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(2_000).draw(10).inspect(26).reloadSequential(true).crosshair(Crosshair.CIRCLE).scopeTexture(scope_luna) + .rec(new Receiver(0) + .dmg(50F).delay(8).reload(44).jam(36).sound("hbm:weapon.fire.laser", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 24).addConfigs(energy_las, energy_las_overcharge, energy_las_ir)) + .offset(0.75, -0.0625 * 1.5, -0.1875) + .setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY)) + .setupStandardConfiguration() + .anim(LAMBDA_LASRIFLE).orchestra(Orchestras.ORCHESTRA_LASRIFLE) + ).setUnlocalizedName("gun_lasrifle"); } + + public static BiConsumer LAMBDA_RECOIL_ENERGY = (stack, ctx) -> { }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_TESLA_ANIMS = (stack, type) -> { int amount = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); @@ -116,4 +174,30 @@ public class XFactoryEnergy { return null; }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_LASRIFLE = (stack, type) -> { + int amount = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 22.5, 350)) + .addBus("COUNT", new BusAnimationSequence().addPos(amount, 0, 0, 0)); + case RELOAD: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(-90, 0, 0, 350, IType.SIN_UP).addPos(-90, 0, 0, 1500).addPos(0, 0, 0, 350, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, -5, 0, 350, IType.SIN_UP).addPos(0, -5, 0, 500).addPos(0, -0.25, 0, 500, IType.SIN_FULL).addPos(0, -0.25, 0, 150).addPos(0, 0, 0, 350)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 1700).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case JAMMED: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-90, 0, 0, 350, IType.SIN_UP).addPos(-90, 0, 0, 600).addPos(0, 0, 0, 350, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 350).addPos(0, -2, 0, 200, IType.SIN_UP).addPos(0, -0.25, 0, 250, IType.SIN_FULL).addPos(0, -0.25, 0, 150).addPos(0, 0, 0, 350)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 800).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + case INSPECT: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(-90, 0, 0, 350, IType.SIN_UP).addPos(-90, 0, 0, 600).addPos(0, 0, 0, 350, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, -2, 0, 200, IType.SIN_UP).addPos(0, -0.25, 0, 250, IType.SIN_FULL).addPos(0, -0.25, 0, 150).addPos(0, 0, 0, 350)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 800).addPos(-2, 0, 0, 100, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)); + } + + return null; + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java index 818c28f0d..57828b6ad 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFlamer.java @@ -26,6 +26,7 @@ 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.util.DamageResistanceHandler.DamageClass; import net.minecraft.block.Block; import net.minecraft.entity.Entity; @@ -43,7 +44,16 @@ public class XFactoryFlamer { public static BulletConfig flame_gas; public static BulletConfig flame_napalm; public static BulletConfig flame_balefire; - public static BulletConfig flame_digamma; + + public static BulletConfig flame_topaz_diesel; + public static BulletConfig flame_topaz_gas; + public static BulletConfig flame_topaz_napalm; + public static BulletConfig flame_topaz_balefire; + + public static BulletConfig flame_daybreaker_diesel; + public static BulletConfig flame_daybreaker_gas; + public static BulletConfig flame_daybreaker_napalm; + public static BulletConfig flame_daybreaker_balefire; public static Consumer LAMBDA_FIRE = (bullet) -> { if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) FlameCreator.composeEffectClient(bullet.worldObj, bullet.posX, bullet.posY - 0.125, bullet.posZ, FlameCreator.META_FIRE); @@ -98,21 +108,59 @@ public class XFactoryFlamer { } public static void init() { - flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(300).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL); - flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(300).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS); - flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(300).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM); - flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(300).setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE); + flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setupDamageClass(DamageClass.FIRE).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL); + flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setupDamageClass(DamageClass.FIRE).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS); + flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM); + flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20).setKnockback(0F) + .setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE); + + flame_topaz_diesel = flame_diesel .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); + flame_topaz_gas = flame_gas .clone().setProjectiles(2).setSpread(0.05F); + flame_topaz_napalm = flame_napalm .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); + flame_topaz_balefire = flame_balefire .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D); + + flame_daybreaker_diesel = flame_diesel.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 6F, 2F, 200, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); }); + flame_daybreaker_gas = flame_gas.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); bullet.setDead(); }); + flame_daybreaker_napalm = flame_napalm.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 7.5F); spawnFire(bullet, mop, 6F, 2F, 300, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); }); + flame_daybreaker_balefire = flame_balefire.clone().setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 7.5F, 2.5F, 400, EntityFireLingering.TYPE_BALEFIRE); bullet.setDead(); }); ModItems.gun_flamer = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) .rec(new Receiver(0) - .dmg(10F).delay(1).auto(true).reload(90).jam(17) + .dmg(1F).delay(1).auto(true).reload(90).jam(17) .mag(new MagazineFullReload(0, 300).addConfigs(flame_diesel, flame_gas, flame_napalm, flame_balefire)) .offset(0.75, -0.0625, -0.25D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire()) .setupStandardConfiguration() .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER) ).setUnlocalizedName("gun_flamer"); + ModItems.gun_flamer_topaz = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(1.5F).delay(1).auto(true).reload(90).jam(17) + .mag(new MagazineFullReload(0, 500).addConfigs(flame_topaz_diesel, flame_topaz_gas, flame_topaz_napalm, flame_topaz_balefire)) + .offset(0.75, -0.0625, -0.25D) + .setupStandardFire()) + .setupStandardConfiguration() + .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER) + ).setUnlocalizedName("gun_flamer_topaz"); + ModItems.gun_flamer_daybreaker = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(25F).delay(10).auto(true).reload(90).jam(17).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 50).addConfigs(flame_daybreaker_diesel, flame_daybreaker_gas, flame_daybreaker_napalm, flame_daybreaker_balefire)) + .offset(0.75, -0.0625, -0.25D) + .setupStandardFire()) + .setupStandardConfiguration() + .anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER_DAYBREAKER) + ).setUnlocalizedName("gun_flamer_daybreaker"); ModItems.gun_chemthrower = new ItemGunChemthrower(WeaponQuality.A_SIDE, new GunConfig() .dura(90_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) 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 new file mode 100644 index 000000000..a063c3cc5 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java @@ -0,0 +1,153 @@ +package com.hbm.items.weapon.sedna.factory; + +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.entity.projectile.EntityBulletBeamBase; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.Crosshair; +import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; +import com.hbm.items.weapon.sedna.mags.MagazineSingleReload; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; +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.util.ContaminationUtil; +import com.hbm.util.EntityDamageUtil; +import com.hbm.util.Vec3NT; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; + +public class XFactoryFolly { + + public static BulletConfig folly_sm; + public static BulletConfig folly_nuke; + + public static Consumer LAMBDA_SM_UPDATE = (entity) -> { + if(entity.worldObj.isRemote) return; + EntityBulletBeamBase beam = (EntityBulletBeamBase) entity; + Vec3NT dir = new Vec3NT(beam.headingX, beam.headingY, beam.headingZ).normalizeSelf(); + + if(beam.ticksExisted < 50) { + double spacing = 10; + double dist = beam.ticksExisted * spacing; + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.75F); + data.setFloat("g", 0.75F); + data.setFloat("b", 0.75F); + data.setFloat("pitch", (float) beam.rotationPitch + 90); + data.setFloat("yaw", (float) -beam.rotationYaw); + data.setFloat("scale", 2F + beam.ticksExisted / (float)(beam.beamLength / spacing) * 3F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, beam.posX + dir.xCoord * dist, beam.posY + dir.yCoord * dist, beam.posZ + dir.zCoord * dist), new TargetPoint(beam.dimension, beam.posX, beam.posY, beam.posZ, 250)); + } + + if(entity.ticksExisted != 2) return; + + if(beam.thrower != null) ContaminationUtil.contaminate(beam.thrower, HazardType.RADIATION, ContaminationType.CREATIVE, 150F); + + List entities = beam.worldObj.getEntitiesWithinAABBExcludingEntity(beam, beam.boundingBox.addCoord(beam.headingX, beam.headingY, beam.headingZ).expand(1.0D, 1.0D, 1.0D)); + + for(int i = 1; i < beam.beamLength; i += 2) { + int x = (int) Math.floor(beam.posX + dir.xCoord * i); + int y = (int) Math.floor(beam.posY + dir.yCoord * i); + int z = (int) Math.floor(beam.posZ + dir.zCoord * i); + + for(int ix = x - 1; ix <= x + 1; ix++) for(int iy = y - 1; iy <= y + 1; iy++) for(int iz = z - 1; iz <= z + 1; iz++) { + if(iy > 0 && iy < 256) beam.worldObj.setBlock(ix, iy, iz, Blocks.air); + AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(ix - 1, iy - 1, iz - 1, ix + 2, iy + 2, iz + 2); + for(Entity e : entities) if(e != beam.thrower && e.boundingBox.intersectsWith(aabb)) EntityDamageUtil.attackEntityFromIgnoreIFrame(e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage); + } + } + }; + + public static BiConsumer LAMBDA_NUKE_IMPACT = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 2) return; + 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); + }; + + public static void init() { + + folly_sm = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_SM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setSpectral(true).setDoesPenetrate(true) + .setOnUpdate(LAMBDA_SM_UPDATE); + folly_nuke = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_NUKE).setChunkloading().setLife(600).setVel(4F).setGrav(0.015D) + .setOnImpact(LAMBDA_NUKE_IMPACT); + + ModItems.gun_folly = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig() + .dura(0).draw(40).crosshair(Crosshair.NONE) + .rec(new Receiver(0) + .dmg(1_000F).delay(26).dryfire(false).reload(160).jam(0).sound("hbm:weapon.fire.loudestNoiseOnEarth", 100.0F, 1.0F) + .mag(new MagazineSingleReload(0, 1).addConfigs(folly_sm, folly_nuke)) + .offset(0.75, -0.0625, -0.1875D).offsetScoped(0.75, -0.0625, -0.125D) + .canFire(LAMBDA_CAN_FIRE).fire(LAMBDA_FIRE).recoil(LAMBDA_RECOIL_FOLLY)) + .setupStandardConfiguration().pt(LAMBDA_TOGGLE_AIM) + .anim(LAMBDA_FOLLY_ANIMS).orchestra(Orchestras.ORCHESTRA_FOLLY) + ).setUnlocalizedName("gun_folly"); + } + + public static BiConsumer LAMBDA_TOGGLE_AIM = (stack, ctx) -> { + if(ItemGunBaseNT.getState(stack, ctx.configIndex) == GunState.IDLE) { + boolean wasAiming = ItemGunBaseNT.getIsAiming(stack); + ItemGunBaseNT.setIsAiming(stack, !wasAiming); + if(!wasAiming) ItemGunBaseNT.playAnimation(ctx.getPlayer(), stack, AnimType.SPINUP, ctx.configIndex); + } + }; + + public static BiConsumer LAMBDA_FIRE = (stack, ctx) -> { + Lego.doStandardFire(stack, ctx, AnimType.CYCLE, false); + }; + + public static BiFunction LAMBDA_CAN_FIRE = (stack, ctx) -> { + if(!ItemGunBaseNT.getIsAiming(stack)) return false; + if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != AnimType.SPINUP) return false; + if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false; + return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; + }; + + public static BiConsumer LAMBDA_RECOIL_FOLLY = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(25, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1.5)); + }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_FOLLY_ANIMS = (stack, type) -> { + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-60, 0, 0, 0).addPos(5, 0, 0, 1500, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -4.5, 50).addPos(0, 0, -4.5, 500).addPos(0, 0, 0, 500, IType.SIN_UP)) + .addBus("LOAD", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(-25, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 1000, IType.SIN_FULL)); + case RELOAD: return new BusAnimation() + .addBus("LOAD", new BusAnimationSequence().addPos(60, 0, 0, 1000, IType.SIN_FULL).addPos(60, 0, 0, 6000).addPos(0, 0, 0, 1000, IType.SIN_FULL)) + .addBus("SCREW", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -135, 1000, IType.SIN_FULL).addPos(0, 0, -135, 4000).addPos(0, 0, 0, 1000, IType.SIN_FULL)) + .addBus("BREECH", new BusAnimationSequence().addPos(0, 0, 0, 1000).addPos(0, 0, -0.5, 1000, IType.SIN_FULL).addPos(0, -4, -0.5, 1000, IType.SIN_FULL).addPos(0, -4, -0.5, 2000).addPos(0, 0, -0.5, 1000, IType.SIN_FULL).addPos(0, 0, 0, 1000, IType.SIN_FULL)) + .addBus("SHELL", new BusAnimationSequence().addPos(0, -4, -4.5, 0).addPos(0, -4, -4.5, 3000).addPos(0, 0, -4.5, 1000, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_UP)); + } + + return null; + }; +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java index cbf9b835e..d0bc0683c 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java @@ -30,8 +30,11 @@ 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.util.EntityDamageUtil; +import com.hbm.util.DamageResistanceHandler.DamageClass; 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; @@ -82,7 +85,13 @@ public class XFactoryRocket { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; - Lego.standardExplode(bullet, mop, 2.5F); bullet.setDead(); + Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead(); + if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) mop.entityHit; + EntityDamageUtil.attackEntityFromNT(living, bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F, true, true, 0.5F, 5F, 0.2F); + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + mop.entityHit.attackEntityFrom(bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F); + } }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; @@ -96,10 +105,17 @@ public class XFactoryRocket { bullet.setDead(); }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> { + spawnFire(bullet, mop, false, 300); + }; + public static BiConsumer LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> { + spawnFire(bullet, mop, true, 600); + }; + + public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; World world = bullet.worldObj; Lego.standardExplode(bullet, mop, 3F); - EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(300).setType(EntityFireLingering.TYPE_DIESEL); + EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL); fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); world.spawnEntityInWorld(fire); bullet.setDead(); @@ -118,7 +134,7 @@ public class XFactoryRocket { } } } - }; + } public static BulletConfig makeRPZB(BulletConfig original) { return original.clone(); } public static BulletConfig makeQD(BulletConfig original) { return original.clone().setLife(400).setOnUpdate(LAMBDA_STEERING_ACCELERATE); } @@ -127,14 +143,15 @@ public class XFactoryRocket { //this is starting to get messy but we need to put this crap *somewhere* and fragmenting it into a billion classes with two methods each just isn't gonna help public static void init() { - rocket_template = new BulletConfig[4]; + rocket_template = new BulletConfig[5]; BulletConfig baseRocket = new BulletConfig().setLife(300).setSelfDamageDelay(10).setVel(0F).setGrav(0D).setOnEntityHit(null).setOnRicochet(null).setOnUpdate(LAMBDA_STANDARD_ACCELERATE); rocket_template[0] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE); - rocket_template[1] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HEAT).setDamage(1.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT); - rocket_template[2] = baseRocket.clone().setItem(EnumAmmo.ROCKET_DEMO).setDamage(0.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO); + rocket_template[1] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HEAT).setDamage(0.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT); + rocket_template[2] = baseRocket.clone().setItem(EnumAmmo.ROCKET_DEMO).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO); rocket_template[3] = baseRocket.clone().setItem(EnumAmmo.ROCKET_INC).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC); + rocket_template[4] = baseRocket.clone().setItem(EnumAmmo.ROCKET_PHOSPHORUS).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS); rocket_rpzb = new BulletConfig[rocket_template.length]; rocket_qd = new BulletConfig[rocket_template.length]; @@ -152,7 +169,7 @@ public class XFactoryRocket { .dmg(25F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb)) .offset(1, -0.0625 * 1.5, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET)) .setupStandardConfiguration() .anim(LAMBDA_PANZERSCHRECK_ANIMS).orchestra(Orchestras.ORCHESTRA_PANERSCHRECK) ).setUnlocalizedName("gun_panzerschreck"); @@ -160,10 +177,10 @@ public class XFactoryRocket { ModItems.gun_stinger = new ItemGunStinger(WeaponQuality.A_SIDE, new GunConfig() .dura(300).draw(7).inspect(40).crosshair(Crosshair.L_BOX_OUTLINE) .rec(new Receiver(0) - .dmg(25F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .dmg(35F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb)) .offset(1, -0.0625 * 1.5, -0.1875D) - .setupLockonFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupLockonFire().recoil(LAMBDA_RECOIL_ROCKET)) .setupStandardConfiguration().ps(LAMBDA_STINGER_SECONDARY_PRESS).rs(LAMBDA_STINGER_SECONDARY_RELEASE) .anim(LAMBDA_PANZERSCHRECK_ANIMS).orchestra(Orchestras.ORCHESTRA_STINGER) ).setUnlocalizedName("gun_stinger"); @@ -171,10 +188,10 @@ public class XFactoryRocket { ModItems.gun_quadro = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(400).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) .rec(new Receiver(0) - .dmg(25F).delay(10).reload(55).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .dmg(40F).delay(10).reload(55).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 4).addConfigs(rocket_qd)) .offset(1, -0.0625 * 1.5, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET)) .setupStandardConfiguration() .anim(LAMBDA_QUADRO_ANIMS).orchestra(Orchestras.ORCHESTRA_QUADRO) ).setUnlocalizedName("gun_quadro"); @@ -182,10 +199,10 @@ public class XFactoryRocket { ModItems.gun_missile_launcher = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(500).draw(20).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) .rec(new Receiver(0) - .dmg(25F).delay(5).reload(48).jam(33).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) + .dmg(50F).delay(5).reload(48).jam(33).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 1).addConfigs(rocket_ml)) .offset(1, -0.0625 * 1.5, -0.1875D) - .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET)) .setupStandardConfiguration().pp(LAMBDA_MISSILE_LAUNCHER_PRIMARY_PRESS) .anim(LAMBDA_MISSILE_LAUNCHER_ANIMS).orchestra(Orchestras.ORCHESTRA_MISSILE_LAUNCHER) ).setUnlocalizedName("gun_missile_launcher"); @@ -205,6 +222,8 @@ public class XFactoryRocket { Lego.LAMBDA_STANDARD_CLICK_PRIMARY.accept(stack, ctx); ItemGunBaseNT.setIsLockedOn(stack, false); }; + + public static BiConsumer LAMBDA_RECOIL_ROCKET = (stack, ctx) -> { }; @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_PANZERSCHRECK_ANIMS = (stack, type) -> { boolean empty = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory) <= 0; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java new file mode 100644 index 000000000..0c5e332aa --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java @@ -0,0 +1,48 @@ +package com.hbm.items.weapon.sedna.factory; + +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.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo240Shell; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; + +import net.minecraft.item.ItemStack; + +public class XFactoryTurret { + + public static BulletConfig dgk_normal; + + public static SpentCasing CASINNG240MM = new SpentCasing(CasingType.BOTTLENECK).setScale(7.5F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); + public static BulletConfig shell_normal; + public static BulletConfig shell_explosive; + public static BulletConfig shell_ap; + public static BulletConfig shell_du; + public static BulletConfig shell_w9; + + public static void init() { + dgk_normal = new BulletConfig().setItem(new ItemStack(ModItems.ammo_dgk)); + + shell_normal = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.STOCK)).setDamage(1F).setCasing(CASINNG240MM.clone().register("240standard")).setOnImpact((bullet, mop) -> { + Lego.standardExplode(bullet, mop, 10F); bullet.setDead(); + }); + shell_explosive = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE)).setDamage(1.5F).setCasing(CASINNG240MM.clone().register("240ext")).setOnImpact((bullet, mop) -> { + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10F); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + bullet.setDead(); + }); + shell_ap = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)).setDamage(2F).setDoesPenetrate(true).setCasing(CASINNG240MM.clone().register("240w")); + shell_du = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)).setDamage(2.5F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(CASINNG240MM.clone().register("240u")); + shell_w9 = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)).setDamage(2.5F).setCasing(CASINNG240MM.clone().register("240n")).setOnImpact(XFactoryCatapult.LAMBDA_NUKE_STANDARD); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java index c8ccd0eb7..90398bda4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java @@ -47,6 +47,7 @@ public class HUDComponentAmmoCounter implements IHUDComponent { @Override public void renderHUDComponent(Pre event, ElementType type, EntityPlayer player, ItemStack stack, int bottomOffset, int gunIndex) { + if(type != type.HOTBAR) return; ScaledResolution resolution = event.resolution; Minecraft mc = Minecraft.getMinecraft(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java index 0afc6462e..d7160bfd3 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentDurabilityBar.java @@ -33,7 +33,8 @@ public class HUDComponentDurabilityBar implements IHUDComponent { @Override public void renderHUDComponent(Pre event, ElementType type, EntityPlayer player, ItemStack stack, int bottomOffset, int gunIndex) { - + + if(type != type.HOTBAR) return; ScaledResolution resolution = event.resolution; Minecraft mc = Minecraft.getMinecraft(); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index ea4d669b6..a960a8925 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 (5091)"; + public static final String VERSION = "1.0.27 BETA (5180)"; //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 ef724a5d6..aab1dbfc6 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -270,6 +270,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLPW2.class, new RenderLPW2()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAmmoPress.class, new RenderAmmoPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarLarge.class, new RenderRadarLarge()); @@ -532,74 +533,10 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.chainsaw, new ItemRenderChainsaw()); MinecraftForgeClient.registerItemRenderer(ModItems.boltgun, new ItemRenderBoltgun()); //guns - MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg, new ItemRenderRpg()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_karl, new ItemRenderRpg()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_skystinger, new ItemRenderStinger()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver, new ItemRenderWeaponFFColt(ResourceManager.ff_gun_bright, ResourceManager.ff_iron, ResourceManager.ff_wood)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_saturnite, new ItemRenderWeaponFFColt(ResourceManager.ff_saturnite, ResourceManager.ff_iron, ResourceManager.ff_wood)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_gold, new ItemRenderWeaponFFColt(ResourceManager.ff_gold, ResourceManager.ff_gold, ResourceManager.ff_gun_dark)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_schrabidium, new ItemRenderWeaponFFColt(ResourceManager.ff_schrabidium, ResourceManager.ff_schrabidium, ResourceManager.ff_gun_dark)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_cursed, new ItemRenderWeaponFFCursed()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare, new ItemRenderWeaponFFNightmare()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare2, new ItemRenderWeaponFFNightmareDark()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_proto, new ItemRenderFatMan()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_mirv, new ItemRenderMIRVLauncher()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bf, new ItemRenderBFLauncher()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_xvl1456, new ItemRenderWeaponTau()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_zomg, new ItemRenderZOMG()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_osipr, new ItemRenderOSIPR()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_mp, new ItemRenderMP()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_inverted, new ItemRenderRevolverInverted()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_mp40, new ItemRenderMP40()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_emp, new ItemRenderEMPRay()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_immolator, new ItemRenderImmolator()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryolator, new ItemRenderCryolator()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uboinik, new ItemRenderUboinik()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_jack, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_spark, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_hp, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_euthanasia, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_defabricator, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700, ResourceManager.rem700_tex)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_dark, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_normal, ResourceManager.ff_wood_red)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_green, new ItemRenderWeaponFFBolt(ResourceManager.rem700poly, ResourceManager.rem700poly_tex)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_sonata, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_saturnite, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_saturnite, new ItemRenderWeaponFFBolt(ResourceManager.rem700sat, ResourceManager.rem700sat_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_b92, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_b93, new ItemRenderGunAnim()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_silencer, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_saturnite, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_saturnite_silencer, new ItemRenderUZI()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_calamity, new ItemRenderWeaponFFMG42()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lacunae, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_folly, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_hk69, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bio_revolver, new ItemRenderBioRevolver()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_deagle, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_supershotgun, new ItemRenderWeaponShotty()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_ks23, new ItemRenderWeaponKS23()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_flechette, new ItemRenderWeaponObj()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_vortex, new ItemRenderWeaponVortex()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson, new ItemRenderWeaponThompson()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter, new ItemRenderWeaponBolter()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_ar15, new ItemRenderWeaponAR15()); - MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_remington, new ItemRenderWeaponRemington()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_glass_cannon, new ItemRenderWeaponGlass()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nopip, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponLilMac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_blackjack, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); + MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); @@ -623,6 +560,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseMK4.class, new RenderBulletMK4()); + RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseMK4CL.class, new RenderBulletMK4()); RenderingRegistry.registerEntityRenderingHandler(EntityBulletBeamBase.class, new RenderBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityLaserBeam.class, new RenderBeam2()); @@ -638,6 +576,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityDuchessGambit.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityBuilding.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityBomber.class, new RenderBomber()); + RenderingRegistry.registerEntityRenderingHandler(EntityC130.class, new RenderC130()); RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderFOEQ()); RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerRocket.class, new RenderMinerRocket()); @@ -736,6 +675,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsdayRusted.class, new RenderMissileNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz()); RenderingRegistry.registerEntityRenderingHandler(EntitySoyuzCapsule.class, new RenderSoyuzCapsule()); + RenderingRegistry.registerEntityRenderingHandler(EntityParachuteCrate.class, new RenderParachuteCrate()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileTaint.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileMicro.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileBHole.class, new RenderMissileTaint()); @@ -812,6 +752,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); + RenderingRegistry.registerEntityRenderingHandler(EntityDummy.class, new RenderDummy()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRenderer(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); @@ -2039,21 +1980,14 @@ public class ClientProxy extends ServerProxy { } } - private HashMap vanished = new HashMap(); - - public void vanish(int ent) { - vanished.put(ent, System.currentTimeMillis() + 2000); - } + private static HashMap vanished = new HashMap(); + public static void vanish(int ent) { vanished.put(ent, System.currentTimeMillis() + 2000); } + public static void vanish(int ent, int duration) { vanished.put(ent, System.currentTimeMillis() + duration); } @Override public boolean isVanished(Entity e) { - - if(e == null) - return false; - - if(!this.vanished.containsKey(e.getEntityId())) - return false; - + if(e == null) return false; + if(!this.vanished.containsKey(e.getEntityId())) return false; return this.vanished.get(e.getEntityId()) > System.currentTimeMillis(); } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5196b41ed..b4232a54a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -22,8 +22,6 @@ import com.hbm.inventory.material.NTMMaterial; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; -import com.hbm.items.ItemAmmoEnums.Ammo50BMG; -import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPlantType; @@ -37,10 +35,8 @@ import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.items.tool.ItemDrone.EnumDroneType; import com.hbm.items.tool.ItemGuideBook.BookType; -import com.hbm.util.EnchantmentUtil; import net.minecraft.block.Block; -import net.minecraft.enchantment.Enchantment; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -212,16 +208,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(Items.string, 3), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) }); addRecipeAuto(new ItemStack(Items.paper, 3), new Object[] { "SSS", 'S', ModItems.powder_sawdust }); - ItemStack infinity = new ItemStack(Items.enchanted_book); - EnchantmentUtil.addEnchantment(infinity, Enchantment.infinity, 1); - addRecipeAuto(infinity, new Object[] { "SBS", "BDB", "SBS", 'S', ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STAR), 'B', ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STAR), 'D', ModItems.powder_magic }); - ItemStack unbreaking = new ItemStack(Items.enchanted_book); - EnchantmentUtil.addEnchantment(unbreaking, Enchantment.unbreaking, 3); - addRecipeAuto(unbreaking, new Object[] { "SBS", "BDB", "SBS", 'S', BIGMT.ingot(), 'B', ModItems.plate_armor_lunar, 'D', ModItems.powder_magic }); - ItemStack thorns = new ItemStack(Items.enchanted_book); - EnchantmentUtil.addEnchantment(thorns, Enchantment.thorns, 3); - addRecipeAuto(thorns, new Object[] { "SBS", "BDB", "SBS", 'S', ModBlocks.barbed_wire, 'B', ModBlocks.spikes, 'D', ModItems.powder_magic }); - addRecipeAuto(new ItemStack(ModItems.wrench, 1), new Object[] { " S ", " IS", "I ", 'S', STEEL.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.wrench_flipped, 1), new Object[] { "S", "D", "W", 'S', Items.iron_sword, 'D', ModItems.ducttape, 'W', ModItems.wrench }); addRecipeAuto(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_yellowcake, 'G', TH232.block(), 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" }); @@ -295,6 +281,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); + addRecipeAuto(new ItemStack(ModBlocks.machine_ammo_press, 1), new Object[] { "IPI", "C C", "SSS", 'I', IRON.ingot(), 'P', Blocks.piston, 'C', CU.ingot(), 'S', Blocks.stone }); addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', STEEL.shell(), 'D', KEY_BLACK }); @@ -344,7 +331,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { " P ", "PIP", " P ", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.blades_advanced_alloy, 1), new Object[] { " P ", "PIP", " P ", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); - addRecipeAuto(new ItemStack(ModItems.blades_desh, 1), new Object[] { " S ", "PBP", " S ", 'S', BIGMT.plate(), 'P', ModItems.plate_desh, 'B', ModItems.blades_advanced_alloy }); //4 desh ingots still needed to do anything + addRecipeAuto(new ItemStack(ModItems.blades_desh, 1), new Object[] { " P ", "PBP", " P ", 'P', ModItems.plate_desh, 'B', ModItems.blades_advanced_alloy }); //4 desh ingots still needed to do anything addRecipeAuto(new ItemStack(ModItems.blades_steel, 1), new Object[] { "PIP", 'P', STEEL.plate(), 'I', new ItemStack(ModItems.blades_steel, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_titanium, 1), new Object[] { "PIP", 'P', TI.plate(), 'I', new ItemStack(ModItems.blades_titanium, 1, OreDictionary.WILDCARD_VALUE) }); @@ -364,7 +351,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.stamp_steel_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.stamp_titanium_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', TI.ingot() }); addRecipeAuto(new ItemStack(ModItems.stamp_obsidian_flat, 1), new Object[] { "III", "SSS", 'I', brick, 'S', Blocks.obsidian }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_flat, 1), new Object[] { "BDB", "DSD", "BDB", 'B', brick, 'D', DESH.ingot(), 'S', BIGMT.ingot() }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_flat, 1), new Object[] { "BDB", "DSD", "BDB", 'B', brick, 'D', DESH.ingot(), 'S', FERRO.ingot() }); } addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_1, 1), new Object[] { "ICI", "CAC", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot() }); @@ -484,16 +471,6 @@ public class CraftingManager { public static void reg2() { - addRecipeAuto(new ItemStack(ModItems.stamp_357, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_357 }); - addRecipeAuto(new ItemStack(ModItems.stamp_44, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_44 }); - addRecipeAuto(new ItemStack(ModItems.stamp_9, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_9 }); - addRecipeAuto(new ItemStack(ModItems.stamp_50, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_50 }); - - addRecipeAuto(new ItemStack(ModItems.stamp_desh_357, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_357 }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_44, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_44 }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_9, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_9 }); - addRecipeAuto(new ItemStack(ModItems.stamp_desh_50, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_50 }); - addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.crate_iron }); addRecipeAuto(new ItemStack(ModBlocks.book_guide, 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', KEY_BLACK, 'L', KEY_BLUE }); @@ -594,8 +571,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', STEEL.bolt(), 'K', Fluids.KEROSENE.getDict(1000) }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', Fluids.LUBRICANT.getDict(1000), 'B', STEEL.bolt(), 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ANY_RUBBER.ingot(), 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); + addShapelessAuto(new ItemStack(ModItems.gun_kit_1, 1), new Object[] { ANY_RUBBER.ingot(), Fluids.WOODOIL.getDict(1_000), IRON.ingot() }); + addShapelessAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { ModItems.gun_kit_1, ModItems.wrench, ModItems.ducttape, Fluids.LUBRICANT.getDict(1_000) }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', SA326.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); @@ -746,8 +723,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.rune_thurisaz, 1), new Object[] { ModItems.rune_blank, ModItems.powder_spark_mix, ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.ams_lens, 1), new Object[] { "PDP", "GDG", "PDP", 'P', ModItems.plate_dineutronium, 'G', ModBlocks.reinforced_glass, 'D', Blocks.diamond_block }); addRecipeAuto(new ItemStack(ModItems.ams_catalyst_blank, 1), new Object[] { "TET", "ETE", "TET", 'T', TS.dust(), 'E', EUPH.ingot()}); - addRecipeAuto(new ItemStack(ModItems.ams_focus_limiter, 1), new Object[] { "PDP", "GDG", "PDP", 'P', BIGMT.plate(), 'G', ModBlocks.reinforced_glass, 'D', Blocks.diamond_block }); - addRecipeAuto(new ItemStack(ModItems.ams_muzzle, 1), new Object[] { "GDG", "GDG", "PGP", 'P', BIGMT.plate(), 'G', ModBlocks.reinforced_glass, 'D', Blocks.diamond_block }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_lithium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_isa, ModItems.rune_isa, ModItems.rune_jera, ModItems.rune_jera, LI.dust(), LI.dust(), LI.dust(), LI.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_beryllium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_isa, ModItems.rune_dagaz, ModItems.rune_jera, ModItems.rune_jera, BE.dust(), BE.dust(), BE.dust(), BE.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_copper, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_jera, ModItems.rune_jera, CU.dust(), CU.dust(), CU.dust(), CU.dust() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 3058b4ea8..685bc14dc 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -865,6 +865,7 @@ public class MainRegistry { TileEntityNukeCustom.registerBombItems(); ArmorUtil.register(); HazmatRegistry.registerHazmats(); + DamageResistanceHandler.init(); FluidContainerRegistry.register(); BlockToolConversion.registerRecipes(); AchievementHandler.register(); @@ -920,6 +921,9 @@ public class MainRegistry { PollutionHandler pollution = new PollutionHandler(); MinecraftForge.EVENT_BUS.register(pollution); FMLCommonHandler.instance().bus().register(pollution); + + DamageResistanceHandler dmgHandler = new DamageResistanceHandler(); + MinecraftForge.EVENT_BUS.register(dmgHandler); if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); @@ -1454,6 +1458,47 @@ public class MainRegistry { ignoreMappings.add("hbm:item.powder_daffergon"); ignoreMappings.add("hbm:item.powder_verticium"); ignoreMappings.add("hbm:tile.ore_random"); + ignoreMappings.add("hbm:item.crate_caller"); + ignoreMappings.add("hbm:item.pellet_rtg_berkelium"); + ignoreMappings.add("hbm:item.folly_shell"); + ignoreMappings.add("hbm:item.folly_bullet"); + ignoreMappings.add("hbm:item.folly_bullet_nuclear"); + ignoreMappings.add("hbm:item.folly_bullet_du"); + ignoreMappings.add("hbm:item.ammo_folly"); + ignoreMappings.add("hbm:item.ammo_folly_nuclear"); + ignoreMappings.add("hbm:item.ammo_folly_du"); + ignoreMappings.add("hbm:item.clip_revolver_iron"); + ignoreMappings.add("hbm:item.clip_revolver"); + ignoreMappings.add("hbm:item.clip_revolver_gold"); + ignoreMappings.add("hbm:item.clip_revolver_lead"); + ignoreMappings.add("hbm:item.clip_revolver_schrabidium"); + ignoreMappings.add("hbm:item.clip_revolver_cursed"); + ignoreMappings.add("hbm:item.clip_revolver_nightmare"); + ignoreMappings.add("hbm:item.clip_revolver_nightmare2"); + ignoreMappings.add("hbm:item.clip_revolver_pip"); + ignoreMappings.add("hbm:item.clip_revolver_nopip"); + ignoreMappings.add("hbm:item.clip_rpg"); + ignoreMappings.add("hbm:item.clip_stinger"); + ignoreMappings.add("hbm:item.clip_fatman"); + ignoreMappings.add("hbm:item.clip_mirv"); + ignoreMappings.add("hbm:item.clip_bf"); + ignoreMappings.add("hbm:item.clip_mp40"); + ignoreMappings.add("hbm:item.clip_uzi"); + ignoreMappings.add("hbm:item.clip_uboinik"); + ignoreMappings.add("hbm:item.clip_lever_action"); + ignoreMappings.add("hbm:item.clip_bolt_action"); + ignoreMappings.add("hbm:item.clip_xvl1456"); + ignoreMappings.add("hbm:item.clip_osipr"); + ignoreMappings.add("hbm:item.clip_immolator"); + ignoreMappings.add("hbm:item.clip_cryolator"); + ignoreMappings.add("hbm:item.clip_mp"); + ignoreMappings.add("hbm:item.clip_emp"); + ignoreMappings.add("hbm:item.clip_jack"); + ignoreMappings.add("hbm:item.clip_spark"); + ignoreMappings.add("hbm:item.clip_hp"); + ignoreMappings.add("hbm:item.clip_euthanasia"); + ignoreMappings.add("hbm:item.clip_defabricator"); + ignoreMappings.add("hbm:item.ammo_folly_du"); /// 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 336fb1b64..9ad3e4e83 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -27,6 +27,7 @@ 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; @@ -46,15 +47,18 @@ 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; import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.item.weapon.sedna.ItemRenderWeaponBase; import com.hbm.render.util.RenderAccessoryUtility; import com.hbm.render.util.RenderOverhead; import com.hbm.render.util.RenderScreenOverlay; @@ -78,6 +82,7 @@ import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; +import com.hbm.util.DamageResistanceHandler; import com.hbm.util.ArmorRegistry.HazardClass; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; @@ -129,7 +134,9 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.WorldProviderSurface; import net.minecraftforge.client.GuiIngameForge; +import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.IRenderHandler; +import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.event.FOVUpdateEvent; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.MouseEvent; @@ -357,6 +364,15 @@ public class ModEventHandlerClient { } } + 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); + if(cfg.getScopeTexture(held) != null) { + ScaledResolution resolution = event.resolution; + RenderScreenOverlay.renderScope(resolution, cfg.getScopeTexture(held)); + } + } + /// HANDLE FSB HUD /// ItemStack helmet = player.inventory.armorInventory[3]; @@ -492,6 +508,20 @@ public class ModEventHandlerClient { } } + @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); + if(!(customRenderer instanceof ItemRenderWeaponBase)) return; + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + event.newfov = renderGun.getViewFOV(held, event.fov); + } + public static boolean ducked = false; @SubscribeEvent @@ -687,6 +717,9 @@ public class ModEventHandlerClient { ItemStack stack = event.itemStack; List list = event.toolTip; + /// DAMAGE RESISTANCE /// + DamageResistanceHandler.addInfo(stack, list); + /// HAZMAT INFO /// List hazInfo = ArmorRegistry.hazardClasses.get(stack.getItem()); @@ -1002,22 +1035,27 @@ public class ModEventHandlerClient { if(event.phase == Phase.END) { - ItemGunBaseNT.offsetVertical += ItemGunBaseNT.recoilVertical; - ItemGunBaseNT.offsetHorizontal += ItemGunBaseNT.recoilHorizontal; - player.rotationPitch -= ItemGunBaseNT.recoilVertical; - player.rotationYaw -= ItemGunBaseNT.recoilHorizontal; - - float decay = 0.75F; - float rebound = 0.25F; - ItemGunBaseNT.recoilVertical *= decay; - ItemGunBaseNT.recoilHorizontal *= decay; - float dV = ItemGunBaseNT.offsetVertical * rebound; - float dH = ItemGunBaseNT.offsetHorizontal * rebound; - - ItemGunBaseNT.offsetVertical -= dV; - ItemGunBaseNT.offsetHorizontal -= dH; - player.rotationPitch += dV; - player.rotationYaw += dH; + if(ClientConfig.GUN_VISUAL_RECOIL.get()) { + ItemGunBaseNT.offsetVertical += ItemGunBaseNT.recoilVertical; + ItemGunBaseNT.offsetHorizontal += ItemGunBaseNT.recoilHorizontal; + player.rotationPitch -= ItemGunBaseNT.recoilVertical; + player.rotationYaw -= ItemGunBaseNT.recoilHorizontal; + + ItemGunBaseNT.recoilVertical *= ItemGunBaseNT.recoilDecay; + ItemGunBaseNT.recoilHorizontal *= ItemGunBaseNT.recoilDecay; + float dV = ItemGunBaseNT.offsetVertical * ItemGunBaseNT.recoilRebound; + float dH = ItemGunBaseNT.offsetHorizontal * ItemGunBaseNT.recoilRebound; + + ItemGunBaseNT.offsetVertical -= dV; + ItemGunBaseNT.offsetHorizontal -= dH; + player.rotationPitch += dV; + player.rotationYaw += dH; + } else { + ItemGunBaseNT.offsetVertical = 0; + ItemGunBaseNT.offsetHorizontal = 0; + ItemGunBaseNT.recoilVertical = 0; + ItemGunBaseNT.recoilHorizontal = 0; + } } } @@ -1083,6 +1121,24 @@ public class ModEventHandlerClient { } } } + + if(event.phase == Phase.START) { + + Minecraft mc = Minecraft.getMinecraft(); + + if(mc.currentScreen != null && mc.currentScreen.allowUserInput) { + HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + + for(EnumKeybind key : EnumKeybind.values()) { + boolean last = props.getKeyPressed(key); + + if(last) { + PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, !last)); + props.setKeyPressed(key, !last); + } + } + } + } } @SideOnly(Side.CLIENT) @@ -1286,6 +1342,7 @@ public class ModEventHandlerClient { public static IIcon particleBase; public static IIcon particleLeaf; public static IIcon particleSplash; + public static IIcon particleAshes; @SubscribeEvent public void onTextureStitch(TextureStitchEvent.Pre event) { @@ -1294,6 +1351,7 @@ public class ModEventHandlerClient { particleBase = event.map.registerIcon(RefStrings.MODID + ":particle/particle_base"); particleLeaf = event.map.registerIcon(RefStrings.MODID + ":particle/dead_leaf"); particleSplash = event.map.registerIcon(RefStrings.MODID + ":particle/particle_splash"); + particleAshes = event.map.registerIcon(RefStrings.MODID + ":particle/particle_ashes"); } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index cc5e5d459..77a667d49 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -509,7 +509,7 @@ public class ModEventHandlerRenderer { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGHEST) public void onRenderHUD(RenderGameOverlayEvent.Pre event) { if(event.type == ElementType.HOTBAR && (ModEventHandlerClient.shakeTimestamp + ModEventHandlerClient.shakeDuration - System.currentTimeMillis()) > 0 && ClientConfig.NUKE_HUD_SHAKE.get()) { diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 371573df3..3e54951c8 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -9,6 +9,7 @@ import com.hbm.config.CustomMachineConfigJSON; import com.hbm.handler.nei.CustomMachineHandler; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.lib.RefStrings; import codechicken.nei.api.API; @@ -16,6 +17,7 @@ import codechicken.nei.api.IConfigureNEI; import codechicken.nei.api.IHighlightHandler; import codechicken.nei.api.ItemInfo.Layout; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; @@ -33,6 +35,11 @@ public class NEIConfig implements IConfigureNEI { registerHandlerBypass(new CustomMachineHandler(conf)); } + for(Item item : ItemGunBaseNT.secrets) { + API.hideItem(new ItemStack(item)); + } + API.hideItem(ItemBattery.getEmptyBattery(ModItems.ammo_secret)); + //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index 3899820c8..1c40d9429 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -67,6 +67,7 @@ public class NEIRegistry { handlers.add(new ArcFurnaceSolidHandler()); handlers.add(new ArcFurnaceFluidHandler()); handlers.add(new RotaryFurnaceHandler()); + handlers.add(new AmmoPressHandler()); //this shit comes last handlers.add(new FluidRecipeHandler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 2e9f8490d..17af73b0a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -59,9 +59,8 @@ public class ResourceManager { public static final IModelCustom combination_oven = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/combination_oven.obj")); //Landmines - public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); - public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj")); - public static final IModelCustom mine_marelet = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/marelet.obj")); + public static final IModelCustom mine_ap = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ap_mine.obj")).asVBO(); + public static final IModelCustom mine_marelet = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/marelet.obj")).asVBO(); public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj")); //Oil Pumps @@ -130,6 +129,7 @@ public class ResourceManager { public static final IModelCustom epress_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_body.obj")); public static final IModelCustom epress_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_head.obj")); public static final IModelCustom conveyor_press = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/conveyor_press.obj")); + public static final IModelCustom ammo_press = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/ammo_press.obj")).asVBO(); //Assembler public static final IModelCustom assembler_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_body.obj")); @@ -428,10 +428,13 @@ public class ResourceManager { public static final ResourceLocation brandon_explosive = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/brandon_drum.png"); //Landmines - public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_ap.png"); + public static final ResourceLocation mine_ap_grass_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_grass.png"); + public static final ResourceLocation mine_ap_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_desert.png"); + public static final ResourceLocation mine_ap_snow_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_snow.png"); + public static final ResourceLocation mine_ap_stone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_ap_stone.png"); //public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_he.png"); public static final ResourceLocation mine_marelet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_marelet.png"); - public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); + public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_shrapnel.png"); public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png"); //Heaters @@ -537,6 +540,7 @@ public class ResourceManager { public static final ResourceLocation epress_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_head.png"); public static final ResourceLocation conveyor_press_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press.png"); public static final ResourceLocation conveyor_press_belt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press_belt.png"); + public static final ResourceLocation ammo_press_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ammo_press.png"); //Assembler public static final ResourceLocation assembler_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_base_new.png"); @@ -863,6 +867,9 @@ public class ResourceManager { public static final IModelCustom stg77 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stg77.obj")).asVBO(); public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")).asVBO(); public static final IModelCustom fatman = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/fatman.obj")).asVBO(); + public static final IModelCustom lasrifle = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lasrifle.obj")).asVBO(); + public static final IModelCustom hangman = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/hangman.obj")).asVBO(); + public static final IModelCustom folly = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/folly.obj")).asVBO(); public static final HashMap python_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/python.json")); public static final HashMap cursed_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/cursed.json")); @@ -875,6 +882,7 @@ public class ResourceManager { public static final HashMap am180_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/am180.json")); public static final HashMap flamethrower_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/flamethrower.json")); public static final HashMap stg77_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/stg77.json")); + public static final HashMap lag_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/lag.json")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -970,6 +978,7 @@ public class ResourceManager { public static final ResourceLocation debug_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/debug_gun.png"); public static final ResourceLocation pepperbox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pepperbox.png"); public static final ResourceLocation bio_revolver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bio_revolver.png"); + public static final ResourceLocation bio_revolver_atlas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bio_revolver_atlas.png"); public static final ResourceLocation dani_celestial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/dani_celestial.png"); public static final ResourceLocation dani_lunar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/dani_lunar.png"); public static final ResourceLocation henry_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/henry.png"); @@ -984,6 +993,8 @@ public class ResourceManager { public static final ResourceLocation am180_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/am180.png"); public static final ResourceLocation liberator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/liberator.png"); public static final ResourceLocation flamethrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower.png"); + public static final ResourceLocation flamethrower_topaz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_topaz.png"); + public static final ResourceLocation flamethrower_daybreaker_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_daybreaker.png"); public static final ResourceLocation mike_hawk_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lag.png"); public static final ResourceLocation uzi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/uzi.png"); public static final ResourceLocation panzerschreck_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/panzerschreck.png"); @@ -993,12 +1004,16 @@ public class ResourceManager { 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"); + public static final ResourceLocation minigun_lacunae_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun_lacunae.png"); public static final ResourceLocation missile_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/missile_launcher.png"); public static final ResourceLocation tesla_cannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tesla_cannon.png"); public static final ResourceLocation stg77_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/stg77.png"); 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 lasrifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle.png"); + public static final ResourceLocation hangman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hangman.png"); + public static final ResourceLocation folly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/moonlight.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); @@ -1115,6 +1130,7 @@ public class ResourceManager { //Bomber public static final IModelCustom dornier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/dornier.obj")); public static final IModelCustom b29 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/b29.obj")); + public static final IModelCustom c130 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/c130.obj")).asVBO(); //Missiles public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asVBO(); @@ -1243,15 +1259,14 @@ public class ResourceManager { public static final ResourceLocation casings_tex = new ResourceLocation(RefStrings.MODID, "textures/particle/casings.png"); //Bomber - public static final ResourceLocation dornier_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_0.png"); public static final ResourceLocation dornier_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_1.png"); public static final ResourceLocation dornier_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_2.png"); - public static final ResourceLocation dornier_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_3.png"); public static final ResourceLocation dornier_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_4.png"); public static final ResourceLocation b29_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_0.png"); public static final ResourceLocation b29_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_1.png"); public static final ResourceLocation b29_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_2.png"); public static final ResourceLocation b29_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_3.png"); + public static final ResourceLocation c130_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/c130_0.png"); //Missiles public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2.png"); @@ -1326,6 +1341,7 @@ public class ResourceManager { public static final ResourceLocation soyuz_lander_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/soyuz_lander.png"); public static final ResourceLocation soyuz_lander_rust_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/soyuz_lander_rust.png"); public static final ResourceLocation soyuz_chute_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/soyuz_chute.png"); + public static final ResourceLocation supply_crate = new ResourceLocation(RefStrings.MODID, "textures/blocks/crate_can.png"); public static final ResourceLocation soyuz_module_dome_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/module_dome.png"); public static final ResourceLocation soyuz_module_lander_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_capsule/module_lander.png"); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 12c8de1da..ac69da882 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -38,8 +38,6 @@ public class PacketDispatcher { wrapper.registerMessage(ParticleBurstPacket.Handler.class, ParticleBurstPacket.class, i++, Side.CLIENT); //Packet to send chunk radiation info to individual players wrapper.registerMessage(ExtPropPacket.Handler.class, ExtPropPacket.class, i++, Side.CLIENT); - //Entity sound packet that keeps client and server separated - wrapper.registerMessage(LoopedEntitySoundPacket.Handler.class, LoopedEntitySoundPacket.class, i++, Side.CLIENT); //Packet for force fields wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); //Sends button information for ItemGunBase diff --git a/src/main/java/com/hbm/packet/toclient/LoopedEntitySoundPacket.java b/src/main/java/com/hbm/packet/toclient/LoopedEntitySoundPacket.java deleted file mode 100644 index f5282515a..000000000 --- a/src/main/java/com/hbm/packet/toclient/LoopedEntitySoundPacket.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.hbm.packet.toclient; - -import com.hbm.entity.logic.EntityBomber; -import com.hbm.sound.MovingSoundBomber; - -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; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class LoopedEntitySoundPacket implements IMessage { - - int entityID; - - public LoopedEntitySoundPacket() - { - - } - - public LoopedEntitySoundPacket(int entityID) - { - this.entityID = entityID; - } - - @Override - public void fromBytes(ByteBuf buf) { - entityID = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(entityID); - } - - public static class Handler implements IMessageHandler { - - @Override - //Tamaized, I love you! - @SideOnly(Side.CLIENT) - public IMessage onMessage(LoopedEntitySoundPacket m, MessageContext ctx) { - - Entity e = Minecraft.getMinecraft().theWorld.getEntityByID(m.entityID); - - if(e instanceof EntityBomber) { - - int n = 1; - int x = e.getDataWatcher().getWatchableObjectByte(16); - - switch(x) { - case 0: - case 1: - case 2: - case 3: - case 4: n = 2; break; - case 5: - case 6: - case 7: - case 8: n = 1; break; - default: n = 2; break; - } - - boolean flag = true; - for(int i = 0; i < MovingSoundBomber.globalSoundList.size(); i++) { - if(MovingSoundBomber.globalSoundList.get(i).bomber == e && !MovingSoundBomber.globalSoundList.get(i).isDonePlaying()) - flag = false; - } - - if(flag) { - if(n == 2) - Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberSmallLoop"), (EntityBomber)e)); - if(n == 1) - Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberLoop"), (EntityBomber)e)); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/particle/ParticleAshes.java b/src/main/java/com/hbm/particle/ParticleAshes.java new file mode 100644 index 000000000..4b76c52ac --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleAshes.java @@ -0,0 +1,87 @@ +package com.hbm.particle; + +import com.hbm.main.ModEventHandlerClient; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleAshes extends EntityFXRotating { + + public ParticleAshes(World world, double x, double y, double z, float scale) { + super(world, x, y, z); + particleIcon = ModEventHandlerClient.particleBase; + this.particleMaxAge = 1200 + rand.nextInt(20); + this.particleScale = scale * 0.9F + rand.nextFloat() * 0.2F; + + this.particleGravity = 0.01F; + + this.particleRed = this.particleGreen = this.particleBlue = this.rand.nextFloat() * 0.1F + 0.1F; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.particleAge++; + + if(this.particleAge >= this.particleMaxAge) { + this.setDead(); + } + + this.motionY -= particleGravity; + this.prevRotationPitch = this.rotationPitch; + + if(!this.onGround) this.rotationPitch += 2 * ((this.getEntityId() % 2) - 0.5); + + this.motionX *= 0.95D; + this.motionY *= 0.99D; + this.motionZ *= 0.95D; + + boolean wasOnGround = this.onGround; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + if(!wasOnGround && this.onGround) this.rotationPitch = rand.nextFloat() * 360F; + + if(this.getEntityId() % 5 == 0 && this.onGround && rand.nextInt(15) == 0) { + worldObj.spawnParticle("smoke", posX, posY + 0.125, posZ, 0, 0.05, 0); + } + } + + @Override + public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { + + float timeLeft = this.particleMaxAge - (this.particleAge + interp); + + if(timeLeft < 40) { + this.particleAlpha = timeLeft / 40F; + } else { + this.particleAlpha = 1F; + } + + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); + tess.setNormal(0.0F, 1.0F, 0.0F); + + if(this.onGround) { + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + Vec3NT vec = new Vec3NT(particleScale, 0, particleScale).rotateAroundYDeg(this.rotationPitch); + + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMaxV()); + vec.rotateAroundYDeg(90); + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMaxU(), particleIcon.getMinV()); + vec.rotateAroundYDeg(90); + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMinV()); + vec.rotateAroundYDeg(90); + tess.addVertexWithUV(pX + vec.xCoord, pY + 0.05, pZ + vec.zCoord, particleIcon.getMinU(), particleIcon.getMaxV()); + } else { + renderParticleRotated(tess, interp, sX, sY, sZ, dX, dZ, this.particleScale); + } + } +} diff --git a/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java b/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java index c11b88f57..9469bac57 100644 --- a/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java +++ b/src/main/java/com/hbm/particle/ParticleBlackPowderSmoke.java @@ -62,7 +62,7 @@ public class ParticleBlackPowderSmoke extends EntityFXRotating { double ageScaled = (double) (this.particleAge + interp) / (double) this.particleMaxAge; - Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 2F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, 0.7F, 1F)); + Color color = Color.getHSBColor(hue / 255F, Math.max(1F - (float) ageScaled * 4F, 0), MathHelper.clamp_float(1.25F - (float) ageScaled * 2F, 0.7F, 1F)); this.particleRed = color.getRed() / 255F; this.particleGreen = color.getGreen() / 255F; this.particleBlue = color.getBlue() / 255F; diff --git a/src/main/java/com/hbm/particle/ParticleGiblet.java b/src/main/java/com/hbm/particle/ParticleGiblet.java index c09a00799..a5fdd3439 100644 --- a/src/main/java/com/hbm/particle/ParticleGiblet.java +++ b/src/main/java/com/hbm/particle/ParticleGiblet.java @@ -9,10 +9,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -66,6 +68,7 @@ public class ParticleGiblet extends EntityFX { GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); this.theRenderEngine.bindTexture(texture); /* use this instead of EntityFX.interpPosN since interpPosN isn't set up correctly for the current tick for layer 3 particles */ @@ -79,9 +82,17 @@ public class ParticleGiblet extends EntityFX { float f12 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY); float f13 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ); + double pX = prevPosX + (posX - prevPosX) * interp; + double pY = prevPosY + (posY - prevPosY) * interp; + double pZ = prevPosZ + (posZ - prevPosZ) * interp; + int brightness = worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(pX), MathHelper.floor_double(pY), MathHelper.floor_double(pZ), 0); + int lX = brightness % 65536; + int lY = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); + tess.startDrawingQuads(); tess.setNormal(0.0F, 1.0F, 0.0F); - tess.setBrightness(240); + //tess.setBrightness(240); tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); tess.addVertexWithUV((double) (f11 - x * f10 - tx * f10), (double) (f12 - y * f10), (double) (f13 - z * f10 - tz * f10), (double) 0, (double) 0); tess.addVertexWithUV((double) (f11 - x * f10 + tx * f10), (double) (f12 + y * f10), (double) (f13 - z * f10 + tz * f10), (double) 0, (double) 1); diff --git a/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java b/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java index 18430e811..413dd35b9 100644 --- a/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java +++ b/src/main/java/com/hbm/particle/ParticlePlasmaBlast.java @@ -7,6 +7,7 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; @@ -84,9 +85,9 @@ public class ParticlePlasmaBlast extends EntityFX { if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPolygonOffset(0.0F, 0.0F); - GL11.glEnable(GL11.GL_CULL_FACE); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_LIGHTING); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/particle/ParticleSkeleton.java b/src/main/java/com/hbm/particle/ParticleSkeleton.java new file mode 100644 index 000000000..a3eb3f4c9 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleSkeleton.java @@ -0,0 +1,161 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.SkeletonCreator.EnumSkeletonType; +import com.hbm.render.loader.HFRWavefrontObject; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.IModelCustom; + +@SideOnly(Side.CLIENT) +public class ParticleSkeleton extends EntityFX { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/skeleton.png"); + public static final ResourceLocation texture_ext = new ResourceLocation(RefStrings.MODID + ":textures/particle/skoilet.png"); + public static final IModelCustom skeleton = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/skeleton.obj"), false).asVBO(); + protected EnumSkeletonType type; + + private float momentumYaw; + private float momentumPitch; + private int initialDelay; + + private final TextureManager textureManager; + + public ParticleSkeleton(TextureManager textureManager, World world, double x, double y, double z, float r, float g, float b, EnumSkeletonType type) { + super(world, x, y, z); + this.textureManager = textureManager; + this.type = type; + + this.particleMaxAge = 1200 + rand.nextInt(20); + + this.particleRed = r; + this.particleGreen = g; + this.particleBlue = b; + this.particleGravity = 0.02F; + this.initialDelay = 20; + + this.momentumPitch = rand.nextFloat() * 5 * (rand.nextBoolean() ? 1 : -1); + this.momentumYaw = rand.nextFloat() * 5 * (rand.nextBoolean() ? 1 : -1); + } + + @Override + public void onUpdate() { + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + this.prevRotationPitch = this.rotationPitch; + this.prevRotationYaw = this.rotationYaw; + + if(initialDelay-- > 0) return; + + if(initialDelay == -1) { + this.motionX = rand.nextGaussian() * 0.025; + this.motionZ = rand.nextGaussian() * 0.025; + } + + if(this.particleAge++ >= this.particleMaxAge) { + this.setDead(); + } + boolean wasOnGround = this.onGround; + + this.motionY -= this.particleGravity; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; + + if(!this.onGround) { + this.rotationPitch += this.momentumPitch; + this.rotationYaw += this.momentumYaw; + } else { + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + + if(!wasOnGround) { + MainRegistry.proxy.playSoundClient(posX, posY, posZ, "mob.skeleton.hurt", 0.25F, 0.8F + rand.nextFloat() * 0.4F); + } + } + } + + @Override + public int getFXLayer() { + return 3; + } + + @Override + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + RenderHelper.enableStandardItemLighting(); + + double pX = prevPosX + (posX - prevPosX) * interp; + double pY = prevPosY + (posY - prevPosY) * interp; + double pZ = prevPosZ + (posZ - prevPosZ) * interp; + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)interp; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; + + GL11.glTranslated(pX - dX, pY - dY, pZ - dZ); + + GL11.glRotated(this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * interp, 0, 1, 0); + GL11.glRotated(this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * interp, 1, 0, 0); + + float timeLeft = this.particleMaxAge - (this.particleAge + interp); + if(timeLeft < 40) { + this.particleAlpha = timeLeft / 40F; + } else { + this.particleAlpha = 1F; + } + + int brightness = worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(pX), MathHelper.floor_double(pY), MathHelper.floor_double(pZ), 0); + int lX = brightness % 65536; + int lY = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)lX / 1.0F, (float)lY / 1.0F); + + GL11.glColor4f(particleRed, particleGreen, particleBlue, particleAlpha); + GL11.glRotated(-90, 0, 1, 0); + + switch(type) { + case SKULL: + this.textureManager.bindTexture(texture); + skeleton.renderPart("Skull"); break; + case TORSO: + this.textureManager.bindTexture(texture); + skeleton.renderPart("Torso"); break; + case LIMB: + this.textureManager.bindTexture(texture); + skeleton.renderPart("Limb"); break; + case SKULL_VILLAGER: + this.textureManager.bindTexture(texture_ext); + skeleton.renderPart("SkullVillager"); break; + } + + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/particle/helper/AshesCreator.java b/src/main/java/com/hbm/particle/helper/AshesCreator.java new file mode 100644 index 000000000..56a36acc5 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/AshesCreator.java @@ -0,0 +1,54 @@ +package com.hbm.particle.helper; + +import java.util.Random; + +import com.hbm.main.ClientProxy; +import com.hbm.particle.ParticleAshes; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityFlameFX; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class AshesCreator implements IParticleCreator { + + public static void composeEffect(World world, Entity toPulverize, int ashesCount, float ashesScale) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "ashes"); + data.setInteger("entityID", toPulverize.getEntityId()); + data.setInteger("ashesCount", ashesCount); + data.setFloat("ashesScale", ashesScale); + IParticleCreator.sendPacket(world, toPulverize.posX, toPulverize.posY, toPulverize.posZ, 100, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + int entityID = data.getInteger("entityID"); + Entity entity = world.getEntityByID(entityID); + if(entity == null) return; + + ClientProxy.vanish(entityID); + + int amount = data.getInteger("ashesCount"); + float scale = data.getFloat("ashesScale"); + + for(int i = 0; i < amount; i++) { + ParticleAshes particle = new ParticleAshes(world, + entity.posX + (entity.width + scale * 2) * (rand.nextDouble() - 0.5), + entity.posY + entity.height * rand.nextDouble(), + entity.posZ + (entity.width + scale * 2) * (rand.nextDouble() - 0.5), + scale); + Minecraft.getMinecraft().effectRenderer.addEffect(particle); + EntityFlameFX flame = new EntityFlameFX(world, particle.posX, particle.posY, particle.posZ, 0.0, 0.0, 0.0); + Minecraft.getMinecraft().effectRenderer.addEffect(flame); + } + } +} diff --git a/src/main/java/com/hbm/particle/helper/BlackPowderHelper.java b/src/main/java/com/hbm/particle/helper/BlackPowderCreator.java similarity index 97% rename from src/main/java/com/hbm/particle/helper/BlackPowderHelper.java rename to src/main/java/com/hbm/particle/helper/BlackPowderCreator.java index 72aa720c1..6705449f7 100644 --- a/src/main/java/com/hbm/particle/helper/BlackPowderHelper.java +++ b/src/main/java/com/hbm/particle/helper/BlackPowderCreator.java @@ -14,7 +14,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class BlackPowderHelper implements IParticleCreator { +public class BlackPowderCreator implements IParticleCreator { public static void composeEffect(World world, double x, double y, double z, double headingX, double headingY, double headingZ, int cloudCount, float cloudScale, float cloudSpeedMult, int sparkCount, float sparkSpeedMult) { diff --git a/src/main/java/com/hbm/particle/helper/CasingCreator.java b/src/main/java/com/hbm/particle/helper/CasingCreator.java index 161bcb8d7..967f6a381 100644 --- a/src/main/java/com/hbm/particle/helper/CasingCreator.java +++ b/src/main/java/com/hbm/particle/helper/CasingCreator.java @@ -42,6 +42,8 @@ public class CasingCreator implements IParticleCreator { double mY = player.motionY + motion.yCoord + player.getRNG().nextGaussian() * motionVariance; double mZ = player.motionZ + motion.zCoord + player.getRNG().nextGaussian() * motionVariance; + if(player instanceof EntityPlayer && ((EntityPlayer) player).capabilities.isFlying) mY -= 0.04D; + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "casingNT"); data.setDouble("mX", mX); diff --git a/src/main/java/com/hbm/particle/helper/ParticleCreators.java b/src/main/java/com/hbm/particle/helper/ParticleCreators.java index 1e93ed27f..2f23f88f4 100644 --- a/src/main/java/com/hbm/particle/helper/ParticleCreators.java +++ b/src/main/java/com/hbm/particle/helper/ParticleCreators.java @@ -11,6 +11,8 @@ public class ParticleCreators { particleCreators.put("casingNT", new CasingCreator()); particleCreators.put("flamethrower", new FlameCreator()); particleCreators.put("explosionSmall", new ExplosionSmallCreator()); - particleCreators.put("blackPowder", new BlackPowderHelper()); + particleCreators.put("blackPowder", new BlackPowderCreator()); + particleCreators.put("ashes", new AshesCreator()); + particleCreators.put("skeleton", new SkeletonCreator()); } } diff --git a/src/main/java/com/hbm/particle/helper/SkeletonCreator.java b/src/main/java/com/hbm/particle/helper/SkeletonCreator.java new file mode 100644 index 000000000..48ee29761 --- /dev/null +++ b/src/main/java/com/hbm/particle/helper/SkeletonCreator.java @@ -0,0 +1,171 @@ +package com.hbm.particle.helper; + +import java.util.HashMap; +import java.util.Random; +import java.util.function.Function; + +import com.hbm.entity.mob.EntityDummy; +import com.hbm.main.ClientProxy; +import com.hbm.particle.ParticleSkeleton; +import com.hbm.util.Vec3NT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.client.entity.EntityOtherPlayerMP; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntityPigZombie; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntityWitch; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class SkeletonCreator implements IParticleCreator { + + public static HashMap> skullanizer = new HashMap(); + + public static void composeEffect(World world, Entity toSkeletonize, float brightness) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "skeleton"); + data.setInteger("entityID", toSkeletonize.getEntityId()); + data.setFloat("brightness", brightness); + IParticleCreator.sendPacket(world, toSkeletonize.posX, toSkeletonize.posY, toSkeletonize.posZ, 100, data); + } + + @Override + @SideOnly(Side.CLIENT) + public void makeParticle(World world, EntityPlayer player, TextureManager texman, Random rand, double x, double y, double z, NBTTagCompound data) { + + if(skullanizer.isEmpty()) init(); + + int entityID = data.getInteger("entityID"); + Entity entity = world.getEntityByID(entityID); + if(!(entity instanceof EntityLivingBase)) return; + EntityLivingBase living = (EntityLivingBase) entity; + + ClientProxy.vanish(entityID); + + float brightness = data.getFloat("brightness"); + + Function bonealizer = skullanizer.get(entity.getClass().getSimpleName()); + + if(bonealizer != null) { + BoneDefinition[] bones = bonealizer.apply(living); + for(BoneDefinition bone : bones) { + ParticleSkeleton skeleton = new ParticleSkeleton(Minecraft.getMinecraft().getTextureManager(), world, bone.x, bone.y, bone.z, brightness, brightness, brightness, bone.type); + skeleton.prevRotationYaw = skeleton.rotationYaw = bone.yaw; + skeleton.prevRotationPitch = skeleton.rotationPitch = bone.pitch; + Minecraft.getMinecraft().effectRenderer.addEffect(skeleton); + } + } + } + + public static class BoneDefinition { + public EnumSkeletonType type; + public float yaw; + public float pitch; + public double x; + public double y; + public double z; + + public BoneDefinition(EnumSkeletonType type, float yaw, float pitch, double x, double y, double z) { + this.type = type; + this.yaw = yaw; + this.pitch = pitch; + this.x = x; + this.y = y; + this.z = z; + } + } + + public static enum EnumSkeletonType { + SKULL, TORSO, LIMB, SKULL_VILLAGER + } + + public static Function BONES_BIPED = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.75, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftarm.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftarm.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static Function BONES_ZOMBIE = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT forward = new Vec3NT(0, 0, 0.25).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.75, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -90, entity.posX + leftarm.xCoord + forward.xCoord, entity.posY + 1.375, entity.posZ + leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -90, entity.posX - leftarm.xCoord + forward.xCoord, entity.posY + 1.375, entity.posZ - leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static Function BONES_VILLAGER = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT forward = new Vec3NT(0, 0, 0.25).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL_VILLAGER, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.6875, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -45, entity.posX + leftarm.xCoord + forward.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -45, entity.posX - leftarm.xCoord + forward.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord + forward.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static Function BONES_DUMMY = (entity) -> { + Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset); + return new BoneDefinition[] { + new BoneDefinition(EnumSkeletonType.SKULL, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.75, entity.posZ), + new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftarm.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftarm.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord), + new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord), + }; + }; + + public static void init() { + skullanizer.put(EntityOtherPlayerMP.class.getSimpleName(), BONES_BIPED); + skullanizer.put(EntityClientPlayerMP.class.getSimpleName(), BONES_BIPED); + skullanizer.put(EntityPlayerSP.class.getSimpleName(), BONES_BIPED); + + skullanizer.put(EntityZombie.class.getSimpleName(), BONES_ZOMBIE); + skullanizer.put(EntitySkeleton.class.getSimpleName(), BONES_ZOMBIE); + skullanizer.put(EntityPigZombie.class.getSimpleName(), BONES_ZOMBIE); + + skullanizer.put(EntityVillager.class.getSimpleName(), BONES_VILLAGER); + skullanizer.put(EntityWitch.class.getSimpleName(), BONES_VILLAGER); + + skullanizer.put(EntityDummy.class.getSimpleName(), BONES_DUMMY); + + //techguns compat, for some reason + //not alwayss accurate because of variable arm position, but better than nothing + skullanizer.put("ArmySoldier", BONES_ZOMBIE); + skullanizer.put("PsychoSteve", BONES_ZOMBIE); + skullanizer.put("SkeletonSoldier", BONES_ZOMBIE); + skullanizer.put("ZombieFarmer", BONES_ZOMBIE); + skullanizer.put("ZombieMiner", BONES_ZOMBIE); + skullanizer.put("ZombiePigmanSoldier", BONES_ZOMBIE); + skullanizer.put("ZombieSoldier", BONES_ZOMBIE); + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderBomber.java b/src/main/java/com/hbm/render/entity/item/RenderBomber.java index 16d32f88f..4cc33a349 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderBomber.java +++ b/src/main/java/com/hbm/render/entity/item/RenderBomber.java @@ -28,36 +28,16 @@ public class RenderBomber extends Render { int i = entity.getDataWatcher().getWatchableObjectByte(16); switch(i) { - case 0: - bindTexture(ResourceManager.dornier_0_tex); - break; - case 1: - bindTexture(ResourceManager.dornier_1_tex); - break; - case 2: - bindTexture(ResourceManager.dornier_2_tex); - break; - case 3: - bindTexture(ResourceManager.dornier_3_tex); - break; - case 4: - bindTexture(ResourceManager.dornier_4_tex); - break; - case 5: - bindTexture(ResourceManager.b29_0_tex); - break; - case 6: - bindTexture(ResourceManager.b29_1_tex); - break; - case 7: - bindTexture(ResourceManager.b29_2_tex); - break; - case 8: - bindTexture(ResourceManager.b29_3_tex); - break; - default: - bindTexture(ResourceManager.dornier_1_tex); - break; + case 0: bindTexture(ResourceManager.dornier_1_tex); break; + case 1: bindTexture(ResourceManager.dornier_1_tex); break; + case 2: bindTexture(ResourceManager.dornier_2_tex); break; + case 3: bindTexture(ResourceManager.dornier_1_tex); break; + case 4: bindTexture(ResourceManager.dornier_4_tex); break; + case 5: bindTexture(ResourceManager.b29_0_tex); break; + case 6: bindTexture(ResourceManager.b29_1_tex); break; + case 7: bindTexture(ResourceManager.b29_2_tex); break; + case 8: bindTexture(ResourceManager.b29_3_tex); break; + default: bindTexture(ResourceManager.dornier_1_tex); break; } GL11.glRotatef((float) Math.sin((entity.ticksExisted + interp) * 0.05) * 10, 1F, 0F, 0F); diff --git a/src/main/java/com/hbm/render/entity/item/RenderC130.java b/src/main/java/com/hbm/render/entity/item/RenderC130.java new file mode 100644 index 000000000..9d2d7d4d4 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderC130.java @@ -0,0 +1,67 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderC130 extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(90, 0F, 0F, 1F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.c130_0_tex); + ResourceManager.c130.renderPart("Plane"); + + double spin = System.currentTimeMillis() * 15D % 360D; + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, -20.5); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, 20.5); + ResourceManager.c130.renderPart("Prop1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, -11.16); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, 11.16); + ResourceManager.c130.renderPart("Prop2"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, 11.16); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, -11.16); + ResourceManager.c130.renderPart("Prop3"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(10, 4.2, 20.5); + GL11.glRotated(spin, 1, 0, 0); + GL11.glTranslated(-10, -4.2, -20.5); + ResourceManager.c130.renderPart("Prop4"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.c130_0_tex; + } + +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderParachuteCrate.java b/src/main/java/com/hbm/render/entity/item/RenderParachuteCrate.java new file mode 100644 index 000000000..3bf1ab7c5 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderParachuteCrate.java @@ -0,0 +1,50 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderParachuteCrate extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float i, float j) { + + GL11.glPushMatrix(); + + GL11.glTranslated(x, y, z); + + double time = (entity.worldObj.getTotalWorldTime()); + double sine = Math.sin(time * 0.05) * 5; + double sin3 = Math.sin(time * 0.05 + Math.PI * 0.5) * 5; + + int height = 7; + + GL11.glTranslated(0.0F, height, 0.0F); + GL11.glRotated(sine, 0, 0, 1); + GL11.glRotated(sin3, 1, 0, 0); + GL11.glTranslated(0.0F, -height, 0.0F); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.supply_crate); + ResourceManager.conservecrate.renderAll(); + + GL11.glTranslated(0, -1, 0); + + bindTexture(ResourceManager.soyuz_chute_tex); + ResourceManager.soyuz_lander.renderPart("Chute"); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.soyuz_lander_tex; + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderDummy.java b/src/main/java/com/hbm/render/entity/mob/RenderDummy.java new file mode 100644 index 000000000..a85d4ea5e --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderDummy.java @@ -0,0 +1,31 @@ +package com.hbm.render.entity.mob; + +import com.hbm.entity.mob.EntityDummy; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.entity.RenderBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.util.ResourceLocation; + +public class RenderDummy extends RenderBiped { + + public RenderDummy() { + super(new ModelBiped(0.0F), 0.5F, 1.0F); + } + + @Override + protected ResourceLocation getEntityTexture(EntityLiving entity) { + return this.getEntityTexture((EntityDummy) entity); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityDummy) entity); + } + + protected ResourceLocation getEntityTexture(EntityDummy entity) { + return new ResourceLocation(RefStrings.MODID + ":textures/entity/dummy.png"); + } +} diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java b/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java index 10db6d628..2ee6039ed 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBeam.java @@ -20,6 +20,9 @@ public class RenderBeam extends Render { GL11.glPushMatrix(); GL11.glTranslatef((float) x, (float) y, (float) z); + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + GL11.glDisable(GL11.GL_FOG); + if(bullet.config.renderRotations) { GL11.glRotatef(bullet.prevRotationYaw + (bullet.rotationYaw - bullet.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(bullet.prevRotationPitch + (bullet.rotationPitch - bullet.prevRotationPitch) * interp + 180, 0.0F, 0.0F, 1.0F); @@ -29,6 +32,8 @@ public class RenderBeam extends Render { bullet.config.rendererBeam.accept(bullet, interp); } + if(fog) GL11.glEnable(GL11.GL_FOG); + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index bcee704d8..5923c0337 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -481,12 +481,12 @@ public class ItemRenderLibrary { GL11.glScaled(8, 8, 8); } public void renderCommon() { - GL11.glScaled(6, 6, 6); - GL11.glRotatef(22.5F, 0F, 1F, 0F); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.mine_ap_tex); - ResourceManager.mine_ap.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glScaled(1.25, 1.25, 1.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.mine_ap_grass_tex); ResourceManager.mine_ap.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); }}); renderers.put(Item.getItemFromBlock(ModBlocks.mine_he), new ItemRenderBase() { @@ -510,12 +510,15 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.mine_shrap), new ItemRenderBase() { public void renderInventory() { - GL11.glScaled(6, 6, 6); + GL11.glScaled(8, 8, 8); } public void renderCommon() { - GL11.glScaled(4, 4, 4); - bindTexture(ResourceManager.mine_shrap_tex); - ResourceManager.mine_he.renderAll(); + GL11.glScaled(1.25, 1.25, 1.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.mine_shrap_tex); ResourceManager.mine_ap.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); }}); renderers.put(Item.getItemFromBlock(ModBlocks.mine_fat), new ItemRenderBase() { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java deleted file mode 100644 index ec65b0ef2..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBio; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderBioRevolver implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glDisable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.1D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.25, -0.25); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - double width = 0.5D; - - GL11.glPushMatrix(); - GL11.glTranslated(0.0, 1.75, 10.0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, -recoil[2] * 1.5, recoil[2]); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - if(ItemGunBio.smokeNodes.size() > 1) { - - Tessellator tess = Tessellator.instance; - tess.startDrawingQuads(); - tess.setNormal(0F, 1F, 0F); - - for(int i = 0; i < ItemGunBio.smokeNodes.size() - 1; i++) { - double[] node = ItemGunBio.smokeNodes.get(i); - double[] past = ItemGunBio.smokeNodes.get(i + 1); - - tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0], node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(node[0] + width, node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(past[0] + width, past[1], past[2]); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); - tess.addVertex(past[0], past[1], past[2]); - - tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0], node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(node[0] - width, node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(past[0] - width, past[1], past[2]); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); - tess.addVertex(past[0], past[1], past[2]); - } - GL11.glAlphaFunc(GL11.GL_GREATER, 0F); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_TEXTURE_2D); - tess.draw(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_BLEND); - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); - } - - GL11.glPopMatrix(); - GL11.glTranslated(recoil[0], recoil[1], recoil[2]); - GL11.glRotated(recoil[2] * 10, 1, 0, 0); - - double[] reloadMove = HbmAnimations.getRelevantTransformation("RELOAD_MOVE"); - GL11.glTranslated(reloadMove[0], reloadMove[1], reloadMove[2]); - - double[] reloadRot = HbmAnimations.getRelevantTransformation("RELOAD_ROT"); - GL11.glRotated(reloadRot[0], 1, 0, 0); - GL11.glRotated(reloadRot[2], 0, 0, 1); - GL11.glRotated(reloadRot[1], 0, 1, 0); - ResourceManager.bio_revolver.renderPart("Grip"); - - GL11.glPushMatrix(); /// FRONT PUSH /// - GL11.glRotated(HbmAnimations.getRelevantTransformation("FRONT")[2], 1, 0, 0); - ResourceManager.bio_revolver.renderPart("Barrel"); - GL11.glPushMatrix(); /// LATCH PUSH /// - GL11.glTranslated(0, 2.3125, -0.875); - GL11.glRotated(HbmAnimations.getRelevantTransformation("LATCH")[2], 1, 0, 0); - GL11.glTranslated(0, -2.3125, 0.875); - ResourceManager.bio_revolver.renderPart("Latch"); - GL11.glPopMatrix(); /// LATCH POP /// - - GL11.glPushMatrix(); /// DRUM PUSH /// - GL11.glTranslated(0, 1, 0); - GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * 60, 0, 0, 1); - GL11.glTranslated(0, -1, 0); - GL11.glTranslated(0, 0, HbmAnimations.getRelevantTransformation("DRUM_PUSH")[2]); - ResourceManager.bio_revolver.renderPart("Drum"); - GL11.glPopMatrix(); /// DRUM POP /// - - GL11.glPopMatrix(); /// FRONT POP /// - - GL11.glPushMatrix(); /// HAMMER /// - GL11.glTranslated(0, 0, -4.5); - GL11.glRotated(-45 + 45 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 1, 0, 0); - GL11.glTranslated(0, 0, 4.5); - ResourceManager.bio_revolver.renderPart("Hammer"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - break; - - case EQUIPPED: - - double scale = 0.1D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(4F, 1F, 4F); - - break; - - case ENTITY: - - double s1 = 0.075D; - GL11.glScaled(s1, s1, s1); - GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0F, 1F, 0F); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 0.8D; - GL11.glTranslated(8, 7, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.bio_revolver.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java index 492a2be44..77455bf52 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java @@ -4,7 +4,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92; -import com.hbm.items.weapon.GunLeverActionS; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelB92; import com.hbm.render.model.ModelB93; @@ -71,12 +70,6 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(2.3F, 0.2F, 0.8F); } - if((item.getItem() == ModItems.gun_lever_action_sonata) && GunLeverActionS.getRotationFromAnim(item) > 0) { - GL11.glRotatef(GunLeverActionS.getRotationFromAnim(item) * -25, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(GunLeverActionS.getOffsetFromAnim(item) * 1.5F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, GunLeverActionS.getOffsetFromAnim(item) * -1.5F, 0.0F); - } - if(item.getItem() == ModItems.gun_b92 && GunB92.getRotationFromAnim(item) > 0) { float off = GunB92.getRotationFromAnim(item) * 2; GL11.glRotatef(GunB92.getRotationFromAnim(item) * -90, 0.0F, 0.0F, 1.0F); @@ -88,9 +81,6 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glRotatef(GunB92.getRotationFromAnim(item) * -90, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(off * -0.5F, off * -0.5F, 0.0F); } - - if(item.getItem() == ModItems.gun_lever_action_sonata) - flippedGun.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverActionS.getRotationFromAnim(item)); if(item.getItem() == ModItems.gun_b92) b92.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); if(item.getItem() == ModItems.gun_b93) @@ -131,8 +121,6 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(2.3F, 0.2F, 0.8F); } - if(item.getItem() == ModItems.gun_lever_action_sonata) - flippedGun.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverActionS.getRotationFromAnim(item)); if(item.getItem() == ModItems.gun_b92) b92.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunB92.getTransFromAnim(item)); if(item.getItem() == ModItems.gun_b93) diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java index bccd1c411..b2e9e2d6e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderOverkill.java @@ -3,12 +3,10 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; -import com.hbm.items.weapon.GunFolly; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelDefabricator; import com.hbm.render.model.ModelEuthanasia; -import com.hbm.render.model.ModelFolly; import com.hbm.render.model.ModelHP; import com.hbm.render.model.ModelJack; import com.hbm.render.model.ModelLacunae; @@ -29,7 +27,6 @@ public class ItemRenderOverkill implements IItemRenderer { protected ModelEuthanasia euthanasia; protected ModelDefabricator defab; protected ModelLacunae lacunae; - protected ModelFolly folly; public ItemRenderOverkill() { powerJack = new ModelJack(); @@ -38,7 +35,6 @@ public class ItemRenderOverkill implements IItemRenderer { euthanasia = new ModelEuthanasia(); defab = new ModelDefabricator(); lacunae = new ModelLacunae(); - folly = new ModelFolly(); } @Override @@ -91,8 +87,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); if(item.getItem() == ModItems.gun_lacunae) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_folly) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png")); GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-0.5F, 0.0F, -0.2F); @@ -122,12 +116,6 @@ public class ItemRenderOverkill implements IItemRenderer { GL11.glTranslatef(0.5F, 0.3F, -0.2F); } - if(item.getItem() == ModItems.gun_folly) { - GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - } - if(item.getItem() == ModItems.gun_jack) powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); if(item.getItem() == ModItems.gun_spark) @@ -142,12 +130,6 @@ public class ItemRenderOverkill implements IItemRenderer { if(item.getItem() == ModItems.gun_lacunae) lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ItemGunBase.readNBT(item, "rot")); - if(item.getItem() == ModItems.gun_folly) { - int state = GunFolly.getState(item); - int time = GunFolly.getTimer(item); - folly.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, state, time); - } - GL11.glPopMatrix(); break; case EQUIPPED: @@ -175,8 +157,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); if(item.getItem() == ModItems.gun_lacunae) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_folly) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png")); GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); @@ -208,9 +188,6 @@ public class ItemRenderOverkill implements IItemRenderer { GL11.glRotatef(185, 0, 1, 0); GL11.glTranslatef(0.5F, 0.6F, 0.2F); } - if(item.getItem() == ModItems.gun_folly) { - GL11.glTranslatef(0.6F, 0.0F, 0.0F); - } if(item.getItem() == ModItems.gun_jack) powerJack.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); @@ -226,11 +203,6 @@ public class ItemRenderOverkill implements IItemRenderer { if(item.getItem() == ModItems.gun_lacunae) lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - if(item.getItem() == ModItems.gun_folly) { - int state = GunFolly.getState(item); - int time = GunFolly.getTimer(item); - folly.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, state, time); - } GL11.glPopMatrix(); break; case ENTITY: @@ -258,8 +230,6 @@ public class ItemRenderOverkill implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPipRed.png")); if(item.getItem() == ModItems.gun_lacunae) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLacunaeReal.png")); - if(item.getItem() == ModItems.gun_folly) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelFolly.png")); GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); @@ -293,11 +263,6 @@ public class ItemRenderOverkill implements IItemRenderer { if(item.getItem() == ModItems.gun_lacunae) lacunae.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, f); - if(item.getItem() == ModItems.gun_folly) { - int state = GunFolly.getState(item); - int time = GunFolly.getTimer(item); - folly.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, state, time); - } GL11.glPopMatrix(); break; default: break; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java deleted file mode 100644 index 27e348b32..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.hbm.render.item.weapon; - -import com.hbm.render.anim.HbmAnimations; -import net.minecraftforge.client.model.IModelCustom; -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponAR15 implements IItemRenderer { - - public ItemRenderWeaponAR15() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ar15_tex); - - IModelCustom model = ResourceManager.ar15; - - switch (type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.25, 0, -0.25); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glRotated(recoil[0] * 2.5, 1, 0, 0); - GL11.glTranslated(0, 0, recoil[0]); - - - double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); - GL11.glTranslated(0, tilt[0], 3); - GL11.glRotated(tilt[0] * -35, 0, 0, 1); - GL11.glTranslated(0, 0, -3); - - model.renderPart("main"); - - double[] mag = HbmAnimations.getRelevantTransformation("MAG"); - GL11.glPushMatrix(); - GL11.glTranslated(0, 0, 5); - GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); - GL11.glTranslated(0, 0, -5); - model.renderPart("mag"); - GL11.glPopMatrix(); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -0.9F, -0.75F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 1, 0); - GL11.glRotatef(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.45D; - - GL11.glTranslated(6, 9, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: - break; - } - - if (type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - model.renderAll(); - } - - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java index 7683fa149..0b1da0139 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponBolter.java @@ -75,8 +75,7 @@ public class ItemRenderWeaponBolter implements IItemRenderer { GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); GL11.glTranslated(0, 0, -5); ResourceManager.bolter.renderPart("Mag"); - if(mag[2] != 1) - ResourceManager.bolter.renderPart("Bullet"); + if(mag[2] != 1) ResourceManager.bolter.renderPart("Bullet"); GL11.glPopMatrix(); GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponChemthrower.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponChemthrower.java deleted file mode 100644 index 4996d353e..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponChemthrower.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunChemthrower; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponChemthrower implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.chemthrower_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.0, 0.0); - GL11.glRotated(170, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotated(100, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslatef(-0.25F, -2.5F, 1.75F); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.5D; - GL11.glTranslated(9, 9, 0); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(45, 0, 0, -1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ItemGunChemthrower chem = (ItemGunChemthrower) item.getItem(); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - ResourceManager.chemthrower.renderPart("Gun"); - ResourceManager.chemthrower.renderPart("Hose"); - ResourceManager.chemthrower.renderPart("Nozzle"); - - GL11.glTranslated(0, 0.875, 1.75); - double d = (double) chem.getMag(item) / (double) chem.mainConfig.ammoCap; - GL11.glRotated(135 - d * 270, 1, 0, 0); - GL11.glTranslated(0, -0.875, -1.75); - - ResourceManager.chemthrower.renderPart("Gauge"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java deleted file mode 100644 index 4bca0361c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponCoilgun implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(20, 0, 0, 1); - GL11.glTranslated(0.75, 0.3, -0.5); - GL11.glRotated(-10, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(-1.5 - recoil[0] * 0.5, 0, 0); - GL11.glRotated(recoil[0] * 45, 0, 0, 1); - GL11.glTranslated(1.5, 0, 0); - - double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); - GL11.glTranslated(-2.5, 0, 0); - GL11.glRotated(reload[0] * -45, 0, 0, 1); - GL11.glTranslated(2.5, 0, 0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-80, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(1.25F, 0.5F, -1.75F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - double s = 3.5D; - GL11.glTranslated(6, 8, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.coilgun.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java deleted file mode 100644 index 07cac42d7..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.hbm.render.item.weapon; - -import java.awt.Color; - -import org.lwjgl.opengl.GL11; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.particle.SpentCasing; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponCongo implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(20, 0, 0, 1); - GL11.glTranslated(0.5, 0.0, -0.5); - GL11.glRotated(-10, 0, 1, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - HbmAnimations.applyRelevantTransformation("Gun"); - ResourceManager.congolake.renderPart("Gun"); - - - GL11.glPushMatrix(); - { - HbmAnimations.applyRelevantTransformation("Pump"); - ResourceManager.congolake.renderPart("Pump"); - } - GL11.glPopMatrix(); - - - GL11.glPushMatrix(); - { - HbmAnimations.applyRelevantTransformation("Sight"); - ResourceManager.congolake.renderPart("Sight"); - } - GL11.glPopMatrix(); - - - GL11.glPushMatrix(); - { - HbmAnimations.applyRelevantTransformation("Loop"); - ResourceManager.congolake.renderPart("Loop"); - } - GL11.glPopMatrix(); - - - GL11.glPushMatrix(); - { - HbmAnimations.applyRelevantTransformation("GuardOuter"); - ResourceManager.congolake.renderPart("GuardOuter"); - - GL11.glPushMatrix(); - { - HbmAnimations.applyRelevantTransformation("GuardInner"); - ResourceManager.congolake.renderPart("GuardInner"); - } - GL11.glPopMatrix(); - } - GL11.glPopMatrix(); - - - GL11.glPushMatrix(); - { - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); - - HbmAnimations.applyRelevantTransformation("Shell"); - - ItemGunBase gun = (ItemGunBase)item.getItem(); - BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); - int[] colors = bullet.spentCasing != null ? bullet.spentCasing.getColors() : new int[] { SpentCasing.COLOR_CASE_40MM }; - - Color shellColor = new Color(colors[0]); - GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); - ResourceManager.congolake.renderPart("Shell"); - - Color shellForeColor = new Color(colors.length > 1 ? colors[1] : colors[0]); - GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); - ResourceManager.congolake.renderPart("ShellFore"); - - GL11.glColor3f(1F, 1F, 1F); - } - GL11.glPopMatrix(); - - break; - - case EQUIPPED: - - double scale = 0.35D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(15, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(1.25F, -1F, 1.5F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - double s = 2D; - GL11.glTranslated(6, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(-90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - ResourceManager.congolake.renderAll(); - } - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java deleted file mode 100644 index d1c7b88aa..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.model.IModelCustom; - -public class ItemRenderWeaponFFBolt implements IItemRenderer { - - ResourceLocation texture; - IModelCustom model; - - public ItemRenderWeaponFFBolt(IModelCustom model, ResourceLocation texture) { - this.model = model; - this.texture = texture; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - boolean renderBolt = true; - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - if(item.getItem() == ModItems.gun_bolt_action_saturnite && Minecraft.getMinecraft().thePlayer.isSneaking()) { - GL11.glPopMatrix(); - return; - } - - double s0 = 0.5D; - GL11.glTranslated(0.5, 0.25, -0.2); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(15, 0, 0, 1); - GL11.glRotated(20, 0, -1, 0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(recoil[0] * -0.5, 0, 0); - - double[] pull = HbmAnimations.getRelevantTransformation("LEVER_PULL"); - double[] rotate = HbmAnimations.getRelevantTransformation("LEVER_ROTATE"); - - GL11.glPushMatrix(); - GL11.glTranslated(pull[0], 0, 0); - double heightOffset = 0.52D; - GL11.glTranslated(0, heightOffset, 0); - GL11.glRotated(rotate[0] * 35, -1, 0, 0); - GL11.glTranslated(0, -heightOffset, 0); - model.renderPart("Bolt"); - GL11.glPopMatrix(); - - renderBolt = false; - - /*if(item.getItem() == ModItems.gun_bolt_action_saturnite) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0x00FF00; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(5, 0, 0); - tessellator.addVertex(150, 0, 0); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - }*/ - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glRotated(-75, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(10, 1, 0, 0); - GL11.glTranslated(0.3, 0.15, -0.5); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.5D; - GL11.glTranslated(10, 11, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - model.renderPart("Gun"); - if(renderBolt) - model.renderPart("Bolt"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java deleted file mode 100644 index 9e02394a5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFColt.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFColt implements IItemRenderer { - - ResourceLocation main; - ResourceLocation hammer; - ResourceLocation grip; - - public ItemRenderWeaponFFColt(ResourceLocation main, ResourceLocation hammer, ResourceLocation grip) { - this.main = main; - this.hammer = hammer; - this.grip = grip; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.5D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(25, 1, 0, 0); - - HbmAnimations.applyRelevantTransformation("Body"); - Minecraft.getMinecraft().renderEngine.bindTexture(main); - ResourceManager.ff_python.renderPart("Body"); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Cylinder"); - ResourceManager.ff_python.renderPart("Cylinder"); - GL11.glPopMatrix(); - - Minecraft.getMinecraft().renderEngine.bindTexture(grip); - ResourceManager.ff_python.renderPart("Grip"); - - HbmAnimations.applyRelevantTransformation("Hammer"); - Minecraft.getMinecraft().renderEngine.bindTexture(hammer); - ResourceManager.ff_python.renderPart("Hammer"); - - GL11.glPopMatrix(); - - return; - - case EQUIPPED: - - double scale = 1.5D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.1, -0.25); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 17D; - GL11.glTranslated(8, 8, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(main); - ResourceManager.ff_python.renderPart("Body"); - ResourceManager.ff_python.renderPart("Cylinder"); - Minecraft.getMinecraft().renderEngine.bindTexture(grip); - ResourceManager.ff_python.renderPart("Grip"); - Minecraft.getMinecraft().renderEngine.bindTexture(hammer); - ResourceManager.ff_python.renderPart("Hammer"); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java deleted file mode 100644 index a53e3147b..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFCursed.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFCursed implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.5D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(20, 1, 0, 0); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - HbmAnimations.applyRelevantTransformation("Body"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_cursed); - ResourceManager.cursed_revolver.renderPart("Body"); - ResourceManager.cursed_revolver.renderPart("Barrel"); - ResourceManager.cursed_revolver.renderPart("Grip"); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Slide"); - ResourceManager.cursed_revolver.renderPart("Slide"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Magazine"); - ResourceManager.cursed_revolver.renderPart("Magazine"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - - return; - - case EQUIPPED: - - double scale = 1.5D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.1, -0.25); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 17D; - GL11.glTranslated(10, 11.5, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_cursed); - ResourceManager.cursed_revolver.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMG42.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMG42.java deleted file mode 100644 index 880faa2b5..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMG42.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFMG42 implements IItemRenderer { - - public ItemRenderWeaponFFMG42() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mg42_tex); - boolean renderMag = true; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.65D; - GL11.glRotated(170, 0, 1, 0); - GL11.glRotated(-25, 0, 0, 1); - GL11.glTranslated(-0.125, 0, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(recoil[0] * 0.25, 0, 0); - - double[] reload = HbmAnimations.getRelevantTransformation("MAG"); - GL11.glRotated(reload[1] * 15, 1, 0, 0); - - GL11.glPushMatrix(); - - GL11.glRotated(reload[1] * -45, 1, 0, 0); - GL11.glTranslated(0, reload[1] * 0.25, -reload[1]); - ResourceManager.mg42.renderPart("Mag"); - GL11.glPopMatrix(); - - renderMag = false; - - break; - - case EQUIPPED: - - double scale = 0.35D; - GL11.glScaled(scale, scale, scale); - GL11.glRotated(100, 0, 1, 0); - GL11.glRotated(-10, 1, 0, 0); - GL11.glRotated(10, 0, 0, 1); - GL11.glTranslated(-0.5, 0.75, 1.25); - - break; - - case ENTITY: - - double s1 = 0.3D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(10, 9.5, 0); - GL11.glRotated(180, 1, 0, 0); - GL11.glRotated(-45, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ResourceManager.mg42.renderPart("Gun"); - if(renderMag) ResourceManager.mg42.renderPart("Mag"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java deleted file mode 100644 index f63f1d68e..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFMaresLeg implements IItemRenderer { - - ResourceLocation main; - ResourceLocation grip; - - public ItemRenderWeaponFFMaresLeg(ResourceLocation main, ResourceLocation grip) { - this.main = main; - this.grip = grip; - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - double lever = 0; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 1.25D; - GL11.glTranslated(0.75, 0.5, 0); - GL11.glScaled(s0, s0, s0); - - if(!player.isSneaking()) { - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(-5, 0, 1, 0); - GL11.glRotated(20, 1, 0, 0); - } else { - GL11.glRotated(97.5, 0, -1, 0); - GL11.glTranslated(-0.71, 0.375, 0); - GL11.glRotated(25, 1, 0, 0); - GL11.glRotated(1, 0, 1, 0); - GL11.glRotated(-3, 0, 0, 1); - GL11.glRotated(0.2, 0, 1, 0); - GL11.glTranslated(-0.006, -0.005, 0.4); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL"); - GL11.glTranslated(0, 0, recoil[0] * 0.5); - - double[] rotation = HbmAnimations.getRelevantTransformation("LEVER_ROTATE"); - lever = rotation[2]; - GL11.glTranslated(0, 0, 0.5); - GL11.glRotated(Math.min(lever, 30), 1, 0, 0); - GL11.glTranslated(0, 0, -0.5); - - break; - - case EQUIPPED: - - double scale = 1.25D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.45, 0.1, -0.5); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 1D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 9D; - GL11.glTranslated(8, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - Minecraft.getMinecraft().renderEngine.bindTexture(grip); - ResourceManager.ff_maresleg.renderPart("Grip"); - Minecraft.getMinecraft().renderEngine.bindTexture(main); - ResourceManager.ff_maresleg.renderPart("Gun"); - GL11.glTranslated(0, 0.1, 0.25); - GL11.glRotated(lever * 1.5, 1, 0, 0); - GL11.glTranslated(0, -0.1, -0.25); - ResourceManager.ff_maresleg.renderPart("Lever"); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmare.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmare.java deleted file mode 100644 index 6a7b3f37c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFNightmare.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponFFNightmare implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.2D; - GL11.glTranslated(0.75, 0.55, 0); - GL11.glScaled(s0, s0, s0); - GL11.glRotated(100, 0, -1, 0); - GL11.glRotated(25, 1, 0, 0); - - break; - - case EQUIPPED: - - double scale = 0.2D; - GL11.glRotated(195, 0, 1, 0); - GL11.glRotated(-10, 0, 0, 1); - GL11.glRotated(-10, 1, 0, 0); - GL11.glTranslated(-0.5, 0.3, -0.25); - GL11.glScaled(scale, scale, scale); - - break; - - case ENTITY: - - double s1 = 0.15D; - GL11.glScaled(s1, s1, s1); - GL11.glRotated(90, 0, 1, 0); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(10, 9, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_nightmare_orig_tex); - ResourceManager.ff_nightmare.renderPart("Gun"); - - int ammo = ItemGunBase.getMag(item); - for(int i = 0; i < ammo; i++) { - ResourceManager.ff_nightmare.renderPart("Bullet" + (i + 1)); - } - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java deleted file mode 100644 index 4160ee3f9..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponKS23.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.hbm.render.item.weapon; - -import java.awt.Color; - -import org.lwjgl.opengl.GL11; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponKS23 implements IItemRenderer { - - public ItemRenderWeaponKS23() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ks23_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - GL11.glTranslatef(1.0F, 0.5F, -0.25F); - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-100, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - - if(player.isSneaking()) { - GL11.glRotatef(4.5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-2F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.9F, 0.2F, 0.325F); - } - - HbmAnimations.applyRelevantTransformation("Body"); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - ResourceManager.ks23.renderPart("Body"); - ResourceManager.ks23.renderPart("Trigger"); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Bolt"); - ResourceManager.ks23.renderPart("Bolt"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Guard"); - ResourceManager.ks23.renderPart("Guard"); - GL11.glPopMatrix(); - - - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); - - HbmAnimations.applyRelevantTransformation("Shell"); - - ItemGunBase gun = (ItemGunBase)item.getItem(); - BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); - int[] colors = bullet.spentCasing.getColors(); - - Color shellColor = new Color(colors[1]); - GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); - ResourceManager.ks23.renderPart("Shell"); - - Color shellForeColor = new Color(colors[0]); - GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); - ResourceManager.ks23.renderPart("ShellFore"); - - GL11.glColor3f(1F, 1F, 1F); - GL11.glPopMatrix(); - - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - - return; - - case EQUIPPED: - - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(-170F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.9F); - GL11.glScaled(0.5, 0.5, 0.5); - - break; - - case ENTITY: - - GL11.glTranslatef(0.3F, 0.2F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - GL11.glTranslatef(7F, 8F, 0.0F); - GL11.glScaled(4, 4, -4); - GL11.glRotatef(-90, 0, 1, 0); - GL11.glRotatef(-135F, 1.0F, 0.0F, 0.0F); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.ks23.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java deleted file mode 100644 index 9417e7d8a..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponLilMac.java +++ /dev/null @@ -1,256 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunPip; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponLilMac implements IItemRenderer { - - public static final ResourceLocation lilmac_plume = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_plume.png"); - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - //prevent rendering when using scope - if(item.getItem() == ModItems.gun_revolver_pip && type == ItemRenderType.EQUIPPED_FIRST_PERSON && MainRegistry.proxy.me().isSneaking()) return; - - GL11.glPushMatrix(); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.1D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.25, -0.25); - GL11.glRotated(170, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - double width = 0.5D; - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - double[] reloadLift = HbmAnimations.getRelevantTransformation("RELOAD_LIFT"); - double[] reloadJolt = HbmAnimations.getRelevantTransformation("RELOAD_JOLT"); - double[] equipSpin = HbmAnimations.getRelevantTransformation("ROTATE"); - GL11.glTranslated(2, 0, 0); - GL11.glRotated(equipSpin[0], 0, 0, 1); - GL11.glTranslated(-2, 0, 0); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - GL11.glPushMatrix(); - Tessellator tess = Tessellator.instance; - - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glAlphaFunc(GL11.GL_GREATER, 0F); - GL11.glTranslated(-10, 2.25, 0); - GL11.glTranslated(-recoil[2] * 3.5, -recoil[2] * 1.375, 0); - - if(ItemGunPip.smokeNodes.size() > 1 && equipSpin[0] == 0) { - - tess.startDrawingQuads(); - tess.setNormal(0F, 1F, 0F); - - for(int i = 0; i < ItemGunPip.smokeNodes.size() - 1; i++) { - double[] node = ItemGunPip.smokeNodes.get(i); - double[] past = ItemGunPip.smokeNodes.get(i + 1); - - tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0], node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(node[0], node[1], node[2] + width); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(past[0], past[1], past[2] + width); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); - tess.addVertex(past[0], past[1], past[2]); - - tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0], node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(node[0], node[1], node[2] - width); - tess.setColorRGBA_F(1F, 1F, 1F, 0F); - tess.addVertex(past[0], past[1], past[2] - width); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); - tess.addVertex(past[0], past[1], past[2]); - } - GL11.glDepthMask(false); - tess.draw(); - GL11.glDepthMask(true); - } - - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_BLEND); - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - - GL11.glTranslated(0, reloadLift[0] / -22D, 0); - - GL11.glTranslated(recoil[0], recoil[1], recoil[2]); - GL11.glRotated(recoil[2] * 10, 0, 0, 1); - GL11.glRotated(reloadLift[0], 0, 0, 1); - GL11.glTranslated(reloadJolt[0], 0, 0); - - double[] reloadTilt = HbmAnimations.getRelevantTransformation("RELAOD_TILT"); - GL11.glRotated(reloadTilt[0], 1, 0, 0); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); - ResourceManager.lilmac.renderPart("Scope"); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_tex); - ResourceManager.lilmac.renderPart("Gun"); - - double[] cylinderFlip = HbmAnimations.getRelevantTransformation("RELOAD_CYLINDER"); - GL11.glPushMatrix(); /// DRUM PUSH /// - GL11.glRotated(cylinderFlip[0], 1, 0, 0); - ResourceManager.lilmac.renderPart("Pivot"); - GL11.glTranslated(0, 1.75, 0); - GL11.glRotated(HbmAnimations.getRelevantTransformation("DRUM")[2] * -60, 1, 0, 0); - GL11.glTranslated(0, -1.75, 0); - ResourceManager.lilmac.renderPart("Cylinder"); - double[] reloadBullets = HbmAnimations.getRelevantTransformation("RELOAD_BULLETS"); - GL11.glTranslated(reloadBullets[0], reloadBullets[1], reloadBullets[2]); - if(HbmAnimations.getRelevantTransformation("RELOAD_BULLETS_CON")[0] != 1) - ResourceManager.lilmac.renderPart("Bullets"); - ResourceManager.lilmac.renderPart("Casings"); - GL11.glPopMatrix(); /// DRUM POP /// - - GL11.glPushMatrix(); /// HAMMER /// - GL11.glTranslated(4, 1.25, 0); - GL11.glRotated(-30 + 30 * HbmAnimations.getRelevantTransformation("HAMMER")[2], 0, 0, 1); - GL11.glTranslated(-4, -1.25, 0); - ResourceManager.lilmac.renderPart("Hammer"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - int flash = 75; - if(System.currentTimeMillis() - ItemGunPip.lastShot < flash) { - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glPushMatrix(); - GL11.glTranslated(0.125, 2.25, 0); - - double fire = (System.currentTimeMillis() - ItemGunPip.lastShot) / (double) flash; - - double height = 4 * fire; - double length = 15 * fire; - double lift = 3 * fire; - double offset = 1 * fire; - double lengthOffset = 0.125; - Minecraft.getMinecraft().renderEngine.bindTexture(lilmac_plume); - tess.startDrawingQuads(); - tess.setNormal(0F, 1F, 0F); - tess.setColorRGBA_F(1F, 1F, 1F, 1F); - - tess.addVertexWithUV(0, -height, -offset, 1, 1); - tess.addVertexWithUV(0, height, -offset, 0, 1); - tess.addVertexWithUV(0, height + lift, length - offset, 0 ,0); - tess.addVertexWithUV(0, -height + lift, length - offset, 1, 0); - - tess.addVertexWithUV(0, height, offset, 0, 1); - tess.addVertexWithUV(0, -height, offset, 1, 1); - tess.addVertexWithUV(0, -height + lift, -length + offset, 1, 0); - tess.addVertexWithUV(0, height + lift, -length + offset, 0 ,0); - - tess.addVertexWithUV(0, -height, -offset, 1, 1); - tess.addVertexWithUV(0, height, -offset, 0, 1); - tess.addVertexWithUV(lengthOffset, height, length - offset, 0 ,0); - tess.addVertexWithUV(lengthOffset, -height, length - offset, 1, 0); - - tess.addVertexWithUV(0, height, offset, 0, 1); - tess.addVertexWithUV(0, -height, offset, 1, 1); - tess.addVertexWithUV(lengthOffset, -height, -length + offset, 1, 0); - tess.addVertexWithUV(lengthOffset, height, -length + offset, 0 ,0); - - tess.draw(); - GL11.glPopMatrix(); - GL11.glDisable(GL11.GL_BLEND); - } - - break; - - case EQUIPPED: - - double scale = 0.1D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(100, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-3F, 1F, 4F); - - break; - - case ENTITY: - - double s1 = 0.075D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslatef(0F, 1F, 0F); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glAlphaFunc(GL11.GL_GREATER, 0F); - GL11.glEnable(GL11.GL_ALPHA_TEST); - - double s = 0.8D; - GL11.glTranslated(8, 8, 0); - GL11.glRotated(180, 0, 1, 0); - GL11.glRotated(135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_scope_tex); - ResourceManager.lilmac.renderPart("Scope"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lilmac_tex); - ResourceManager.lilmac.renderPart("Gun"); - ResourceManager.lilmac.renderPart("Cylinder"); - ResourceManager.lilmac.renderPart("Bullets"); - ResourceManager.lilmac.renderPart("Casings"); - ResourceManager.lilmac.renderPart("Pivot"); - ResourceManager.lilmac.renderPart("Hammer"); - GL11.glShadeModel(GL11.GL_FLAT); - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java deleted file mode 100644 index 9d744207c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponNovac implements IItemRenderer { - - public ItemRenderWeaponNovac() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - //prevent rendering when using scope - if(item.getItem() == ModItems.gun_revolver_pip && type == ItemRenderType.EQUIPPED_FIRST_PERSON && MainRegistry.proxy.me().isSneaking()) return; - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - if(item.getItem() == ModItems.gun_revolver_nopip) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_tex); - if(item.getItem() == ModItems.gun_revolver_blackjack) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.blackjack_tex); - if(item.getItem() == ModItems.gun_revolver_silver) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lent_gun_tex); - if(item.getItem() == ModItems.gun_revolver_red) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.red_key_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.4D; - GL11.glRotated(25, 0, 0, 1); - GL11.glRotated(80, 0, 1, 0); - GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.0F, 0.0F, -1.25F); - GL11.glScaled(s0, s0, s0); - - GL11.glShadeModel(GL11.GL_SMOOTH); - - HbmAnimations.applyRelevantTransformation("Body"); - ResourceManager.novac.renderPart("Body"); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Cylinder"); - ResourceManager.novac.renderPart("Cylinder"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Hammer"); - ResourceManager.novac.renderPart("Hammer"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("Trigger"); - ResourceManager.novac.renderPart("Trigger"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - - return; - - case EQUIPPED: - - double scale = 0.35D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-5, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-1.25F, 0.25F, -1F); - - break; - - case ENTITY: - - double s1 = 0.3D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 3D; - GL11.glTranslated(7, 8, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.novac.renderAllExcept("Scope"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java deleted file mode 100644 index 938d55aa9..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponObj implements IItemRenderer { - - public ItemRenderWeaponObj() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - case INVENTORY: - return item.getItem() == ModItems.gun_hk69 - || item.getItem() == ModItems.gun_deagle - || item.getItem() == ModItems.gun_flechette; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - if(item.getItem() == ModItems.gun_hk69) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hk69_tex); - - if(item.getItem() == ModItems.gun_deagle) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.universal_bright); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glTranslatef(1.0F, 0.5F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - - if(player.isSneaking()) { - GL11.glTranslatef(1.16F, 0.35F, -0.8F); - GL11.glRotatef(5.5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(4F, 1.0F, 0.0F, 0.0F); - } - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(25F, -1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.2F, 0.2F, 0.8F); - GL11.glScaled(0.2, 0.2, 0.2); - - if(player.isSneaking()) { - GL11.glTranslatef(3.7F, 1.7F, 0F); - GL11.glRotatef(-5F, 0.0F, 1.0F, 0.0F); - } - } - - if(item.getItem() == ModItems.gun_flechette) { - - GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(1.0F, -1.0F, -0.0F); - GL11.glRotatef(170F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.25, 0.25, 0.25); - - if(player.isSneaking()) { - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-2F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-2.0F, 1.2F, 3.7F); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(recoil[0], recoil[1], recoil[2]); - } - - break; - - case EQUIPPED: - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.4F, 0.0F, 0.55F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(35F, -1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.1F, 0.8F); - GL11.glScaled(0.15, 0.15, 0.15); - } - - if(item.getItem() == ModItems.gun_flechette) { - GL11.glRotatef(35F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-1.4F, -0.55F, 0.0F); - GL11.glScaled(0.125, 0.125, 0.125); - } - - break; - - case ENTITY: - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.25, 0.25, 0.25); - } - - if(item.getItem() == ModItems.gun_flechette) { - GL11.glTranslatef(-0.25F, 0.0F, 0.0F); - GL11.glScaled(0.125, 0.125, 0.125); - } - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glScaled(7.5, 7.5, -7.5); - GL11.glTranslatef(0.85F, 1.2F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glScaled(2.5, 2.5, -2.5); - GL11.glTranslatef(3.5F, 3F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - if(item.getItem() == ModItems.gun_flechette) { - GL11.glScaled(1.2, 1.2, -1.2); - GL11.glTranslatef(2.5F, 8.0F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-45F, 0.0F, 0.0F, 1.0F); - } - - break; - - default: break; - } - - if(item.getItem() == ModItems.gun_hk69) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.hk69.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - if(item.getItem() == ModItems.gun_deagle) { - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.deagle.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - - if(item.getItem() == ModItems.gun_flechette) { - renderFlechette(); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } - - public void renderFlechette() { - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_body); - ResourceManager.flechette.renderPart("body"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_chamber); - ResourceManager.flechette.renderPart("chamber"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_barrel); - ResourceManager.flechette.renderPart("barrel"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_gren_tube); - ResourceManager.flechette.renderPart("gren_tube"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_grenades); - ResourceManager.flechette.renderPart("grenades"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_pivot); - ResourceManager.flechette.renderPart("pivot"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_top); - ResourceManager.flechette.renderPart("top"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_drum); - ResourceManager.flechette.renderPart("drum"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_base); - ResourceManager.flechette.renderPart("base"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_trigger); - ResourceManager.flechette.renderPart("trigger"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_stock); - ResourceManager.flechette.renderPart("stock"); - GL11.glShadeModel(GL11.GL_FLAT); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponQuadro.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponQuadro.java deleted file mode 100644 index ecfa3056c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponQuadro.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponQuadro implements IItemRenderer { - - public ItemRenderWeaponQuadro() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glTranslatef(0.75F, 0.0F, -0.15F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-25F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 1.0F, 0.0F); - GL11.glScaled(0.5, 0.5, 0.5); - - if(player.isSneaking()) { - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(1.0F, 0.5F, 0.3F); - } - - double[] recoil = HbmAnimations.getRelevantTransformation("QUADRO_RECOIL"); - GL11.glTranslated(0, 0, recoil[2]); - - double[] reload = HbmAnimations.getRelevantTransformation("QUADRO_RELOAD_ROTATE"); - GL11.glRotated(reload[2], 1, 0, 0); - } - - break; - - case EQUIPPED: - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glRotatef(20F, 1.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.4F, -0.35F, -0.4F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - break; - - case ENTITY: - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.0F, 0.0F); - GL11.glScaled(0.75, 0.75, 0.75); - } - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glScaled(4.5, 4.5, -4.5); - GL11.glTranslatef(1.0F, 2.5F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); - } - - break; - - default: break; - } - - if(item.getItem() == ModItems.gun_quadro) { - GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_tex); - ResourceManager.quadro.renderPart("Launcher"); - - if(ItemGunBase.getMag(item) > 0 || ItemGunBase.getIsReloading(item) && type != ItemRenderType.INVENTORY) { - GL11.glPushMatrix(); - - GL11.glTranslated(0, -1, 0); - - double[] push = HbmAnimations.getRelevantTransformation("QUADRO_RELOAD_PUSH"); - GL11.glTranslated(0, 3, 0); - GL11.glRotated(push[1] * 30, 1, 0, 0); - GL11.glTranslated(0, -3, 0); - GL11.glTranslated(0, 0, push[0] * 3); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.quadro_rocket_tex); - ResourceManager.quadro.renderPart("Rockets"); - GL11.glPopMatrix(); - } - - GL11.glShadeModel(GL11.GL_FLAT); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponRemington.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponRemington.java deleted file mode 100644 index e49b57531..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponRemington.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponRemington implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.remington_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double[] recoilT = HbmAnimations.getRelevantTransformation("RECOIL_TRANSLATE"); - double[] pump = HbmAnimations.getRelevantTransformation("PUMP"); - - double s0 = 0.35D; - GL11.glRotated(25, 0, 0, 1); - GL11.glRotated(-10, 0, 1, 0); - GL11.glTranslated(1.25, -1.25, -0.25); - GL11.glScaled(s0, s0, s0); - - GL11.glTranslated(recoilT[2], 0, 0); - - ResourceManager.remington.renderPart("Gun"); - - GL11.glTranslated(pump[2] * 0.5, 0, 0); - - ResourceManager.remington.renderPart("Pump"); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-80, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(2.5F, -3.5F, -2F); - - ResourceManager.remington.renderAll(); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, -3, 0); - - ResourceManager.remington.renderAll(); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.25D; - GL11.glTranslated(4, 11, 0); - GL11.glRotated(-135, 0, 0, 1); - GL11.glScaled(s, s, -s); - - ResourceManager.remington.renderAll(); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSauer.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSauer.java deleted file mode 100644 index 9d4d204de..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSauer.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponSauer implements IItemRenderer { - - public ItemRenderWeaponSauer() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sauergun_tex); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double[] recoil = HbmAnimations.getRelevantTransformation("SAUER_RECOIL"); - double[] tilt = HbmAnimations.getRelevantTransformation("SAUER_TILT"); - double[] cock = HbmAnimations.getRelevantTransformation("SAUER_COCK"); - double[] eject = HbmAnimations.getRelevantTransformation("SAUER_SHELL_EJECT"); - - double s0 = 0.5D; - GL11.glScaled(s0, s0, s0); - - GL11.glTranslatef(0.0F, -0.5F, 0.0F); - GL11.glRotatef(-100F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(20F, 1.0F, 0.0F, 0.0F); - - if(recoil != null) - GL11.glTranslated(0, 0, recoil[0]); - - if(player.isSneaking()) { - GL11.glRotatef(-3F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(2F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(3F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2.0F, 0.5F, 0.3F); - } - - if(tilt != null) { - GL11.glTranslated(0, -5, 0); - GL11.glRotated(tilt[2] * -0.5, 1, 0, 0); - GL11.glTranslated(0, 5, 0); - GL11.glRotated(tilt[0], 0, 0, 1); - - GL11.glTranslated(0, 0, cock[0] * 2); - ResourceManager.sauergun.renderPart("Lever"); - GL11.glTranslated(0, 0, -cock[0] * 2); - - GL11.glTranslated(eject[2] * 10, -eject[2], 0); - GL11.glRotated(eject[2] * 90, -1, 0, 0); - ResourceManager.sauergun.renderPart("Shell"); - GL11.glRotated(eject[2] * 90, 1, 0, 0); - GL11.glTranslated(-eject[2] * 10, eject[2], 0); - - } else { - - ResourceManager.sauergun.renderPart("Lever"); - } - - break; - - case EQUIPPED: - - double scale = 0.5D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-1F, -0.3F, 0.0F); - ResourceManager.sauergun.renderPart("Lever"); - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.0F, 0.0F, 0.5F); - GL11.glScaled(s1, s1, s1); - ResourceManager.sauergun.renderPart("Lever"); - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 2.25D; - GL11.glScaled(s, s, -s); - GL11.glTranslatef(4.0F, 4.5F, 0.0F); - GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(45F, 1.0F, 0.0F, 0.0F); - ResourceManager.sauergun.renderPart("Lever"); - - break; - - default: break; - } - - ResourceManager.sauergun.renderPart("Gun"); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java deleted file mode 100644 index bcf4670e2..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponShotty.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.config.WeaponConfig; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; -import com.hbm.render.anim.HbmAnimations.Animation; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponShotty implements IItemRenderer { - - public ItemRenderWeaponShotty() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - case INVENTORY: - return false; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.shotty_tex); - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - String animSuffix = WeaponConfig.linearAnimations ? "Lame" : ""; - - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-95F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-2.0F, 0.25F, -2.5F); - - HbmAnimations.applyRelevantTransformation("Body" + animSuffix); - ResourceManager.shotty.renderPart("Body"); - - HbmAnimations.applyRelevantTransformation("Barrel" + animSuffix); - ResourceManager.shotty.renderPart("Barrel"); - - // If we've run out of ammo, stop drawing the shells after ejection has completed - Animation anim = HbmAnimations.getRelevantAnim(); - int millis = anim != null ? (int)(System.currentTimeMillis() - anim.startMillis) : 0; - - if(ItemGunBase.getBeltSize(player, ItemGunBase.getBeltType(player, item, true)) > 0 || millis < 1000) { - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("ShellL" + animSuffix); - ResourceManager.shotty.renderPart("ShellL"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("ShellR" + animSuffix); - ResourceManager.shotty.renderPart("ShellR"); - GL11.glPopMatrix(); - } - - break; - - case EQUIPPED: - - GL11.glRotatef(-170F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-10F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-10F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.4F, 0.0F, -0.5F); - GL11.glScaled(0.35, 0.35, 0.35); - ResourceManager.shotty.renderPart("Body"); - ResourceManager.shotty.renderPart("Barrel"); - - break; - - case ENTITY: - - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glTranslatef(0.0F, 0.2F, 0.0F); - ResourceManager.shotty.renderPart("Body"); - ResourceManager.shotty.renderPart("Barrel"); - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java deleted file mode 100644 index 4fff46dd0..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponSpas12.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.hbm.render.item.weapon; - -import java.awt.Color; - -import org.lwjgl.opengl.GL11; - -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponSpas12 implements IItemRenderer { - - public ItemRenderWeaponSpas12() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.spas_12_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.5D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(0, -0.8, 0.1); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - HbmAnimations.applyRelevantTransformation("MainBody"); - ResourceManager.spas_12.renderPart("MainBody"); - - GL11.glPushMatrix(); - HbmAnimations.applyRelevantTransformation("PumpGrip"); - ResourceManager.spas_12.renderPart("PumpGrip"); - GL11.glPopMatrix(); - - - GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.casings_tex); - - HbmAnimations.applyRelevantTransformation("Shell"); - - ItemGunBase gun = (ItemGunBase)item.getItem(); - BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(item))); - int[] colors = bullet.spentCasing.getColors(); - - Color shellColor = new Color(colors[1]); - GL11.glColor3f(shellColor.getRed() / 255F, shellColor.getGreen() / 255F, shellColor.getBlue() / 255F); - ResourceManager.spas_12.renderPart("Shell"); - - Color shellForeColor = new Color(colors[0]); - GL11.glColor3f(shellForeColor.getRed() / 255F, shellForeColor.getGreen() / 255F, shellForeColor.getBlue() / 255F); - ResourceManager.spas_12.renderPart("ShellFore"); - - GL11.glColor3f(1F, 1F, 1F); - GL11.glPopMatrix(); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(190, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -1F, 2F); - - ResourceManager.spas_12.renderAll(); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 0, 4); - - ResourceManager.spas_12.renderAll(); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.6D; - GL11.glTranslated(12, 13.5, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, s); - - ResourceManager.spas_12.renderAll(); - - break; - - default: break; - } - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponTau.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponTau.java deleted file mode 100644 index b46f19474..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponTau.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.weapon.ItemGunGauss; -import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponTau implements IItemRenderer { - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.tau_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.35D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.5, 0, 0.1); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); - GL11.glTranslated(0, 0, recoil[0] * -1); - GL11.glTranslated(0, 0, -3); - GL11.glRotated(recoil[0] * -5, 1, 0, 0); - GL11.glTranslated(0, 0, 3); - - ResourceManager.tau.renderPart("Body"); - - if(ItemGunGauss.getCharge(item) > 0) { - GL11.glTranslated(0, -0.2, 0); - GL11.glRotated(System.currentTimeMillis() % 360D, 0, 0, 1); - GL11.glTranslated(0, 0.2, 0); - } - - ResourceManager.tau.renderPart("Rotor"); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(2F, 1F, 3F); - - ResourceManager.tau.renderAll(); - - break; - - case ENTITY: - - double s1 = 0.25D; - GL11.glScaled(s1, s1, s1); - GL11.glTranslated(0, 1, 0); - - ResourceManager.tau.renderAll(); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.6D; - GL11.glTranslated(8, 7, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - ResourceManager.tau.renderAll(); - - break; - - default: break; - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glEnable(GL11.GL_CULL_FACE); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponThompson.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponThompson.java deleted file mode 100644 index f8bd5c12c..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponThompson.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderWeaponThompson implements IItemRenderer { - - public ItemRenderWeaponThompson() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - case INVENTORY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - - return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - - GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); - - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.thompson_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.25D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(0.5, -0.5, -0.5); - GL11.glRotated(-100, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - - double scale = 0.25D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-2F, -3F, -0.5F); - - break; - - case ENTITY: - - double s1 = 0.2D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: - - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 1.75D; - GL11.glTranslated(4, 11, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glRotated(135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; - } - - ResourceManager.thompson.renderAll(); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java index b78bb547e..a21b57e25 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java @@ -15,6 +15,12 @@ public class ItemRenderAm180 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java index af8f2045b..85be22898 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java @@ -8,12 +8,25 @@ import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class ItemRenderAtlas extends ItemRenderWeaponBase { + + public ResourceLocation texture; + + public ItemRenderAtlas(ResourceLocation texture) { + this.texture = texture; + } @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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -28,7 +41,7 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase { public void renderFirstPerson(ItemStack stack) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); double scale = 0.125D; GL11.glScaled(scale, scale, scale); @@ -98,8 +111,9 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase { @Override public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); GL11.glTranslated(0, 1, 3); - } @Override @@ -117,7 +131,7 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); ResourceManager.bio_revolver.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java new file mode 100644 index 000000000..165cd20cc --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java @@ -0,0 +1,119 @@ +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 net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.item.ItemStack; + +public class ItemRenderBolter 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.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -2F * offset, 2.5F * offset, + 0, -10.5 / 8D, 1.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_tex); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotated(180, 0, 1, 0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glRotated(recoil[0] * 5, 1, 0, 0); + GL11.glTranslated(0, 0, recoil[0]); + + double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); + GL11.glTranslated(0, tilt[0], 3); + GL11.glRotated(tilt[0] * 35, 1, 0, 0); + GL11.glTranslated(0, 0, -3); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.bolter.renderPart("Body"); + + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 5); + GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); + GL11.glTranslated(0, 0, -5); + ResourceManager.bolter.renderPart("Mag"); + if(mag[2] != 1) ResourceManager.bolter.renderPart("Bullet"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + String s = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) + ""; + float f3 = 0.04F; + GL11.glTranslatef(0.025F - (font.getStringWidth(s) / 2) * 0.04F, 2.11F, 2.91F); + GL11.glScalef(f3, -f3, f3); + GL11.glRotatef(45, 1, 0, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * f3); + font.drawString(s, 0, 0, 0xff0000); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, -0.75, 1.25); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 2.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(180, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bolter_tex); + ResourceManager.bolter.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java index dbf04f6a1..829aa1a3a 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java @@ -14,6 +14,12 @@ public class ItemRenderCarbine 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java new file mode 100644 index 000000000..111232870 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java @@ -0,0 +1,88 @@ +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 net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderCoilgun 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.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1.5F * offset, 2.5F * offset, + 0, -7.5 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flaregun_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + GL11.glRotated(-90, 0, 1, 0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(-1.5 - recoil[0] * 0.5, 0, 0); + GL11.glRotated(recoil[0] * 45, 0, 0, 1); + GL11.glTranslated(1.5, 0, 0); + + double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); + GL11.glTranslated(-2.5, 0, 0); + GL11.glRotated(reload[0] * -45, 0, 0, 1); + GL11.glTranslated(2.5, 0, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 3D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.25, 1.25); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 4D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.25, -0.25, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glRotated(-90, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java index 531e26c2d..b2b7250f4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java @@ -20,6 +20,12 @@ public class ItemRenderCongoLake 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -27,7 +33,7 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { float offset = 0.8F; standardAimingTransform(stack, -1.5F * offset, -2F * offset, 1.25F * offset, - 0, -9 / 8D, 0.25); + 0, -10 / 8D, 0.25); } @Override @@ -52,7 +58,11 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { GL11.glPushMatrix(); { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; HbmAnimations.applyRelevantTransformation("Sight"); + GL11.glTranslated(0, 2.125, 3); + GL11.glRotated(aimingProgress * -90, 1, 0, 0); + GL11.glTranslated(0, -2.125, -3); ResourceManager.congolake.renderPart("Sight"); } GL11.glPopMatrix(); 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 639706818..8991d63f6 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 @@ -14,6 +14,12 @@ public class ItemRenderFatMan 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java index c43ce175d..5ec21511a 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.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.mags.IMagazine; import com.hbm.main.MainRegistry; @@ -10,12 +11,25 @@ import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class ItemRenderFlamer extends ItemRenderWeaponBase { + + public ResourceLocation texture; + + public ItemRenderFlamer(ResourceLocation texture) { + this.texture = texture; + } @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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -30,7 +44,7 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { public void renderFirstPerson(ItemStack stack) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flamethrower_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); double scale = 0.375D; GL11.glScaled(scale, scale, scale); @@ -50,6 +64,7 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { GL11.glPushMatrix(); HbmAnimations.applyRelevantTransformation("Gun"); ResourceManager.flamethrower.renderPart("Gun"); + if(hasShield(stack)) ResourceManager.flamethrower.renderPart("HeatShield"); GL11.glPopMatrix(); GL11.glPushMatrix(); @@ -57,7 +72,6 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { ResourceManager.flamethrower.renderPart("Tank"); GL11.glPopMatrix(); - GL11.glPushMatrix(); HbmAnimations.applyRelevantTransformation("Gauge"); GL11.glTranslated(1.25, 1.25, 0); @@ -94,9 +108,15 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flamethrower_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); ResourceManager.flamethrower.renderPart("Gun"); ResourceManager.flamethrower.renderPart("Tank"); + ResourceManager.flamethrower.renderPart("Gauge"); + if(hasShield(stack)) ResourceManager.flamethrower.renderPart("HeatShield"); GL11.glShadeModel(GL11.GL_FLAT); } + + public boolean hasShield(ItemStack stack) { + return stack.getItem() == ModItems.gun_flamer_daybreaker; + } } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java index 3a7e62e71..d97381832 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java @@ -14,6 +14,12 @@ public class ItemRenderFlaregun 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -21,7 +27,7 @@ public class ItemRenderFlaregun extends ItemRenderWeaponBase { float offset = 0.8F; standardAimingTransform(stack, -1.25F * offset, -1.5F * offset, 2F * offset, - 0, -5.5 / 8D, 1); + 0, -5.5 / 8D, 0.5); } @Override diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java new file mode 100644 index 000000000..a38c70419 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java @@ -0,0 +1,250 @@ +package com.hbm.render.item.weapon.sedna; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; +import com.hbm.util.EntityDamageUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; + +public class ItemRenderFolly extends ItemRenderWeaponBase { + + public static long timeAiming; + public static boolean jingle = false; + public static boolean wasAiming = false; + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2F : 2.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + float aim = 0.75F; + standardAimingTransform(stack, + -2.5F * offset, -1.5F * offset, 2.75F * offset, + -2 * aim, -1 * aim, 2.25F * offset); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.folly_tex); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] load = HbmAnimations.getRelevantTransformation("LOAD"); + double[] shell = HbmAnimations.getRelevantTransformation("SHELL"); + double[] screw = HbmAnimations.getRelevantTransformation("SCREW"); + double[] breech = HbmAnimations.getRelevantTransformation("BREECH"); + + GL11.glTranslated(0, 1, -4); + GL11.glRotated(-equip[0], 1, 0, 0); + GL11.glTranslated(0, -1, 4); + + GL11.glTranslated(0, -2, -2); + GL11.glRotated(load[0], 1, 0, 0); + GL11.glTranslated(0, 2, 2); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.folly.renderPart("Cannon"); + + GL11.glPushMatrix(); + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + ResourceManager.folly.renderPart("Barrel"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(shell[0], shell[1], shell[2]); + ResourceManager.folly.renderPart("Shell"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(breech[0], breech[1], breech[2]); + ResourceManager.folly.renderPart("Breech"); + GL11.glTranslated(0, 1, 0); + GL11.glRotated(screw[2], 0, 0, 1); + GL11.glTranslated(0, -1, 0); + ResourceManager.folly.renderPart("Cog"); + GL11.glPopMatrix(); + + + boolean isAiming = gun.prevAimingProgress >= 1F && gun.aimingProgress >= 1F; + if(isAiming & !wasAiming) timeAiming = System.currentTimeMillis(); + + if(isAiming) { + + String splash = getBootSplash(); + + if(!jingle && !splash.isEmpty()) { + MainRegistry.proxy.playSoundClient(player.posX, player.posY, player.posZ, "hbm:weapon.fire.vstar", 0.5F, 1F); + jingle = true; + } + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + float variance = 0.85F + player.getRNG().nextFloat() * 0.15F; + + if(System.currentTimeMillis() - timeAiming > 5000 && load[0] == 0) { + IMagazine mag = gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack); + String msg = mag.getAmount(stack, player.inventory) > 0 ? "+" : "No ammo"; + GL11.glPushMatrix(); + float crosshairSize = 0.01F; + GL11.glTranslatef((font.getStringWidth(msg) / 2) * crosshairSize + 2, 1F + font.FONT_HEIGHT * crosshairSize / 2F, -2.75F); + GL11.glScalef(crosshairSize, -crosshairSize, crosshairSize); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * crosshairSize); + font.drawString(msg, 0, 0, new Color(variance, variance * 0.5F, 0F).getRGB()); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + float splashSize = 0.02F; + GL11.glTranslatef((font.getStringWidth(splash) / 2) * splashSize + 2, 1F + font.FONT_HEIGHT * splashSize / 2F, -2.75F); + GL11.glScalef(splashSize, -splashSize, splashSize); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * splashSize); + font.drawString(splash, 0, 0, new Color(variance, variance * 0.5F, 0F).getRGB()); + GL11.glPopMatrix(); + + List tty = getTTY(); + if(!tty.isEmpty()) { + GL11.glPushMatrix(); + float fontSize = 0.005F; + GL11.glTranslatef(2.5F, 1.375F, -2.75F); + GL11.glScalef(fontSize, -fontSize, fontSize); + GL11.glRotated(180D, 0, 1, 0); + GL11.glNormal3f(0.0F, 0.0F, -1.0F * fontSize); + for(String line : tty) { + font.drawString(line, 0, 0, new Color(variance, variance * 0.5F, 0F).getRGB()); + GL11.glTranslated(0, (font.FONT_HEIGHT + 2), 0); + } + GL11.glPopMatrix(); + } + + GL11.glColor3f(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + int brightness = player.worldObj.getLightBrightnessForSkyBlocks(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ), 0); + int j = brightness % 65536; + int k = brightness / 65536; + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) j / 1.0F, (float) k / 1.0F); + } else { + jingle = false; + } + + wasAiming = isAiming; + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 3D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(-0.25, 0.5, 3); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.folly_tex); + ResourceManager.folly.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + public static String getBootSplash() { + long now = System.currentTimeMillis(); + if(timeAiming + 5000 < now) return ""; + if(timeAiming + 3000 > now) return ""; + int splashIndex = (int)((now - timeAiming - 3000) * 35 / 2000) - 10; + //use the StringBuilder this, can't eat the drywall that, this used to be a free country + char[] letters = "VStarOS".toCharArray(); + String splash = ""; + for(int i = 0; i < letters.length; i++) { + if(i < splashIndex - 1) splash += EnumChatFormatting.LIGHT_PURPLE; + if(i == splashIndex - 1) splash += EnumChatFormatting.AQUA; + if(i == splashIndex) splash += EnumChatFormatting.WHITE; + if(i == splashIndex + 1) splash += EnumChatFormatting.AQUA; + if(i == splashIndex + 2) splash += EnumChatFormatting.LIGHT_PURPLE; + if(i > splashIndex + 2) splash += EnumChatFormatting.BLACK; + splash += letters[i]; + } + return splash; + } + + public static List getTTY() { + List tty = new ArrayList(); + long now = System.currentTimeMillis(); + int time = (int)((now - timeAiming)); + if(time < 3000) { + if(time > 250) tty.add(EnumChatFormatting.GREEN + "POST successful - Code 0"); + if(time > 500) tty.add(EnumChatFormatting.GREEN + "8,388,608 bytes of RAM installed"); + if(time > 500) tty.add(EnumChatFormatting.GREEN + "5,187,427 bytes available"); + if(time > 750) tty.add(EnumChatFormatting.GREEN + "Reticulating splines..."); + if(time > 1500) tty.add(EnumChatFormatting.GREEN + "No keyboard found!"); + if(time > 2000) tty.add(EnumChatFormatting.GREEN + "Booting from /dev/sda1..."); + } + if(time > 5000) { + EntityPlayer player = MainRegistry.proxy.me(); + MovingObjectPosition mop = EntityDamageUtil.getMouseOver(player, 250); + String target = EnumChatFormatting.GREEN + "Target: "; + if(mop.typeOfHit == mop.typeOfHit.MISS) target += "N/A"; + if(mop.typeOfHit == mop.typeOfHit.BLOCK) target += mop.blockX + "/" + mop.blockY + "/" + mop.blockZ; + if(mop.typeOfHit == mop.typeOfHit.ENTITY) target += mop.entityHit.getCommandSenderName(); + tty.add(target); + tty.add(EnumChatFormatting.GREEN + "Angle: " + ((int)(-player.rotationPitch * 100) / 100D)); + } + return tty; + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java index b65244be8..c647d6f2c 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java @@ -14,6 +14,12 @@ public class ItemRenderG3 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -21,7 +27,7 @@ public class ItemRenderG3 extends ItemRenderWeaponBase { float offset = 0.8F; standardAimingTransform(stack, -1.25F * offset, -1F * offset, 2.75F * offset, - 0, -3.625 / 8D, 1.75); + 0, -3.5625 / 8D, 1.75); } @Override @@ -64,7 +70,7 @@ public class ItemRenderG3 extends ItemRenderWeaponBase { GL11.glRotated(speen[1], 0, 1, 0); GL11.glTranslated(0, 1.75, 0.5); ResourceManager.g3.renderPart("Magazine"); - if(bullet[0] != 1) ResourceManager.g3.renderPart("Bullet"); + if(bullet[0] == 0) ResourceManager.g3.renderPart("Bullet"); GL11.glPopMatrix(); GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java index 6dce925b2..41c7f287d 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java @@ -14,6 +14,12 @@ public class ItemRenderGreasegun 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java new file mode 100644 index 000000000..f02c22562 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java @@ -0,0 +1,132 @@ +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 net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderHangman 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 * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -0.875F * offset, 1.75F * offset, + 0, -1.5 / 8D, 1.25); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hangman_tex); + float offset = 0.8F; + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] roll = HbmAnimations.getRelevantTransformation("ROLL"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] smack = HbmAnimations.getRelevantTransformation("SMACK"); + double[] lid = HbmAnimations.getRelevantTransformation("LID"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] bullets = HbmAnimations.getRelevantTransformation("BULLETS"); + + GL11.glTranslated(1.5F * offset, 0, -1); + GL11.glRotated(turn[1], 0, 1, 0); + GL11.glTranslated(-1.5F * offset, 0, 1); + + GL11.glRotated(roll[2], 0, 0, 1); + GL11.glTranslated(smack[0], smack[1], smack[2]); + + double scale = 0.125D; + GL11.glScaled(scale, scale, scale); + + GL11.glTranslated(0, -4, -10); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 4, 10); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.hangman.renderPart("Rifle"); + ResourceManager.hangman.renderPart("Internals"); + + GL11.glPushMatrix(); + //i give the fuck up + GL11.glTranslated(-2.1875, -1.75, 0); + GL11.glRotated(lid[2], 0, 0, 1); + GL11.glTranslated(2.1875, 1.75, 0); + ResourceManager.hangman.renderPart("Lid"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.hangman.renderPart("Magazine"); + if(bullets[0] == 0) ResourceManager.hangman.renderPart("Bullets"); + GL11.glPopMatrix(); + + double smokeScale = 1.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 29); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.5D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 29); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + GL11.glScaled(2, 2, 2); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 4.25, 11); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 2.5, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hangman_tex); + ResourceManager.hangman.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java index 0b4d1f9eb..7e1d6e858 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java @@ -22,6 +22,12 @@ public class ItemRenderHeavyRevolver 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 * (isScoped(stack) ? 0.66F : 0.33F)); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 1); @@ -38,7 +44,7 @@ public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase { public void renderFirstPerson(ItemStack stack) { boolean isScoped = this.isScoped(stack); - if(this.isScoped(stack) && ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + if(isScoped && ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); double scale = 0.125D; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java index 0c89e72f0..ff014f479 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java @@ -14,6 +14,12 @@ public class ItemRenderHenry 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java index c14ec39a0..1a3f532a5 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -13,6 +14,12 @@ public class ItemRenderLAG 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -32,12 +39,56 @@ public class ItemRenderLAG extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); GL11.glRotated(90, 0, 1, 0); + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + //double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER"); + double[] addTrans = HbmAnimations.getRelevantTransformation("ADD_TRANS"); + double[] addRot = HbmAnimations.getRelevantTransformation("ADD_ROT"); + //Animation anim = HbmAnimations.getRelevantAnim(0); + + GL11.glTranslated(4, -4, 0); + GL11.glRotated(-equip[0], 0, 0, 1); + GL11.glTranslated(-4, 4, 0); + + GL11.glTranslated(addTrans[0], addTrans[1], addTrans[2]); + GL11.glRotated(addRot[2], 0, 0, 1); + GL11.glRotated(addRot[1], 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Grip"); ResourceManager.mike_hawk.renderPart("Grip"); + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Slide"); + + /*if(anim != null) { + BusAnimationSequence slideSeq = anim.animation.getBus("Hammer"); + if(slideSeq != null) GL11.glTranslated(0, 0.75, 0); + }*/ + ResourceManager.mike_hawk.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(3.125, 0.125, 0); + GL11.glRotated(-25, 0, 0, 1); + GL11.glTranslated(-3.125, -0.125, 0); + HbmAnimations.applyRelevantTransformation("Hammer"); ResourceManager.mike_hawk.renderPart("Hammer"); - ResourceManager.mike_hawk.renderPart("Bullet"); + GL11.glPopMatrix(); + + if(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null) > 0) { + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Bullet"); + ResourceManager.mike_hawk.renderPart("Bullet"); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + HbmAnimations.applyRelevantTransformation("Magazine"); ResourceManager.mike_hawk.renderPart("Magazine"); + GL11.glPopMatrix(); double smokeScale = 0.5; @@ -54,6 +105,8 @@ public class ItemRenderLAG extends ItemRenderWeaponBase { GL11.glRotated(90 * gun.shotRand, 1, 0, 0); this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); GL11.glPopMatrix(); + + GL11.glPopMatrix(); } @Override diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java new file mode 100644 index 000000000..8f2e30bff --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java @@ -0,0 +1,107 @@ +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 net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderLasrifle 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.75F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.5F * offset, -1.5F * offset, 2.5F * offset, + 0, -7.375 / 8D, 0.75); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + if(ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lasrifle_tex); + double scale = 0.3125D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + + GL11.glTranslated(0, -1, -6); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 6); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.lasrifle.renderPart("Gun"); + ResourceManager.lasrifle.renderPart("Barrel"); + ResourceManager.lasrifle.renderPart("Stock"); + ResourceManager.lasrifle.renderPart("Scope"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, -0.375, 2.375); + GL11.glRotated(lever[0], 1, 0, 0); + GL11.glTranslated(0, 0.375, -2.375); + ResourceManager.lasrifle.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.lasrifle.renderPart("Battery"); + GL11.glPopMatrix(); + + 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.0625D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0.5, 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.lasrifle_tex); + ResourceManager.lasrifle.renderPart("Gun"); + ResourceManager.lasrifle.renderPart("Barrel"); + ResourceManager.lasrifle.renderPart("Stock"); + ResourceManager.lasrifle.renderPart("Scope"); + ResourceManager.lasrifle.renderPart("Lever"); + ResourceManager.lasrifle.renderPart("Battery"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java index 7421322f5..58cdfeb8e 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java @@ -15,6 +15,12 @@ public class ItemRenderLiberator 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java index 165593a13..80ebca69f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java @@ -14,6 +14,12 @@ public class ItemRenderM2 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java index 4381b8824..81ca1a2ec 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java @@ -22,6 +22,12 @@ public class ItemRenderMaresleg 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java index 367d6a62c..5a60a4aaf 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java @@ -127,6 +127,8 @@ public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase { @Override public void setupInv(ItemStack stack) { + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glScaled(1, 1, -1); GL11.glTranslated(8, 8, 0); double scale = 2.5D; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java index af0e4a7c3..ed44d201f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java @@ -8,12 +8,25 @@ import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class ItemRenderMinigun extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderMinigun(ResourceLocation texture) { + this.texture = texture; + } @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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); @@ -28,7 +41,7 @@ public class ItemRenderMinigun extends ItemRenderWeaponBase { public void renderFirstPerson(ItemStack stack) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); double scale = 0.375D; GL11.glScaled(scale, scale, scale); @@ -95,7 +108,7 @@ public class ItemRenderMinigun extends ItemRenderWeaponBase { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); ResourceManager.minigun.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java index 955f3d994..f0e5380ff 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java @@ -14,6 +14,12 @@ public class ItemRenderPanzerschreck 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java index 903ce4f9f..7f06a4509 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java @@ -14,6 +14,12 @@ public class ItemRenderPepperbox 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 1.5); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java index 4e5038478..baff66af8 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java @@ -18,6 +18,12 @@ public class ItemRenderSPAS12 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java index 8aaf9e285..1d7c1e123 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java @@ -12,7 +12,7 @@ import net.minecraft.item.ItemStack; public class ItemRenderSTG77 extends ItemRenderWeaponBase { @Override - protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 0.5F : -0.25F; } @Override public void setupFirstPerson(ItemStack stack) { @@ -21,11 +21,24 @@ public class ItemRenderSTG77 extends ItemRenderWeaponBase { float offset = 0.8F; standardAimingTransform(stack, -1.5F * offset, -1F * offset, 2.5F * offset, - 0, -5.75 / 8D, 1); + 0, -5.75 / 8D, 2); + } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.66F); + } + + @Override + protected float getBaseFOV(ItemStack stack) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return 70F - aimingProgress * 65; } @Override public void renderFirstPerson(ItemStack stack) { + if(ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.stg77_tex); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java index e0af2c0c3..aa7aa0872 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java @@ -28,6 +28,12 @@ public class ItemRenderShredder 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java index b80e3354e..384383688 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java @@ -16,6 +16,12 @@ public class ItemRenderStinger 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.5F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java index d3192e3f0..e961d5517 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java @@ -16,6 +16,12 @@ public class ItemRenderTeslaCannon 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 * 0.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java index 10ee4acaa..40e267595 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java @@ -14,6 +14,12 @@ public class ItemRenderUzi 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.33F); + } + @Override public void setupFirstPerson(ItemStack stack) { GL11.glTranslated(0, 0, 0.875); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java new file mode 100644 index 000000000..dded1cc0d --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java @@ -0,0 +1,204 @@ +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 net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderUziAkimbo extends ItemRenderWeaponBase { + + @Override public boolean isAkimbo() { return true; } + + @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.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + float offset = 0.8F; + + for(int i = -1; i <= 1; i += 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + + GL11.glPushMatrix(); + int index = i == -1 ? 0 : 1; + standardAimingTransform(stack, -2.25F * offset * i, -1.5F * offset, 2.5F * offset, 0, -4.375 / 8D, 1); + + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP", index); + double[] stockFront = HbmAnimations.getRelevantTransformation("STOCKFRONT", index); + double[] stockBack = HbmAnimations.getRelevantTransformation("STOCKBACK", index); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL", index); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT", index); + double[] mag = HbmAnimations.getRelevantTransformation("MAG", index); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET", index); + double[] slide = HbmAnimations.getRelevantTransformation("SLIDE", index); + double[] yeet = HbmAnimations.getRelevantTransformation("YEET", index); + double[] speen = HbmAnimations.getRelevantTransformation("SPEEN", index); + + GL11.glTranslated(yeet[0], yeet[1], yeet[2]); + GL11.glRotated(speen[0], 0, 0, 1); + + GL11.glTranslated(0, -2, -4); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 4); + + GL11.glTranslated(0, 0, -6); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 0, 6); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.uzi.renderPart(index == 0 ? "GunMirror" : "Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.3125D, -5.75); + GL11.glRotated(180 - stockFront[0], 1, 0, 0); + GL11.glTranslated(0, -0.3125D, 5.75); + ResourceManager.uzi.renderPart("StockFront"); + + GL11.glTranslated(0, -0.3125D, -3); + GL11.glRotated(-200 - stockBack[0], 1, 0, 0); + GL11.glTranslated(0, 0.3125D, 3); + ResourceManager.uzi.renderPart("StockBack"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, slide[2]); + ResourceManager.uzi.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.uzi.renderPart("Magazine"); + if(bullet[0] == 1) ResourceManager.uzi.renderPart("Bullet"); + GL11.glPopMatrix(); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 8.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, index).smokeNodes, 0.75D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 8.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[index], 75, 7.5); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, 1, 1); + } + + @Override + public void setupThirdPersonAkimbo(ItemStack stack) { + super.setupThirdPersonAkimbo(stack); + GL11.glTranslated(0, 1, 1); + } + + @Override + public void setupInv(ItemStack stack) { + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 8, 0); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void renderEquipped(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Gun"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderEquippedAkimbo(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("GunMirror"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, 1, 0); + ResourceManager.uzi.renderPart("Gun"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glTranslated(0, 0, 5); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(-90, 1, 0, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(-45, 0, 1, 0); + GL11.glTranslated(0, 1, 0); + ResourceManager.uzi.renderPart("GunMirror"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java index 4c64c7b78..d432c31d8 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java @@ -6,6 +6,7 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import org.lwjgl.util.glu.Project; +import com.hbm.config.ClientConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.ItemGunBaseNT.SmokeNode; import com.hbm.lib.RefStrings; @@ -48,6 +49,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_CULL_FACE); switch(type) { case EQUIPPED_FIRST_PERSON: setupFirstPerson(item); renderFirstPerson(item); break; case EQUIPPED: setupThirdPerson(item); renderEquipped(item); break; @@ -74,7 +76,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); - Project.gluPerspective(this.getFOVModifier(interp, false), (float) mc.displayWidth / (float) mc.displayHeight, 0.05F, farPlaneDistance * 2.0F); + Project.gluPerspective(this.getFOVModifier(interp, ClientConfig.GUN_MODEL_FOV.get()), (float) mc.displayWidth / (float) mc.displayHeight, 0.05F, farPlaneDistance * 2.0F); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glLoadIdentity(); @@ -98,7 +100,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { Minecraft mc = Minecraft.getMinecraft(); EntityLivingBase entityplayer = (EntityLivingBase) mc.renderViewEntity; - float fov = 70.0F; + float fov = getBaseFOV(entityplayer.getHeldItem()); if(useFOVSetting) fov = mc.gameSettings.fovSetting; @@ -113,6 +115,8 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { return fov; } + protected float getBaseFOV(ItemStack stack) { return 70F; } + public float getViewFOV(ItemStack stack, float fov) { return fov; } protected float getSwayMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 0.1F : 0.5F; } protected float getSwayPeriod(ItemStack stack) { return 0.75F; } protected float getTurnMagnitude(ItemStack stack) { return 2.75F; } @@ -159,7 +163,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { GL11.glPushMatrix(); //swing - float swing = player.getSwingProgress(interp); + /*float swing = player.getSwingProgress(interp); float swingZ = MathHelper.sin(swing * (float) Math.PI); float swingX = MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI); GL11.glTranslatef(-swingX * 0.4F, MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI * 2.0F) * 0.2F, -swingZ * 0.2F); @@ -169,8 +173,10 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { float swingPitchRoll = MathHelper.sin(MathHelper.sqrt_float(swing) * (float) Math.PI); GL11.glRotatef(-swingYaw * 20.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-swingPitchRoll * 20.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-swingPitchRoll * 80.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-swingPitchRoll * 80.0F, 1.0F, 0.0F, 0.0F);*/ + GL11.glEnable(GL12.GL_RESCALE_NORMAL); //! + GL11.glRotated(180, 0, 1, 0); //viewbob diff --git a/src/main/java/com/hbm/render/model/ModelFolly.java b/src/main/java/com/hbm/render/model/ModelFolly.java deleted file mode 100644 index cdf189d7d..000000000 --- a/src/main/java/com/hbm/render/model/ModelFolly.java +++ /dev/null @@ -1,322 +0,0 @@ -// Date: 13.01.2019 13:32:43 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package com.hbm.render.model; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; - -public class ModelFolly extends ModelBase { - // fields - ModelRenderer SB1; - ModelRenderer SB2; - ModelRenderer SB3; - ModelRenderer SB4; - ModelRenderer SB5; - ModelRenderer SB6; - ModelRenderer SB7; - ModelRenderer SB8; - ModelRenderer SP; - ModelRenderer B1; - ModelRenderer B2; - ModelRenderer B3; - ModelRenderer SF1; - ModelRenderer SF2; - ModelRenderer SF3; - ModelRenderer SF4; - ModelRenderer P1; - ModelRenderer P2; - ModelRenderer P3; - ModelRenderer P4; - ModelRenderer Grip; - ModelRenderer SPointer; - - public ModelFolly() { - textureWidth = 64; - textureHeight = 64; - - SB1 = new ModelRenderer(this, 0, 0); - SB1.addBox(-16F, -1F, 0F, 16, 1, 3); - SB1.setRotationPoint(0F, 4F, -1.5F); - SB1.setTextureSize(64, 32); - SB1.mirror = true; - setRotation(SB1, 0F, 0F, 0F); - SB2 = new ModelRenderer(this, 0, 16); - SB2.addBox(-16F, -1.5F, 0F, 16, 1, 1); - SB2.setRotationPoint(0F, 4F, 1F); - SB2.setTextureSize(64, 32); - SB2.mirror = true; - setRotation(SB2, 0F, 0F, 0F); - SB3 = new ModelRenderer(this, 0, 18); - SB3.addBox(-16F, -1.5F, 0F, 16, 1, 1); - SB3.setRotationPoint(0F, 4F, -2F); - SB3.setTextureSize(64, 32); - SB3.mirror = true; - setRotation(SB3, 0F, 0F, 0F); - SB4 = new ModelRenderer(this, 0, 8); - SB4.addBox(-16F, -4F, 0F, 16, 3, 1); - SB4.setRotationPoint(0F, 4F, -2.5F); - SB4.setTextureSize(64, 32); - SB4.mirror = true; - setRotation(SB4, 0F, 0F, 0F); - SB5 = new ModelRenderer(this, 0, 12); - SB5.addBox(-16F, -4F, 0F, 16, 3, 1); - SB5.setRotationPoint(0F, 4F, 1.5F); - SB5.setTextureSize(64, 32); - SB5.mirror = true; - setRotation(SB5, 0F, 0F, 0F); - SB6 = new ModelRenderer(this, 0, 20); - SB6.addBox(-16F, -4.5F, 0F, 16, 1, 1); - SB6.setRotationPoint(0F, 4F, 1F); - SB6.setTextureSize(64, 32); - SB6.mirror = true; - setRotation(SB6, 0F, 0F, 0F); - SB7 = new ModelRenderer(this, 0, 22); - SB7.addBox(-16F, -4.5F, 0F, 16, 1, 1); - SB7.setRotationPoint(0F, 4F, -2F); - SB7.setTextureSize(64, 32); - SB7.mirror = true; - setRotation(SB7, 0F, 0F, 0F); - SB8 = new ModelRenderer(this, 0, 4); - SB8.addBox(-16F, -5F, 0F, 16, 1, 3); - SB8.setRotationPoint(0F, 4F, -1.5F); - SB8.setTextureSize(64, 32); - SB8.mirror = true; - setRotation(SB8, 0F, 0F, 0F); - SP = new ModelRenderer(this, 58, 0); - SP.addBox(0F, -4F, 0F, 0, 3, 3); - SP.setRotationPoint(-0.5F, 4F, -1.5F); - SP.setTextureSize(64, 32); - SP.mirror = true; - setRotation(SP, 0F, 0F, 0F); - B1 = new ModelRenderer(this, 0, 40); - B1.addBox(0F, 0F, 0F, 5, 5, 3); - B1.setRotationPoint(0F, -1F, -1.5F); - B1.setTextureSize(64, 32); - B1.mirror = true; - setRotation(B1, 0F, 0F, 0F); - B2 = new ModelRenderer(this, 0, 48); - B2.addBox(0F, 0F, 0F, 5, 3, 5); - B2.setRotationPoint(0F, 0F, -2.5F); - B2.setTextureSize(64, 32); - B2.mirror = true; - setRotation(B2, 0F, 0F, 0F); - B3 = new ModelRenderer(this, 0, 56); - B3.addBox(0F, 0F, 0F, 5, 4, 4); - B3.setRotationPoint(0F, -0.5F, -2F); - B3.setTextureSize(64, 32); - B3.mirror = true; - setRotation(B3, 0F, 0F, 0F); - SF1 = new ModelRenderer(this, 0, 24); - SF1.addBox(-32F, -1.5F, 0F, 16, 1, 3); - SF1.setRotationPoint(0F, 4F, -1.5F); - SF1.setTextureSize(64, 32); - SF1.mirror = true; - setRotation(SF1, 0F, 0F, 0F); - SF2 = new ModelRenderer(this, 0, 28); - SF2.addBox(-32F, -4.5F, 0F, 16, 1, 3); - SF2.setRotationPoint(0F, 4F, -1.5F); - SF2.setTextureSize(64, 32); - SF2.mirror = true; - setRotation(SF2, 0F, 0F, 0F); - SF3 = new ModelRenderer(this, 0, 32); - SF3.addBox(-32F, -4F, 0F, 16, 3, 1); - SF3.setRotationPoint(0F, 4F, -2F); - SF3.setTextureSize(64, 32); - SF3.mirror = true; - setRotation(SF3, 0F, 0F, 0F); - SF4 = new ModelRenderer(this, 0, 36); - SF4.addBox(-32F, -4F, 0F, 16, 3, 1); - SF4.setRotationPoint(0F, 4F, 1F); - SF4.setTextureSize(64, 32); - SF4.mirror = true; - setRotation(SF4, 0F, 0F, 0F); - P1 = new ModelRenderer(this, 58, 6); - P1.addBox(0F, 0F, 0F, 1, 4, 2); - P1.setRotationPoint(5F, 1F, -1F); - P1.setTextureSize(64, 32); - P1.mirror = true; - setRotation(P1, 0F, 0F, 0F); - P2 = new ModelRenderer(this, 52, 0); - P2.addBox(-1F, -2F, 0F, 1, 2, 2); - P2.setRotationPoint(6F, 1F, -1F); - P2.setTextureSize(64, 32); - P2.mirror = true; - setRotation(P2, 0F, 0F, -0.5235988F); - P3 = new ModelRenderer(this, 42, 0); - P3.addBox(0F, 0F, 0F, 1, 1, 4); - P3.setRotationPoint(4.5F, 1F, -2F); - P3.setTextureSize(64, 32); - P3.mirror = true; - setRotation(P3, 0F, 0F, 0F); - P4 = new ModelRenderer(this, 44, 5); - P4.addBox(0F, 0F, 0F, 5, 1, 2); - P4.setRotationPoint(0F, 4F, -1F); - P4.setTextureSize(64, 32); - P4.mirror = true; - setRotation(P4, 0F, 0F, 0F); - Grip = new ModelRenderer(this, 52, 8); - Grip.addBox(0F, 0F, 0F, 2, 4, 1); - Grip.setRotationPoint(2F, 5F, -0.5F); - Grip.setTextureSize(64, 32); - Grip.mirror = true; - setRotation(Grip, 0F, 0F, -0.2617994F); - SPointer = new ModelRenderer(this, 56, 13); - SPointer.addBox(-32F, -0.5F, 0F, 3, 1, 1); - SPointer.setRotationPoint(0F, 4F, -0.5F); - SPointer.setTextureSize(64, 32); - SPointer.mirror = true; - setRotation(SPointer, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - SB1.render(f5); - SB2.render(f5); - SB3.render(f5); - SB4.render(f5); - SB5.render(f5); - SB6.render(f5); - SB7.render(f5); - SB8.render(f5); - SP.render(f5); - B1.render(f5); - B2.render(f5); - B3.render(f5); - SF1.render(f5); - SF2.render(f5); - SF3.render(f5); - SF4.render(f5); - P1.render(f5); - P2.render(f5); - P3.render(f5); - P4.render(f5); - Grip.render(f5); - SPointer.render(f5); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, int state, int timer) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - float rotate = (float) (Math.PI * -70D / 180D); - - if(state == 1 || state == 2) { - SB1.rotateAngleZ = rotate; - SB2.rotateAngleZ = rotate; - SB3.rotateAngleZ = rotate; - SB4.rotateAngleZ = rotate; - SB5.rotateAngleZ = rotate; - SB6.rotateAngleZ = rotate; - SB7.rotateAngleZ = rotate; - SB8.rotateAngleZ = rotate; - SP.rotateAngleZ = rotate; - SPointer.rotateAngleZ = rotate; - SF1.rotateAngleZ = rotate; - SF2.rotateAngleZ = rotate; - SF3.rotateAngleZ = rotate; - SF4.rotateAngleZ = rotate; - } else { - SB1.rotateAngleZ = 0; - SB2.rotateAngleZ = 0; - SB3.rotateAngleZ = 0; - SB4.rotateAngleZ = 0; - SB5.rotateAngleZ = 0; - SB6.rotateAngleZ = 0; - SB7.rotateAngleZ = 0; - SB8.rotateAngleZ = 0; - SP.rotateAngleZ = 0; - SPointer.rotateAngleZ = 0; - SF1.rotateAngleZ = 0; - SF2.rotateAngleZ = 0; - SF3.rotateAngleZ = 0; - SF4.rotateAngleZ = 0; - } - - SB1.render(f5); - SB2.render(f5); - SB3.render(f5); - SB4.render(f5); - SB5.render(f5); - SB6.render(f5); - SB7.render(f5); - SB8.render(f5); - - if(state == 2 || state == 3) { - SP.render(f5); - } - - B1.render(f5); - B2.render(f5); - B3.render(f5); - SF1.render(f5); - SF2.render(f5); - SF3.render(f5); - SF4.render(f5); - P1.render(f5); - P2.render(f5); - P3.render(f5); - P4.render(f5); - Grip.render(f5); - SPointer.render(f5); - - if(state == 3 && timer > -1) { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_LIGHTING); - - Tessellator tessellator = Tessellator.instance; - int color = 0x00FF00; - - if(timer == 0) - color = 0xFF0000; - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, timer, 0); - tessellator.draw(); - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, -timer, 0); - tessellator.draw(); - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, 0, timer); - tessellator.draw(); - - tessellator.startDrawing(3); - tessellator.setColorOpaque_I(color); - tessellator.addVertex(-32F / 16F, 0 + 4F / 16F, 0); - tessellator.addVertex(-150, 0, -timer); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glPopMatrix(); - } - } - - private void setRotation(ModelRenderer model, float x, float y, float z) { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAmmoPress.java b/src/main/java/com/hbm/render/tileentity/RenderAmmoPress.java new file mode 100644 index 000000000..3eb232496 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderAmmoPress.java @@ -0,0 +1,75 @@ +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.TileEntityMachineAmmoPress; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderAmmoPress 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.glShadeModel(GL11.GL_SMOOTH); + + TileEntityMachineAmmoPress tile = (TileEntityMachineAmmoPress) tileEntity; + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + float press = tile.prevPress + (tile.press - tile.prevPress) * f; + float lift = tile.prevLift + (tile.lift - tile.prevLift) * f; + + bindTexture(ResourceManager.ammo_press_tex); + ResourceManager.ammo_press.renderPart("Frame"); + + GL11.glPushMatrix(); + GL11.glTranslatef(0, -press * 0.25F, 0); + ResourceManager.ammo_press.renderPart("Press"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslatef(0, lift * 0.5F - 0.5F, 0); + ResourceManager.ammo_press.renderPart("Shells"); + if(tile.animState == tile.animState.RETRACTING || tile.animState == tile.animState.LOWERING) ResourceManager.ammo_press.renderPart("Bullets"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ammo_press); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + bindTexture(ResourceManager.ammo_press_tex); + ResourceManager.ammo_press.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLandmine.java b/src/main/java/com/hbm/render/tileentity/RenderLandmine.java index 33314bb68..4e8ee9def 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLandmine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLandmine.java @@ -1,6 +1,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; @@ -8,6 +9,7 @@ import com.hbm.main.ResourceManager; import net.minecraft.block.Block; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.biome.BiomeGenBase; public class RenderLandmine extends TileEntitySpecialRenderer { @@ -17,15 +19,20 @@ public class RenderLandmine extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glRotatef(180, 0F, 1F, 0F); Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); if(block == ModBlocks.mine_ap) { - GL11.glTranslated(0, -0.075, 0); - GL11.glScaled(1.5D, 1.5D, 1.5D); - bindTexture(ResourceManager.mine_ap_tex); + GL11.glScaled(0.375D, 0.375D, 0.375D); + GL11.glTranslated(0, -0.0625 * 3.5, 0); + BiomeGenBase biome = tileEntity.getWorldObj().getBiomeGenForCoords(tileEntity.xCoord, tileEntity.zCoord); + if(tileEntity.getWorldObj().getHeightValue(tileEntity.xCoord, tileEntity.zCoord) > tileEntity.yCoord + 2) bindTexture(ResourceManager.mine_ap_stone_tex); + else if(biome.getEnableSnow()) bindTexture(ResourceManager.mine_ap_snow_tex); + else if(biome.temperature >= 1.5F && biome.rainfall <= 0.1F) bindTexture(ResourceManager.mine_ap_desert_tex); + else bindTexture(ResourceManager.mine_ap_grass_tex); ResourceManager.mine_ap.renderAll(); } if(block == ModBlocks.mine_he) { @@ -36,8 +43,11 @@ public class RenderLandmine extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); } if(block == ModBlocks.mine_shrap) { + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glScaled(0.375D, 0.375D, 0.375D); + GL11.glTranslated(0, -0.0625 * 3.5, 0); bindTexture(ResourceManager.mine_shrap_tex); - ResourceManager.mine_he.renderAll(); + ResourceManager.mine_ap.renderAll(); } if(block == ModBlocks.mine_fat) { GL11.glScaled(0.25D, 0.25D, 0.25D); diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index 4b008f85c..a578f110a 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -50,7 +50,7 @@ public class RenderInfoSystem { if(event.type != ElementType.CROSSHAIRS) return; - //this.messages.put(-666, new InfoEntry("Halloween Preview", 666_666)); + //this.messages.put(-666, new InfoEntry("Your arteries are bad cable management, rip them out deluxe edition", 666_666)); if(this.messages.isEmpty()) return; diff --git a/src/main/java/com/hbm/sound/MovingSoundBomber.java b/src/main/java/com/hbm/sound/MovingSoundBomber.java deleted file mode 100644 index c20a0cfe0..000000000 --- a/src/main/java/com/hbm/sound/MovingSoundBomber.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.hbm.sound; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.EntityBomber; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.ISound; -import net.minecraft.client.audio.MovingSound; -import net.minecraft.client.entity.EntityClientPlayerMP; -import net.minecraft.util.ResourceLocation; - -public class MovingSoundBomber extends MovingSound { - - public static List globalSoundList = new ArrayList(); - public EntityBomber bomber; - - public MovingSoundBomber(ResourceLocation loc, EntityBomber bomber) { - super(loc); - this.bomber = bomber; - globalSoundList.add(this); - this.repeat = true; - this.field_147666_i = ISound.AttenuationType.NONE; - } - - @Override - public void update() { - - float iVolume = 150; - - if(this.bomber == null || this.bomber.isDead || this.bomber.health <= 0) { - this.stop(); - } else { - this.xPosF = (float)bomber.posX; - this.yPosF = (float)bomber.posY; - this.zPosF = (float)bomber.posZ; - - EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; - float f = 0; - - if(player != null) { - f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); - volume = (f / iVolume) * -2 + 2; - } else { - volume = iVolume; - } - } - - if(!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this)) { - stop(); - } - - } - - public void stop() { - this.donePlaying = true; - this.repeat = false; - - globalSoundList.remove(this); - } - - public void setPitch(float f) { - this.field_147663_c = f; - } - - public void setVolume(float f) { - this.volume = f; - } - - public void setDone(boolean b) { - this.donePlaying = b; - } - -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 5b3843b9b..d2edfe72d 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -14,6 +14,7 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; +import com.hbm.blocks.generic.BlockSupplyCrate.TileEntitySupplyCrate; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; @@ -150,6 +151,7 @@ public class TileMappings { put(TileEntityBarrel.class, "tileentity_fluid_barrel"); put(TileEntityCyberCrab.class, "tileentity_crabs"); put(TileEntitySoyuzCapsule.class, "tileentity_soyuz_capsule"); + put(TileEntitySupplyCrate.class, "tileentity_supply_crate"); put(TileEntityMachineRotaryFurnace.class, "tileentity_rotary_furnace"); put(TileEntityMachineCrystallizer.class, "tileentity_acidomatic"); put(TileEntitySoyuzStruct.class, "tileentity_soyuz_struct"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index d176a753e..ef4ad3a02 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -132,8 +132,8 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); - usageOre = usageOreBase - usageOreBase * powerLevel / 4; - usageFluid = usageFluidBase - usageFluidBase * powerLevel / 4; + usageOre = usageOreBase - usageOreBase * powerLevel / 4 + usageOreBase * speedLevel; + usageFluid = usageFluidBase - usageFluidBase * powerLevel / 4 + usageFluidBase * speedLevel; for(int i = 0; i < getCycleCount(); i++) { if (this.canProcessFluid()) { @@ -585,9 +585,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public int[] getMatsToCopy() { ArrayList types = new ArrayList<>(); if(leftStack != null) types.add(leftStack.material.id); - if(rightStack != null) types.add(rightStack.material.id); - return BobMathUtil.intCollectionToArray(types); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java index ce0c9e3a7..52e8c65a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java @@ -15,11 +15,24 @@ 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.world.World; public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { public int selectedRecipe = -1; + + public AnimationState animState = AnimationState.LIFTING; + + public int playAnimation = 0; + public float prevLift = 0F; + public float lift = 0F; + public float prevPress = 0F; + public float press = 0F; + + public static enum AnimationState { + LIFTING, PRESSING, RETRACTING, LOWERING + } public TileEntityMachineAmmoPress() { super(10); @@ -33,8 +46,40 @@ public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements @Override public void updateEntity() { if(!worldObj.isRemote) { + if(this.playAnimation > 0) this.playAnimation--; this.performRecipe(); this.networkPackNT(25); + } else { + + this.prevLift = this.lift; + this.prevPress = this.press; + + if(playAnimation > 0 || lift > 0) switch(animState) { + case LIFTING: + this.lift += 1F / 40F; + if(this.lift >= 1F) { + this.lift = 1F; + this.animState = AnimationState.PRESSING; + } break; + case PRESSING: + this.press += 1F / 20F; + if(this.press >= 1F) { + this.press = 1F; + this.animState = AnimationState.RETRACTING; + } break; + case RETRACTING: + this.press -= 1F / 20F; + if(this.press <= 0F) { + this.press = 0F; + this.animState = AnimationState.LOWERING; + } break; + case LOWERING: + this.lift -= 1F / 40F; + if(this.lift <= 0F) { + this.lift = 0F; + this.animState = AnimationState.LIFTING; + } break; + } } } @@ -44,12 +89,14 @@ public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements @Override public void setInventorySlotContents(int slot, ItemStack stack) { super.setInventorySlotContents(slot, stack); + /*if(this.worldObj.isRemote) return; + //while this allowed one shift click to process absolutely everything, it also caused a fuckton of issues if(!recipeLock) { recipeLock = true; if(slot < 10) this.performRecipe(); recipeLock = false; - } + }*/ } public void performRecipe() { @@ -93,6 +140,8 @@ public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements } else { slots[9].stackSize += recipe.output.stackSize; } + + this.playAnimation = 40; } public int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; @@ -120,12 +169,26 @@ public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements @Override public void serialize(ByteBuf buf) { super.serialize(buf); buf.writeInt(this.selectedRecipe); + buf.writeInt(this.playAnimation); } @Override public void deserialize(ByteBuf buf) { super.deserialize(buf); this.selectedRecipe = buf.readInt(); + this.playAnimation = buf.readInt(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.selectedRecipe = nbt.getInteger("recipe"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("recipe", selectedRecipe); } @Override @@ -140,6 +203,31 @@ public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements else this.selectedRecipe = newRecipe; this.markDirty(); } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineAmmoPress(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAmmoPress(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index c29468236..3a1ebe90b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -97,7 +97,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.maxBurnTime = this.burnTime = burn; ItemStack container = slots[0].getItem().getContainerItem(slots[0]); this.decrStackSize(0, 1); - if(slots[0] == null) slots[0] = container.copy(); + if(slots[0] == null && container != null) slots[0] = container.copy(); this.markChanged(); } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 6cea0933e..9d81ff0a5 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -9,10 +9,8 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.logic.EntityBomber; import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileCustom; -import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.train.EntityRailCarBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; @@ -20,6 +18,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemTurretBiometry; +import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -331,7 +330,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public boolean usesCasings() { return false; } public int casingDelay() { return 0; } - public BulletConfiguration getFirstConfigLoaded() { + public BulletConfig getFirstConfigLoaded() { List list = getAmmoList(); @@ -346,10 +345,8 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple for(Integer c : list) { //we can afford all this extra iteration trash on the count that a turret has at most like 4 bullet configs - BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(c); - - if(conf.ammo != null && conf.ammo.matchesRecipe(slots[i], true)) - return conf; + BulletConfig conf = BulletConfig.configs.get(c); + if(conf.ammo != null && conf.ammo.matchesRecipe(slots[i], true)) return conf; } } } @@ -357,17 +354,15 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple return null; } - public void spawnBullet(BulletConfiguration bullet) { + public void spawnBullet(BulletConfig bullet, float baseDamage) { Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - EntityBulletBaseNT proj = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.getKey(bullet)); - proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); - - proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity, bullet.spread); + EntityBulletBaseMK4 proj = new EntityBulletBaseMK4(worldObj, bullet, baseDamage, bullet.spread, (float) rotationYaw, (float) rotationPitch); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, proj.rotationYaw, proj.rotationPitch); worldObj.spawnEntityInWorld(proj); if(usesCasings()) { @@ -809,7 +804,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple ammoStacks = new ArrayList(); for(Integer i : getAmmoList()) { - BulletConfiguration config = BulletConfigSyncingUtil.pullConfig(i); + BulletConfig config = BulletConfig.configs.get(i); if(config != null && config.ammo != null) { ammoStacks.add(config.ammo.toStack()); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java index fd3a0f743..f7dd78176 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java @@ -3,10 +3,10 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretChekhov; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactory50; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -26,15 +26,11 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { //also having a floaty `static` like this looks fun //idk if it's just me though static { - configs.add(BulletConfigSyncingUtil.BMG50_NORMAL); - configs.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); - configs.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.BMG50_AP); - configs.add(BulletConfigSyncingUtil.BMG50_DU); - configs.add(BulletConfigSyncingUtil.BMG50_STAR); - configs.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); - configs.add(BulletConfigSyncingUtil.BMG50_SLEEK); - configs.add(BulletConfigSyncingUtil.CHL_BMG50); + configs.add(XFactory50.bmg50_sp.id); + configs.add(XFactory50.bmg50_fmj.id); + configs.add(XFactory50.bmg50_jhp.id); + configs.add(XFactory50.bmg50_ap.id); + configs.add(XFactory50.bmg50_du.id); } @Override @@ -76,11 +72,11 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { if(timer > 20 && timer % getDelay() == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { - this.cachedCasingConfig = conf.spentCasing; - this.spawnBullet(conf); + this.cachedCasingConfig = conf.casing; + this.spawnBullet(conf, 10F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.chekhov_fire", 2.0F, 1.0F); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java index 8c3a96667..c4c5c122b 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java @@ -3,9 +3,9 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretFriendly; +import com.hbm.items.weapon.sedna.factory.XFactory556mm; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,11 +17,10 @@ public class TileEntityTurretFriendly extends TileEntityTurretChekhov { static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.R5_NORMAL); - configs.add(BulletConfigSyncingUtil.R5_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.R5_DU); - configs.add(BulletConfigSyncingUtil.R5_STAR); - configs.add(BulletConfigSyncingUtil.CHL_R5); + configs.add(XFactory556mm.r556_sp.id); + configs.add(XFactory556mm.r556_fmj.id); + configs.add(XFactory556mm.r556_jhp.id); + configs.add(XFactory556mm.r556_ap.id); } @Override diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 226fd6bd4..1271b00f5 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -15,6 +15,7 @@ import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.gui.GUITurretFritz; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -57,7 +58,7 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl ammoStacks = new ArrayList(); - ammoStacks.add(new ItemStack(ModItems.ammo_fuel)); + ammoStacks.add(new ItemStack(ModItems.ammo_standard, 1, EnumAmmo.FLAME_DIESEL.ordinal())); for(FluidType type : Fluids.getInNiceOrder()) { if(type.hasTrait(FT_Combustible.class) && type.hasTrait(FT_Liquid.class)) { @@ -144,7 +145,7 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl for(int i = 1; i < 10; i++) { - if(slots[i] != null && slots[i].getItem() == ModItems.ammo_fuel) { + if(slots[i] != null && slots[i].getItem() == ModItems.ammo_standard && slots[i].getItemDamage() == EnumAmmo.FLAME_DIESEL.ordinal()) { if(this.tank.getTankType() == Fluids.DIESEL && this.tank.getFill() + 1000 <= this.tank.getMaxFill()) { this.tank.setFill(this.tank.getFill() + 1000); this.decrStackSize(i, 1); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java index 87e0414bd..71993d569 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java @@ -4,11 +4,11 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.WeaponConfig; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.guncfg.GunDGKFactory; import com.hbm.inventory.gui.GUITurretHoward; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryTurret; import com.hbm.lib.ModDamageSource; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -28,7 +28,7 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.DGK_NORMAL); + configs.add(XFactoryTurret.dgk_normal.id); } @Override @@ -114,7 +114,7 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { } else { if(loaded <= 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { this.conusmeAmmo(conf.ammo); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java index 8c16ce6b4..b2af72b35 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java @@ -3,10 +3,10 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.gui.GUITurretJeremy; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryTurret; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -19,15 +19,15 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { - + static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.SHELL_NORMAL); - configs.add(BulletConfigSyncingUtil.SHELL_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.SHELL_AP); - configs.add(BulletConfigSyncingUtil.SHELL_DU); - configs.add(BulletConfigSyncingUtil.SHELL_W9); + configs.add(XFactoryTurret.shell_normal.id); + configs.add(XFactoryTurret.shell_explosive.id); + configs.add(XFactoryTurret.shell_ap.id); + configs.add(XFactoryTurret.shell_du.id); + configs.add(XFactoryTurret.shell_w9.id); } @Override @@ -87,11 +87,11 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { if(timer % 40 == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { - this.cachedCasingConfig = conf.spentCasing; - this.spawnBullet(conf); + this.cachedCasingConfig = conf.casing; + this.spawnBullet(conf, 50F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 4.0F, 1.0F); Vec3 pos = this.getTurretPos(); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java index 9a61f8a88..8cdddff40 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java @@ -3,17 +3,14 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBaseNT; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.inventory.gui.GUITurretRichard; -import com.hbm.items.ItemAmmoEnums.AmmoRocket; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryRocket; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -25,18 +22,7 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.ROCKET_NORMAL); - configs.add(BulletConfigSyncingUtil.ROCKET_HE); - configs.add(BulletConfigSyncingUtil.ROCKET_INCENDIARY); - configs.add(BulletConfigSyncingUtil.ROCKET_SHRAPNEL); - configs.add(BulletConfigSyncingUtil.ROCKET_EMP); - configs.add(BulletConfigSyncingUtil.ROCKET_GLARE); - configs.add(BulletConfigSyncingUtil.ROCKET_SLEEK); - configs.add(BulletConfigSyncingUtil.ROCKET_NUKE); - configs.add(BulletConfigSyncingUtil.ROCKET_CHAINSAW); - configs.add(BulletConfigSyncingUtil.ROCKET_TOXIC); - configs.add(BulletConfigSyncingUtil.ROCKET_PHOSPHORUS); - configs.add(BulletConfigSyncingUtil.ROCKET_CANISTER); + for(BulletConfig cfg : XFactoryRocket.rocket_ml) configs.add(cfg.id); } @Override @@ -129,16 +115,15 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { if(timer > 0 && timer % 10 == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { - this.spawnBullet(conf); + this.spawnBullet(conf, 30F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.richard_fire", 2.0F, 1.0F); this.loaded--; - if(conf.ammo.equals(new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR)))) - timer = -50; + //if(conf.ammo.equals(new ComparableStack(ModItems.ammo_standard, EnumAmmo.ROCKET_DEMO))) timer = -50; } else { this.loaded = 0; @@ -147,17 +132,16 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { } @Override - public void spawnBullet(BulletConfiguration bullet) { + public void spawnBullet(BulletConfig bullet, float baseDamage) { Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - EntityBulletBaseNT proj = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.getKey(bullet)); - proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); - - proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity * 0.75F, bullet.spread); + EntityBulletBaseMK4 proj = new EntityBulletBaseMK4(worldObj, bullet, baseDamage, bullet.spread, (float) rotationYaw, (float) rotationPitch); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, proj.rotationYaw, proj.rotationPitch); + proj.lockonTarget = this.target; worldObj.spawnEntityInWorld(proj); } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java index 8a817c96a..ebaa3ad0d 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java @@ -3,11 +3,11 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretSentry; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactory9mm; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; @@ -37,11 +37,10 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.R5_NORMAL); - configs.add(BulletConfigSyncingUtil.R5_EXPLOSIVE); - configs.add(BulletConfigSyncingUtil.R5_DU); - configs.add(BulletConfigSyncingUtil.R5_STAR); - configs.add(BulletConfigSyncingUtil.CHL_R5); + configs.add(XFactory9mm.p9_sp.id); + configs.add(XFactory9mm.p9_fmj.id); + configs.add(XFactory9mm.p9_jhp.id); + configs.add(XFactory9mm.p9_ap.id); } @Override @@ -161,11 +160,11 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG if(timer % 10 == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null) { - this.cachedCasingConfig = conf.spentCasing; - this.spawnBullet(conf); + this.cachedCasingConfig = conf.casing; + this.spawnBullet(conf, 5F); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 1.0F); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java index bc3dc51ff..5fa6c3ef0 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentryDamaged.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.turret; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactory9mm; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -55,7 +55,7 @@ public class TileEntityTurretSentryDamaged extends TileEntityTurretSentry { if(timer % 10 == 0) { - BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(BulletConfigSyncingUtil.R5_NORMAL); + BulletConfig conf = XFactory9mm.p9_fmj; if(conf != null) { @@ -63,11 +63,11 @@ public class TileEntityTurretSentryDamaged extends TileEntityTurretSentry { Vec3 vec = Vec3.createVectorHelper(0, 0, 0); Vec3 side = Vec3.createVectorHelper(0, 0, 0); - this.cachedCasingConfig = conf.spentCasing; + this.cachedCasingConfig = conf.casing; if(shotSide) { this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 1.0F); - this.spawnBullet(conf); + this.spawnBullet(conf, 5F); vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java index 038f189eb..9441252be 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java @@ -3,9 +3,9 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.gui.GUITurretTauon; +import com.hbm.items.weapon.sedna.BulletConfig; +import com.hbm.items.weapon.sedna.factory.XFactoryAccelerator; import com.hbm.lib.ModDamageSource; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -23,7 +23,7 @@ public class TileEntityTurretTauon extends TileEntityTurretBaseNT { static List configs = new ArrayList(); static { - configs.add(BulletConfigSyncingUtil.SPECIAL_GAUSS); + configs.add(XFactoryAccelerator.tau_uranium.id); } @Override @@ -123,7 +123,7 @@ public class TileEntityTurretTauon extends TileEntityTurretBaseNT { if(timer % 5 == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + BulletConfig conf = this.getFirstConfigLoaded(); if(conf != null && this.target != null) { this.target.attackEntityFrom(ModDamageSource.electricity, 30F + worldObj.rand.nextInt(11)); diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java index 9881ef7fa..aa029a34f 100644 --- a/src/main/java/com/hbm/util/CompatExternal.java +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -5,10 +5,14 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; import java.util.function.BiFunction; +import java.util.function.Consumer; 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.tank.FluidTank; +import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.turret.TileEntityTurretSentry; @@ -21,6 +25,7 @@ import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; /** @@ -176,8 +181,12 @@ public class CompatExternal { * class on the side of whoever is adding compat, allowing the compat class to be used entirely with reflection. */ public static void registerTurretTargetingCondition(Class clazz, BiFunction bi) { - turretTargetBlacklist.add(clazz); + turretTargetCondition.put(clazz, bi); } + + public static void setWarheadLabel(WarheadType type, String label) { type.labelCustom = label; } + public static void setWarheadImpact(WarheadType type, Consumer impact) { type.impactCustom = impact; } + public static void setWarheadUpdate(WarheadType type, Consumer update) { type.updateCustom = update; } 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. @@ -190,5 +199,10 @@ public class CompatExternal { if(turret instanceof TileEntityTurretSentry) return -1; return 0; }); + //configures CUSTOM0 to have a custom label and impact effect + CompatExternal.setWarheadLabel(WarheadType.CUSTOM0, EnumChatFormatting.YELLOW + "Micro Nuke"); + CompatExternal.setWarheadImpact(WarheadType.CUSTOM0, (missile) -> { + ExplosionNukeSmall.explode(missile.worldObj, missile.posX, missile.posY + 0.5, missile.posZ, ExplosionNukeSmall.PARAMS_MEDIUM); + }); } } diff --git a/src/main/java/com/hbm/util/CrucibleUtil.java b/src/main/java/com/hbm/util/CrucibleUtil.java index e5d06cdbd..9dc69dbba 100644 --- a/src/main/java/com/hbm/util/CrucibleUtil.java +++ b/src/main/java/com/hbm/util/CrucibleUtil.java @@ -65,6 +65,7 @@ public class CrucibleUtil { } for(MaterialStack stack : stacks) { + if(stack.material == null) continue; int amountToPour = Math.min(stack.amount, quanta); MaterialStack toPour = new MaterialStack(stack.material, amountToPour); diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java new file mode 100644 index 000000000..2e58a5b1c --- /dev/null +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -0,0 +1,373 @@ +package com.hbm.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.items.ModItems; +import com.hbm.util.Tuple.Quartet; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +/** + * Basic handling/registry class for our custom resistance stats. + * Handles resistances for individual armor pieces, full sets as well as entity classes for innate damage resistance + * + * @author hbm + */ +public class DamageResistanceHandler { + + /** Currently cached DT reduction */ + public static float currentPDT = 0F; + /** Currently cached armor piercing % */ + public static float currentPDR = 0F; + + public static final String CATEGORY_EXPLOSION = "EXPL"; + public static final String CATEGORY_FIRE = "FIRE"; + public static final String CATEGORY_PROJECTILE = "PROJ"; + public static final String CATEGORY_ENERGY = "EN"; + + public static HashMap itemStats = new HashMap(); + public static HashMap, ResistanceStats> setStats = new HashMap(); + public static HashMap, ResistanceStats> entityStats = new HashMap(); + + public static HashMap>> itemInfoSet = new HashMap(); + + public static void init() { + + itemStats.clear(); + setStats.clear(); + entityStats.clear(); + itemInfoSet.clear(); + + entityStats.put(EntityCreeper.class, new ResistanceStats().addCategory(CATEGORY_EXPLOSION, 2F, 0.5F)); + + itemStats.put(ModItems.jackt, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F)); + itemStats.put(ModItems.jackt2, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F)); + + registerSet(ModItems.steel_helmet, ModItems.steel_plate, ModItems.steel_legs, ModItems.steel_boots, new ResistanceStats()); + registerSet(ModItems.titanium_helmet, ModItems.titanium_plate, ModItems.titanium_legs, ModItems.titanium_boots, new ResistanceStats()); + registerSet(ModItems.alloy_helmet, ModItems.alloy_plate, ModItems.alloy_legs, ModItems.alloy_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.1F)); + registerSet(ModItems.cobalt_helmet, ModItems.cobalt_plate, ModItems.cobalt_legs, ModItems.cobalt_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.1F)); + registerSet(ModItems.starmetal_helmet, ModItems.starmetal_plate, ModItems.starmetal_legs, ModItems.starmetal_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 3F, 0.25F) + .setOther(1F, 0.1F)); + registerSet(ModItems.zirconium_legs, ModItems.zirconium_legs, ModItems.zirconium_legs, ModItems.zirconium_legs, new ResistanceStats() + .setOther(0F, 1F)); + registerSet(ModItems.dnt_helmet, ModItems.dnt_plate, ModItems.dnt_legs, ModItems.dnt_boots, new ResistanceStats()); + registerSet(ModItems.cmb_helmet, ModItems.cmb_plate, ModItems.cmb_legs, ModItems.cmb_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .setOther(5F, 0.25F)); + registerSet(ModItems.schrabidium_helmet, ModItems.schrabidium_plate, ModItems.schrabidium_legs, ModItems.schrabidium_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 10F, 0.65F) + .setOther(5F, 0.5F)); + registerSet(ModItems.robes_helmet, ModItems.robes_plate, ModItems.robes_legs, ModItems.robes_boots, new ResistanceStats()); + + registerSet(ModItems.security_helmet, ModItems.security_plate, ModItems.security_legs, ModItems.security_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 2F, 0.25F)); + registerSet(ModItems.steamsuit_helmet, ModItems.steamsuit_plate, ModItems.steamsuit_legs, ModItems.steamsuit_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.25F) + .setOther(0F, 0.1F)); + registerSet(ModItems.dieselsuit_helmet, ModItems.dieselsuit_plate, ModItems.dieselsuit_legs, ModItems.dieselsuit_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 1F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 2F, 0.15F) + .setOther(0F, 0.1F)); + registerSet(ModItems.t45_helmet, ModItems.t45_plate, ModItems.t45_legs, ModItems.t45_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .setOther(0F, 0.1F)); + registerSet(ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) + .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .setOther(0F, 0.15F)); + registerSet(ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) + .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .setOther(0F, 0.15F)); + registerSet(ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 20F, 0.65F) + .addCategory(CATEGORY_FIRE, 10F, 0.75F) + .addCategory(CATEGORY_EXPLOSION, 15F, 0.25F) + .addExact(DamageClass.LASER.name(), 10F, 0.75F) + .setOther(10F, 0.15F)); + ResistanceStats bj = new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .addCategory(CATEGORY_FIRE, 2.5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 10F, 0.25F) + .setOther(2F, 0.15F); + registerSet(ModItems.bj_helmet, ModItems.bj_plate, ModItems.bj_legs, ModItems.bj_boots, bj); + registerSet(ModItems.bj_helmet, ModItems.bj_plate_jetpack, ModItems.bj_legs, ModItems.bj_boots, bj); + registerSet(ModItems.envsuit_helmet, ModItems.envsuit_plate, ModItems.envsuit_legs, ModItems.envsuit_boots, new ResistanceStats() + .addCategory(CATEGORY_FIRE, 2F, 0.75F) + .addExact(DamageSource.drown.damageType, 0F, 1F) + .setOther(0F, 0.1F)); + registerSet(ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.25F) + .addCategory(CATEGORY_FIRE, 0.5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.onFire.damageType, 0F, 1F) + .setOther(2F, 0.25F)); + registerSet(ModItems.bismuth_helmet, ModItems.bismuth_plate, ModItems.bismuth_legs, ModItems.bismuth_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) + .addCategory(CATEGORY_FIRE, 5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .setOther(2F, 0.25F)); + registerSet(ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots, new ResistanceStats() + .addCategory(CATEGORY_EXPLOSION, 50F, 0.95F) + .addExact(DamageClass.LASER.name(), 25F, 0.95F) + .setOther(100F, 0.99F)); + registerSet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots, new ResistanceStats() + .addCategory(CATEGORY_EXPLOSION, 100F, 0.99F) + .setOther(100F, 1F)); + registerSet(ModItems.trenchmaster_helmet, ModItems.trenchmaster_plate, ModItems.trenchmaster_legs, ModItems.trenchmaster_boots, new ResistanceStats() + .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) + .addCategory(CATEGORY_FIRE, 5F, 0.5F) + .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageClass.LASER.name(), 15F, 0.9F) + .setOther(5F, 0.25F)); + + registerSet(ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots, new ResistanceStats()); + registerSet(ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red, new ResistanceStats()); + registerSet(ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey, new ResistanceStats()); + registerSet(ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots, new ResistanceStats()); + registerSet(ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots, new ResistanceStats()); + registerSet(ModItems.asbestos_helmet, ModItems.asbestos_plate, ModItems.asbestos_legs, ModItems.asbestos_boots, new ResistanceStats() + .addCategory(CATEGORY_FIRE, 10F, 0.9F)); + } + + public static void registerSet(Item helmet, Item plate, Item legs, Item boots, ResistanceStats stats) { + Quartet set = new Quartet(helmet, plate, legs, boots); + setStats.put(set, stats); + addToListInHashMap(helmet, itemInfoSet, set); + addToListInHashMap(plate, itemInfoSet, set); + addToListInHashMap(legs, itemInfoSet, set); + addToListInHashMap(boots, itemInfoSet, set); + } + + public static void addToListInHashMap(Object key, HashMap map, Object listElement) { + List list = (List) map.get(key); + if(list == null) { + list = new ArrayList(); + map.put(key, list); + } + list.add(listElement); + } + + public static void addInfo(ItemStack stack, List desc) { + if(stack == null || stack.getItem() == null) return; + + if(itemInfoSet.containsKey(stack.getItem())) { + List> sets = itemInfoSet.get(stack.getItem()); + + for(Quartet set : sets) { + + ResistanceStats stats = setStats.get(set); + if(stats == null) continue; + + List toAdd = new ArrayList(); + + for(Entry entry : stats.categoryResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.category." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + for(Entry entry : stats.exactResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.exact." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + if(stats.otherResistance != null) toAdd.add(I18nUtil.resolveKey("damage.other") + ": " + stats.otherResistance.threshold + "/" + ((int)(stats.otherResistance.resistance * 100)) + "%"); + + if(!toAdd.isEmpty()) { + desc.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("damage.inset")); + //this sucks ass! + if(set.getW() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getW()).getDisplayName()); + if(set.getX() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getX()).getDisplayName()); + if(set.getY() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getY()).getDisplayName()); + if(set.getZ() != null) desc.add(EnumChatFormatting.DARK_PURPLE + " " + new ItemStack(set.getZ()).getDisplayName()); + desc.addAll(toAdd); + } + + break; //TEMP, only show one set for now + } + } + + if(itemStats.containsKey(stack.getItem())) { + ResistanceStats stats = itemStats.get(stack.getItem()); + + List toAdd = new ArrayList(); + + for(Entry entry : stats.categoryResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.category." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + for(Entry entry : stats.exactResistances.entrySet()) { + toAdd.add(I18nUtil.resolveKey("damage.exact." + entry.getKey()) + ": " + entry.getValue().threshold + "/" + ((int)(entry.getValue().resistance * 100)) + "%"); + } + if(stats.otherResistance != null) toAdd.add(I18nUtil.resolveKey("damage.other") + ": " + stats.otherResistance.threshold + "/" + ((int)(stats.otherResistance.resistance * 100)) + "%"); + + if(!toAdd.isEmpty()) { + desc.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("damage.item")); + desc.addAll(toAdd); + } + } + } + + public static enum DamageClass { + PHYSICAL, + FIRE, + EXPLOSIVE, + ELECTRIC, + LASER, + MICROWAVE, + SUBATOMIC, + OTHER + } + + public static void setup(float dt, float dr) { + currentPDT = dt; + currentPDR = dr; + } + + public static void reset() { + currentPDT = 0; + currentPDR = 0; + } + + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) { + EntityLivingBase e = event.entityLiving; + float amount = event.ammount; + + float[] vals = getDTDR(e, event.source, amount, currentPDT, currentPDR); + float dt = vals[0] - currentPDT; + + if(dt > 0 && dt >= event.ammount) { + event.setCanceled(true); + EntityDamageUtil.damageArmorNT(e, amount); + } + } + + @SubscribeEvent + public void onEntityDamaged(LivingHurtEvent event) { + event.ammount = calculateDamage(event.entityLiving, event.source, event.ammount, currentPDT, currentPDR); + } + + public static String typeToCategory(DamageSource source) { + if(source.isExplosion()) return CATEGORY_EXPLOSION; + if(source.isFireDamage()) return CATEGORY_FIRE; + if(source.isProjectile()) return CATEGORY_PROJECTILE; + if(source.damageType.equals(DamageClass.LASER.name())) return CATEGORY_ENERGY; + if(source.damageType.equals(DamageClass.MICROWAVE.name())) return CATEGORY_ENERGY; + if(source.damageType.equals(DamageClass.SUBATOMIC.name())) return CATEGORY_ENERGY; + return source.damageType; + } + + public static float calculateDamage(EntityLivingBase entity, DamageSource damage, float amount, float pierceDT, float pierce) { + if(damage.isDamageAbsolute()) return amount; + + float[] vals = getDTDR(entity, damage, amount, pierceDT, pierce); + float dt = vals[0]; + float dr = vals[1]; + + dt = Math.max(0F, dt - pierceDT); + if(dt >= amount) return 0F; + amount -= dt; + dr *= MathHelper.clamp_float(1F - pierce, 0F, 1F); + + return amount *= (1F - dr); + } + + public static float[] getDTDR(EntityLivingBase entity, DamageSource damage, float amount, float pierceDT, float pierce) { + + float dt = 0; + float dr = 0; + + /// SET HANDLING /// + Quartet wornSet = new Quartet( + entity.getEquipmentInSlot(4) != null ? entity.getEquipmentInSlot(4).getItem() : null, + entity.getEquipmentInSlot(3) != null ? entity.getEquipmentInSlot(3).getItem() : null, + entity.getEquipmentInSlot(2) != null ? entity.getEquipmentInSlot(2).getItem() : null, + entity.getEquipmentInSlot(1) != null ? entity.getEquipmentInSlot(1).getItem() : null + ); + + ResistanceStats setResistance = setStats.get(wornSet); + if(setResistance != null) { + Resistance res = setResistance.getResistance(damage); + if(res != null) { + dt += res.threshold; + dr += res.resistance; + } + } + + /// ARMOR /// + for(int i = 1; i <= 4; i++) { + ItemStack armor = entity.getEquipmentInSlot(i); + if(armor == null) continue; + ResistanceStats stats = itemStats.get(armor.getItem()); + if(stats == null) continue; + Resistance res = stats.getResistance(damage); + if(res == null) continue; + dt += res.threshold; + dr += res.resistance; + } + + /// ENTITY CLASS HANDLING /// + ResistanceStats innateResistance = entityStats.get(entity.getClass()); + if(innateResistance != null) { + Resistance res = innateResistance.getResistance(damage); + if(res != null) { + dt += res.threshold; + dr += res.resistance; + } + } + + return new float[] {dt, dr}; + } + + public static class ResistanceStats { + + public HashMap exactResistances = new HashMap(); + public HashMap categoryResistances = new HashMap(); + public Resistance otherResistance; + + public Resistance getResistance(DamageSource source) { + Resistance exact = exactResistances.get(source.damageType); + if(exact != null) return exact; + Resistance category = categoryResistances.get(typeToCategory(source)); + if(category != null) return category; + return source.isUnblockable() ? null : otherResistance; + } + + public ResistanceStats addExact(String type, float threshold, float resistance) { exactResistances.put(type, new Resistance(threshold, resistance)); return this; } + public ResistanceStats addCategory(String type, float threshold, float resistance) { categoryResistances.put(type, new Resistance(threshold, resistance)); return this; } + public ResistanceStats setOther(float threshold, float resistance) { otherResistance = new Resistance(threshold, resistance); return this; } + } + + public static class Resistance { + + public float threshold; + public float resistance; + + public Resistance(float threshold, float resistance) { + this.threshold = threshold; + this.resistance = resistance; + } + } +} diff --git a/src/main/java/com/hbm/util/EntityDamageUtil.java b/src/main/java/com/hbm/util/EntityDamageUtil.java index ada2a10c8..83caeb807 100644 --- a/src/main/java/com/hbm/util/EntityDamageUtil.java +++ b/src/main/java/com/hbm/util/EntityDamageUtil.java @@ -1,6 +1,7 @@ package com.hbm.util; import java.lang.reflect.Method; +import java.util.List; import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.enchantment.EnchantmentHelper; @@ -9,33 +10,17 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.passive.EntityTameable; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.potion.Potion; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; public class EntityDamageUtil { - /** - * Attacks the given entity twice, based on a piecring percentage. The second hit sets the damage source to bypass armor. - * The damage source is modified, so you can't reuse damage source instances. - */ - public static boolean attackEntityFromArmorPiercing(Entity victim, DamageSource src, float damage, float piercing) { - - if(src.isUnblockable() || piercing == 0) return victim.attackEntityFrom(src, damage); - - if(piercing == 1) { - src.setDamageBypassesArmor(); - return victim.attackEntityFrom(src, damage); - } - - boolean ret = false; - - ret |= victim.attackEntityFrom(src, damage * (1F - piercing)); - src.setDamageBypassesArmor(); - ret |= victim.attackEntityFrom(src, damage * piercing); - return ret; - } - public static boolean attackEntityFromIgnoreIFrame(Entity victim, DamageSource src, float damage) { if(!victim.attackEntityFrom(src, damage)) { @@ -53,26 +38,156 @@ public class EntityDamageUtil { } } - public static float getDamageAfterTax(EntityLivingBase living, DamageSource source, float amount) { - amount = ForgeHooks.onLivingHurt(living, source, amount); - if(amount <= 0) return 0; - amount = applyArmorCalculations(living, source, amount); + public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier, float pierceDT, float pierce) { + if(living instanceof EntityPlayerMP && source.getEntity() instanceof EntityPlayer) { + EntityPlayerMP playerMP = (EntityPlayerMP) living; + EntityPlayer attacker = (EntityPlayer) source.getEntity(); + if(!playerMP.canAttackPlayer(attacker)) return false; //handles wack-ass no PVP rule as well as scoreboard friendly fire + } + DamageResistanceHandler.setup(pierceDT, pierce); + boolean ret = attackEntityFromNTInternal(living, source, amount, ignoreIFrame, allowSpecialCancel, knockbackMultiplier); + //boolean ret = living.attackEntityFrom(source, amount); + DamageResistanceHandler.reset(); + return ret; + } + + private static boolean attackEntityFromNTInternal(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier) { + if(ForgeHooks.onLivingAttack(living, source, amount) && allowSpecialCancel) return false; + if(living.isEntityInvulnerable()) return false; + if(living.worldObj.isRemote) return false; + if(living instanceof EntityPlayer && ((EntityPlayer) living).capabilities.disableDamage && !source.canHarmInCreative()) return false; + + living.entityAge = 0; + if(living.getHealth() <= 0.0F) return false; + if(source.isFireDamage() && living.isPotionActive(Potion.fireResistance)) return false; + + living.limbSwingAmount = 1.5F; + boolean didAttackRegister = true; + + if(living.hurtResistantTime > living.maxHurtResistantTime / 2.0F && !ignoreIFrame) { + if(amount <= living.lastDamage) { return false; } + damageEntityNT(living, source, amount - living.lastDamage); + living.lastDamage = amount; + didAttackRegister = false; + } else { + living.lastDamage = amount; + living.prevHealth = living.getHealth(); + living.hurtResistantTime = living.maxHurtResistantTime; + damageEntityNT(living, source, amount); + living.hurtTime = living.maxHurtTime = 10; + } + + living.attackedAtYaw = 0.0F; + Entity entity = source.getEntity(); + + if(entity != null) { + if(entity instanceof EntityLivingBase) { + living.setRevengeTarget((EntityLivingBase) entity); + } + + if(entity instanceof EntityPlayer) { + living.recentlyHit = 100; + living.attackingPlayer = (EntityPlayer) entity; + } else if(entity instanceof EntityTameable) { + EntityTameable entitywolf = (EntityTameable) entity; + + if(entitywolf.isTamed()) { + living.recentlyHit = 100; + living.attackingPlayer = null; + } + } + } + + if(didAttackRegister) { + living.worldObj.setEntityState(living, (byte) 2); + + if(source != DamageSource.drown) setBeenAttacked(living); //# + + if(entity != null) { + double deltaX = entity.posX - living.posX; + double deltaZ; + + for(deltaZ = entity.posZ - living.posZ; deltaX * deltaX + deltaZ * deltaZ < 1.0E-4D; deltaZ = (Math.random() - Math.random()) * 0.01D) { + deltaX = (Math.random() - Math.random()) * 0.01D; + } + + living.attackedAtYaw = (float) (Math.atan2(deltaZ, deltaX) * 180.0D / Math.PI) - living.rotationYaw; + if(knockbackMultiplier > 0) knockBack(living, entity, amount, deltaX, deltaZ, knockbackMultiplier); + } else { + living.attackedAtYaw = (float) ((int) (Math.random() * 2.0D) * 180); + } + } + + String sound; + + if(living.getHealth() <= 0.0F) { + sound = getDeathSound(living); + if(didAttackRegister && sound != null) living.playSound(sound, getSoundVolume(living), getSoundPitch(living)); //# + living.onDeath(source); + } else { + sound = getHurtSound(living); + if(didAttackRegister && sound != null) living.playSound(sound, getSoundVolume(living), getSoundPitch(living)); //# + } + + return true; + } + + public static void knockBack(EntityLivingBase living, Entity attacker, float damage, double motionX, double motionZ, double multiplier) { + if(living.getRNG().nextDouble() >= living.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()) { + living.isAirBorne = true; + double horizontal = Math.sqrt(motionX * motionX + motionZ * motionZ); + double magnitude = 0.4D * multiplier; + living.motionX /= 2.0D; + living.motionY /= 2.0D; + living.motionZ /= 2.0D; + living.motionX -= motionX / horizontal * magnitude; + living.motionY += (double) magnitude; + living.motionZ -= motionZ / horizontal * magnitude; + + if(living.motionY > 0.2D) { + living.motionY = 0.2D * multiplier; + } + } + } + + public static void damageEntityNT(EntityLivingBase living, DamageSource source, float amount) { + if(!living.isEntityInvulnerable()) { + amount = ForgeHooks.onLivingHurt(living, source, amount); + if(amount <= 0) return; + + amount = applyArmorCalculationsNT(living, source, amount); + amount = applyPotionDamageCalculations(living, source, amount); + + float originalAmount = amount; + amount = Math.max(amount - living.getAbsorptionAmount(), 0.0F); + living.setAbsorptionAmount(living.getAbsorptionAmount() - (originalAmount - amount)); + + if(amount != 0.0F) { + float health = living.getHealth(); + living.setHealth(health - amount); + living.func_110142_aN().func_94547_a(source, health, amount); + living.setAbsorptionAmount(living.getAbsorptionAmount() - amount); + } + } + } + + public static float applyArmorCalculationsNT(EntityLivingBase living, DamageSource source, float amount) { + if(!source.isUnblockable()) { + float i = 25F - (living.getTotalArmorValue() * (1 - DamageResistanceHandler.currentPDR)); + float armor = amount * (float) i; + damageArmorNT(living, amount); + amount = armor / 25.0F; + } + return amount; } - public static boolean attackArmorPiercing(EntityLivingBase living, DamageSource sourceDamageCalc, DamageSource sourceArmorPiercing, float amount, float piercing) { - if(piercing <= 0) return living.attackEntityFrom(sourceDamageCalc, amount); - //damage intended to pass the armor - float afterTax = getDamageAfterTax(living, sourceDamageCalc, amount); - //damage removed by the calculation - float reduced = Math.max(amount - afterTax, 0F); - //damage that would pass + damage tthat wouldn't pass * AP percentage - return attackEntityFromIgnoreIFrame(living, sourceArmorPiercing, Math.max(afterTax + (reduced * piercing), 0F)); + public static void damageArmorNT(EntityLivingBase living, float amount) { } /** Currently just a copy of the vanilla damage code */ - public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount) { + @Deprecated public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount) { if(ForgeHooks.onLivingAttack(living, source, amount)) return false; @@ -199,7 +314,7 @@ public class EntityDamageUtil { try { return (float) m.invoke(living); } catch(Exception e) { } return 1F; } - public static void damageEntity(EntityLivingBase living, DamageSource source, float amount) { + @Deprecated public static void damageEntity(EntityLivingBase living, DamageSource source, float amount) { if(!living.isEntityInvulnerable()) { amount = ForgeHooks.onLivingHurt(living, source, amount); if(amount <= 0) @@ -219,11 +334,11 @@ public class EntityDamageUtil { } } - public static float applyArmorCalculations(EntityLivingBase living, DamageSource source, float amount) { + @Deprecated public static float applyArmorCalculations(EntityLivingBase living, DamageSource source, float amount) { if(!source.isUnblockable()) { int i = 25 - living.getTotalArmorValue(); float armor = amount * (float) i; - //living.damageArmor(p_70655_2_); //unused + //living.damageArmor(amount); //unused amount = armor / 25.0F; } @@ -270,4 +385,74 @@ public class EntityDamageUtil { public static void setBeenAttacked(EntityLivingBase living) { living.velocityChanged = living.getRNG().nextDouble() >= living.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue(); } + + public static MovingObjectPosition getMouseOver(EntityPlayer attacker, double reach) { + + World world = attacker.worldObj; + MovingObjectPosition objectMouseOver = null; + Entity pointedEntity = null; + + objectMouseOver = rayTrace(attacker, reach, 1F); + + Vec3 pos = getPosition(attacker); + Vec3 look = attacker.getLook(1F); + Vec3 end = pos.addVector(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach); + Vec3 hitvec = null; + float grace = 1.0F; + List list = world.getEntitiesWithinAABBExcludingEntity(attacker, attacker.boundingBox.addCoord(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach).expand(grace, grace, grace)); + + double closest = reach; + + for(int i = 0; i < list.size(); ++i) { + Entity entity = (Entity) list.get(i); + + if(entity.canBeCollidedWith()) { + + float borderSize = entity.getCollisionBorderSize(); + AxisAlignedBB axisalignedbb = entity.boundingBox.expand(borderSize, borderSize, borderSize); + MovingObjectPosition movingobjectposition = axisalignedbb.calculateIntercept(pos, end); + + if(axisalignedbb.isVecInside(pos)) { + if(0.0D <= closest) { + pointedEntity = entity; + hitvec = movingobjectposition == null ? pos : movingobjectposition.hitVec; + closest = 0.0D; + } + + } else if(movingobjectposition != null) { + double dist = pos.distanceTo(movingobjectposition.hitVec); + + if(dist < closest || closest == 0.0D) { + if(entity == attacker.ridingEntity && !entity.canRiderInteract()) { + if(closest == 0.0D) { + pointedEntity = entity; + hitvec = movingobjectposition.hitVec; + } + } else { + pointedEntity = entity; + hitvec = movingobjectposition.hitVec; + closest = dist; + } + } + } + } + } + + if(pointedEntity != null && (closest < reach || objectMouseOver == null)) { + objectMouseOver = new MovingObjectPosition(pointedEntity, hitvec); + } + + return objectMouseOver; + } + + public static MovingObjectPosition rayTrace(EntityPlayer player, double dist, float interp) { + Vec3 pos = getPosition(player); + Vec3 look = player.getLook(interp); + Vec3 end = pos.addVector(look.xCoord * dist, look.yCoord * dist, look.zCoord * dist); + return player.worldObj.func_147447_a(pos, end, false, false, true); + } + + public static Vec3 getPosition(EntityPlayer player) { + return Vec3.createVectorHelper(player.posX, player.posY + player.getEyeHeight(), player.posZ); + } } diff --git a/src/main/java/com/hbm/util/Vec3NT.java b/src/main/java/com/hbm/util/Vec3NT.java index 8bedb3869..0cb8121a7 100644 --- a/src/main/java/com/hbm/util/Vec3NT.java +++ b/src/main/java/com/hbm/util/Vec3NT.java @@ -79,15 +79,15 @@ public class Vec3NT extends Vec3 { } public Vec3NT rotateAroundXDeg(double alpha) { - return this.rotateAroundXRad(alpha * 180D / Math.PI); + return this.rotateAroundXRad(alpha / 180D * Math.PI); } public Vec3NT rotateAroundYDeg(double alpha) { - return this.rotateAroundYRad(alpha * 180D / Math.PI); + return this.rotateAroundYRad(alpha / 180D * Math.PI); } public Vec3NT rotateAroundZDeg(double alpha) { - return this.rotateAroundZRad(alpha * 180D / Math.PI); + return this.rotateAroundZRad(alpha / 180D * Math.PI); } public static double getMinX(Vec3NT... vecs) { diff --git a/src/main/java/com/hbm/world/dungeon/Radio01.java b/src/main/java/com/hbm/world/dungeon/Radio01.java index 57111ce3c..36aa3d7c9 100644 --- a/src/main/java/com/hbm/world/dungeon/Radio01.java +++ b/src/main/java/com/hbm/world/dungeon/Radio01.java @@ -652,7 +652,7 @@ public class Radio01 extends WorldGenerator world.setBlock(x + 6, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 7, y + 0, z + 24, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 7, y + 0, z + 24, 5, 3); - WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest)world.getTileEntity(x + 7, y + 0, z + 24), 8); + if(world.getTileEntity(x + 7, y + 0, z + 24) instanceof TileEntityChest) WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsLegacy.POOL_ANTENNA), (TileEntityChest) world.getTileEntity(x + 7, y + 0, z + 24), 8); world.setBlock(x + 8, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 9, y + 0, z + 24, ModBlocks.deco_steel, 0, 3); world.setBlock(x + 10, y + 0, z + 24, Library.getRandomConcrete(), 0, 3); diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index 4dd2aaee0..bfee7327c 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -81,7 +81,7 @@ public class SiloComponent extends Component { fillWithBlocks(world, box, 24, 25, 13, 26, 25, 18, ModBlocks.asphalt); fillWithBlocks(world, box, 13, 25, 19, 42, 25, 20, ModBlocks.asphalt); fillWithBlocks(world, box, 40, 25, 5, 42, 25, 18, ModBlocks.asphalt); - fillWithBlocks(world, box, 39, 25, 10, 39, 25, 12, ModBlocks.asphalt); + fillWithBlocks(world, box, 39, 25, 10, 39, 25, 12, ModBlocks.asphalt); fillWithMetadataBlocks(world, box, 15, 25, 10, 23, 25, 10, ModBlocks.concrete_colored_ext, 5); fillWithMetadataBlocks(world, box, 15, 25, 11, 15, 25, 17, ModBlocks.concrete_colored_ext, 5); fillWithMetadataBlocks(world, box, 15, 25, 18, 23, 25, 18, ModBlocks.concrete_colored_ext, 5); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ce4102a81..8c3981528 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -351,6 +351,7 @@ container.launchPad=Startrampe container.launchPadRusted=Startrampe container.launchTable=Große Startrampe container.leadBox=Sicherheitsbehälter +container.machineAmmoPress=Munitionspresse container.machineArcWelder=Lichtbogenschweißer container.machineArcFurnaceLarge=Lichtbogenofen container.machineBoiler=Ölwärmer @@ -475,6 +476,16 @@ crucible.steelPig=Herstellung - Stahl aus Roheisen crucible.steelWrought=Herstellung - Stahl aus Schmiedeeisen crucible.tcalloy=Herstellung - Technetiumstahl +damage.inset=Resistenz wenn in Set getragen: +damage.item=Resistenz wenn getragen: +damage.category.EXPL=Explosion +damage.category.FIRE=Feuer +damage.category.PROJ=Projektil +damage.exact.drown=Ertrinken +damage.exact.LASER=Laser +damage.exact.onFire=Nachbrennen +damage.other=Andere + death.attack.acid=%1$s fiel in Säure. death.attack.acidPlayer=%1$s wurde von %2$s aufgelöst. death.attack.ams=%1$s wurde in tödlichen Teilchen gebadet, die von der Menschheit erst benannt werden müssen. @@ -1150,12 +1161,24 @@ item.ammo_shell.name=240mm Geschoss item.ammo_shell_apfsds_du.name=240mm APFSDS-DU item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE-Geschoss +item.ammo_secret.bmg50_equestrian.name=.50 BMG Zerstörer +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 +item.ammo_secret.m44_equestrian.name=.44 Magnum Schädelsprenger +item.ammo_standard.b75.name=.75 Bolzen +item.ammo_standard.b75_exp.name=.75 Bolzen (Explosiv) +item.ammo_standard.b75_inc.name=.75 Bolzen (Brand) item.ammo_standard.bmg50_ap.name=.50 BMG Patrone (Panzerbrechend) item.ammo_standard.bmg50_du.name=.50 BMG Patrone (Urangeschoss) -item.ammo_standard.bmg50_equestrian.name=.50 BMG Zerstörer item.ammo_standard.bmg50_fmj.name=.50 BMG Patrone (Vollmantelgeschoss) item.ammo_standard.bmg50_jhp.name=.50 BMG Patrone (Hohlspitz) item.ammo_standard.bmg50_sp.name=.50 BMG Patrone (Teilmantelgeschoss) +item.ammo_standard.capacitor.name=Kondensator +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.flame_balefire.name=Flammenwerferbrennstoff, Balefire item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas @@ -1165,7 +1188,6 @@ item.ammo_standard.g12_anthrax.name=Kaliber 12 Anthrax item.ammo_standard.g12_bp.name=Kaliber 12 Schwarzpulver item.ammo_standard.g12_bp_magnum.name=Kaliber 12 Schwarzpulver Magnum item.ammo_standard.g12_bp_slug.name=Kaliber 12 Schwarzpulver Laufgeschoss -item.ammo_standard.g12_equestrian.name=Kaliber 12 Gleisnägel item.ammo_standard.g12_explosive.name=Kaliber 12 Explosivgeschoss item.ammo_standard.g12_flechette.name=Kaliber 12 Flechett item.ammo_standard.g12_magnum.name=Kaliber 12 Magnum @@ -1178,17 +1200,24 @@ item.ammo_standard.g40_demo.name=40mm Abrissgranate item.ammo_standard.g40_he.name=40mm Sprenggranate item.ammo_standard.g40_heat.name=40mm Hohlladungsgranate item.ammo_standard.g40_inc.name=40mm Brandgranate +item.ammo_standard.g40_phosphorus.name=40mm Weiße Phosphorgranate item.ammo_standard.m357_ap.name=.357 Magnumkugel (Panzerbrechend) +item.ammo_standard.m357_bp.name=.357 Magnumkugel (Schwarzpulver) item.ammo_standard.m357_express.name=.357 Magnumkugel (VMG Express) item.ammo_standard.m357_fmj.name=.357 Magnumkugel (Vollmantelgeschoss) item.ammo_standard.m357_jhp.name=.357 Magnumkugel (Hohlspitz) item.ammo_standard.m357_sp.name=.357 Magnumkugel (Teilmantelgeschoss) item.ammo_standard.m44_ap.name=.44 Magnumkugel (Panzerbrechend) -item.ammo_standard.m44_equestrian.name=.44 Magnum Schädelsprenger +item.ammo_standard.m44_bp.name=.44 Magnumkugel (Schwarzpulver) 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_demo.name=Miniatombombe, Abriss +item.ammo_standard.nuke_high.name=Miniatombombe, hoher Ertrag +item.ammo_standard.nuke_hive.name=Raketenschwarm +item.ammo_standard.nuke_standard.name=Miniatombombe +item.ammo_standard.nuke_tots.name=Miniatombombe, kleine Knirpse item.ammo_standard.p22_ap.name=.22 lfB Patrone (Panzerbrechend) item.ammo_standard.p22_fmj.name=.22 lfB Patrone (Vollmantelgeschoss) item.ammo_standard.p22_jhp.name=.22 lfB Patrone (Hohlspitz) @@ -1210,10 +1239,12 @@ item.ammo_standard.rocket_demo.name=Abrissrakete item.ammo_standard.rocket_he.name=Explosivrakete item.ammo_standard.rocket_heat.name=Hohlladungsrakete item.ammo_standard.rocket_inc.name=Brandrakete +item.ammo_standard.rocket_phosphorus.name=Weiße Phosphorrakete item.ammo_standard.stone.name=Kugel und Pulver item.ammo_standard.stone_ap.name=Feuerstein und Pulver item.ammo_standard.stone_iron.name=Eisenkugel und Pulver item.ammo_standard.stone_shot.name=Schrot und Pulver +item.ammo_standard.tau_uranium.name=Erschöpfte Uran-235-Kiste item.ammo_stinger_rocket.name=Stinger-Rakete item.ammo_stinger_rocket_he.name=Stinger-Rakete (HE) item.ammo_stinger_rocket_incendiary.name=Stinger-Rakete (Brand) @@ -2162,11 +2193,14 @@ item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" item.gun_fatman_ammo.name=Miniatombombe (LEGACY) item.gun_fireext.name=Feuerlöscher item.gun_flamer.name=Flammenwerfer +item.gun_flamer_daybreaker.name=Daybreaker +item.gun_flamer_topaz.name=Mister Topaz item.gun_flaregun.name=Signalpistole item.gun_flechette.name=Flechet-Gewehr -item.gun_folly.name=Prototyp Digamma "Irrsinn" +item.gun_folly.name=Folly item.gun_g3.name=Sturmgewehr item.gun_greasegun.name=Grease Gun +item.gun_hangman.name=Hangman item.gun_heavy_revolver.name=Schwerer Revolver item.gun_heavy_revolver_lilmac.name=Little Macintosh item.gun_henry.name=Repetiergewehr @@ -2184,6 +2218,7 @@ item.gun_ks23.name=Samuel die dicke Flinte item.gun_lacunae.name=CZ33 Abaddon item.gun_lacunae_ammo.name=5mm Patrone (LEGACY) item.gun_lag.name=Komisch lange Pistole +item.gun_lasrifle.name=Lasergewehr item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Schrotmunition (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dunkel) @@ -2191,6 +2226,7 @@ item.gun_lever_action_sonata.name=Verkehrter Mare's Leg item.gun_lever_action_sonata_2.name=§cSonatas Mikrophon§r item.gun_liberator.name=Liberator item.gun_light_revolver.name=Kipplaufrevolver +item.gun_light_revolver_atlas.name=Atlas item.gun_light_revolver_dani.name=Tag und Nacht item.gun_lunatic_marksman.name=Lunatic-Scharfschützengewehr item.gun_m2.name=üsMG @@ -2198,6 +2234,7 @@ item.gun_maresleg.name=Repetierflinte item.gun_maresleg_akimbo.name=Repetierflinten item.gun_maresleg_broken.name=Broken item.gun_minigun.name=Minigun +item.gun_minigun_lacunae.name=Lacunae item.gun_mirv.name=M42 Nukleares Katapult "Experimentelles MIRV" item.gun_mirv_ammo.name=Achtfaches MIRV (LEGACY) item.gun_missile_launcher.name=Raketenwerfer @@ -2252,12 +2289,14 @@ item.gun_stinger.name=FIM-92 Stinger item.gun_stinger_ammo.name=Stinger-Rakete (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_supershotgun.name=Super Shotgun +item.gun_tau.name=Taukanone item.gun_tesla_cannon.name=Teslakanone item.gun_thompson.name=Thompson Maschinenpistole item.gun_uac_pistol.name=UAC .45 Pistole item.gun_uboinik.name=Ubojnik item.gun_uboinik_ammo.name=12x70 Schrotmunition (LEGACY) item.gun_uzi.name=Uzi +item.gun_uzi_akimbo.name=Uzis item.gun_uzi_ammo.name=.22 lfB Patrone (LEGACY) item.gun_uzi_saturnite.name=Saturnit-Uzi item.gun_uzi_saturnite_silencer.name=Saturnit-Uzi mit Schalldämpfer @@ -3759,23 +3798,30 @@ rbmk.rod.xenon=Xenonvergiftung: %s rbmk.rod.coreTemp=Kerntemperatur: %s rbmk.rod.skinTemp=Außentemperatur: %s / %s +shape.barrelHeavy=Schwerer Lauf +shape.barrelLight=Leichter Lauf shape.billet=Billet shape.blade=Turbinenblatt shape.blades=Sägeblatt shape.block=Block shape.dust=Haufen shape.dusttiny=Winziger Haufen -shape.hull_big=Große Hülle +shape.grip=Griff +shape.gunMechanism=Mechanism +shape.hull_big=Große Mechanismus shape.hull_small=Kleine Hülle shape.ingot=Barren shape.nugget=Nugget shape.quantum=Quantum shape.quart=Viertel Block +shape.receiverHeavy=Schwerer Verschluss +shape.receiverLight=Leichter Verschluss shape.ntmpipe=Rohr shape.plate=Platte shape.plateTriple=Gussplatte shape.shell=Mantel shape.stamp=Stempel +shape.stock=Schaft shape.wireFine=Drähte shape.wireDense=Dichter Draht shape.wiresDense=Dichte Drähte @@ -4361,6 +4407,7 @@ tile.launch_table.name=Große Startrampe tile.leaves_layer.name=Totes Laub tile.lox_barrel.name=LOX-Fass tile.machine_amgen.name=Umgebungsstrahlungs-Generator +tile.machine_ammo_press.name=Munitionspresse tile.machine_arc_furnace.name=Electrischer Lichtbogenofen tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1e5cfe67b..3e83ef786 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -753,6 +753,7 @@ container.launchPad=Launch Pad container.launchPadRusted=Launch Pad container.launchTable=Large Launch Pad container.leadBox=Containment Box +container.machineAmmoPress=Ammo Press container.machineArcWelder=Arc Welder container.machineArcFurnaceLarge=Arc Furnace container.machineBoiler=Oil Heater @@ -891,6 +892,16 @@ crucible.steelPig=Steel Production from Pig Iron crucible.steelWrought=Steel Production from Wrought Iron crucible.tcalloy=Technetium Steel Production +damage.inset=Resistances when worn in set: +damage.item=Resistances when worn: +damage.category.EXPL=Explosion +damage.category.FIRE=Fire +damage.category.PROJ=Projectile +damage.exact.drown=Drowning +damage.exact.LASER=Laser +damage.exact.onFire=Afterburn +damage.other=Other + death.attack.acid=%1$s fell into acid. death.attack.acidPlayer=%1$s was dissolved by %2$s. death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. @@ -1873,12 +1884,24 @@ item.ammo_shell_apfsds_du.name=240mm APFSDS-DU 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.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 +item.ammo_secret.m44_equestrian.name=.44 Magnum Head-Exploder +item.ammo_standard.b75.name=.75 Bolt +item.ammo_standard.b75_exp.name=.75 Bolt (Explosive) +item.ammo_standard.b75_inc.name=.75 Bolt (Incendiary) item.ammo_standard.bmg50_ap.name=.50 BMG Round (Armor Piercing) item.ammo_standard.bmg50_du.name=.50 BMG Round (Depleted Uranium) -item.ammo_standard.bmg50_equestrian.name=.50 BMG Demolisher 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_sp.name=.50 BMG Round (Soft Point) +item.ammo_standard.capacitor.name=Capacitor +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.flame_balefire.name=Flamer Fuel, Balefire item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel item.ammo_standard.flame_gas.name=Flamer Fuel, Gas @@ -1888,7 +1911,6 @@ item.ammo_standard.g12_anthrax.name=12 Gauge Anthrax Shell item.ammo_standard.g12_bp.name=12 Gauge Black Powder Buckshot item.ammo_standard.g12_bp_magnum.name=12 Gauge Black Powder Magnum Shell item.ammo_standard.g12_bp_slug.name=12 Gauge Black Powder Slug -item.ammo_standard.g12_equestrian.name=12 Gauge Railway Spike Shot item.ammo_standard.g12_explosive.name=12 Gauge Explosive Shell item.ammo_standard.g12_flechette.name=12 Gauge Flechette Shell item.ammo_standard.g12_magnum.name=12 Gauge Magnum Shell @@ -1901,17 +1923,24 @@ item.ammo_standard.g40_demo.name=40mm Grenade, Demolition item.ammo_standard.g40_he.name=40mm Grenade, High-Explosive item.ammo_standard.g40_heat.name=40mm Grenade, Shaped Charge item.ammo_standard.g40_inc.name=40mm Grenade, Incendiary +item.ammo_standard.g40_phosphorus.name=40mm Grenade, White Phosphorus item.ammo_standard.m357_ap.name=.357 Magnum Round (Armor Piercing) +item.ammo_standard.m357_bp.name=.357 Magnum Round (Black Powder) item.ammo_standard.m357_express.name=.357 Magnum Round (FMJ Express) item.ammo_standard.m357_fmj.name=.357 Magnum Round (Full Metal Jacket) item.ammo_standard.m357_jhp.name=.357 Magnum Round (Jacketed Hollow Point) item.ammo_standard.m357_sp.name=.357 Magnum Round (Soft Point) item.ammo_standard.m44_ap.name=.44 Magnum Round (Armor Piercing) -item.ammo_standard.m44_equestrian.name=.44 Magnum Head-Exploder +item.ammo_standard.m44_bp.name=.44 Magnum Round (Black Powder) 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_demo.name=Mini Nuke, Demolition +item.ammo_standard.nuke_high.name=Mini Nuke, High Yield +item.ammo_standard.nuke_hive.name=Rocket Hive +item.ammo_standard.nuke_standard.name=Mini Nuke +item.ammo_standard.nuke_tots.name=Mini Nuke, Tiny Tots item.ammo_standard.p22_ap.name=.22 LR Round (Armor Piercing) item.ammo_standard.p22_fmj.name=.22 LR Round (Full Metal Jacket) item.ammo_standard.p22_jhp.name=.22 LR Round (Jacketed Hollow Point) @@ -1933,10 +1962,12 @@ item.ammo_standard.rocket_demo.name=Rocket, Demolition item.ammo_standard.rocket_he.name=Rocket, High-Explosive item.ammo_standard.rocket_heat.name=Rocket, Shaped Charge item.ammo_standard.rocket_inc.name=Rocket, Incendiary +item.ammo_standard.rocket_phosphorus.name=Rocket, White Phosphorus item.ammo_standard.stone.name=Ball and Powder item.ammo_standard.stone_ap.name=Flint and Powder item.ammo_standard.stone_iron.name=Iron Ball and Powder item.ammo_standard.stone_shot.name=Shot and Powder +item.ammo_standard.tau_uranium.name=Depleted Uranium-235 Box item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) @@ -2970,12 +3001,15 @@ item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" item.gun_fatman_ammo.name=Mini Nuke (LEGACY) item.gun_fireext.name=Fire Extinguisher item.gun_flamer.name=Flamethrower +item.gun_flamer_daybreaker.name=Daybreaker +item.gun_flamer_topaz.name=Mister Topaz item.gun_flaregun.name=Flare Gun item.gun_flechette.name=Flechette Rifle -item.gun_folly.name=Prototype Digamma "Folly" +item.gun_folly.name=Folly item.gun_g3.name=Assault Rifle item.gun_glass_cannon.name=The Glass Cannon item.gun_greasegun.name=Grease Gun +item.gun_hangman.name=Hangman item.gun_heavy_revolver.name=Heavy Revolver item.gun_heavy_revolver_lilmac.name=Little Macintosh item.gun_henry.name=Lever Action Rifle @@ -2993,6 +3027,7 @@ item.gun_ks23.name=Samuel the Big Shotgun item.gun_lacunae.name=CZ33 Abaddon item.gun_lacunae_ammo.name=5mm Round (LEGACY) item.gun_lag.name=Comically Long Pistol +item.gun_lasrifle.name=Laser Rifle item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) @@ -3000,6 +3035,7 @@ item.gun_lever_action_sonata.name=Flipped Mare's Leg item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_liberator.name=Liberator item.gun_light_revolver.name=Break-Action Revolver +item.gun_light_revolver_atlas.name=Atlas item.gun_light_revolver_dani.name=Day And Night item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce @@ -3007,6 +3043,7 @@ item.gun_maresleg.name=Lever Action Shotgun item.gun_maresleg_akimbo.name=Lever Action Shotguns item.gun_maresleg_broken.name=Broken item.gun_minigun.name=Minigun +item.gun_minigun_lacunae.name=Lacunae item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) item.gun_missile_launcher.name=Missile Launcher @@ -3062,12 +3099,14 @@ item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun +item.gun_tau.name=Tau Cannon item.gun_tesla_cannon.name=Tesla Cannon item.gun_thompson.name=Thompson Submachine Gun item.gun_uac_pistol.name=UAC .45 Pistol item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) item.gun_uzi.name=Uzi +item.gun_uzi_akimbo.name=Uzis item.gun_uzi_ammo.name=.22 LR Round (LEGACY) item.gun_uzi_saturnite.name=Saturnite Uzi item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer @@ -4814,23 +4853,30 @@ rbmk.screen.rod=Control: %s rbmk.screen.temp=Temp: %s rbmk.screen.xenon=Xenon: %s +shape.barrelHeavy=Heavy Barrel +shape.barrelLight=Light Barrel shape.billet=Billet shape.blade=Blade shape.blades=Shredder Blades shape.block=Block shape.dust=Dust shape.dusttiny=Tiny Dust +shape.grip=Grip +shape.gunMechanism=Mechanism shape.hull_big=Big Shell shape.hull_small=Small Shell shape.ingot=Ingot shape.nugget=Nugget shape.quantum=Quantum shape.quart=Quarter Block +shape.receiverHeavy=Heavy Receiver +shape.receiverLight=Light Receiver shape.ntmpipe=Pipe shape.plate=Plate shape.plateTriple=Cast Plate shape.shell=Shell shape.stamp=Press Stamp +shape.stock=Stock shape.wireFine=Wires shape.wireDense=Dense Wire shape.wiresDense=Dense Wires @@ -5457,6 +5503,7 @@ tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves tile.lox_barrel.name=LOX Barrel tile.machine_amgen.name=Ambience Radiation Generator +tile.machine_ammo_press.name=Ammo Press tile.machine_arc_furnace.name=Electric Arc Furnace tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace diff --git a/src/main/resources/assets/hbm/models/bombs/ap_mine.obj b/src/main/resources/assets/hbm/models/bombs/ap_mine.obj new file mode 100644 index 000000000..b9762718c --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/ap_mine.obj @@ -0,0 +1,749 @@ +# Blender v2.79 (sub 0) OBJ File: 'ap_mine.blend' +# www.blender.org +o Circle +v 0.000000 0.000000 -0.500000 +v -0.250000 0.000000 -0.433013 +v -0.433013 0.000000 -0.250000 +v -0.500000 0.000000 0.000000 +v -0.433013 0.000000 0.250000 +v -0.250000 0.000000 0.433013 +v -0.000000 0.000000 0.500000 +v 0.250000 0.000000 0.433013 +v 0.433013 0.000000 0.250000 +v 0.500000 0.000000 0.000000 +v 0.433013 0.000000 -0.250000 +v 0.250000 0.000000 -0.433013 +v -0.250000 0.250000 -0.433013 +v 0.000000 0.250000 -0.500000 +v -0.433013 0.250000 -0.250000 +v -0.500000 0.250000 0.000000 +v -0.433013 0.250000 0.250000 +v -0.250000 0.250000 0.433013 +v -0.000000 0.250000 0.500000 +v 0.250000 0.250000 0.433013 +v 0.433013 0.250000 0.250000 +v 0.500000 0.250000 0.000000 +v 0.433013 0.250000 -0.250000 +v 0.250000 0.250000 -0.433013 +v 0.000000 0.250000 -0.312500 +v -0.156250 0.250000 -0.270633 +v -0.270633 0.250000 -0.156250 +v -0.312500 0.250000 0.000000 +v -0.270633 0.250000 0.156250 +v -0.156250 0.250000 0.270633 +v -0.000000 0.250000 0.312500 +v 0.156250 0.250000 0.270633 +v 0.270633 0.250000 0.156250 +v 0.312500 0.250000 0.000000 +v 0.270633 0.250000 -0.156250 +v 0.156250 0.250000 -0.270633 +v 0.000000 0.375000 -0.250000 +v -0.125000 0.375000 -0.216506 +v -0.216506 0.375000 -0.125000 +v -0.250000 0.375000 0.000000 +v -0.216506 0.375000 0.125000 +v -0.125000 0.375000 0.216506 +v -0.000000 0.375000 0.250000 +v 0.125000 0.375000 0.216506 +v 0.216506 0.375000 0.125000 +v 0.250000 0.375000 0.000000 +v 0.216506 0.375000 -0.125000 +v 0.125000 0.375000 -0.216506 +v 0.031250 -0.062500 -0.250000 +v 0.031250 -0.062500 -0.562500 +v -0.031250 -0.062500 -0.250000 +v -0.031250 -0.062500 -0.562500 +v 0.031250 0.312500 -0.250000 +v 0.031250 0.312500 -0.562500 +v -0.031250 0.312500 -0.250000 +v -0.031250 0.312500 -0.562500 +v 0.250000 -0.062500 0.031250 +v 0.562500 -0.062500 0.031250 +v 0.250000 -0.062500 -0.031250 +v 0.562500 -0.062500 -0.031250 +v 0.250000 0.312500 0.031250 +v 0.562500 0.312500 0.031250 +v 0.250000 0.312500 -0.031250 +v 0.562500 0.312500 -0.031250 +v -0.562500 0.312500 0.031250 +v -0.250000 0.312500 0.031250 +v -0.562500 0.312500 -0.031250 +v -0.250000 0.312500 -0.031250 +v -0.562500 -0.062500 0.031250 +v -0.250000 -0.062500 0.031250 +v -0.562500 -0.062500 -0.031250 +v -0.250000 -0.062500 -0.031250 +v 0.031250 0.312500 0.562500 +v 0.031250 0.312500 0.250000 +v -0.031250 0.312500 0.562500 +v -0.031250 0.312500 0.250000 +v 0.031250 -0.062500 0.562500 +v 0.031250 -0.062500 0.250000 +v -0.031250 -0.062500 0.562500 +v -0.031250 -0.062500 0.250000 +v 0.187500 0.000000 -0.324759 +v 0.324760 0.000000 -0.187500 +v 0.375000 0.000000 0.000000 +v 0.324759 0.000000 0.187500 +v 0.187500 0.000000 0.324760 +v -0.000000 0.000000 0.375000 +v -0.187500 0.000000 0.324760 +v -0.324760 0.000000 0.187500 +v -0.375000 0.000000 0.000000 +v -0.324760 0.000000 -0.187500 +v -0.187500 0.000000 -0.324759 +v 0.000000 0.000000 -0.375000 +v 0.187500 -0.125000 -0.324759 +v 0.324760 -0.125000 -0.187500 +v 0.375000 -0.125000 0.000000 +v 0.324759 -0.125000 0.187500 +v 0.187500 -0.125000 0.324760 +v -0.000000 -0.125000 0.375000 +v -0.187500 -0.125000 0.324760 +v -0.324760 -0.125000 0.187500 +v -0.375000 -0.125000 0.000000 +v -0.324760 -0.125000 -0.187500 +v -0.187500 -0.125000 -0.324759 +v 0.000000 -0.125000 -0.375000 +v -0.097937 -0.062500 -0.232131 +v -0.254187 -0.062500 -0.502764 +v -0.152063 -0.062500 -0.200881 +v -0.308313 -0.062500 -0.471514 +v -0.097937 0.312500 -0.232131 +v -0.254187 0.312500 -0.502764 +v -0.152063 0.312500 -0.200881 +v -0.308313 0.312500 -0.471514 +v 0.232131 -0.062500 -0.097937 +v 0.502764 -0.062500 -0.254187 +v 0.200881 -0.062500 -0.152063 +v 0.471514 -0.062500 -0.308313 +v 0.232131 0.312500 -0.097937 +v 0.502764 0.312500 -0.254187 +v 0.200881 0.312500 -0.152063 +v 0.471514 0.312500 -0.308313 +v -0.471514 0.312500 0.308313 +v -0.200881 0.312500 0.152063 +v -0.502764 0.312500 0.254187 +v -0.232131 0.312500 0.097937 +v -0.471514 -0.062500 0.308313 +v -0.200881 -0.062500 0.152063 +v -0.502764 -0.062500 0.254187 +v -0.232131 -0.062500 0.097937 +v 0.308313 0.312500 0.471514 +v 0.152063 0.312500 0.200881 +v 0.254187 0.312500 0.502764 +v 0.097937 0.312500 0.232131 +v 0.308313 -0.062500 0.471514 +v 0.152063 -0.062500 0.200881 +v 0.254187 -0.062500 0.502764 +v 0.097937 -0.062500 0.232131 +v -0.200881 -0.062500 -0.152063 +v -0.471514 -0.062500 -0.308313 +v -0.232131 -0.062500 -0.097937 +v -0.502764 -0.062500 -0.254187 +v -0.200881 0.312500 -0.152063 +v -0.471514 0.312500 -0.308313 +v -0.232131 0.312500 -0.097937 +v -0.502764 0.312500 -0.254187 +v 0.152063 -0.062500 -0.200881 +v 0.308313 -0.062500 -0.471514 +v 0.097937 -0.062500 -0.232131 +v 0.254187 -0.062500 -0.502764 +v 0.152063 0.312500 -0.200881 +v 0.308313 0.312500 -0.471514 +v 0.097937 0.312500 -0.232131 +v 0.254187 0.312500 -0.502764 +v -0.254187 0.312500 0.502764 +v -0.097937 0.312500 0.232131 +v -0.308313 0.312500 0.471514 +v -0.152063 0.312500 0.200881 +v -0.254187 -0.062500 0.502764 +v -0.097937 -0.062500 0.232131 +v -0.308313 -0.062500 0.471514 +v -0.152063 -0.062500 0.200881 +v 0.502764 0.312500 0.254187 +v 0.232131 0.312500 0.097937 +v 0.471514 0.312500 0.308313 +v 0.200881 0.312500 0.152063 +v 0.502764 -0.062500 0.254187 +v 0.232131 -0.062500 0.097937 +v 0.471514 -0.062500 0.308313 +v 0.200881 -0.062500 0.152063 +vt 0.166667 0.080000 +vt 0.250000 0.160000 +vt 0.166667 0.160000 +vt 0.291806 0.541901 +vt 0.374860 0.541901 +vt 0.416387 0.680000 +vt 0.500000 0.320000 +vt 0.562500 0.440000 +vt 0.520833 0.440000 +vt 0.583333 0.320000 +vt 0.645833 0.440000 +vt 0.604167 0.440000 +vt 0.750000 0.320000 +vt 0.687500 0.440000 +vt 0.666667 0.320000 +vt 0.812500 0.440000 +vt 0.770833 0.440000 +vt 0.916667 0.320000 +vt 0.854167 0.440000 +vt 0.833333 0.320000 +vt 1.000000 0.320000 +vt 0.937500 0.440000 +vt 0.083333 0.320000 +vt 0.020833 0.440000 +vt -0.000000 0.320000 +vt 0.166667 0.320000 +vt 0.104167 0.440000 +vt 0.250000 0.320000 +vt 0.187500 0.440000 +vt 0.333333 0.320000 +vt 0.270833 0.440000 +vt 0.395833 0.440000 +vt 0.354167 0.440000 +vt 0.416667 0.320000 +vt 0.479167 0.440000 +vt 0.437500 0.440000 +vt 0.416667 0.520000 +vt 0.520833 0.560000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.416667 0.800000 +vt 0.541667 0.560000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.541667 0.560000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.520000 +vt 0.416667 0.840000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.000000 0.080000 +vt 0.083333 0.160000 +vt -0.000000 0.160000 +vt 0.083333 0.080000 +vt 0.916667 0.080000 +vt 1.000000 0.160000 +vt 0.916667 0.160000 +vt 0.833333 0.080000 +vt 0.833333 0.160000 +vt 0.750000 0.160000 +vt 0.812500 0.080000 +vt 0.666667 0.080000 +vt 0.666667 0.160000 +vt 0.583333 0.160000 +vt 0.645833 0.080000 +vt 0.500000 0.160000 +vt 0.562500 0.080000 +vt 0.416667 0.160000 +vt 0.479167 0.080000 +vt 0.333333 0.160000 +vt 0.395833 0.080000 +vt 0.250000 0.080000 +vt 0.187513 0.552110 +vt 0.187513 0.967890 +vt -0.000027 0.760000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.541667 0.560000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.520000 +vt 0.416667 0.840000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.416667 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.541667 0.560000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.520000 +vt 0.416667 0.840000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.520833 0.560000 +vt 0.416667 0.800000 +vt 0.416667 0.560000 +vt 0.520833 0.840000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.520833 0.520000 +vt 0.541667 0.560000 +vt 0.520833 0.800000 +vt 0.416667 0.840000 +vt 0.645833 0.560000 +vt 0.541667 0.800000 +vt 0.229167 0.080000 +vt 0.405260 0.759732 +vt 0.374860 0.818099 +vt 0.333333 0.839464 +vt 0.291806 0.818099 +vt 0.261407 0.759732 +vt 0.250279 0.680000 +vt 0.261407 0.600268 +vt 0.333333 0.520537 +vt 0.405260 0.600268 +vt 0.729167 0.440000 +vt 0.895833 0.440000 +vt 0.979167 0.440000 +vt 0.062500 0.440000 +vt 0.145833 0.440000 +vt 0.229167 0.440000 +vt 0.312500 0.440000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.416667 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.416667 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.062500 0.080000 +vt 0.145833 0.080000 +vt 0.979167 0.080000 +vt 0.895833 0.080000 +vt 0.750000 0.080000 +vt 0.729167 0.080000 +vt 0.583333 0.080000 +vt 0.500000 0.080000 +vt 0.416667 0.080000 +vt 0.333333 0.080000 +vt 0.312500 0.080000 +vt 0.016724 0.639974 +vt 0.062487 0.552109 +vt 0.125000 0.519949 +vt 0.233276 0.639974 +vt 0.250027 0.760000 +vt 0.233276 0.880025 +vt 0.125000 1.000051 +vt 0.062487 0.967890 +vt 0.016724 0.880025 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.645833 0.800000 +vt 0.520833 0.520000 +vt 0.520833 0.840000 +vt 0.416667 0.520000 +vt 0.645833 0.800000 +vt 0.416667 0.520000 +vt 0.520833 0.840000 +vt 0.645833 0.800000 +vt 0.479167 0.520000 +vt 0.437500 0.520000 +vt 0.520833 0.520000 +vt 0.604167 0.520000 +vt 0.687500 0.520000 +vt 0.770833 0.520000 +vt 0.854167 0.520000 +vt 0.937500 0.520000 +vt 0.020833 0.520000 +vt 0.104167 0.520000 +vt 0.187500 0.520000 +vt 0.270833 0.520000 +vt 0.354167 0.520000 +vt 0.062500 -0.000000 +vt 0.645833 -0.000000 +vt 0.895833 -0.000000 +vt 0.562500 -0.000000 +vt 0.979167 -0.000000 +vt 0.479167 -0.000000 +vt 0.395833 -0.000000 +vt 0.312500 -0.000000 +vt 0.229167 -0.000000 +vt 0.812500 -0.000000 +vt 0.729167 -0.000000 +vt 0.145833 -0.000000 +vt 0.562500 0.520000 +vt 0.645833 0.520000 +vt 0.729167 0.520000 +vt 0.812500 0.520000 +vt 0.895833 0.520000 +vt 0.979167 0.520000 +vt 0.062500 0.520000 +vt 0.145833 0.520000 +vt 0.229167 0.520000 +vt 0.312500 0.520000 +vt 0.395833 0.520000 +vt 0.000000 -0.000000 +vt 0.583333 -0.000000 +vt 0.833333 -0.000000 +vt 0.500000 -0.000000 +vt 0.916667 -0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.250000 -0.000000 +vt 0.166667 -0.000000 +vt 0.750000 -0.000000 +vt 0.666667 -0.000000 +vt 0.083333 -0.000000 +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 1.0000 0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +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.8660 0.0000 0.5000 +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.4472 0.4472 0.7746 +vn -0.0000 0.4472 0.8944 +vn 0.4472 0.4472 0.7746 +s off +f 87/1/1 7/2/1 6/3/1 +f 45/4/2 47/5/2 37/6/2 +f 22/7/2 35/8/2 34/9/2 +f 23/10/2 36/11/2 35/12/2 +f 14/13/2 36/14/2 24/15/2 +f 14/13/2 26/16/2 25/17/2 +f 15/18/2 26/19/2 13/20/2 +f 16/21/2 27/22/2 15/18/2 +f 17/23/2 28/24/2 16/25/2 +f 18/26/2 29/27/2 17/23/2 +f 19/28/2 30/29/2 18/26/2 +f 20/30/2 31/31/2 19/28/2 +f 20/30/2 33/32/2 32/33/2 +f 21/34/2 34/35/2 33/36/2 +f 51/37/1 50/38/1 49/39/1 +f 54/40/2 55/41/2 53/42/2 +f 52/43/3 54/40/3 50/38/3 +f 51/44/4 56/45/4 52/43/4 +f 50/38/5 53/42/5 49/39/5 +f 59/46/3 64/47/3 60/48/3 +f 58/49/6 61/50/6 57/51/6 +f 60/48/5 62/52/5 58/49/5 +f 59/53/1 58/49/1 57/51/1 +f 62/52/2 63/54/2 61/50/2 +f 71/55/3 68/56/3 72/57/3 +f 72/57/1 69/58/1 71/55/1 +f 69/59/4 67/60/4 71/55/4 +f 79/61/4 76/62/4 80/63/4 +f 67/60/2 66/64/2 68/56/2 +f 70/65/6 65/66/6 69/59/6 +f 80/63/1 77/67/1 79/61/1 +f 77/68/6 75/69/6 79/61/6 +f 75/69/2 74/70/2 76/62/2 +f 78/71/5 73/72/5 77/68/5 +f 89/73/1 5/74/1 4/75/1 +f 88/76/1 6/3/1 5/74/1 +f 90/77/1 4/78/1 3/79/1 +f 91/80/1 3/79/1 2/81/1 +f 1/82/1 91/83/1 2/81/1 +f 81/84/1 1/82/1 12/85/1 +f 11/86/1 81/87/1 12/85/1 +f 10/88/1 82/89/1 11/86/1 +f 9/90/1 83/91/1 10/88/1 +f 8/92/1 84/93/1 9/90/1 +f 86/94/1 8/92/1 7/2/1 +f 96/95/1 100/96/1 104/97/1 +f 105/98/1 108/99/1 106/100/1 +f 109/101/2 112/102/2 111/103/2 +f 108/104/7 110/105/7 106/100/7 +f 107/106/8 112/107/8 108/104/8 +f 106/100/9 109/101/9 105/98/9 +f 115/108/7 120/109/7 116/110/7 +f 114/111/10 117/112/10 113/113/10 +f 116/110/9 118/114/9 114/111/9 +f 115/115/1 114/111/1 113/113/1 +f 118/114/2 119/116/2 117/112/2 +f 127/117/7 124/118/7 128/119/7 +f 128/119/1 125/120/1 127/117/1 +f 125/121/8 123/122/8 127/117/8 +f 135/123/8 132/124/8 136/125/8 +f 124/118/2 121/126/2 122/127/2 +f 126/128/10 121/129/10 125/121/10 +f 134/130/1 135/123/1 136/125/1 +f 133/131/10 131/132/10 135/123/10 +f 131/132/2 130/133/2 132/124/2 +f 134/134/9 129/135/9 133/131/9 +f 137/136/1 140/137/1 138/138/1 +f 141/139/2 144/140/2 143/141/2 +f 140/142/11 142/143/11 138/138/11 +f 139/144/12 144/145/12 140/142/12 +f 138/138/13 141/139/13 137/136/13 +f 147/146/11 152/147/11 148/148/11 +f 146/149/14 149/150/14 145/151/14 +f 148/148/13 150/152/13 146/149/13 +f 147/153/1 146/149/1 145/151/1 +f 150/152/2 151/154/2 149/150/2 +f 159/155/11 156/156/11 160/157/11 +f 160/157/1 157/158/1 159/155/1 +f 157/159/12 155/160/12 159/155/12 +f 167/161/12 164/162/12 168/163/12 +f 156/156/2 153/164/2 154/165/2 +f 158/166/14 153/167/14 157/159/14 +f 168/163/1 165/168/1 167/161/1 +f 165/169/14 163/170/14 167/161/14 +f 163/170/2 162/171/2 164/162/2 +f 166/172/13 161/173/13 165/169/13 +f 87/1/1 86/174/1 7/2/1 +f 37/6/2 38/175/2 39/176/2 +f 39/176/2 40/177/2 41/178/2 +f 41/178/2 42/179/2 43/180/2 +f 43/180/2 44/181/2 45/4/2 +f 45/4/2 46/182/2 47/5/2 +f 47/5/2 48/183/2 37/6/2 +f 37/6/2 39/176/2 41/178/2 +f 41/178/2 43/180/2 37/6/2 +f 43/180/2 45/4/2 37/6/2 +f 22/7/2 23/10/2 35/8/2 +f 23/10/2 24/15/2 36/11/2 +f 14/13/2 25/184/2 36/14/2 +f 14/13/2 13/20/2 26/16/2 +f 15/18/2 27/185/2 26/19/2 +f 16/21/2 28/186/2 27/22/2 +f 17/23/2 29/187/2 28/24/2 +f 18/26/2 30/188/2 29/27/2 +f 19/28/2 31/189/2 30/29/2 +f 20/30/2 32/190/2 31/31/2 +f 20/30/2 21/34/2 33/32/2 +f 21/34/2 22/7/2 34/35/2 +f 51/37/1 52/191/1 50/38/1 +f 54/40/2 56/192/2 55/41/2 +f 52/43/3 56/45/3 54/40/3 +f 51/44/4 55/193/4 56/45/4 +f 50/38/5 54/40/5 53/42/5 +f 59/46/3 63/194/3 64/47/3 +f 58/49/6 62/52/6 61/50/6 +f 60/48/5 64/47/5 62/52/5 +f 59/53/1 60/195/1 58/49/1 +f 62/52/2 64/196/2 63/54/2 +f 71/55/3 67/60/3 68/56/3 +f 72/57/1 70/197/1 69/58/1 +f 69/59/4 65/66/4 67/60/4 +f 79/61/4 75/69/4 76/62/4 +f 67/60/2 65/198/2 66/64/2 +f 70/65/6 66/199/6 65/66/6 +f 80/63/1 78/200/1 77/67/1 +f 77/68/6 73/72/6 75/69/6 +f 75/69/2 73/201/2 74/70/2 +f 78/71/5 74/202/5 73/72/5 +f 89/73/1 88/203/1 5/74/1 +f 88/76/1 87/204/1 6/3/1 +f 90/77/1 89/205/1 4/78/1 +f 91/80/1 90/206/1 3/79/1 +f 1/82/1 92/207/1 91/83/1 +f 81/84/1 92/208/1 1/82/1 +f 11/86/1 82/209/1 81/87/1 +f 10/88/1 83/210/1 82/89/1 +f 9/90/1 84/211/1 83/91/1 +f 8/92/1 85/212/1 84/93/1 +f 86/94/1 85/213/1 8/92/1 +f 104/97/1 93/214/1 94/215/1 +f 94/215/1 95/216/1 96/95/1 +f 96/95/1 97/217/1 100/96/1 +f 97/217/1 98/218/1 100/96/1 +f 98/218/1 99/219/1 100/96/1 +f 100/96/1 101/220/1 102/221/1 +f 102/221/1 103/222/1 104/97/1 +f 104/97/1 94/215/1 96/95/1 +f 100/96/1 102/221/1 104/97/1 +f 105/98/1 107/223/1 108/99/1 +f 109/101/2 110/105/2 112/102/2 +f 108/104/7 112/107/7 110/105/7 +f 107/106/8 111/224/8 112/107/8 +f 106/100/9 110/105/9 109/101/9 +f 115/108/7 119/225/7 120/109/7 +f 114/111/10 118/114/10 117/112/10 +f 116/110/9 120/109/9 118/114/9 +f 115/115/1 116/226/1 114/111/1 +f 118/114/2 120/227/2 119/116/2 +f 127/117/7 123/122/7 124/118/7 +f 128/119/1 126/228/1 125/120/1 +f 125/121/8 121/129/8 123/122/8 +f 135/123/8 131/132/8 132/124/8 +f 124/118/2 123/122/2 121/126/2 +f 126/128/10 122/229/10 121/129/10 +f 134/130/1 133/230/1 135/123/1 +f 133/131/10 129/135/10 131/132/10 +f 131/132/2 129/231/2 130/133/2 +f 134/134/9 130/232/9 129/135/9 +f 137/136/1 139/233/1 140/137/1 +f 141/139/2 142/143/2 144/140/2 +f 140/142/11 144/145/11 142/143/11 +f 139/144/12 143/234/12 144/145/12 +f 138/138/13 142/143/13 141/139/13 +f 147/146/11 151/235/11 152/147/11 +f 146/149/14 150/152/14 149/150/14 +f 148/148/13 152/147/13 150/152/13 +f 147/153/1 148/236/1 146/149/1 +f 150/152/2 152/237/2 151/154/2 +f 159/155/11 155/160/11 156/156/11 +f 160/157/1 158/238/1 157/158/1 +f 157/159/12 153/167/12 155/160/12 +f 167/161/12 163/170/12 164/162/12 +f 156/156/2 155/160/2 153/164/2 +f 158/166/14 154/239/14 153/167/14 +f 168/163/1 166/240/1 165/168/1 +f 165/169/14 161/173/14 163/170/14 +f 163/170/2 161/241/2 162/171/2 +f 166/172/13 162/242/13 161/173/13 +s 1 +f 9/90/14 20/30/10 8/92/10 +f 6/3/12 17/23/8 5/74/8 +f 1/82/3 24/15/13 12/85/13 +f 3/79/11 13/20/7 2/81/7 +f 10/88/5 21/34/14 9/90/14 +f 7/2/6 18/26/12 6/3/12 +f 4/78/4 15/18/11 3/79/11 +f 11/86/9 22/7/5 10/88/5 +f 8/92/10 19/28/6 7/2/6 +f 5/74/8 16/25/4 4/75/4 +f 12/85/13 23/10/9 11/86/9 +f 2/81/7 14/13/3 1/82/3 +f 33/36/15 46/243/16 45/244/15 +f 35/8/17 46/245/16 34/9/16 +f 36/11/18 47/246/17 35/12/17 +f 25/184/19 48/247/18 36/14/18 +f 26/16/20 37/248/19 25/17/19 +f 27/185/21 38/249/20 26/19/20 +f 28/186/22 39/250/21 27/22/21 +f 29/187/23 40/251/22 28/24/22 +f 30/188/24 41/252/23 29/27/23 +f 31/189/25 42/253/24 30/29/24 +f 32/190/26 43/254/25 31/31/25 +f 33/32/15 44/255/26 32/33/26 +f 89/73/4 100/256/8 88/203/8 +f 82/209/9 93/257/13 81/87/13 +f 91/80/7 102/258/11 90/206/11 +f 83/210/5 94/259/9 82/89/9 +f 90/77/11 101/260/4 89/205/4 +f 84/211/14 95/261/5 83/91/5 +f 85/212/10 96/262/14 84/93/14 +f 86/94/6 97/263/10 85/213/10 +f 87/1/12 98/264/6 86/174/6 +f 92/207/3 103/265/7 91/83/7 +f 81/84/13 104/266/3 92/208/3 +f 88/76/8 99/267/12 87/204/12 +f 9/90/14 21/34/14 20/30/10 +f 6/3/12 18/26/12 17/23/8 +f 1/82/3 14/13/3 24/15/13 +f 3/79/11 15/18/11 13/20/7 +f 10/88/5 22/7/5 21/34/14 +f 7/2/6 19/28/6 18/26/12 +f 4/78/4 16/21/4 15/18/11 +f 11/86/9 23/10/9 22/7/5 +f 8/92/10 20/30/10 19/28/6 +f 5/74/8 17/23/8 16/25/4 +f 12/85/13 24/15/13 23/10/9 +f 2/81/7 13/20/7 14/13/3 +f 33/36/15 34/35/16 46/243/16 +f 35/8/17 47/268/17 46/245/16 +f 36/11/18 48/269/18 47/246/17 +f 25/184/19 37/270/19 48/247/18 +f 26/16/20 38/271/20 37/248/19 +f 27/185/21 39/272/21 38/249/20 +f 28/186/22 40/273/22 39/250/21 +f 29/187/23 41/274/23 40/251/22 +f 30/188/24 42/275/24 41/252/23 +f 31/189/25 43/276/25 42/253/24 +f 32/190/26 44/277/26 43/254/25 +f 33/32/15 45/278/15 44/255/26 +f 89/73/4 101/279/4 100/256/8 +f 82/209/9 94/280/9 93/257/13 +f 91/80/7 103/281/7 102/258/11 +f 83/210/5 95/282/5 94/259/9 +f 90/77/11 102/283/11 101/260/4 +f 84/211/14 96/284/14 95/261/5 +f 85/212/10 97/285/10 96/262/14 +f 86/94/6 98/286/6 97/263/10 +f 87/1/12 99/287/12 98/264/6 +f 92/207/3 104/288/3 103/265/7 +f 81/84/13 93/289/13 104/266/3 +f 88/76/8 100/290/8 99/267/12 diff --git a/src/main/resources/assets/hbm/models/effect/skeleton.obj b/src/main/resources/assets/hbm/models/effect/skeleton.obj new file mode 100644 index 000000000..6e5c28f3c --- /dev/null +++ b/src/main/resources/assets/hbm/models/effect/skeleton.obj @@ -0,0 +1,294 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o SkullVillager +v -0.250000 0.312500 0.250000 +v -0.250000 -0.312500 -0.250000 +v -0.250000 -0.312500 0.250000 +v -0.250000 0.312500 -0.250000 +v 0.250000 -0.312500 -0.250000 +v 0.250000 0.312500 -0.250000 +v 0.250000 -0.312500 0.250000 +v 0.250000 0.312500 0.250000 +v -0.250000 -0.312500 -0.250000 +v -0.250000 0.312500 0.250000 +v -0.250000 -0.312500 0.250000 +v 0.250000 -0.312500 -0.250000 +v -0.250000 0.312500 -0.250000 +v 0.250000 -0.312500 0.250000 +v 0.250000 0.312500 -0.250000 +v 0.250000 0.312500 0.250000 +vt 0.500000 0.875000 +vt 0.375000 0.718750 +vt 0.500000 0.718750 +vt 0.375000 0.875000 +vt 0.250000 0.718750 +vt 0.250000 0.875000 +vt 0.125000 0.718750 +vt 0.125000 0.875000 +vt 0.000000 0.718750 +vt 0.250000 0.875000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 0.718750 +vt 0.500000 0.875000 +vt 0.500000 0.718750 +vt 0.250000 0.718750 +vt 0.375000 0.875000 +vt 0.125000 0.718750 +vt 0.250000 0.875000 +vt 0.000000 0.718750 +vt 0.125000 0.875000 +vt 0.375000 1.000000 +vt 0.250000 0.875000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.000000 0.875000 +vt 0.375000 0.875000 +vt 0.125000 1.000000 +vt 0.000000 0.875000 +vt 0.375000 0.875000 +vt 0.125000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/2/2 +f 6/6/3 7/7/3 5/5/3 +f 8/8/4 3/9/4 7/7/4 +f 5/10/5 3/11/5 2/12/5 +f 4/13/6 8/8/6 6/6/6 +f 9/14/3 10/15/3 11/16/3 +f 12/17/4 13/18/4 9/14/4 +f 14/19/1 15/20/1 12/17/1 +f 11/21/2 16/22/2 14/19/2 +f 11/23/6 12/24/6 9/25/6 +f 16/22/5 13/26/5 15/20/5 +f 1/1/1 4/4/1 2/2/1 +f 4/4/2 6/6/2 5/5/2 +f 6/6/3 8/8/3 7/7/3 +f 8/8/4 1/27/4 3/9/4 +f 5/10/5 7/28/5 3/11/5 +f 4/13/6 1/29/6 8/8/6 +f 9/14/3 13/18/3 10/15/3 +f 12/17/4 15/20/4 13/18/4 +f 14/19/1 16/22/1 15/20/1 +f 11/21/2 10/30/2 16/22/2 +f 11/23/6 14/31/6 12/24/6 +f 16/22/5 10/32/5 13/26/5 +o Limb +v -0.062500 0.375000 0.062500 +v -0.062500 -0.375000 -0.062500 +v -0.062500 -0.375000 0.062500 +v -0.062500 0.375000 -0.062500 +v 0.062500 -0.375000 -0.062500 +v 0.062500 0.375000 -0.062500 +v 0.062500 -0.375000 0.062500 +v 0.062500 0.375000 0.062500 +vt 0.125000 0.437500 +vt 0.093750 0.062500 +vt 0.125000 0.062500 +vt 0.093750 0.437500 +vt 0.062500 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.062500 +vt 0.031250 0.437500 +vt 0.000000 0.062500 +vt 0.062500 0.437500 +vt 0.093750 0.500000 +vt 0.062500 0.500000 +vt 0.062500 0.500000 +vt -0.000000 0.437500 +vt 0.093750 0.437500 +vt 0.031250 0.500000 +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 1.0000 0.0000 +s 1 +f 17/33/7 18/34/7 19/35/7 +f 20/36/8 21/37/8 18/34/8 +f 22/38/9 23/39/9 21/37/9 +f 24/40/10 19/41/10 23/39/10 +f 21/42/11 19/43/11 18/44/11 +f 20/45/12 24/40/12 22/38/12 +f 17/33/7 20/36/7 18/34/7 +f 20/36/8 22/38/8 21/37/8 +f 22/38/9 24/40/9 23/39/9 +f 24/40/10 17/46/10 19/41/10 +f 21/42/11 23/47/11 19/43/11 +f 20/45/12 17/48/12 24/40/12 +o Skull +v -0.250000 0.250000 0.250000 +v -0.250000 -0.250000 -0.250000 +v -0.250000 -0.250000 0.250000 +v -0.250000 0.250000 -0.250000 +v 0.250000 -0.250000 -0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 -0.250000 0.250000 +v 0.250000 0.250000 0.250000 +v -0.250000 -0.250000 -0.250000 +v -0.250000 0.250000 0.250000 +v -0.250000 -0.250000 0.250000 +v 0.250000 -0.250000 -0.250000 +v -0.250000 0.250000 -0.250000 +v 0.250000 -0.250000 0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.250000 0.250000 +vt 0.500000 0.750000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.750000 +vt 0.250000 0.500000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt -0.000000 0.500000 +vt 0.250000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 0.500000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.750000 +vt 0.125000 0.500000 +vt 0.250000 0.750000 +vt -0.000000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt -0.000000 0.750000 +vt 0.375000 0.750000 +vt 0.125000 1.000000 +vt -0.000000 0.750000 +vt 0.375000 0.750000 +vt 0.125000 1.000000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 25/49/13 26/50/13 27/51/13 +f 28/52/14 29/53/14 26/50/14 +f 30/54/15 31/55/15 29/53/15 +f 32/56/16 27/57/16 31/55/16 +f 29/58/17 27/59/17 26/60/17 +f 28/61/18 32/56/18 30/54/18 +f 33/62/15 34/63/15 35/64/15 +f 36/65/16 37/66/16 33/62/16 +f 38/67/13 39/68/13 36/65/13 +f 35/69/14 40/70/14 38/67/14 +f 35/71/18 36/72/18 33/73/18 +f 40/70/17 37/74/17 39/68/17 +f 25/49/13 28/52/13 26/50/13 +f 28/52/14 30/54/14 29/53/14 +f 30/54/15 32/56/15 31/55/15 +f 32/56/16 25/75/16 27/57/16 +f 29/58/17 31/76/17 27/59/17 +f 28/61/18 25/77/18 32/56/18 +f 33/62/15 37/66/15 34/63/15 +f 36/65/16 39/68/16 37/66/16 +f 38/67/13 40/70/13 39/68/13 +f 35/69/14 34/78/14 40/70/14 +f 35/71/18 38/79/18 36/72/18 +f 40/70/17 34/80/17 37/74/17 +o Torso +v 0.125000 -0.375000 -0.250000 +v 0.125000 0.375000 0.250000 +v 0.125000 -0.375000 0.250000 +v -0.125000 -0.375000 -0.250000 +v 0.125000 0.375000 -0.250000 +v -0.125000 -0.375000 0.250000 +v -0.125000 0.375000 -0.250000 +v -0.125000 0.375000 0.250000 +v 0.125000 0.375000 0.250000 +v 0.125000 -0.375000 -0.250000 +v 0.125000 -0.375000 0.250000 +v 0.125000 0.375000 -0.250000 +v -0.125000 -0.375000 -0.250000 +v -0.125000 0.375000 -0.250000 +v -0.125000 -0.375000 0.250000 +v -0.125000 0.375000 0.250000 +vt 0.312500 0.000000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.625000 0.000000 +vt 0.500000 0.375000 +vt 0.312500 0.000000 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.437500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.312500 0.500000 +vt 0.437500 0.500000 +vt 0.437500 0.375000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.437500 0.375000 +vt 0.500000 0.000000 +vt 0.437500 0.000000 +vt 0.500000 0.375000 +vt 0.625000 0.000000 +vt 0.250000 0.375000 +vt 0.312500 0.000000 +vt 0.250000 0.000000 +vt 0.562500 0.375000 +vt 0.437500 0.500000 +vt 0.562500 0.500000 +vt 0.312500 0.500000 +vt 0.437500 0.500000 +vt 0.312500 0.375000 +vt 0.625000 0.375000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vt 0.312500 0.375000 +vt 0.625000 0.375000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +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 1.0000 0.0000 +s 1 +f 41/81/19 42/82/19 43/83/19 +f 44/84/20 45/85/20 41/86/20 +f 46/87/21 47/88/21 44/84/21 +f 43/89/22 48/90/22 46/91/22 +f 43/92/23 44/93/23 41/94/23 +f 48/95/24 45/85/24 47/96/24 +f 49/97/21 50/98/21 51/99/21 +f 52/100/22 53/101/22 50/102/22 +f 54/103/19 55/104/19 53/101/19 +f 56/105/20 51/106/20 55/107/20 +f 53/108/24 51/109/24 50/110/24 +f 52/100/23 56/111/23 54/112/23 +f 41/81/19 45/113/19 42/82/19 +f 44/84/20 47/88/20 45/85/20 +f 46/87/21 48/114/21 47/88/21 +f 43/89/22 42/115/22 48/90/22 +f 43/92/23 46/116/23 44/93/23 +f 48/95/24 42/115/24 45/85/24 +f 49/97/21 52/117/21 50/98/21 +f 52/100/22 54/103/22 53/101/22 +f 54/103/19 56/118/19 55/104/19 +f 56/105/20 49/119/20 51/106/20 +f 53/108/24 55/120/24 51/109/24 +f 52/100/23 49/119/23 56/111/23 diff --git a/src/main/resources/assets/hbm/models/machines/ammo_press.obj b/src/main/resources/assets/hbm/models/machines/ammo_press.obj new file mode 100644 index 000000000..b3a868e84 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/ammo_press.obj @@ -0,0 +1,2582 @@ +# Blender v2.79 (sub 0) OBJ File: 'ammo_press.blend' +# www.blender.org +o Press +v -0.250000 1.875000 -0.750000 +v -0.250000 1.875000 0.750000 +v 0.250000 1.875000 0.750000 +v 0.250000 1.875000 -0.750000 +v -0.250000 1.375000 -0.750000 +v -0.250000 1.375000 0.750000 +v 0.250000 1.375000 0.750000 +v 0.250000 1.375000 -0.750000 +vt 0.508772 0.857143 +vt 0.719298 0.761905 +vt 0.719298 0.857143 +vt 0.719298 0.666667 +vt 0.508772 0.761905 +vt 0.508772 0.666667 +vt 0.719298 0.571429 +vt 0.508772 0.571429 +vt 0.789474 0.761905 +vt 0.789474 0.666667 +vt 0.438596 0.666667 +vt 0.438596 0.761905 +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 +s off +f 3/1/1 8/2/1 4/3/1 +f 5/4/2 7/5/2 6/6/2 +f 1/7/3 6/6/3 2/8/3 +f 4/9/4 5/4/4 1/10/4 +f 2/11/5 7/5/5 3/12/5 +f 3/1/1 7/5/1 8/2/1 +f 5/4/2 8/2/2 7/5/2 +f 1/7/3 5/4/3 6/6/3 +f 4/9/4 8/2/4 5/4/4 +f 2/11/5 6/6/5 7/5/5 +o Shells +v 0.250000 1.000000 -0.750000 +v 0.250000 1.000000 0.750000 +v -0.250000 1.000000 0.750000 +v -0.250000 1.000000 -0.750000 +v 0.125000 1.000000 0.406250 +v 0.102903 1.000000 0.415403 +v 0.093750 1.000000 0.437500 +v 0.102903 1.000000 0.459597 +v 0.125000 1.000000 0.468750 +v 0.147097 1.000000 0.459597 +v 0.156250 1.000000 0.437500 +v 0.147097 1.000000 0.415403 +v 0.125000 1.125000 0.406250 +v 0.102903 1.125000 0.415403 +v 0.093750 1.125000 0.437500 +v 0.102903 1.125000 0.459597 +v 0.125000 1.125000 0.468750 +v 0.147097 1.125000 0.459597 +v 0.156250 1.125000 0.437500 +v 0.147097 1.125000 0.415403 +v 0.156250 1.000000 -0.468750 +v 0.156250 1.000000 0.468750 +v 0.156250 1.062500 -0.468750 +v 0.156250 1.062500 0.468750 +v 0.187500 1.000000 -0.468750 +v 0.187500 1.000000 0.468750 +v 0.187500 1.062500 -0.468750 +v 0.187500 1.062500 0.468750 +v 0.062500 1.000000 -0.468750 +v 0.062500 1.000000 0.468750 +v 0.062500 1.062500 -0.468750 +v 0.062500 1.062500 0.468750 +v 0.093750 1.000000 -0.468750 +v 0.093750 1.000000 0.468750 +v 0.093750 1.062500 -0.468750 +v 0.093750 1.062500 0.468750 +v -0.093750 1.000000 -0.468750 +v -0.093750 1.000000 0.468750 +v -0.093750 1.062500 -0.468750 +v -0.093750 1.062500 0.468750 +v -0.062500 1.000000 -0.468750 +v -0.062500 1.000000 0.468750 +v -0.062500 1.062500 -0.468750 +v -0.062500 1.062500 0.468750 +v -0.187500 1.000000 -0.468750 +v -0.187500 1.000000 0.468750 +v -0.187500 1.062500 -0.468750 +v -0.187500 1.062500 0.468750 +v -0.156250 1.000000 -0.468750 +v -0.156250 1.000000 0.468750 +v -0.156250 1.062500 -0.468750 +v -0.156250 1.062500 0.468750 +v -0.125000 1.000000 0.406250 +v -0.147097 1.000000 0.415403 +v -0.156250 1.000000 0.437500 +v -0.147097 1.000000 0.459597 +v -0.125000 1.000000 0.468750 +v -0.102903 1.000000 0.459597 +v -0.093750 1.000000 0.437500 +v -0.102903 1.000000 0.415403 +v -0.125000 1.125000 0.406250 +v -0.147097 1.125000 0.415403 +v -0.156250 1.125000 0.437500 +v -0.147097 1.125000 0.459597 +v -0.125000 1.125000 0.468750 +v -0.102903 1.125000 0.459597 +v -0.093750 1.125000 0.437500 +v -0.102903 1.125000 0.415403 +v 0.125000 1.000000 0.281250 +v 0.102903 1.000000 0.290403 +v 0.093750 1.000000 0.312500 +v 0.102903 1.000000 0.334597 +v 0.125000 1.000000 0.343750 +v 0.147097 1.000000 0.334597 +v 0.156250 1.000000 0.312500 +v 0.147097 1.000000 0.290403 +v 0.125000 1.125000 0.281250 +v 0.102903 1.125000 0.290403 +v 0.093750 1.125000 0.312500 +v 0.102903 1.125000 0.334597 +v 0.125000 1.125000 0.343750 +v 0.147097 1.125000 0.334597 +v 0.156250 1.125000 0.312500 +v 0.147097 1.125000 0.290403 +v -0.125000 1.000000 0.281250 +v -0.147097 1.000000 0.290403 +v -0.156250 1.000000 0.312500 +v -0.147097 1.000000 0.334597 +v -0.125000 1.000000 0.343750 +v -0.102903 1.000000 0.334597 +v -0.093750 1.000000 0.312500 +v -0.102903 1.000000 0.290403 +v -0.125000 1.125000 0.281250 +v -0.147097 1.125000 0.290403 +v -0.156250 1.125000 0.312500 +v -0.147097 1.125000 0.334597 +v -0.125000 1.125000 0.343750 +v -0.102903 1.125000 0.334597 +v -0.093750 1.125000 0.312500 +v -0.102903 1.125000 0.290403 +v 0.125000 1.000000 0.156250 +v 0.102903 1.000000 0.165403 +v 0.093750 1.000000 0.187500 +v 0.102903 1.000000 0.209597 +v 0.125000 1.000000 0.218750 +v 0.147097 1.000000 0.209597 +v 0.156250 1.000000 0.187500 +v 0.147097 1.000000 0.165403 +v 0.125000 1.125000 0.156250 +v 0.102903 1.125000 0.165403 +v 0.093750 1.125000 0.187500 +v 0.102903 1.125000 0.209597 +v 0.125000 1.125000 0.218750 +v 0.147097 1.125000 0.209597 +v 0.156250 1.125000 0.187500 +v 0.147097 1.125000 0.165403 +v -0.125000 1.000000 0.156250 +v -0.147097 1.000000 0.165403 +v -0.156250 1.000000 0.187500 +v -0.147097 1.000000 0.209597 +v -0.125000 1.000000 0.218750 +v -0.102903 1.000000 0.209597 +v -0.093750 1.000000 0.187500 +v -0.102903 1.000000 0.165403 +v -0.125000 1.125000 0.156250 +v -0.147097 1.125000 0.165403 +v -0.156250 1.125000 0.187500 +v -0.147097 1.125000 0.209597 +v -0.125000 1.125000 0.218750 +v -0.102903 1.125000 0.209597 +v -0.093750 1.125000 0.187500 +v -0.102903 1.125000 0.165403 +v 0.125000 1.000000 0.031250 +v 0.102903 1.000000 0.040403 +v 0.093750 1.000000 0.062500 +v 0.102903 1.000000 0.084597 +v 0.125000 1.000000 0.093750 +v 0.147097 1.000000 0.084597 +v 0.156250 1.000000 0.062500 +v 0.147097 1.000000 0.040403 +v 0.125000 1.125000 0.031250 +v 0.102903 1.125000 0.040403 +v 0.093750 1.125000 0.062500 +v 0.102903 1.125000 0.084597 +v 0.125000 1.125000 0.093750 +v 0.147097 1.125000 0.084597 +v 0.156250 1.125000 0.062500 +v 0.147097 1.125000 0.040403 +v -0.125000 1.000000 0.031250 +v -0.147097 1.000000 0.040403 +v -0.156250 1.000000 0.062500 +v -0.147097 1.000000 0.084597 +v -0.125000 1.000000 0.093750 +v -0.102903 1.000000 0.084597 +v -0.093750 1.000000 0.062500 +v -0.102903 1.000000 0.040403 +v -0.125000 1.125000 0.031250 +v -0.147097 1.125000 0.040403 +v -0.156250 1.125000 0.062500 +v -0.147097 1.125000 0.084597 +v -0.125000 1.125000 0.093750 +v -0.102903 1.125000 0.084597 +v -0.093750 1.125000 0.062500 +v -0.102903 1.125000 0.040403 +v 0.125000 1.000000 -0.093750 +v 0.102903 1.000000 -0.084597 +v 0.093750 1.000000 -0.062500 +v 0.102903 1.000000 -0.040403 +v 0.125000 1.000000 -0.031250 +v 0.147097 1.000000 -0.040403 +v 0.156250 1.000000 -0.062500 +v 0.147097 1.000000 -0.084597 +v 0.125000 1.125000 -0.093750 +v 0.102903 1.125000 -0.084597 +v 0.093750 1.125000 -0.062500 +v 0.102903 1.125000 -0.040403 +v 0.125000 1.125000 -0.031250 +v 0.147097 1.125000 -0.040403 +v 0.156250 1.125000 -0.062500 +v 0.147097 1.125000 -0.084597 +v -0.125000 1.000000 -0.093750 +v -0.147097 1.000000 -0.084597 +v -0.156250 1.000000 -0.062500 +v -0.147097 1.000000 -0.040403 +v -0.125000 1.000000 -0.031250 +v -0.102903 1.000000 -0.040403 +v -0.093750 1.000000 -0.062500 +v -0.102903 1.000000 -0.084597 +v -0.125000 1.125000 -0.093750 +v -0.147097 1.125000 -0.084597 +v -0.156250 1.125000 -0.062500 +v -0.147097 1.125000 -0.040403 +v -0.125000 1.125000 -0.031250 +v -0.102903 1.125000 -0.040403 +v -0.093750 1.125000 -0.062500 +v -0.102903 1.125000 -0.084597 +v 0.125000 1.000000 -0.218750 +v 0.102903 1.000000 -0.209597 +v 0.093750 1.000000 -0.187500 +v 0.102903 1.000000 -0.165403 +v 0.125000 1.000000 -0.156250 +v 0.147097 1.000000 -0.165403 +v 0.156250 1.000000 -0.187500 +v 0.147097 1.000000 -0.209597 +v 0.125000 1.125000 -0.218750 +v 0.102903 1.125000 -0.209597 +v 0.093750 1.125000 -0.187500 +v 0.102903 1.125000 -0.165403 +v 0.125000 1.125000 -0.156250 +v 0.147097 1.125000 -0.165403 +v 0.156250 1.125000 -0.187500 +v 0.147097 1.125000 -0.209597 +v -0.125000 1.000000 -0.218750 +v -0.147097 1.000000 -0.209597 +v -0.156250 1.000000 -0.187500 +v -0.147097 1.000000 -0.165403 +v -0.125000 1.000000 -0.156250 +v -0.102903 1.000000 -0.165403 +v -0.093750 1.000000 -0.187500 +v -0.102903 1.000000 -0.209597 +v -0.125000 1.125000 -0.218750 +v -0.147097 1.125000 -0.209597 +v -0.156250 1.125000 -0.187500 +v -0.147097 1.125000 -0.165403 +v -0.125000 1.125000 -0.156250 +v -0.102903 1.125000 -0.165403 +v -0.093750 1.125000 -0.187500 +v -0.102903 1.125000 -0.209597 +v 0.125000 1.000000 -0.343750 +v 0.102903 1.000000 -0.334597 +v 0.093750 1.000000 -0.312500 +v 0.102903 1.000000 -0.290403 +v 0.125000 1.000000 -0.281250 +v 0.147097 1.000000 -0.290403 +v 0.156250 1.000000 -0.312500 +v 0.147097 1.000000 -0.334597 +v 0.125000 1.125000 -0.343750 +v 0.102903 1.125000 -0.334597 +v 0.093750 1.125000 -0.312500 +v 0.102903 1.125000 -0.290403 +v 0.125000 1.125000 -0.281250 +v 0.147097 1.125000 -0.290403 +v 0.156250 1.125000 -0.312500 +v 0.147097 1.125000 -0.334597 +v -0.125000 1.000000 -0.343750 +v -0.147097 1.000000 -0.334597 +v -0.156250 1.000000 -0.312500 +v -0.147097 1.000000 -0.290403 +v -0.125000 1.000000 -0.281250 +v -0.102903 1.000000 -0.290403 +v -0.093750 1.000000 -0.312500 +v -0.102903 1.000000 -0.334597 +v -0.125000 1.125000 -0.343750 +v -0.147097 1.125000 -0.334597 +v -0.156250 1.125000 -0.312500 +v -0.147097 1.125000 -0.290403 +v -0.125000 1.125000 -0.281250 +v -0.102903 1.125000 -0.290403 +v -0.093750 1.125000 -0.312500 +v -0.102903 1.125000 -0.334597 +v 0.125000 1.000000 -0.468750 +v 0.102903 1.000000 -0.459597 +v 0.093750 1.000000 -0.437500 +v 0.102903 1.000000 -0.415403 +v 0.125000 1.000000 -0.406250 +v 0.147097 1.000000 -0.415403 +v 0.156250 1.000000 -0.437500 +v 0.147097 1.000000 -0.459597 +v 0.125000 1.125000 -0.468750 +v 0.102903 1.125000 -0.459597 +v 0.093750 1.125000 -0.437500 +v 0.102903 1.125000 -0.415403 +v 0.125000 1.125000 -0.406250 +v 0.147097 1.125000 -0.415403 +v 0.156250 1.125000 -0.437500 +v 0.147097 1.125000 -0.459597 +v -0.125000 1.000000 -0.468750 +v -0.147097 1.000000 -0.459597 +v -0.156250 1.000000 -0.437500 +v -0.147097 1.000000 -0.415403 +v -0.125000 1.000000 -0.406250 +v -0.102903 1.000000 -0.415403 +v -0.093750 1.000000 -0.437500 +v -0.102903 1.000000 -0.459597 +v -0.125000 1.125000 -0.468750 +v -0.147097 1.125000 -0.459597 +v -0.156250 1.125000 -0.437500 +v -0.147097 1.125000 -0.415403 +v -0.125000 1.125000 -0.406250 +v -0.102903 1.125000 -0.415403 +v -0.093750 1.125000 -0.437500 +v -0.102903 1.125000 -0.459597 +vt 0.333333 0.833333 +vt 0.122807 0.928571 +vt 0.122807 0.833333 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.728070 0.607143 +vt 0.859649 0.595238 +vt 0.859649 0.607143 +vt 0.868421 0.583333 +vt 0.868421 0.595238 +vt 0.719298 0.595238 +vt 0.728070 0.583333 +vt 0.728070 0.595238 +vt 0.859649 0.583333 +vt 0.859649 0.571429 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.868620 0.630952 +vt 0.877193 0.619317 +vt 0.885766 0.630952 +vt 0.333333 0.928571 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.719298 0.583333 +vt 0.728070 0.571429 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.883255 0.639180 +vt 0.877193 0.642588 +vt 0.871131 0.639180 +vt 0.871131 0.622725 +vt 0.883255 0.622725 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.894737 0.571429 +vt 0.885965 0.619048 +vt 0.885965 0.571429 +vt 0.877193 0.571429 +vt 0.868421 0.619048 +vt 0.868421 0.571429 +vt 0.929825 0.571429 +vt 0.921053 0.619048 +vt 0.921053 0.571429 +vt 0.912281 0.571429 +vt 0.903509 0.619048 +vt 0.903509 0.571429 +vt 0.894737 0.619048 +vt 0.877193 0.619048 +vt 0.938596 0.571429 +vt 0.929825 0.619048 +vt 0.912281 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +vt 0.938596 0.619048 +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.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 9/13/6 11/14/6 10/15/6 +f 25/16/6 27/17/6 21/18/6 +f 30/19/7 31/20/7 29/21/7 +f 31/20/8 33/22/8 29/23/8 +f 30/24/9 36/25/9 32/26/9 +f 32/26/6 35/27/6 31/20/6 +f 36/25/10 33/28/10 35/27/10 +f 38/29/7 39/30/7 37/31/7 +f 39/30/8 41/32/8 37/33/8 +f 38/34/9 44/35/9 40/36/9 +f 40/36/6 43/37/6 39/30/6 +f 44/35/10 41/38/10 43/37/10 +f 46/39/7 47/40/7 45/41/7 +f 47/40/8 49/42/8 45/43/8 +f 46/44/9 52/45/9 48/46/9 +f 48/46/6 51/47/6 47/40/6 +f 52/45/10 49/48/10 51/47/10 +f 54/49/7 55/50/7 53/51/7 +f 55/50/8 57/52/8 53/53/8 +f 54/54/9 60/55/9 56/56/9 +f 56/56/6 59/57/6 55/50/6 +f 60/55/10 57/58/10 59/57/10 +f 73/59/6 75/60/6 69/61/6 +f 89/62/6 91/63/6 85/64/6 +f 105/65/6 107/66/6 101/67/6 +f 121/68/6 123/69/6 117/70/6 +f 137/71/6 139/72/6 133/73/6 +f 153/74/6 155/75/6 149/76/6 +f 169/77/6 171/78/6 165/79/6 +f 185/80/6 187/81/6 181/82/6 +f 201/83/6 203/84/6 197/85/6 +f 217/86/6 219/87/6 213/88/6 +f 233/89/6 235/90/6 229/91/6 +f 249/92/6 251/93/6 245/94/6 +f 265/95/6 267/96/6 261/97/6 +f 281/98/6 283/99/6 277/100/6 +f 297/101/6 299/102/6 293/103/6 +f 9/13/6 12/104/6 11/14/6 +f 21/18/6 22/105/6 23/106/6 +f 23/106/6 24/107/6 25/16/6 +f 25/16/6 26/108/6 27/17/6 +f 27/17/6 28/109/6 21/18/6 +f 21/18/6 23/106/6 25/16/6 +f 30/19/7 32/26/7 31/20/7 +f 31/20/8 35/27/8 33/22/8 +f 30/24/9 34/110/9 36/25/9 +f 32/26/6 36/25/6 35/27/6 +f 36/25/10 34/111/10 33/28/10 +f 38/29/7 40/36/7 39/30/7 +f 39/30/8 43/37/8 41/32/8 +f 38/34/9 42/112/9 44/35/9 +f 40/36/6 44/35/6 43/37/6 +f 44/35/10 42/113/10 41/38/10 +f 46/39/7 48/46/7 47/40/7 +f 47/40/8 51/47/8 49/42/8 +f 46/44/9 50/114/9 52/45/9 +f 48/46/6 52/45/6 51/47/6 +f 52/45/10 50/115/10 49/48/10 +f 54/49/7 56/56/7 55/50/7 +f 55/50/8 59/57/8 57/52/8 +f 54/54/9 58/116/9 60/55/9 +f 56/56/6 60/55/6 59/57/6 +f 60/55/10 58/117/10 57/58/10 +f 69/61/6 70/118/6 71/119/6 +f 71/119/6 72/120/6 73/59/6 +f 73/59/6 74/121/6 75/60/6 +f 75/60/6 76/122/6 69/61/6 +f 69/61/6 71/119/6 73/59/6 +f 85/64/6 86/123/6 87/124/6 +f 87/124/6 88/125/6 89/62/6 +f 89/62/6 90/126/6 91/63/6 +f 91/63/6 92/127/6 85/64/6 +f 85/64/6 87/124/6 89/62/6 +f 101/67/6 102/128/6 103/129/6 +f 103/129/6 104/130/6 105/65/6 +f 105/65/6 106/131/6 107/66/6 +f 107/66/6 108/132/6 101/67/6 +f 101/67/6 103/129/6 105/65/6 +f 117/70/6 118/133/6 119/134/6 +f 119/134/6 120/135/6 121/68/6 +f 121/68/6 122/136/6 123/69/6 +f 123/69/6 124/137/6 117/70/6 +f 117/70/6 119/134/6 121/68/6 +f 133/73/6 134/138/6 135/139/6 +f 135/139/6 136/140/6 137/71/6 +f 137/71/6 138/141/6 139/72/6 +f 139/72/6 140/142/6 133/73/6 +f 133/73/6 135/139/6 137/71/6 +f 149/76/6 150/143/6 151/144/6 +f 151/144/6 152/145/6 153/74/6 +f 153/74/6 154/146/6 155/75/6 +f 155/75/6 156/147/6 149/76/6 +f 149/76/6 151/144/6 153/74/6 +f 165/79/6 166/148/6 167/149/6 +f 167/149/6 168/150/6 169/77/6 +f 169/77/6 170/151/6 171/78/6 +f 171/78/6 172/152/6 165/79/6 +f 165/79/6 167/149/6 169/77/6 +f 181/82/6 182/153/6 183/154/6 +f 183/154/6 184/155/6 185/80/6 +f 185/80/6 186/156/6 187/81/6 +f 187/81/6 188/157/6 181/82/6 +f 181/82/6 183/154/6 185/80/6 +f 197/85/6 198/158/6 199/159/6 +f 199/159/6 200/160/6 201/83/6 +f 201/83/6 202/161/6 203/84/6 +f 203/84/6 204/162/6 197/85/6 +f 197/85/6 199/159/6 201/83/6 +f 213/88/6 214/163/6 215/164/6 +f 215/164/6 216/165/6 217/86/6 +f 217/86/6 218/166/6 219/87/6 +f 219/87/6 220/167/6 213/88/6 +f 213/88/6 215/164/6 217/86/6 +f 229/91/6 230/168/6 231/169/6 +f 231/169/6 232/170/6 233/89/6 +f 233/89/6 234/171/6 235/90/6 +f 235/90/6 236/172/6 229/91/6 +f 229/91/6 231/169/6 233/89/6 +f 245/94/6 246/173/6 247/174/6 +f 247/174/6 248/175/6 249/92/6 +f 249/92/6 250/176/6 251/93/6 +f 251/93/6 252/177/6 245/94/6 +f 245/94/6 247/174/6 249/92/6 +f 261/97/6 262/178/6 263/179/6 +f 263/179/6 264/180/6 265/95/6 +f 265/95/6 266/181/6 267/96/6 +f 267/96/6 268/182/6 261/97/6 +f 261/97/6 263/179/6 265/95/6 +f 277/100/6 278/183/6 279/184/6 +f 279/184/6 280/185/6 281/98/6 +f 281/98/6 282/186/6 283/99/6 +f 283/99/6 284/187/6 277/100/6 +f 277/100/6 279/184/6 281/98/6 +f 293/103/6 294/188/6 295/189/6 +f 295/189/6 296/190/6 297/101/6 +f 297/101/6 298/191/6 299/102/6 +f 299/102/6 300/192/6 293/103/6 +f 293/103/6 295/189/6 297/101/6 +s 1 +f 20/193/11 27/194/10 19/195/10 +f 18/196/12 25/197/9 17/198/9 +f 16/199/13 23/200/7 15/201/7 +f 14/202/14 21/203/8 13/204/8 +f 13/204/8 28/205/11 20/193/11 +f 19/195/10 26/206/12 18/196/12 +f 17/207/9 24/208/13 16/199/13 +f 15/201/7 22/209/14 14/202/14 +f 68/210/11 75/211/10 67/212/10 +f 66/213/12 73/214/9 65/215/9 +f 64/216/13 71/217/7 63/218/7 +f 62/219/14 69/220/8 61/221/8 +f 61/221/8 76/222/11 68/210/11 +f 67/212/10 74/223/12 66/213/12 +f 65/224/9 72/225/13 64/216/13 +f 63/218/7 70/226/14 62/219/14 +f 84/227/11 91/228/10 83/229/10 +f 82/230/12 89/231/9 81/232/9 +f 80/233/13 87/234/7 79/235/7 +f 78/236/14 85/237/8 77/238/8 +f 77/238/8 92/239/11 84/227/11 +f 83/229/10 90/240/12 82/230/12 +f 81/241/9 88/242/13 80/233/13 +f 79/235/7 86/243/14 78/236/14 +f 100/244/11 107/245/10 99/246/10 +f 98/247/12 105/248/9 97/249/9 +f 96/250/13 103/251/7 95/252/7 +f 94/253/14 101/254/8 93/255/8 +f 93/255/8 108/256/11 100/244/11 +f 99/246/10 106/257/12 98/247/12 +f 97/258/9 104/259/13 96/250/13 +f 95/252/7 102/260/14 94/253/14 +f 116/261/11 123/262/10 115/263/10 +f 114/264/12 121/265/9 113/266/9 +f 112/267/13 119/268/7 111/269/7 +f 110/270/14 117/271/8 109/272/8 +f 109/272/8 124/273/11 116/261/11 +f 115/263/10 122/274/12 114/264/12 +f 113/275/9 120/276/13 112/267/13 +f 111/269/7 118/277/14 110/270/14 +f 132/278/11 139/279/10 131/280/10 +f 130/281/12 137/282/9 129/283/9 +f 128/284/13 135/285/7 127/286/7 +f 126/287/14 133/288/8 125/289/8 +f 125/289/8 140/290/11 132/278/11 +f 131/280/10 138/291/12 130/281/12 +f 129/292/9 136/293/13 128/284/13 +f 127/286/7 134/294/14 126/287/14 +f 148/295/11 155/296/10 147/297/10 +f 146/298/12 153/299/9 145/300/9 +f 144/301/13 151/302/7 143/303/7 +f 142/304/14 149/305/8 141/306/8 +f 141/306/8 156/307/11 148/295/11 +f 147/297/10 154/308/12 146/298/12 +f 145/309/9 152/310/13 144/301/13 +f 143/303/7 150/311/14 142/304/14 +f 164/312/11 171/313/10 163/314/10 +f 162/315/12 169/316/9 161/317/9 +f 160/318/13 167/319/7 159/320/7 +f 158/321/14 165/322/8 157/323/8 +f 157/323/8 172/324/11 164/312/11 +f 163/314/10 170/325/12 162/315/12 +f 161/326/9 168/327/13 160/318/13 +f 159/320/7 166/328/14 158/321/14 +f 180/329/11 187/330/10 179/331/10 +f 178/332/12 185/333/9 177/334/9 +f 176/335/13 183/336/7 175/337/7 +f 174/338/14 181/339/8 173/340/8 +f 173/340/8 188/341/11 180/329/11 +f 179/331/10 186/342/12 178/332/12 +f 177/343/9 184/344/13 176/335/13 +f 175/337/7 182/345/14 174/338/14 +f 196/346/11 203/347/10 195/348/10 +f 194/349/12 201/350/9 193/351/9 +f 192/352/13 199/353/7 191/354/7 +f 190/355/14 197/356/8 189/357/8 +f 189/357/8 204/358/11 196/346/11 +f 195/348/10 202/359/12 194/349/12 +f 193/360/9 200/361/13 192/352/13 +f 191/354/7 198/362/14 190/355/14 +f 212/363/11 219/364/10 211/365/10 +f 210/366/12 217/367/9 209/368/9 +f 208/369/13 215/370/7 207/371/7 +f 206/372/14 213/373/8 205/374/8 +f 205/374/8 220/375/11 212/363/11 +f 211/365/10 218/376/12 210/366/12 +f 209/377/9 216/378/13 208/369/13 +f 207/371/7 214/379/14 206/372/14 +f 228/380/11 235/381/10 227/382/10 +f 226/383/12 233/384/9 225/385/9 +f 224/386/13 231/387/7 223/388/7 +f 222/389/14 229/390/8 221/391/8 +f 221/391/8 236/392/11 228/380/11 +f 227/382/10 234/393/12 226/383/12 +f 225/394/9 232/395/13 224/386/13 +f 223/388/7 230/396/14 222/389/14 +f 244/397/11 251/398/10 243/399/10 +f 242/400/12 249/401/9 241/402/9 +f 240/403/13 247/404/7 239/405/7 +f 238/406/14 245/407/8 237/408/8 +f 237/408/8 252/409/11 244/397/11 +f 243/399/10 250/410/12 242/400/12 +f 241/411/9 248/412/13 240/403/13 +f 239/405/7 246/413/14 238/406/14 +f 260/414/11 267/415/10 259/416/10 +f 258/417/12 265/418/9 257/419/9 +f 256/420/13 263/421/7 255/422/7 +f 254/423/14 261/424/8 253/425/8 +f 253/425/8 268/426/11 260/414/11 +f 259/416/10 266/427/12 258/417/12 +f 257/428/9 264/429/13 256/420/13 +f 255/422/7 262/430/14 254/423/14 +f 276/431/11 283/432/10 275/433/10 +f 274/434/12 281/435/9 273/436/9 +f 272/437/13 279/438/7 271/439/7 +f 270/440/14 277/441/8 269/442/8 +f 269/442/8 284/443/11 276/431/11 +f 275/433/10 282/444/12 274/434/12 +f 273/445/9 280/446/13 272/437/13 +f 271/439/7 278/447/14 270/440/14 +f 292/448/11 299/449/10 291/450/10 +f 290/451/12 297/452/9 289/453/9 +f 288/454/13 295/455/7 287/456/7 +f 286/457/14 293/458/8 285/459/8 +f 285/459/8 300/460/11 292/448/11 +f 291/450/10 298/461/12 290/451/12 +f 289/462/9 296/463/13 288/454/13 +f 287/456/7 294/464/14 286/457/14 +f 20/193/11 28/205/11 27/194/10 +f 18/196/12 26/206/12 25/197/9 +f 16/199/13 24/208/13 23/200/7 +f 14/202/14 22/209/14 21/203/8 +f 13/204/8 21/203/8 28/205/11 +f 19/195/10 27/194/10 26/206/12 +f 17/207/9 25/465/9 24/208/13 +f 15/201/7 23/200/7 22/209/14 +f 68/210/11 76/222/11 75/211/10 +f 66/213/12 74/223/12 73/214/9 +f 64/216/13 72/225/13 71/217/7 +f 62/219/14 70/226/14 69/220/8 +f 61/221/8 69/220/8 76/222/11 +f 67/212/10 75/211/10 74/223/12 +f 65/224/9 73/466/9 72/225/13 +f 63/218/7 71/217/7 70/226/14 +f 84/227/11 92/239/11 91/228/10 +f 82/230/12 90/240/12 89/231/9 +f 80/233/13 88/242/13 87/234/7 +f 78/236/14 86/243/14 85/237/8 +f 77/238/8 85/237/8 92/239/11 +f 83/229/10 91/228/10 90/240/12 +f 81/241/9 89/467/9 88/242/13 +f 79/235/7 87/234/7 86/243/14 +f 100/244/11 108/256/11 107/245/10 +f 98/247/12 106/257/12 105/248/9 +f 96/250/13 104/259/13 103/251/7 +f 94/253/14 102/260/14 101/254/8 +f 93/255/8 101/254/8 108/256/11 +f 99/246/10 107/245/10 106/257/12 +f 97/258/9 105/468/9 104/259/13 +f 95/252/7 103/251/7 102/260/14 +f 116/261/11 124/273/11 123/262/10 +f 114/264/12 122/274/12 121/265/9 +f 112/267/13 120/276/13 119/268/7 +f 110/270/14 118/277/14 117/271/8 +f 109/272/8 117/271/8 124/273/11 +f 115/263/10 123/262/10 122/274/12 +f 113/275/9 121/469/9 120/276/13 +f 111/269/7 119/268/7 118/277/14 +f 132/278/11 140/290/11 139/279/10 +f 130/281/12 138/291/12 137/282/9 +f 128/284/13 136/293/13 135/285/7 +f 126/287/14 134/294/14 133/288/8 +f 125/289/8 133/288/8 140/290/11 +f 131/280/10 139/279/10 138/291/12 +f 129/292/9 137/470/9 136/293/13 +f 127/286/7 135/285/7 134/294/14 +f 148/295/11 156/307/11 155/296/10 +f 146/298/12 154/308/12 153/299/9 +f 144/301/13 152/310/13 151/302/7 +f 142/304/14 150/311/14 149/305/8 +f 141/306/8 149/305/8 156/307/11 +f 147/297/10 155/296/10 154/308/12 +f 145/309/9 153/471/9 152/310/13 +f 143/303/7 151/302/7 150/311/14 +f 164/312/11 172/324/11 171/313/10 +f 162/315/12 170/325/12 169/316/9 +f 160/318/13 168/327/13 167/319/7 +f 158/321/14 166/328/14 165/322/8 +f 157/323/8 165/322/8 172/324/11 +f 163/314/10 171/313/10 170/325/12 +f 161/326/9 169/472/9 168/327/13 +f 159/320/7 167/319/7 166/328/14 +f 180/329/11 188/341/11 187/330/10 +f 178/332/12 186/342/12 185/333/9 +f 176/335/13 184/344/13 183/336/7 +f 174/338/14 182/345/14 181/339/8 +f 173/340/8 181/339/8 188/341/11 +f 179/331/10 187/330/10 186/342/12 +f 177/343/9 185/473/9 184/344/13 +f 175/337/7 183/336/7 182/345/14 +f 196/346/11 204/358/11 203/347/10 +f 194/349/12 202/359/12 201/350/9 +f 192/352/13 200/361/13 199/353/7 +f 190/355/14 198/362/14 197/356/8 +f 189/357/8 197/356/8 204/358/11 +f 195/348/10 203/347/10 202/359/12 +f 193/360/9 201/474/9 200/361/13 +f 191/354/7 199/353/7 198/362/14 +f 212/363/11 220/375/11 219/364/10 +f 210/366/12 218/376/12 217/367/9 +f 208/369/13 216/378/13 215/370/7 +f 206/372/14 214/379/14 213/373/8 +f 205/374/8 213/373/8 220/375/11 +f 211/365/10 219/364/10 218/376/12 +f 209/377/9 217/475/9 216/378/13 +f 207/371/7 215/370/7 214/379/14 +f 228/380/11 236/392/11 235/381/10 +f 226/383/12 234/393/12 233/384/9 +f 224/386/13 232/395/13 231/387/7 +f 222/389/14 230/396/14 229/390/8 +f 221/391/8 229/390/8 236/392/11 +f 227/382/10 235/381/10 234/393/12 +f 225/394/9 233/476/9 232/395/13 +f 223/388/7 231/387/7 230/396/14 +f 244/397/11 252/409/11 251/398/10 +f 242/400/12 250/410/12 249/401/9 +f 240/403/13 248/412/13 247/404/7 +f 238/406/14 246/413/14 245/407/8 +f 237/408/8 245/407/8 252/409/11 +f 243/399/10 251/398/10 250/410/12 +f 241/411/9 249/477/9 248/412/13 +f 239/405/7 247/404/7 246/413/14 +f 260/414/11 268/426/11 267/415/10 +f 258/417/12 266/427/12 265/418/9 +f 256/420/13 264/429/13 263/421/7 +f 254/423/14 262/430/14 261/424/8 +f 253/425/8 261/424/8 268/426/11 +f 259/416/10 267/415/10 266/427/12 +f 257/428/9 265/478/9 264/429/13 +f 255/422/7 263/421/7 262/430/14 +f 276/431/11 284/443/11 283/432/10 +f 274/434/12 282/444/12 281/435/9 +f 272/437/13 280/446/13 279/438/7 +f 270/440/14 278/447/14 277/441/8 +f 269/442/8 277/441/8 284/443/11 +f 275/433/10 283/432/10 282/444/12 +f 273/445/9 281/479/9 280/446/13 +f 271/439/7 279/438/7 278/447/14 +f 292/448/11 300/460/11 299/449/10 +f 290/451/12 298/461/12 297/452/9 +f 288/454/13 296/463/13 295/455/7 +f 286/457/14 294/464/14 293/458/8 +f 285/459/8 293/458/8 300/460/11 +f 291/450/10 299/449/10 298/461/12 +f 289/462/9 297/480/9 296/463/13 +f 287/456/7 295/455/7 294/464/14 +o Bullets +v 0.125000 1.125000 0.414062 +v 0.108427 1.125000 0.420927 +v 0.101562 1.125000 0.437500 +v 0.108427 1.125000 0.454073 +v 0.125000 1.125000 0.460938 +v 0.141573 1.125000 0.454073 +v 0.148438 1.125000 0.437500 +v 0.141573 1.125000 0.420927 +v 0.125000 1.187500 0.437500 +v 0.141573 1.156250 0.454073 +v 0.125000 1.156250 0.460938 +v 0.108427 1.156250 0.454073 +v 0.101562 1.156250 0.437500 +v 0.108427 1.156250 0.420927 +v 0.125000 1.156250 0.414062 +v 0.141573 1.156250 0.420927 +v 0.148438 1.156250 0.437500 +v -0.125000 1.125000 0.414062 +v -0.141573 1.125000 0.420927 +v -0.148438 1.125000 0.437500 +v -0.141573 1.125000 0.454073 +v -0.125000 1.125000 0.460938 +v -0.108427 1.125000 0.454073 +v -0.101562 1.125000 0.437500 +v -0.108427 1.125000 0.420927 +v -0.125000 1.187500 0.437500 +v -0.108427 1.156250 0.454073 +v -0.125000 1.156250 0.460938 +v -0.141573 1.156250 0.454073 +v -0.148438 1.156250 0.437500 +v -0.141573 1.156250 0.420927 +v -0.125000 1.156250 0.414062 +v -0.108427 1.156250 0.420927 +v -0.101562 1.156250 0.437500 +v 0.125000 1.125000 0.289062 +v 0.108427 1.125000 0.295927 +v 0.101562 1.125000 0.312500 +v 0.108427 1.125000 0.329073 +v 0.125000 1.125000 0.335938 +v 0.141573 1.125000 0.329073 +v 0.148438 1.125000 0.312500 +v 0.141573 1.125000 0.295927 +v 0.125000 1.187500 0.312500 +v 0.141573 1.156250 0.329073 +v 0.125000 1.156250 0.335938 +v 0.108427 1.156250 0.329073 +v 0.101562 1.156250 0.312500 +v 0.108427 1.156250 0.295927 +v 0.125000 1.156250 0.289062 +v 0.141573 1.156250 0.295927 +v 0.148438 1.156250 0.312500 +v -0.125000 1.125000 0.289062 +v -0.141573 1.125000 0.295927 +v -0.148438 1.125000 0.312500 +v -0.141573 1.125000 0.329073 +v -0.125000 1.125000 0.335938 +v -0.108427 1.125000 0.329073 +v -0.101562 1.125000 0.312500 +v -0.108427 1.125000 0.295927 +v -0.125000 1.187500 0.312500 +v -0.108427 1.156250 0.329073 +v -0.125000 1.156250 0.335938 +v -0.141573 1.156250 0.329073 +v -0.148438 1.156250 0.312500 +v -0.141573 1.156250 0.295927 +v -0.125000 1.156250 0.289062 +v -0.108427 1.156250 0.295927 +v -0.101562 1.156250 0.312500 +v 0.125000 1.125000 0.164062 +v 0.108427 1.125000 0.170927 +v 0.101562 1.125000 0.187500 +v 0.108427 1.125000 0.204073 +v 0.125000 1.125000 0.210938 +v 0.141573 1.125000 0.204073 +v 0.148438 1.125000 0.187500 +v 0.141573 1.125000 0.170927 +v 0.125000 1.187500 0.187500 +v 0.141573 1.156250 0.204073 +v 0.125000 1.156250 0.210938 +v 0.108427 1.156250 0.204073 +v 0.101562 1.156250 0.187500 +v 0.108427 1.156250 0.170927 +v 0.125000 1.156250 0.164062 +v 0.141573 1.156250 0.170927 +v 0.148438 1.156250 0.187500 +v -0.125000 1.125000 0.164062 +v -0.141573 1.125000 0.170927 +v -0.148438 1.125000 0.187500 +v -0.141573 1.125000 0.204073 +v -0.125000 1.125000 0.210938 +v -0.108427 1.125000 0.204073 +v -0.101562 1.125000 0.187500 +v -0.108427 1.125000 0.170927 +v -0.125000 1.187500 0.187500 +v -0.108427 1.156250 0.204073 +v -0.125000 1.156250 0.210938 +v -0.141573 1.156250 0.204073 +v -0.148438 1.156250 0.187500 +v -0.141573 1.156250 0.170927 +v -0.125000 1.156250 0.164062 +v -0.108427 1.156250 0.170927 +v -0.101562 1.156250 0.187500 +v 0.125000 1.125000 0.039062 +v 0.108427 1.125000 0.045927 +v 0.101562 1.125000 0.062500 +v 0.108427 1.125000 0.079073 +v 0.125000 1.125000 0.085938 +v 0.141573 1.125000 0.079073 +v 0.148438 1.125000 0.062500 +v 0.141573 1.125000 0.045927 +v 0.125000 1.187500 0.062500 +v 0.141573 1.156250 0.079073 +v 0.125000 1.156250 0.085938 +v 0.108427 1.156250 0.079073 +v 0.101562 1.156250 0.062500 +v 0.108427 1.156250 0.045927 +v 0.125000 1.156250 0.039062 +v 0.141573 1.156250 0.045927 +v 0.148438 1.156250 0.062500 +v -0.125000 1.125000 0.039062 +v -0.141573 1.125000 0.045927 +v -0.148438 1.125000 0.062500 +v -0.141573 1.125000 0.079073 +v -0.125000 1.125000 0.085938 +v -0.108427 1.125000 0.079073 +v -0.101562 1.125000 0.062500 +v -0.108427 1.125000 0.045927 +v -0.125000 1.187500 0.062500 +v -0.108427 1.156250 0.079073 +v -0.125000 1.156250 0.085938 +v -0.141573 1.156250 0.079073 +v -0.148438 1.156250 0.062500 +v -0.141573 1.156250 0.045927 +v -0.125000 1.156250 0.039062 +v -0.108427 1.156250 0.045927 +v -0.101562 1.156250 0.062500 +v 0.125000 1.125000 -0.085938 +v 0.108427 1.125000 -0.079073 +v 0.101562 1.125000 -0.062500 +v 0.108427 1.125000 -0.045927 +v 0.125000 1.125000 -0.039062 +v 0.141573 1.125000 -0.045927 +v 0.148438 1.125000 -0.062500 +v 0.141573 1.125000 -0.079073 +v 0.125000 1.187500 -0.062500 +v 0.141573 1.156250 -0.045927 +v 0.125000 1.156250 -0.039062 +v 0.108427 1.156250 -0.045927 +v 0.101562 1.156250 -0.062500 +v 0.108427 1.156250 -0.079073 +v 0.125000 1.156250 -0.085938 +v 0.141573 1.156250 -0.079073 +v 0.148438 1.156250 -0.062500 +v -0.125000 1.125000 -0.085938 +v -0.141573 1.125000 -0.079073 +v -0.148438 1.125000 -0.062500 +v -0.141573 1.125000 -0.045927 +v -0.125000 1.125000 -0.039062 +v -0.108427 1.125000 -0.045927 +v -0.101562 1.125000 -0.062500 +v -0.108427 1.125000 -0.079073 +v -0.125000 1.187500 -0.062500 +v -0.108427 1.156250 -0.045927 +v -0.125000 1.156250 -0.039062 +v -0.141573 1.156250 -0.045927 +v -0.148438 1.156250 -0.062500 +v -0.141573 1.156250 -0.079073 +v -0.125000 1.156250 -0.085938 +v -0.108427 1.156250 -0.079073 +v -0.101562 1.156250 -0.062500 +v 0.125000 1.125000 -0.210938 +v 0.108427 1.125000 -0.204073 +v 0.101562 1.125000 -0.187500 +v 0.108427 1.125000 -0.170927 +v 0.125000 1.125000 -0.164062 +v 0.141573 1.125000 -0.170927 +v 0.148438 1.125000 -0.187500 +v 0.141573 1.125000 -0.204073 +v 0.125000 1.187500 -0.187500 +v 0.141573 1.156250 -0.170927 +v 0.125000 1.156250 -0.164062 +v 0.108427 1.156250 -0.170927 +v 0.101562 1.156250 -0.187500 +v 0.108427 1.156250 -0.204073 +v 0.125000 1.156250 -0.210938 +v 0.141573 1.156250 -0.204073 +v 0.148438 1.156250 -0.187500 +v -0.125000 1.125000 -0.210938 +v -0.141573 1.125000 -0.204073 +v -0.148438 1.125000 -0.187500 +v -0.141573 1.125000 -0.170927 +v -0.125000 1.125000 -0.164062 +v -0.108427 1.125000 -0.170927 +v -0.101562 1.125000 -0.187500 +v -0.108427 1.125000 -0.204073 +v -0.125000 1.187500 -0.187500 +v -0.108427 1.156250 -0.170927 +v -0.125000 1.156250 -0.164062 +v -0.141573 1.156250 -0.170927 +v -0.148438 1.156250 -0.187500 +v -0.141573 1.156250 -0.204073 +v -0.125000 1.156250 -0.210938 +v -0.108427 1.156250 -0.204073 +v -0.101562 1.156250 -0.187500 +v 0.125000 1.125000 -0.335938 +v 0.108427 1.125000 -0.329073 +v 0.101562 1.125000 -0.312500 +v 0.108427 1.125000 -0.295927 +v 0.125000 1.125000 -0.289062 +v 0.141573 1.125000 -0.295927 +v 0.148438 1.125000 -0.312500 +v 0.141573 1.125000 -0.329073 +v 0.125000 1.187500 -0.312500 +v 0.141573 1.156250 -0.295927 +v 0.125000 1.156250 -0.289062 +v 0.108427 1.156250 -0.295927 +v 0.101562 1.156250 -0.312500 +v 0.108427 1.156250 -0.329073 +v 0.125000 1.156250 -0.335938 +v 0.141573 1.156250 -0.329073 +v 0.148438 1.156250 -0.312500 +v -0.125000 1.125000 -0.335938 +v -0.141573 1.125000 -0.329073 +v -0.148438 1.125000 -0.312500 +v -0.141573 1.125000 -0.295927 +v -0.125000 1.125000 -0.289062 +v -0.108427 1.125000 -0.295927 +v -0.101562 1.125000 -0.312500 +v -0.108427 1.125000 -0.329073 +v -0.125000 1.187500 -0.312500 +v -0.108427 1.156250 -0.295927 +v -0.125000 1.156250 -0.289062 +v -0.141573 1.156250 -0.295927 +v -0.148438 1.156250 -0.312500 +v -0.141573 1.156250 -0.329073 +v -0.125000 1.156250 -0.335938 +v -0.108427 1.156250 -0.329073 +v -0.101562 1.156250 -0.312500 +v 0.125000 1.125000 -0.460938 +v 0.108427 1.125000 -0.454073 +v 0.101562 1.125000 -0.437500 +v 0.108427 1.125000 -0.420927 +v 0.125000 1.125000 -0.414062 +v 0.141573 1.125000 -0.420927 +v 0.148438 1.125000 -0.437500 +v 0.141573 1.125000 -0.454073 +v 0.125000 1.187500 -0.437500 +v 0.141573 1.156250 -0.420927 +v 0.125000 1.156250 -0.414062 +v 0.108427 1.156250 -0.420927 +v 0.101562 1.156250 -0.437500 +v 0.108427 1.156250 -0.454073 +v 0.125000 1.156250 -0.460938 +v 0.141573 1.156250 -0.454073 +v 0.148438 1.156250 -0.437500 +v -0.125000 1.125000 -0.460938 +v -0.141573 1.125000 -0.454073 +v -0.148438 1.125000 -0.437500 +v -0.141573 1.125000 -0.420927 +v -0.125000 1.125000 -0.414062 +v -0.108427 1.125000 -0.420927 +v -0.101562 1.125000 -0.437500 +v -0.108427 1.125000 -0.454073 +v -0.125000 1.187500 -0.437500 +v -0.108427 1.156250 -0.420927 +v -0.125000 1.156250 -0.414062 +v -0.141573 1.156250 -0.420927 +v -0.148438 1.156250 -0.437500 +v -0.141573 1.156250 -0.454073 +v -0.125000 1.156250 -0.460938 +v -0.108427 1.156250 -0.454073 +v -0.101562 1.156250 -0.437500 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vt 0.894737 0.642857 +vt 0.885965 0.654762 +vt 0.885965 0.642857 +vt 0.877193 0.666667 +vt 0.877193 0.654762 +vt 0.929825 0.666667 +vt 0.929825 0.654762 +vt 0.938596 0.654762 +vt 0.912281 0.666667 +vt 0.912281 0.654762 +vt 0.921053 0.654762 +vt 0.885965 0.666667 +vt 0.894737 0.654762 +vt 0.868421 0.666667 +vt 0.868421 0.654762 +vt 0.921053 0.666667 +vt 0.894737 0.666667 +vt 0.903509 0.654762 +vt 0.921053 0.642857 +vt 0.912281 0.642857 +vt 0.938596 0.642857 +vt 0.929825 0.642857 +vt 0.877193 0.642857 +vt 0.903509 0.642857 +vt 0.868421 0.642857 +vt 0.903509 0.666667 +vn 0.7071 0.0000 -0.7071 +vn 0.9554 0.2952 -0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.6756 0.2952 0.6756 +vn -0.6756 0.2952 0.6756 +vn 0.0000 0.2952 0.9554 +vn -0.6756 0.2952 -0.6756 +vn -0.9554 0.2952 -0.0000 +vn 0.6756 0.2952 -0.6756 +vn -0.0000 0.2952 -0.9554 +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 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +s 1 +f 308/481/15 317/482/16 307/483/17 +f 317/482/16 309/484/18 310/485/19 +f 309/486/18 312/487/20 311/488/21 +f 309/489/18 314/490/22 313/491/23 +f 309/492/18 317/482/16 316/493/24 +f 310/485/19 309/494/18 311/495/21 +f 312/487/20 309/496/18 313/491/23 +f 309/497/18 316/493/24 315/498/25 +f 303/499/26 314/490/22 302/500/27 +f 305/501/28 312/487/20 304/502/29 +f 307/483/17 310/485/19 306/503/30 +f 301/504/31 316/493/24 308/481/15 +f 302/500/27 315/498/25 301/504/31 +f 304/502/29 313/491/23 303/499/26 +f 306/503/30 311/495/21 305/505/28 +f 314/490/22 309/506/18 315/498/25 +f 325/507/15 334/508/16 324/509/17 +f 334/508/16 326/510/18 327/511/19 +f 326/512/18 329/513/20 328/514/21 +f 326/515/18 331/516/22 330/517/23 +f 326/518/18 334/508/16 333/519/24 +f 327/511/19 326/520/18 328/521/21 +f 329/513/20 326/522/18 330/517/23 +f 326/523/18 333/519/24 332/524/25 +f 320/525/26 331/516/22 319/526/27 +f 322/527/28 329/513/20 321/528/29 +f 324/509/17 327/511/19 323/529/30 +f 318/530/31 333/519/24 325/507/15 +f 319/526/27 332/524/25 318/530/31 +f 321/528/29 330/517/23 320/525/26 +f 323/529/30 328/521/21 322/531/28 +f 331/516/22 326/532/18 332/524/25 +f 342/533/15 351/534/16 341/535/17 +f 351/534/16 343/536/18 344/537/19 +f 343/538/18 346/539/20 345/540/21 +f 343/541/18 348/542/22 347/543/23 +f 343/544/18 351/534/16 350/545/24 +f 344/537/19 343/546/18 345/547/21 +f 346/539/20 343/548/18 347/543/23 +f 343/549/18 350/545/24 349/550/25 +f 337/551/26 348/542/22 336/552/27 +f 339/553/28 346/539/20 338/554/29 +f 341/535/17 344/537/19 340/555/30 +f 335/556/31 350/545/24 342/533/15 +f 336/552/27 349/550/25 335/556/31 +f 338/554/29 347/543/23 337/551/26 +f 340/555/30 345/547/21 339/557/28 +f 348/542/22 343/558/18 349/550/25 +f 359/559/15 368/560/16 358/561/17 +f 368/560/16 360/562/18 361/563/19 +f 360/564/18 363/565/20 362/566/21 +f 360/567/18 365/568/22 364/569/23 +f 360/570/18 368/560/16 367/571/24 +f 361/563/19 360/572/18 362/573/21 +f 363/565/20 360/574/18 364/569/23 +f 360/575/18 367/571/24 366/576/25 +f 354/577/26 365/568/22 353/578/27 +f 356/579/28 363/565/20 355/580/29 +f 358/561/17 361/563/19 357/581/30 +f 352/582/31 367/571/24 359/559/15 +f 353/578/27 366/576/25 352/582/31 +f 355/580/29 364/569/23 354/577/26 +f 357/581/30 362/573/21 356/583/28 +f 365/568/22 360/584/18 366/576/25 +f 376/585/15 385/586/16 375/587/17 +f 385/586/16 377/588/18 378/589/19 +f 377/590/18 380/591/20 379/592/21 +f 377/593/18 382/594/22 381/595/23 +f 377/596/18 385/586/16 384/597/24 +f 378/589/19 377/598/18 379/599/21 +f 380/591/20 377/600/18 381/595/23 +f 377/601/18 384/597/24 383/602/25 +f 371/603/26 382/594/22 370/604/27 +f 373/605/28 380/591/20 372/606/29 +f 375/587/17 378/589/19 374/607/30 +f 369/608/31 384/597/24 376/585/15 +f 370/604/27 383/602/25 369/608/31 +f 372/606/29 381/595/23 371/603/26 +f 374/607/30 379/599/21 373/609/28 +f 382/594/22 377/610/18 383/602/25 +f 393/611/15 402/612/16 392/613/17 +f 402/612/16 394/614/18 395/615/19 +f 394/616/18 397/617/20 396/618/21 +f 394/619/18 399/620/22 398/621/23 +f 394/622/18 402/612/16 401/623/24 +f 395/615/19 394/624/18 396/625/21 +f 397/617/20 394/626/18 398/621/23 +f 394/627/18 401/623/24 400/628/25 +f 388/629/26 399/620/22 387/630/27 +f 390/631/28 397/617/20 389/632/29 +f 392/613/17 395/615/19 391/633/30 +f 386/634/31 401/623/24 393/611/15 +f 387/630/27 400/628/25 386/634/31 +f 389/632/29 398/621/23 388/629/26 +f 391/633/30 396/625/21 390/635/28 +f 399/620/22 394/636/18 400/628/25 +f 410/637/15 419/638/16 409/639/17 +f 419/638/16 411/640/18 412/641/19 +f 411/642/18 414/643/20 413/644/21 +f 411/645/18 416/646/22 415/647/23 +f 411/648/18 419/638/16 418/649/24 +f 412/641/19 411/650/18 413/651/21 +f 414/643/20 411/652/18 415/647/23 +f 411/653/18 418/649/24 417/654/25 +f 405/655/26 416/646/22 404/656/27 +f 407/657/28 414/643/20 406/658/29 +f 409/639/17 412/641/19 408/659/30 +f 403/660/31 418/649/24 410/637/15 +f 404/656/27 417/654/25 403/660/31 +f 406/658/29 415/647/23 405/655/26 +f 408/659/30 413/651/21 407/661/28 +f 416/646/22 411/662/18 417/654/25 +f 427/663/15 436/664/16 426/665/17 +f 436/664/16 428/666/18 429/667/19 +f 428/668/18 431/669/20 430/670/21 +f 428/671/18 433/672/22 432/673/23 +f 428/674/18 436/664/16 435/675/24 +f 429/667/19 428/676/18 430/677/21 +f 431/669/20 428/678/18 432/673/23 +f 428/679/18 435/675/24 434/680/25 +f 422/681/26 433/672/22 421/682/27 +f 424/683/28 431/669/20 423/684/29 +f 426/665/17 429/667/19 425/685/30 +f 420/686/31 435/675/24 427/663/15 +f 421/682/27 434/680/25 420/686/31 +f 423/684/29 432/673/23 422/681/26 +f 425/685/30 430/677/21 424/687/28 +f 433/672/22 428/688/18 434/680/25 +f 444/689/15 453/690/16 443/691/17 +f 453/690/16 445/692/18 446/693/19 +f 445/694/18 448/695/20 447/696/21 +f 445/697/18 450/698/22 449/699/23 +f 445/700/18 453/690/16 452/701/24 +f 446/693/19 445/702/18 447/703/21 +f 448/695/20 445/704/18 449/699/23 +f 445/705/18 452/701/24 451/706/25 +f 439/707/26 450/698/22 438/708/27 +f 441/709/28 448/695/20 440/710/29 +f 443/691/17 446/693/19 442/711/30 +f 437/712/31 452/701/24 444/689/15 +f 438/708/27 451/706/25 437/712/31 +f 440/710/29 449/699/23 439/707/26 +f 442/711/30 447/703/21 441/713/28 +f 450/698/22 445/714/18 451/706/25 +f 461/715/15 470/716/16 460/717/17 +f 470/716/16 462/718/18 463/719/19 +f 462/720/18 465/721/20 464/722/21 +f 462/723/18 467/724/22 466/725/23 +f 462/726/18 470/716/16 469/727/24 +f 463/719/19 462/728/18 464/729/21 +f 465/721/20 462/730/18 466/725/23 +f 462/731/18 469/727/24 468/732/25 +f 456/733/26 467/724/22 455/734/27 +f 458/735/28 465/721/20 457/736/29 +f 460/717/17 463/719/19 459/737/30 +f 454/738/31 469/727/24 461/715/15 +f 455/734/27 468/732/25 454/738/31 +f 457/736/29 466/725/23 456/733/26 +f 459/737/30 464/729/21 458/739/28 +f 467/724/22 462/740/18 468/732/25 +f 478/741/15 487/742/16 477/743/17 +f 487/742/16 479/744/18 480/745/19 +f 479/746/18 482/747/20 481/748/21 +f 479/749/18 484/750/22 483/751/23 +f 479/752/18 487/742/16 486/753/24 +f 480/745/19 479/754/18 481/755/21 +f 482/747/20 479/756/18 483/751/23 +f 479/757/18 486/753/24 485/758/25 +f 473/759/26 484/750/22 472/760/27 +f 475/761/28 482/747/20 474/762/29 +f 477/743/17 480/745/19 476/763/30 +f 471/764/31 486/753/24 478/741/15 +f 472/760/27 485/758/25 471/764/31 +f 474/762/29 483/751/23 473/759/26 +f 476/763/30 481/755/21 475/765/28 +f 484/750/22 479/766/18 485/758/25 +f 495/767/15 504/768/16 494/769/17 +f 504/768/16 496/770/18 497/771/19 +f 496/772/18 499/773/20 498/774/21 +f 496/775/18 501/776/22 500/777/23 +f 496/778/18 504/768/16 503/779/24 +f 497/771/19 496/780/18 498/781/21 +f 499/773/20 496/782/18 500/777/23 +f 496/783/18 503/779/24 502/784/25 +f 490/785/26 501/776/22 489/786/27 +f 492/787/28 499/773/20 491/788/29 +f 494/769/17 497/771/19 493/789/30 +f 488/790/31 503/779/24 495/767/15 +f 489/786/27 502/784/25 488/790/31 +f 491/788/29 500/777/23 490/785/26 +f 493/789/30 498/781/21 492/791/28 +f 501/776/22 496/792/18 502/784/25 +f 512/793/15 521/794/16 511/795/17 +f 521/794/16 513/796/18 514/797/19 +f 513/798/18 516/799/20 515/800/21 +f 513/801/18 518/802/22 517/803/23 +f 513/804/18 521/794/16 520/805/24 +f 514/797/19 513/806/18 515/807/21 +f 516/799/20 513/808/18 517/803/23 +f 513/809/18 520/805/24 519/810/25 +f 507/811/26 518/802/22 506/812/27 +f 509/813/28 516/799/20 508/814/29 +f 511/795/17 514/797/19 510/815/30 +f 505/816/31 520/805/24 512/793/15 +f 506/812/27 519/810/25 505/816/31 +f 508/814/29 517/803/23 507/811/26 +f 510/815/30 515/807/21 509/817/28 +f 518/802/22 513/818/18 519/810/25 +f 529/819/15 538/820/16 528/821/17 +f 538/820/16 530/822/18 531/823/19 +f 530/824/18 533/825/20 532/826/21 +f 530/827/18 535/828/22 534/829/23 +f 530/830/18 538/820/16 537/831/24 +f 531/823/19 530/832/18 532/833/21 +f 533/825/20 530/834/18 534/829/23 +f 530/835/18 537/831/24 536/836/25 +f 524/837/26 535/828/22 523/838/27 +f 526/839/28 533/825/20 525/840/29 +f 528/821/17 531/823/19 527/841/30 +f 522/842/31 537/831/24 529/819/15 +f 523/838/27 536/836/25 522/842/31 +f 525/840/29 534/829/23 524/837/26 +f 527/841/30 532/833/21 526/843/28 +f 535/828/22 530/844/18 536/836/25 +f 546/845/15 555/846/16 545/847/17 +f 555/846/16 547/848/18 548/849/19 +f 547/850/18 550/851/20 549/852/21 +f 547/853/18 552/854/22 551/855/23 +f 547/856/18 555/846/16 554/857/24 +f 548/849/19 547/858/18 549/859/21 +f 550/851/20 547/860/18 551/855/23 +f 547/861/18 554/857/24 553/862/25 +f 541/863/26 552/854/22 540/864/27 +f 543/865/28 550/851/20 542/866/29 +f 545/847/17 548/849/19 544/867/30 +f 539/868/31 554/857/24 546/845/15 +f 540/864/27 553/862/25 539/868/31 +f 542/866/29 551/855/23 541/863/26 +f 544/867/30 549/859/21 543/869/28 +f 552/854/22 547/870/18 553/862/25 +f 563/871/15 572/872/16 562/873/17 +f 572/872/16 564/874/18 565/875/19 +f 564/876/18 567/877/20 566/878/21 +f 564/879/18 569/880/22 568/881/23 +f 564/882/18 572/872/16 571/883/24 +f 565/875/19 564/884/18 566/885/21 +f 567/877/20 564/886/18 568/881/23 +f 564/887/18 571/883/24 570/888/25 +f 558/889/26 569/880/22 557/890/27 +f 560/891/28 567/877/20 559/892/29 +f 562/873/17 565/875/19 561/893/30 +f 556/894/31 571/883/24 563/871/15 +f 557/890/27 570/888/25 556/894/31 +f 559/892/29 568/881/23 558/889/26 +f 561/893/30 566/885/21 560/895/28 +f 569/880/22 564/896/18 570/888/25 +f 308/481/15 316/493/24 317/482/16 +f 303/499/26 313/491/23 314/490/22 +f 305/501/28 311/488/21 312/487/20 +f 307/483/17 317/482/16 310/485/19 +f 301/504/31 315/498/25 316/493/24 +f 302/500/27 314/490/22 315/498/25 +f 304/502/29 312/487/20 313/491/23 +f 306/503/30 310/485/19 311/495/21 +f 325/507/15 333/519/24 334/508/16 +f 320/525/26 330/517/23 331/516/22 +f 322/527/28 328/514/21 329/513/20 +f 324/509/17 334/508/16 327/511/19 +f 318/530/31 332/524/25 333/519/24 +f 319/526/27 331/516/22 332/524/25 +f 321/528/29 329/513/20 330/517/23 +f 323/529/30 327/511/19 328/521/21 +f 342/533/15 350/545/24 351/534/16 +f 337/551/26 347/543/23 348/542/22 +f 339/553/28 345/540/21 346/539/20 +f 341/535/17 351/534/16 344/537/19 +f 335/556/31 349/550/25 350/545/24 +f 336/552/27 348/542/22 349/550/25 +f 338/554/29 346/539/20 347/543/23 +f 340/555/30 344/537/19 345/547/21 +f 359/559/15 367/571/24 368/560/16 +f 354/577/26 364/569/23 365/568/22 +f 356/579/28 362/566/21 363/565/20 +f 358/561/17 368/560/16 361/563/19 +f 352/582/31 366/576/25 367/571/24 +f 353/578/27 365/568/22 366/576/25 +f 355/580/29 363/565/20 364/569/23 +f 357/581/30 361/563/19 362/573/21 +f 376/585/15 384/597/24 385/586/16 +f 371/603/26 381/595/23 382/594/22 +f 373/605/28 379/592/21 380/591/20 +f 375/587/17 385/586/16 378/589/19 +f 369/608/31 383/602/25 384/597/24 +f 370/604/27 382/594/22 383/602/25 +f 372/606/29 380/591/20 381/595/23 +f 374/607/30 378/589/19 379/599/21 +f 393/611/15 401/623/24 402/612/16 +f 388/629/26 398/621/23 399/620/22 +f 390/631/28 396/618/21 397/617/20 +f 392/613/17 402/612/16 395/615/19 +f 386/634/31 400/628/25 401/623/24 +f 387/630/27 399/620/22 400/628/25 +f 389/632/29 397/617/20 398/621/23 +f 391/633/30 395/615/19 396/625/21 +f 410/637/15 418/649/24 419/638/16 +f 405/655/26 415/647/23 416/646/22 +f 407/657/28 413/644/21 414/643/20 +f 409/639/17 419/638/16 412/641/19 +f 403/660/31 417/654/25 418/649/24 +f 404/656/27 416/646/22 417/654/25 +f 406/658/29 414/643/20 415/647/23 +f 408/659/30 412/641/19 413/651/21 +f 427/663/15 435/675/24 436/664/16 +f 422/681/26 432/673/23 433/672/22 +f 424/683/28 430/670/21 431/669/20 +f 426/665/17 436/664/16 429/667/19 +f 420/686/31 434/680/25 435/675/24 +f 421/682/27 433/672/22 434/680/25 +f 423/684/29 431/669/20 432/673/23 +f 425/685/30 429/667/19 430/677/21 +f 444/689/15 452/701/24 453/690/16 +f 439/707/26 449/699/23 450/698/22 +f 441/709/28 447/696/21 448/695/20 +f 443/691/17 453/690/16 446/693/19 +f 437/712/31 451/706/25 452/701/24 +f 438/708/27 450/698/22 451/706/25 +f 440/710/29 448/695/20 449/699/23 +f 442/711/30 446/693/19 447/703/21 +f 461/715/15 469/727/24 470/716/16 +f 456/733/26 466/725/23 467/724/22 +f 458/735/28 464/722/21 465/721/20 +f 460/717/17 470/716/16 463/719/19 +f 454/738/31 468/732/25 469/727/24 +f 455/734/27 467/724/22 468/732/25 +f 457/736/29 465/721/20 466/725/23 +f 459/737/30 463/719/19 464/729/21 +f 478/741/15 486/753/24 487/742/16 +f 473/759/26 483/751/23 484/750/22 +f 475/761/28 481/748/21 482/747/20 +f 477/743/17 487/742/16 480/745/19 +f 471/764/31 485/758/25 486/753/24 +f 472/760/27 484/750/22 485/758/25 +f 474/762/29 482/747/20 483/751/23 +f 476/763/30 480/745/19 481/755/21 +f 495/767/15 503/779/24 504/768/16 +f 490/785/26 500/777/23 501/776/22 +f 492/787/28 498/774/21 499/773/20 +f 494/769/17 504/768/16 497/771/19 +f 488/790/31 502/784/25 503/779/24 +f 489/786/27 501/776/22 502/784/25 +f 491/788/29 499/773/20 500/777/23 +f 493/789/30 497/771/19 498/781/21 +f 512/793/15 520/805/24 521/794/16 +f 507/811/26 517/803/23 518/802/22 +f 509/813/28 515/800/21 516/799/20 +f 511/795/17 521/794/16 514/797/19 +f 505/816/31 519/810/25 520/805/24 +f 506/812/27 518/802/22 519/810/25 +f 508/814/29 516/799/20 517/803/23 +f 510/815/30 514/797/19 515/807/21 +f 529/819/15 537/831/24 538/820/16 +f 524/837/26 534/829/23 535/828/22 +f 526/839/28 532/826/21 533/825/20 +f 528/821/17 538/820/16 531/823/19 +f 522/842/31 536/836/25 537/831/24 +f 523/838/27 535/828/22 536/836/25 +f 525/840/29 533/825/20 534/829/23 +f 527/841/30 531/823/19 532/833/21 +f 546/845/15 554/857/24 555/846/16 +f 541/863/26 551/855/23 552/854/22 +f 543/865/28 549/852/21 550/851/20 +f 545/847/17 555/846/16 548/849/19 +f 539/868/31 553/862/25 554/857/24 +f 540/864/27 552/854/22 553/862/25 +f 542/866/29 550/851/20 551/855/23 +f 544/867/30 548/849/19 549/859/21 +f 563/871/15 571/883/24 572/872/16 +f 558/889/26 568/881/23 569/880/22 +f 560/891/28 566/878/21 567/877/20 +f 562/873/17 572/872/16 565/875/19 +f 556/894/31 570/888/25 571/883/24 +f 557/890/27 569/880/22 570/888/25 +f 559/892/29 567/877/20 568/881/23 +f 561/893/30 565/875/19 566/885/21 +o Frame +v -0.500000 0.000000 1.500000 +v 0.500000 0.000000 1.500000 +v -0.500000 0.000000 -1.500000 +v 0.500000 0.000000 -1.500000 +v -0.437500 0.125000 1.437500 +v 0.437500 0.125000 1.437500 +v -0.437500 0.125000 -1.437500 +v 0.437500 0.125000 -1.437500 +v -0.437500 0.875000 1.437500 +v 0.437500 0.875000 1.437500 +v -0.437500 0.875000 -1.437500 +v 0.437500 0.875000 -1.437500 +v -0.500000 1.000000 1.500000 +v 0.500000 1.000000 1.500000 +v -0.500000 1.000000 -1.500000 +v 0.500000 1.000000 -1.500000 +v -0.500000 0.125000 -1.500000 +v -0.500000 0.125000 1.500000 +v 0.500000 0.125000 1.500000 +v 0.500000 0.125000 -1.500000 +v -0.500000 0.875000 -1.500000 +v -0.500000 0.875000 1.500000 +v 0.500000 0.875000 1.500000 +v 0.500000 0.875000 -1.500000 +v 0.250000 1.000000 -0.750000 +v 0.250000 1.000000 0.750000 +v -0.250000 1.000000 0.750000 +v -0.250000 1.000000 -0.750000 +v -0.500000 1.500000 -1.500000 +v -0.500000 1.500000 1.500000 +v 0.500000 1.500000 1.500000 +v 0.500000 1.500000 -1.500000 +v -0.250000 1.500000 -0.750000 +v -0.250000 1.500000 0.750000 +v 0.250000 1.500000 0.750000 +v 0.250000 1.500000 -0.750000 +v 0.437500 1.500000 -1.437500 +v 0.437500 1.500000 -1.062500 +v -0.437500 1.500000 -1.062500 +v -0.437500 1.500000 -1.437500 +v 0.437500 1.000000 -1.437500 +v 0.437500 1.000000 -1.062500 +v -0.437500 1.000000 -1.062500 +v -0.437500 1.000000 -1.437500 +v -0.437500 1.000000 1.062500 +v -0.437500 1.000000 1.437500 +v 0.437500 1.000000 1.437500 +v 0.437500 1.000000 1.062500 +v -0.437500 1.500000 1.062500 +v -0.437500 1.500000 1.437500 +v 0.437500 1.500000 1.437500 +v 0.437500 1.500000 1.062500 +v -0.500000 1.750000 1.500000 +v -0.500000 2.000000 1.250000 +v 0.500000 2.000000 1.250000 +v 0.500000 1.750000 1.500000 +v -0.500000 2.000000 -1.250000 +v -0.500000 1.750000 -1.500000 +v 0.500000 1.750000 -1.500000 +v 0.500000 2.000000 -1.250000 +v 0.250000 0.875000 0.750000 +v 0.250000 0.875000 -0.750000 +v -0.250000 0.875000 0.750000 +v -0.250000 0.875000 -0.750000 +vt 0.438596 0.166667 +vt 0.017544 0.357143 +vt 0.017544 0.166667 +vt 0.421053 0.142857 +vt 0.017544 0.000000 +vt 0.421053 -0.000000 +vt 0.438596 0.142857 +vt 0.456140 0.357143 +vt 0.438596 0.357143 +vt 0.000000 0.166667 +vt 0.017544 0.380952 +vt 0.543860 0.142857 +vt 0.421053 -0.000000 +vt 0.543860 -0.000000 +vt 0.333333 0.833333 +vt 0.017544 0.785714 +vt 0.438596 0.785714 +vt 0.017544 1.000000 +vt 0.438596 0.976190 +vt 0.438596 1.000000 +vt 0.456140 0.976190 +vt 0.456140 0.785714 +vt -0.000000 0.785714 +vt 0.017544 0.976190 +vt -0.000000 0.976190 +vt 0.438596 0.761905 +vt 0.017544 0.761905 +vt 0.429825 0.559524 +vt 0.017544 0.571429 +vt 0.026316 0.559524 +vt 0.026316 0.392857 +vt 0.438596 0.380952 +vt 0.429825 0.392857 +vt 0.438596 0.571429 +vt 0.026316 0.583333 +vt 0.438596 0.571429 +vt 0.429825 0.583333 +vt 0.026316 0.750000 +vt 0.017544 0.571429 +vt 0.429825 0.750000 +vt 0.543860 0.142857 +vt 0.543860 -0.000000 +vt 0.421053 0.142857 +vt 0.017544 0.000000 +vt 0.543860 0.476190 +vt 0.508772 0.285714 +vt 0.543860 0.285714 +vt 0.964912 0.190476 +vt 0.859649 0.047619 +vt 0.964912 0.000000 +vt 0.578947 0.285714 +vt 0.929825 0.476190 +vt 0.578947 0.476190 +vt 0.096491 0.619048 +vt 0.114035 0.714286 +vt 0.096491 0.714286 +vt 0.543860 0.190476 +vt 0.929825 0.285714 +vt 0.964912 0.285714 +vt 1.000000 0.476190 +vt 0.964912 0.476190 +vt 0.543860 -0.000000 +vt 0.649123 0.142857 +vt 0.859649 0.142857 +vt 0.649123 0.047619 +vt 0.201754 0.392857 +vt 0.149123 0.488095 +vt 0.149123 0.392857 +vt 0.026316 0.488095 +vt 0.026316 0.392857 +vt 0.324561 0.392857 +vt 0.201754 0.488095 +vt 0.377193 0.392857 +vt 0.324561 0.488095 +vt 0.377193 0.392857 +vt 0.324561 0.488095 +vt 0.324561 0.392857 +vt 0.201754 0.488095 +vt 0.201754 0.392857 +vt 0.149123 0.392857 +vt 0.026316 0.488095 +vt 0.026316 0.392857 +vt 0.149123 0.488095 +vt 0.964912 0.571429 +vt 0.543860 0.571429 +vt 0.122807 0.833333 +vt 0.122807 0.928571 +vt 0.333333 0.928571 +vt 0.324561 0.714286 +vt 0.114035 0.619048 +vt 0.324561 0.619048 +vt 0.114035 0.738095 +vt 0.324561 0.738095 +vt 0.324561 0.595238 +vt 0.114035 0.595238 +vt 0.342105 0.714286 +vt 0.342105 0.619048 +vt 0.017544 0.142857 +vt 0.017544 0.142857 +vt 0.456140 0.166667 +vt 0.000000 0.357143 +vt 0.017544 0.142857 +vt 0.508772 0.476190 +vt 0.964912 0.238095 +vt 0.543860 0.238095 +vt 1.000000 0.285714 +vt 0.377193 0.488095 +vt 0.377193 0.488095 +vt 0.543860 0.523810 +vt 0.964912 0.523810 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 575/897/32 574/898/32 573/899/32 +f 584/900/33 578/901/33 580/902/33 +f 573/899/34 589/903/34 575/897/34 +f 575/897/35 592/904/35 576/905/35 +f 574/898/36 590/906/36 573/899/36 +f 576/905/33 591/907/33 574/898/33 +f 582/908/36 577/909/36 578/910/36 +f 597/911/37 586/912/37 588/913/37 +f 594/914/34 587/915/34 593/916/34 +f 593/917/35 588/913/35 596/918/35 +f 595/919/36 585/920/36 594/921/36 +f 596/922/33 586/912/33 595/923/33 +f 579/924/37 590/925/37 577/926/37 +f 577/926/37 591/907/37 578/927/37 +f 578/927/37 592/928/37 580/929/37 +f 580/929/37 589/930/37 579/924/37 +f 581/931/32 593/932/32 583/933/32 +f 582/934/32 594/935/32 581/931/32 +f 584/936/32 595/923/32 582/934/32 +f 583/933/32 596/922/32 584/936/32 +f 583/937/35 580/902/35 579/938/35 +f 581/939/34 579/940/34 577/909/34 +f 625/941/36 603/942/36 628/943/36 +f 604/944/32 605/945/32 601/946/32 +f 627/947/37 629/948/37 626/949/37 +f 600/950/36 634/951/36 597/952/36 +f 603/953/33 604/944/33 632/954/33 +f 631/955/35 601/956/35 630/957/35 +f 602/958/32 607/959/32 603/953/32 +f 603/953/32 608/960/32 604/944/32 +f 601/946/32 606/961/32 602/958/32 +f 613/962/33 610/963/33 614/964/33 +f 614/964/36 611/965/36 615/966/36 +f 616/967/35 609/968/35 613/962/35 +f 615/969/34 612/970/34 616/967/34 +f 618/971/34 621/972/34 617/973/34 +f 617/973/35 624/974/35 620/975/35 +f 619/976/36 622/977/36 618/978/36 +f 620/975/33 623/979/33 619/976/33 +f 628/943/38 626/949/38 625/941/38 +f 630/957/39 632/954/39 631/955/39 +f 601/980/34 602/981/34 626/949/34 +f 598/982/37 585/920/37 586/912/37 +f 599/983/37 587/915/37 585/920/37 +f 600/984/37 588/913/37 587/915/37 +f 633/985/37 636/986/37 635/987/37 +f 597/988/34 633/985/34 598/989/34 +f 599/990/33 636/986/33 600/991/33 +f 598/992/35 635/987/35 599/993/35 +f 575/897/32 576/905/32 574/898/32 +f 584/900/33 582/994/33 578/901/33 +f 573/899/34 590/995/34 589/903/34 +f 575/897/35 589/996/35 592/904/35 +f 574/898/36 591/997/36 590/906/36 +f 576/905/33 592/928/33 591/907/33 +f 582/908/36 581/939/36 577/909/36 +f 597/911/37 598/982/37 586/912/37 +f 594/914/34 585/920/34 587/915/34 +f 593/917/35 587/915/35 588/913/35 +f 595/919/36 586/912/36 585/920/36 +f 596/922/33 588/913/33 586/912/33 +f 579/924/37 589/930/37 590/925/37 +f 577/926/37 590/925/37 591/907/37 +f 578/927/37 591/907/37 592/928/37 +f 580/929/37 592/928/37 589/930/37 +f 581/931/32 594/935/32 593/932/32 +f 582/934/32 595/923/32 594/935/32 +f 584/936/32 596/922/32 595/923/32 +f 583/933/32 593/932/32 596/922/32 +f 583/937/35 584/900/35 580/902/35 +f 581/939/34 583/998/34 579/940/34 +f 625/941/36 602/999/36 603/942/36 +f 604/944/32 608/960/32 605/945/32 +f 627/947/37 632/954/37 629/948/37 +f 600/950/36 636/986/36 634/951/36 +f 604/944/33 631/1000/33 632/954/33 +f 632/954/33 627/947/33 603/953/33 +f 627/947/33 628/1001/33 603/953/33 +f 631/955/35 604/1002/35 601/956/35 +f 602/958/32 606/961/32 607/959/32 +f 603/953/32 607/959/32 608/960/32 +f 601/946/32 605/945/32 606/961/32 +f 613/962/33 609/968/33 610/963/33 +f 614/964/36 610/963/36 611/965/36 +f 616/967/35 612/970/35 609/968/35 +f 615/969/34 611/1003/34 612/970/34 +f 618/971/34 622/1004/34 621/972/34 +f 617/973/35 621/972/35 624/974/35 +f 619/976/36 623/979/36 622/977/36 +f 620/975/33 624/974/33 623/979/33 +f 628/943/38 627/947/38 626/949/38 +f 630/957/39 629/948/39 632/954/39 +f 602/981/34 625/1005/34 626/949/34 +f 626/949/34 629/948/34 601/980/34 +f 629/948/34 630/1006/34 601/980/34 +f 598/982/37 599/983/37 585/920/37 +f 599/983/37 600/984/37 587/915/37 +f 600/984/37 597/911/37 588/913/37 +f 633/985/37 634/951/37 636/986/37 +f 597/988/34 634/951/34 633/985/34 +f 599/990/33 635/987/33 636/986/33 +f 598/992/35 633/985/35 635/987/35 diff --git a/src/main/resources/assets/hbm/models/mine_ap.obj b/src/main/resources/assets/hbm/models/mine_ap.obj deleted file mode 100644 index 00709083c..000000000 --- a/src/main/resources/assets/hbm/models/mine_ap.obj +++ /dev/null @@ -1,209 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mine_ap.blend' -# www.blender.org -o Sphere -v -0.023918 0.081742 0.000000 -v -0.044194 0.068194 0.000000 -v -0.057743 0.047918 0.000000 -v -0.062500 0.024000 0.000000 -v -0.057743 0.000082 0.000000 -v -0.016913 0.081742 -0.016912 -v -0.031250 0.068194 -0.031250 -v -0.040830 0.047918 -0.040830 -v -0.044194 0.024000 -0.044194 -v -0.040830 0.000082 -0.040830 -v -0.000000 0.081742 -0.023918 -v -0.000000 0.068194 -0.044194 -v -0.000000 0.047918 -0.057742 -v -0.000000 0.024000 -0.062500 -v -0.000000 0.000082 -0.057742 -v -0.000000 0.086500 0.000000 -v 0.016912 0.081742 -0.016912 -v 0.031250 0.068194 -0.031250 -v 0.040830 0.047918 -0.040830 -v 0.044194 0.024000 -0.044194 -v 0.040830 0.000082 -0.040830 -v 0.023918 0.081742 0.000000 -v 0.044194 0.068194 0.000000 -v 0.057742 0.047918 0.000000 -v 0.062500 0.024000 0.000000 -v 0.057742 0.000082 0.000000 -v 0.016912 0.081742 0.016912 -v 0.031250 0.068194 0.031250 -v 0.040830 0.047918 0.040830 -v 0.044194 0.024000 0.044194 -v 0.040830 0.000082 0.040830 -v -0.000000 0.081742 0.023918 -v -0.000000 0.068194 0.044194 -v -0.000000 0.047918 0.057742 -v -0.000000 0.024000 0.062500 -v -0.000000 0.000082 0.057742 -v -0.016913 0.081742 0.016912 -v -0.031250 0.068194 0.031250 -v -0.040830 0.047918 0.040830 -v -0.044194 0.024000 0.044194 -v -0.040830 0.000082 0.040830 -v -0.061524 0.148194 -0.061523 -v 0.061523 0.148194 -0.061523 -v 0.061523 0.148194 0.061523 -v -0.061524 0.148194 0.061523 -v -0.005980 0.081742 0.000000 -v -0.000000 0.081742 -0.005979 -v -0.000000 0.111500 0.000000 -v 0.005979 0.081742 0.000000 -v -0.000000 0.081742 0.005979 -v -0.000000 0.086500 0.000000 -vt 0.713388 0.422365 -vt 0.372492 0.422365 -vt 0.358449 0.234785 -vt 0.613541 0.784500 -vt 0.472338 0.784500 -vt 0.412485 0.606170 -vt 0.727431 0.234785 -vt 0.372492 0.047204 -vt 0.673395 0.606170 -vt 0.713387 0.047204 -vt 0.542940 0.958853 -vt 0.074879 0.038923 -vt 0.262088 0.020580 -vt 0.262088 0.720477 -vt 0.839131 0.569078 -vt 0.877120 0.614143 -vt 0.839131 0.803203 -vt 0.837838 0.803203 -vt 0.799848 0.614143 -vt 0.837838 0.569078 -vt 0.878413 0.569078 -vt 0.916403 0.614143 -vt 0.878413 0.803204 -vt 0.917696 0.614143 -vt 0.955685 0.569078 -vt 0.955685 0.803203 -vn -0.908700 0.180700 -0.376400 -vn -0.541400 0.810300 -0.224300 -vn -0.908700 -0.180700 -0.376400 -vn -0.786200 0.525300 -0.325600 -vn -0.376400 0.180700 -0.908700 -vn -0.224300 0.810300 -0.541400 -vn -0.376400 -0.180700 -0.908700 -vn -0.325600 0.525300 -0.786200 -vn 0.376400 -0.180700 -0.908700 -vn 0.325600 0.525300 -0.786200 -vn 0.376400 0.180700 -0.908700 -vn 0.224300 0.810300 -0.541400 -vn 0.786200 0.525300 -0.325600 -vn 0.908700 0.180700 -0.376400 -vn 0.541400 0.810300 -0.224300 -vn 0.908700 -0.180700 -0.376400 -vn 0.908700 0.180700 0.376400 -vn 0.541400 0.810300 0.224300 -vn 0.908700 -0.180700 0.376400 -vn 0.786200 0.525300 0.325600 -vn 0.224300 0.810300 0.541400 -vn 0.376400 -0.180700 0.908700 -vn 0.325600 0.525300 0.786200 -vn 0.376400 0.180700 0.908700 -vn -0.376400 -0.180700 0.908700 -vn -0.325600 0.525300 0.786200 -vn -0.376400 0.180700 0.908700 -vn -0.224300 0.810300 0.541400 -vn -0.194500 0.977600 -0.080500 -vn -0.080500 0.977600 -0.194500 -vn 0.080500 0.977600 -0.194500 -vn 0.194500 0.977600 -0.080500 -vn 0.194500 0.977600 0.080500 -vn 0.080500 0.977600 0.194500 -vn -0.080500 0.977600 0.194500 -vn -0.194500 0.977600 0.080500 -vn -0.908700 0.180700 0.376400 -vn -0.541400 0.810300 0.224300 -vn -0.908700 -0.180700 0.376400 -vn -0.786200 0.525300 0.325600 -vn -0.707100 0.000000 0.707100 -vn 0.707100 0.000000 0.707100 -vn 0.707100 0.000000 -0.707100 -vn -0.707100 0.000000 -0.707100 -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 -s off -f 3/1/1 8/2/1 9/3/1 -f 1/4/2 6/5/2 7/6/2 -f 4/7/3 9/3/3 10/8/3 -f 2/9/4 7/6/4 8/2/4 -f 8/1/5 13/2/5 14/3/5 -f 6/4/6 11/5/6 12/6/6 -f 9/7/7 14/3/7 15/8/7 -f 7/9/8 12/6/8 13/2/8 -f 14/7/9 20/3/9 21/8/9 -f 12/9/10 18/6/10 19/2/10 -f 13/1/11 19/2/11 20/3/11 -f 11/4/12 17/5/12 18/6/12 -f 18/9/13 23/6/13 24/2/13 -f 19/1/14 24/2/14 25/3/14 -f 17/4/15 22/5/15 23/6/15 -f 20/7/16 25/3/16 26/8/16 -f 25/7/17 24/1/17 29/2/17 -f 23/9/18 22/4/18 27/5/18 -f 25/7/19 30/3/19 31/8/19 -f 23/9/20 28/6/20 29/2/20 -f 28/9/21 27/4/21 32/5/21 -f 31/10/22 30/7/22 35/3/22 -f 29/1/23 28/9/23 33/6/23 -f 29/1/24 34/2/24 35/3/24 -f 35/7/25 40/3/25 41/8/25 -f 33/9/26 38/6/26 39/2/26 -f 35/7/27 34/1/27 39/2/27 -f 32/4/28 37/5/28 38/6/28 -f 1/4/29 16/11/29 6/5/29 -f 6/4/30 16/11/30 11/5/30 -f 11/4/31 16/11/31 17/5/31 -f 17/4/32 16/11/32 22/5/32 -f 22/4/33 16/11/33 27/5/33 -f 27/4/34 16/11/34 32/5/34 -f 32/4/35 16/11/35 37/5/35 -f 37/4/36 16/11/36 1/5/36 -f 39/1/37 3/2/37 4/3/37 -f 37/4/38 1/5/38 2/6/38 -f 40/7/39 4/3/39 5/8/39 -f 39/1/40 38/9/40 2/6/40 -f 27/12/41 28/13/41 44/14/41 -f 17/12/42 18/13/42 43/14/42 -f 6/12/43 7/13/43 42/14/43 -f 37/12/44 38/13/44 45/14/44 -f 47/15/45 51/16/45 48/17/45 -f 48/18/46 51/19/46 49/20/46 -f 50/21/47 51/22/47 48/23/47 -f 51/24/48 46/25/48 48/26/48 -f 4/7/1 3/1/1 9/3/1 -f 2/9/2 1/4/2 7/6/2 -f 5/10/3 4/7/3 10/8/3 -f 3/1/4 2/9/4 8/2/4 -f 9/7/5 8/1/5 14/3/5 -f 7/9/6 6/4/6 12/6/6 -f 10/10/7 9/7/7 15/8/7 -f 8/1/8 7/9/8 13/2/8 -f 15/10/9 14/7/9 21/8/9 -f 13/1/10 12/9/10 19/2/10 -f 14/7/11 13/1/11 20/3/11 -f 12/9/12 11/4/12 18/6/12 -f 19/1/13 18/9/13 24/2/13 -f 20/7/14 19/1/14 25/3/14 -f 18/9/15 17/4/15 23/6/15 -f 21/10/16 20/7/16 26/8/16 -f 30/3/17 25/7/17 29/2/17 -f 28/6/18 23/9/18 27/5/18 -f 26/10/19 25/7/19 31/8/19 -f 24/1/20 23/9/20 29/2/20 -f 33/6/21 28/9/21 32/5/21 -f 36/8/22 31/10/22 35/3/22 -f 34/2/23 29/1/23 33/6/23 -f 30/7/24 29/1/24 35/3/24 -f 36/10/25 35/7/25 41/8/25 -f 34/1/26 33/9/26 39/2/26 -f 40/3/27 35/7/27 39/2/27 -f 33/9/28 32/4/28 38/6/28 -f 40/7/37 39/1/37 4/3/37 -f 38/9/38 37/4/38 2/6/38 -f 41/10/39 40/7/39 5/8/39 -f 3/2/40 39/1/40 2/6/40 diff --git a/src/main/resources/assets/hbm/models/mine_he.obj b/src/main/resources/assets/hbm/models/mine_he.obj deleted file mode 100644 index d26f0d488..000000000 --- a/src/main/resources/assets/hbm/models/mine_he.obj +++ /dev/null @@ -1,376 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'mine_he.blend' -# www.blender.org -o Cylinder -v 0.000000 0.000000 -0.250000 -v 0.000000 0.125000 -0.250000 -v 0.125000 0.000000 -0.216506 -v 0.125000 0.125000 -0.216506 -v 0.216506 0.000000 -0.125000 -v 0.216506 0.125000 -0.125000 -v 0.250000 0.000000 0.000000 -v 0.250000 0.125000 0.000000 -v 0.216506 0.000000 0.125000 -v 0.216506 0.125000 0.125000 -v 0.125000 0.000000 0.216506 -v 0.125000 0.125000 0.216506 -v 0.000000 0.000000 0.250000 -v 0.000000 0.125000 0.250000 -v -0.125000 0.000000 0.216506 -v -0.125000 0.125000 0.216506 -v -0.216506 0.000000 0.125000 -v -0.216506 0.125000 0.125000 -v -0.250000 0.000000 0.000000 -v -0.250000 0.125000 0.000000 -v -0.216506 0.000000 -0.125000 -v -0.216506 0.125000 -0.125000 -v -0.125000 0.000000 -0.216506 -v -0.125000 0.125000 -0.216506 -v 0.100000 0.125000 -0.173205 -v -0.000000 0.125000 -0.200000 -v 0.173205 0.125000 -0.100000 -v 0.200000 0.125000 0.000000 -v 0.173205 0.125000 0.100000 -v 0.100000 0.125000 0.173205 -v 0.000000 0.125000 0.200000 -v -0.100000 0.125000 0.173205 -v -0.173205 0.125000 0.100000 -v -0.200000 0.125000 0.000000 -v -0.173205 0.125000 -0.100000 -v -0.100000 0.125000 -0.173205 -v 0.100000 0.110000 -0.173205 -v -0.000000 0.110000 -0.200000 -v 0.173205 0.110000 -0.100000 -v 0.200000 0.110000 0.000000 -v 0.173205 0.110000 0.100000 -v 0.100000 0.110000 0.173205 -v 0.000000 0.110000 0.200000 -v -0.100000 0.110000 0.173205 -v -0.173205 0.110000 0.100000 -v -0.200000 0.110000 0.000000 -v -0.173205 0.110000 -0.100000 -v -0.100000 0.110000 -0.173205 -v 0.070000 0.110000 -0.121244 -v -0.000000 0.110000 -0.140000 -v 0.121244 0.110000 -0.070000 -v 0.140000 0.110000 0.000000 -v 0.121244 0.110000 0.070000 -v 0.070000 0.110000 0.121244 -v 0.000000 0.110000 0.140000 -v -0.070000 0.110000 0.121244 -v -0.121244 0.110000 0.070000 -v -0.140000 0.110000 0.000000 -v -0.121244 0.110000 -0.070000 -v -0.070000 0.110000 -0.121244 -v 0.070000 0.125000 -0.121244 -v -0.000000 0.125000 -0.140000 -v 0.121244 0.125000 -0.070000 -v 0.140000 0.125000 0.000000 -v 0.121244 0.125000 0.070000 -v 0.070000 0.125000 0.121244 -v 0.000000 0.125000 0.140000 -v -0.070000 0.125000 0.121244 -v -0.121244 0.125000 0.070000 -v -0.140000 0.125000 0.000000 -v -0.121244 0.125000 -0.070000 -v -0.070000 0.125000 -0.121244 -v 0.035000 0.125000 -0.060622 -v -0.000000 0.125000 -0.070000 -v 0.060622 0.125000 -0.035000 -v 0.070000 0.125000 0.000000 -v 0.060622 0.125000 0.035000 -v 0.035000 0.125000 0.060622 -v 0.000000 0.125000 0.070000 -v -0.035000 0.125000 0.060622 -v -0.060622 0.125000 0.035000 -v -0.070000 0.125000 0.000000 -v -0.060622 0.125000 -0.035000 -v -0.035000 0.125000 -0.060622 -v 0.021000 0.150000 -0.036373 -v -0.000000 0.150000 -0.042000 -v 0.036373 0.150000 -0.021000 -v 0.042000 0.150000 0.000000 -v 0.036373 0.150000 0.021000 -v 0.021000 0.150000 0.036373 -v 0.000000 0.150000 0.042000 -v -0.021000 0.150000 0.036373 -v -0.036373 0.150000 0.021000 -v -0.042000 0.150000 0.000000 -v -0.036373 0.150000 -0.021000 -v -0.021000 0.150000 -0.036373 -vt 0.960752 0.210383 -vt 0.779713 0.210383 -vt 0.779713 0.035513 -vt 0.942646 0.277949 -vt 0.694075 0.517821 -vt 0.018428 0.336781 -vt 0.265732 0.089478 -vt 0.942648 0.298932 -vt 0.797817 0.298932 -vt 0.797814 0.277947 -vt 0.920923 0.380009 -vt 0.819542 0.380009 -vt 0.920923 0.400994 -vt 0.819542 0.400994 -vt 0.895578 0.495584 -vt 0.844887 0.495584 -vt 0.762072 0.729031 -vt 0.791336 0.772633 -vt 0.769830 0.794139 -vt 0.761958 0.823517 -vt 0.879471 0.823517 -vt 0.850093 0.874402 -vt 0.915201 0.764875 -vt 0.871599 0.794139 -vt 0.850093 0.772633 -vt 0.879357 0.918004 -vt 0.871599 0.852895 -vt 0.709566 0.819974 -vt 0.722685 0.771011 -vt 0.873221 0.725488 -vt 0.820715 0.764761 -vt 0.931864 0.827060 -vt 0.918744 0.876024 -vt 0.709566 0.827060 -vt 0.769830 0.852895 -vt 0.768208 0.921547 -vt 0.791336 0.874402 -vt 0.820715 0.882274 -vt 0.817172 0.712368 -vt 0.918744 0.771011 -vt 0.931864 0.819974 -vt 0.762072 0.918004 -vt 0.726228 0.882160 -vt 0.824257 0.934666 -vt 0.960752 0.035512 -vt 0.446771 0.089478 -vt 0.603555 0.179997 -vt 0.694075 0.336782 -vt 0.603555 0.674605 -vt 0.446771 0.765124 -vt 0.265732 0.765124 -vt 0.108948 0.674605 -vt 0.018428 0.517820 -vt 0.108948 0.179997 -vt 0.726228 0.764875 -vt 0.879357 0.729031 -vt 0.915201 0.882160 -vt 0.824257 0.712368 -vt 0.722685 0.876024 -vt 0.817172 0.934666 -vt 0.768208 0.725488 -vt 0.873221 0.921547 -vn 0.258800 0.000000 -0.965900 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn -0.965900 0.000000 -0.258800 -vn 0.000000 1.000000 0.000000 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn -0.655700 0.734300 0.175700 -vn 0.175700 0.734300 0.655700 -vn 0.655700 0.734300 -0.175700 -vn -0.655700 0.734300 -0.175700 -vn -0.175700 0.734300 0.655700 -vn 0.655700 0.734300 0.175700 -vn -0.480000 0.734300 -0.480000 -vn 0.175700 0.734300 -0.655700 -vn -0.480000 0.734300 0.480000 -vn 0.480000 0.734300 0.480000 -vn -0.175700 0.734300 -0.655700 -vn 0.480000 0.734300 -0.480000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/1/2 6/2/2 5/3/2 -f 6/1/3 8/2/3 7/3/3 -f 8/1/4 10/2/4 9/3/4 -f 10/1/5 12/2/5 11/3/5 -f 12/1/6 14/2/6 13/3/6 -f 14/1/7 16/2/7 15/3/7 -f 16/1/8 18/2/8 17/3/8 -f 18/1/9 20/2/9 19/3/9 -f 20/1/10 22/2/10 21/3/10 -f 10/2/11 8/1/11 28/4/11 -f 24/1/12 2/2/12 1/3/12 -f 22/1/13 24/2/13 23/3/13 -f 7/5/14 19/6/14 23/7/14 -f 27/4/9 39/8/9 40/9/9 -f 24/1/11 36/4/11 26/10/11 -f 2/1/11 26/4/11 25/10/11 -f 8/2/11 6/1/11 27/4/11 -f 22/1/11 35/4/11 36/10/11 -f 4/1/11 25/4/11 27/10/11 -f 20/1/11 34/4/11 35/10/11 -f 18/1/11 33/4/11 34/10/11 -f 16/1/11 32/4/11 33/10/11 -f 14/1/11 31/4/11 32/10/11 -f 14/2/11 12/1/11 30/4/11 -f 12/2/11 10/1/11 29/4/11 -f 39/8/11 51/11/11 52/12/11 -f 34/4/4 46/8/4 47/9/4 -f 31/4/1 43/8/1 44/9/1 -f 28/4/10 40/8/10 41/9/10 -f 35/4/5 47/8/5 48/9/5 -f 26/4/7 38/8/7 37/9/7 -f 32/4/2 44/8/2 45/9/2 -f 29/4/13 41/8/13 42/9/13 -f 36/4/6 48/8/6 38/9/6 -f 25/4/8 37/8/8 39/9/8 -f 33/4/3 45/8/3 46/9/3 -f 30/4/12 42/8/12 43/9/12 -f 54/11/6 66/13/6 67/14/6 -f 46/8/11 58/11/11 59/12/11 -f 43/8/11 55/11/11 56/12/11 -f 40/8/11 52/11/11 53/12/11 -f 47/8/11 59/11/11 60/12/11 -f 37/9/11 38/8/11 50/11/11 -f 44/8/11 56/11/11 57/12/11 -f 42/9/11 41/8/11 53/11/11 -f 38/9/11 48/8/11 60/11/11 -f 37/8/11 49/11/11 51/12/11 -f 45/8/11 57/11/11 58/12/11 -f 42/8/11 54/11/11 55/12/11 -f 66/13/11 78/15/11 79/16/11 -f 51/11/3 63/13/3 64/14/3 -f 58/11/10 70/13/10 71/14/10 -f 55/11/7 67/13/7 68/14/7 -f 52/11/4 64/13/4 65/14/4 -f 59/11/13 71/13/13 72/14/13 -f 50/11/1 62/13/1 61/14/1 -f 56/11/8 68/13/8 69/14/8 -f 53/11/5 65/13/5 66/14/5 -f 60/11/12 72/13/12 62/14/12 -f 49/11/2 61/13/2 63/14/2 -f 57/11/9 69/13/9 70/14/9 -f 81/17/15 93/18/15 94/19/15 -f 63/13/11 75/15/11 76/16/11 -f 70/13/11 82/15/11 83/16/11 -f 67/13/11 79/15/11 80/16/11 -f 64/13/11 76/15/11 77/16/11 -f 71/13/11 83/15/11 84/16/11 -f 62/13/11 74/15/11 73/16/11 -f 68/13/11 80/15/11 81/16/11 -f 66/14/11 65/13/11 77/15/11 -f 62/14/11 72/13/11 84/15/11 -f 61/13/11 73/15/11 75/16/11 -f 69/13/11 81/15/11 82/16/11 -f 95/20/11 89/21/11 87/22/11 -f 78/23/16 90/24/16 91/25/16 -f 75/26/17 87/22/17 88/27/17 -f 83/28/18 82/29/18 94/19/18 -f 79/30/19 91/25/19 92/31/19 -f 77/32/20 76/33/20 88/27/20 -f 83/34/21 95/20/21 96/35/21 -f 74/36/22 86/37/22 85/38/22 -f 80/39/23 92/31/23 93/18/23 -f 78/40/24 77/41/24 89/21/24 -f 74/42/25 84/43/25 96/35/25 -f 73/44/26 85/38/26 87/22/26 -f 1/45/1 2/1/1 3/3/1 -f 3/45/2 4/1/2 5/3/2 -f 5/45/3 6/1/3 7/3/3 -f 7/45/4 8/1/4 9/3/4 -f 9/45/5 10/1/5 11/3/5 -f 11/45/6 12/1/6 13/3/6 -f 13/45/7 14/1/7 15/3/7 -f 15/45/8 16/1/8 17/3/8 -f 17/45/9 18/1/9 19/3/9 -f 19/45/10 20/1/10 21/3/10 -f 29/10/11 10/2/11 28/4/11 -f 23/45/12 24/1/12 1/3/12 -f 21/45/13 22/1/13 23/3/13 -f 23/7/14 1/46/14 3/47/14 -f 3/47/14 5/48/14 7/5/14 -f 7/5/14 9/49/14 11/50/14 -f 11/50/14 13/51/14 15/52/14 -f 15/52/14 17/53/14 19/6/14 -f 19/6/14 21/54/14 23/7/14 -f 23/7/14 3/47/14 7/5/14 -f 7/5/14 11/50/14 15/52/14 -f 15/52/14 19/6/14 7/5/14 -f 28/10/9 27/4/9 40/9/9 -f 2/2/11 24/1/11 26/10/11 -f 4/2/11 2/1/11 25/10/11 -f 28/10/11 8/2/11 27/4/11 -f 24/2/11 22/1/11 36/10/11 -f 6/2/11 4/1/11 27/10/11 -f 22/2/11 20/1/11 35/10/11 -f 20/2/11 18/1/11 34/10/11 -f 18/2/11 16/1/11 33/10/11 -f 16/2/11 14/1/11 32/10/11 -f 31/10/11 14/2/11 30/4/11 -f 30/10/11 12/2/11 29/4/11 -f 40/9/11 39/8/11 52/12/11 -f 35/10/4 34/4/4 47/9/4 -f 32/10/1 31/4/1 44/9/1 -f 29/10/10 28/4/10 41/9/10 -f 36/10/5 35/4/5 48/9/5 -f 25/10/7 26/4/7 37/9/7 -f 33/10/2 32/4/2 45/9/2 -f 30/10/13 29/4/13 42/9/13 -f 26/10/6 36/4/6 38/9/6 -f 27/10/8 25/4/8 39/9/8 -f 34/10/3 33/4/3 46/9/3 -f 31/10/12 30/4/12 43/9/12 -f 55/12/6 54/11/6 67/14/6 -f 47/9/11 46/8/11 59/12/11 -f 44/9/11 43/8/11 56/12/11 -f 41/9/11 40/8/11 53/12/11 -f 48/9/11 47/8/11 60/12/11 -f 49/12/11 37/9/11 50/11/11 -f 45/9/11 44/8/11 57/12/11 -f 54/12/11 42/9/11 53/11/11 -f 50/12/11 38/9/11 60/11/11 -f 39/9/11 37/8/11 51/12/11 -f 46/9/11 45/8/11 58/12/11 -f 43/9/11 42/8/11 55/12/11 -f 67/14/11 66/13/11 79/16/11 -f 52/12/3 51/11/3 64/14/3 -f 59/12/10 58/11/10 71/14/10 -f 56/12/7 55/11/7 68/14/7 -f 53/12/4 52/11/4 65/14/4 -f 60/12/13 59/11/13 72/14/13 -f 49/12/1 50/11/1 61/14/1 -f 57/12/8 56/11/8 69/14/8 -f 54/12/5 53/11/5 66/14/5 -f 50/12/12 60/11/12 62/14/12 -f 51/12/2 49/11/2 63/14/2 -f 58/12/9 57/11/9 70/14/9 -f 82/55/15 81/17/15 94/19/15 -f 64/14/11 63/13/11 76/16/11 -f 71/14/11 70/13/11 83/16/11 -f 68/14/11 67/13/11 80/16/11 -f 65/14/11 64/13/11 77/16/11 -f 72/14/11 71/13/11 84/16/11 -f 61/14/11 62/13/11 73/16/11 -f 69/14/11 68/13/11 81/16/11 -f 78/16/11 66/14/11 77/15/11 -f 74/16/11 62/14/11 84/15/11 -f 63/14/11 61/13/11 75/16/11 -f 70/14/11 69/13/11 82/16/11 -f 87/22/11 85/38/11 95/20/11 -f 86/37/11 96/35/11 95/20/11 -f 95/20/11 94/19/11 93/18/11 -f 93/18/11 92/31/11 95/20/11 -f 91/25/11 90/24/11 89/21/11 -f 89/21/11 88/27/11 87/22/11 -f 85/38/11 86/37/11 95/20/11 -f 95/20/11 92/31/11 91/25/11 -f 91/25/11 89/21/11 95/20/11 -f 79/56/16 78/23/16 91/25/16 -f 76/57/17 75/26/17 88/27/17 -f 95/20/18 83/28/18 94/19/18 -f 80/58/19 79/30/19 92/31/19 -f 89/21/20 77/32/20 88/27/20 -f 84/59/21 83/34/21 96/35/21 -f 73/60/22 74/36/22 85/38/22 -f 81/61/23 80/39/23 93/18/23 -f 90/24/24 78/40/24 89/21/24 -f 86/37/25 74/42/25 96/35/25 -f 75/62/26 73/44/26 87/22/26 diff --git a/src/main/resources/assets/hbm/models/weapons/animations/lag.json b/src/main/resources/assets/hbm/models/weapons/animations/lag.json new file mode 100644 index 000000000..332c4fb73 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/animations/lag.json @@ -0,0 +1 @@ +{"anim": {"Dryfire": {"Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [0.07023310661315918, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.07023310661315918, "AUTO_CLAMPED", 777.7777989705403, 0.07023310661315918, "AUTO_CLAMPED"], [0.07023310661315918, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, 0.07023310661315918, "AUTO_CLAMPED", 850.0, 0.07023310661315918, "AUTO_CLAMPED"], [-0.005564689636230469, 150.0, "BEZIER", "AUTO", 900.0, -0.005564689636230469, "AUTO_CLAMPED", 977.7777989705404, -0.005564689636230469, "AUTO_CLAMPED"], [0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, 0.0, "AUTO_CLAMPED", 1061.1111323038738, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, -0.0, "AUTO_CLAMPED"], [-0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, -0.0, "AUTO_CLAMPED", 644.444465637207, -0.0, "AUTO_CLAMPED"], [-0.0, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, -0.0, "AUTO_CLAMPED", 777.7777989705403, -0.0, "AUTO_CLAMPED"], [-0.0, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, -0.0, "AUTO_CLAMPED", 850.0, -0.0, "AUTO_CLAMPED"], [-0.0, 150.0, "BEZIER", "AUTO", 900.0, -0.0, "AUTO_CLAMPED", 977.7777989705404, -0.0, "AUTO_CLAMPED"], [-0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, -0.0, "AUTO_CLAMPED", 1061.1111323038738, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [0.17485475540161133, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.17485475540161133, "AUTO_CLAMPED", 777.7777989705403, 0.17485475540161133, "AUTO_CLAMPED"], [0.17485475540161133, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, 0.17485475540161133, "AUTO_CLAMPED", 850.0, 0.17485475540161133, "AUTO_CLAMPED"], [-0.016497015953063965, 150.0, "BEZIER", "AUTO", 900.0, -0.016497015953063965, "AUTO_CLAMPED", 977.7777989705404, -0.016497015953063965, "AUTO_CLAMPED"], [0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, 0.0, "AUTO_CLAMPED", 1061.1111323038738, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 172.22221692403158, 0.0, "AUTO_CLAMPED"], [0.0, 516.6666666666666, "BEZIER", "AUTO", 344.44446563720703, 0.0, "AUTO_CLAMPED", 583.3333333333334, 0.0, "AUTO_CLAMPED"], [-2.1999998762362876, 200.0, "BEZIER", "AUTO", 650.0, -2.1999998762362876, "AUTO_CLAMPED", 744.444465637207, -2.1999998762362876, "AUTO_CLAMPED"], [-2.1999998762362876, 83.33333333333337, "BEZIER", "AUTO", 772.2222010294596, -2.1999998762362876, "AUTO_CLAMPED", 877.7777989705403, -2.1999998762362876, "AUTO_CLAMPED"], [0.0, 233.33333333333326, "BEZIER", "AUTO", 955.555534362793, 0.0, "AUTO_CLAMPED", 1111.111068725586, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [-2.575079927950949, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, -2.575079927950949, "AUTO_CLAMPED", 777.7777989705403, -2.575079927950949, "AUTO_CLAMPED"], [-2.575079927950949, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, -2.575079927950949, "AUTO_CLAMPED", 850.0, -2.575079927950949, "AUTO_CLAMPED"], [0.2377203317919303, 150.0, "BEZIER", "AUTO", 900.0, 0.2377203317919303, "AUTO_CLAMPED", 977.7777989705404, 0.2377203317919303, "AUTO_CLAMPED"], [-0.0, 83.33333333333326, "BEZIER", "AUTO", 1005.5555343627929, -0.0, "AUTO_CLAMPED", 1061.1111323038738, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 194.44444974263507, 0.0, "AUTO_CLAMPED"], [0.0, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, 0.0, "AUTO_CLAMPED", 644.444465637207, 0.0, "AUTO_CLAMPED"], [0.0, 183.33333333333326, "BEZIER", "AUTO", 705.555534362793, 0.0, "AUTO_CLAMPED", 777.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 33.33333333333337, "BEZIER", "AUTO", 788.8888676961263, 0.0, "AUTO_CLAMPED", 877.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 233.33333333333326, "BEZIER", "AUTO", 955.555534362793, 0.0, "AUTO_CLAMPED", 1111.111068725586, 0.0, "AUTO_CLAMPED"]]}}, "Hammer": {"location": {"x": [[3.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.125, "AUTO_CLAMPED"]], "z": [[1.862645149230957e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.862645149230957e-08, "AUTO_CLAMPED"]], "y": [[0.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.125, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [25.00000012650595, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 25.00000012650595, "AUTO_CLAMPED", 216.66666666666669, 25.00000012650595, "AUTO_CLAMPED"], [25.00000012650595, 550.0, "BEZIER", "AUTO", 400.0, 25.00000012650595, "AUTO_CLAMPED", 627.7777989705403, 25.00000012650595, "AUTO_CLAMPED"], [-60.000001669652114, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, -60.000001669652114, "AUTO_CLAMPED", 733.3333333333333, -60.000001669652114, "AUTO_CLAMPED"], [-60.000001669652114, 50.0, "BEZIER", "AUTO", 750.0, -60.000001669652114, "AUTO_CLAMPED", 783.3333333333334, -60.000001669652114, "AUTO_CLAMPED"], [-0.0, 50.0, "BEZIER", "AUTO", 800.0, -0.0, "AUTO_CLAMPED", 833.3333333333334, -0.0, "AUTO_CLAMPED"]], "x": [[0.0, 583.3333333333334, "BEZIER", "AUTO", 627.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 0.0, "AUTO_CLAMPED", 733.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 750.0, 0.0, "AUTO_CLAMPED", 783.3333333333334, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 583.3333333333334, "BEZIER", "AUTO", 627.7777989705403, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 672.2222010294596, 0.0, "AUTO_CLAMPED", 733.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 750.0, 0.0, "AUTO_CLAMPED", 783.3333333333334, 0.0, "AUTO_CLAMPED"]]}}}, "Firing": {"Bullet": {"location": {"x": [[1.59375, 0.0, "BEZIER", "AUTO", 11.111111442248026, 1.59375, "AUTO_CLAMPED"], [1.59375, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 1.59375, "AUTO_CLAMPED"], [0.90625, 66.66666666666666, "SINE", "EASE_IN"], [-0.5937501192092896, 100.0, "BEZIER", "AUTO", 233.33333333333334, -0.5937501192092896, "AUTO_CLAMPED"]], "y": [[0.5625, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.5625, "AUTO_CLAMPED"], [0.5625, 33.333333333333336, "QUAD", "AUTO", 22.22222089767456, 0.5625, "AUTO_CLAMPED"], [0.875, 66.66666666666666, "SINE", "AUTO"], [0.9999978542327881, 66.66666666666666, "BEZIER", "AUTO", 188.88888359069824, 0.9999978542327881, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[-19.99999941818584, 0.0, "BEZIER", "AUTO", 11.111111442248026, -19.99999941818584, "AUTO_CLAMPED"], [-19.99999941818584, 33.333333333333336, "QUAD", "AUTO", 22.22222089767456, -19.99999941818584, "AUTO_CLAMPED"], [-7.500000208706514, 66.66666666666666, "SINE", "AUTO"], [-0.0, 66.66666666666666, "BEZIER", "AUTO", 188.88888359069824, -0.0, "AUTO_CLAMPED"]]}}, "Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [0.5237600207328796, 49.99999999999999, "BEZIER", "AUTO", 108.33333333333334, 0.5237600207328796, "ALIGNED"], [0.3084455132484436, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, 0.43553054332733154, "AUTO_CLAMPED", 161.11111640930176, 0.09663715958595276, "AUTO_CLAMPED"], [-0.04659605026245117, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -0.04659605026245117, "AUTO_CLAMPED", 233.33333333333334, -0.04659605026245117, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [-0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, -0.0, "AUTO_CLAMPED"], [6.210800052031118e-08, 49.99999999999999, "BEZIER", "AUTO", 100.0, 6.210800052031118e-08, "AUTO_CLAMPED"], [6.210800052031118e-08, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, 6.210800052031118e-08, "AUTO_CLAMPED", 161.11111640930176, 6.210800052031118e-08, "AUTO_CLAMPED"], [-1.2910305713376147e-08, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -1.2910305713376147e-08, "AUTO_CLAMPED", 233.33333333333334, -1.2910305713376147e-08, "AUTO_CLAMPED"], [-1.063667554035419e-08, 50.0, "BEZIER", "AUTO", 250.0, -1.063667554035419e-08, "AUTO_CLAMPED", 283.3333333333333, -1.063667554035419e-08, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [0.431023508310318, 49.99999999999999, "BEZIER", "AUTO", 108.33333333333334, 0.431023508310318, "ALIGNED"], [0.2511425018310547, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, 0.3581860363483429, "AUTO_CLAMPED", 161.11111640930176, 0.07273662090301514, "AUTO_CLAMPED"], [-0.05201435089111328, 83.33333333333334, "BEZIER", "AUTO", 188.88888359069824, -0.05201435089111328, "AUTO_CLAMPED", 233.33333333333334, -0.05201435089111328, "AUTO_CLAMPED"], [0.0, 50.0, "BEZIER", "AUTO", 250.0, 0.0, "AUTO_CLAMPED", 283.3333333333333, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [-2.49999992727323, 49.99999999999999, "BEZIER", "AUTO", 100.0, -2.49999992727323, "AUTO_CLAMPED"], [-1.2580600137440534, 50.000000000000014, "BEZIER", "AUTO", 116.67113304138184, -4.465294226503781, "ALIGNED", 161.0812822977702, 4.083021345262861, "ALIGNED"], [1.3109028394749147, 83.33333333333334, "BACK", "EASE_OUT", 188.88888359069824, 1.3109028394749147, "ALIGNED", 3.6015799045562744], [-0.0, 216.66666666666669, "BEZIER", "AUTO", 505.5555661519369, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "QUAD", "EASE_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED"], [0.6000007957649733, 49.99999999999999, "BEZIER", "AUTO", 100.0, 0.6000007957649733, "AUTO_CLAMPED"], [-0.4999999961268166, 50.000000000000014, "BEZIER", "AUTO", 116.66666666666667, -0.4999999961268166, "AUTO_CLAMPED", 233.33333333333334, -0.4999999961268166, "AUTO_CLAMPED"], [0.0, 300.0, "BEZIER", "AUTO", 333.3333333333333, 0.0, "AUTO_CLAMPED", 533.3333333333334, 0.0, "AUTO_CLAMPED"]]}}, "Hammer": {"rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 44.444445768992104, -0.0, "ALIGNED"], [25.00000012650595, 33.333333333333336, "BEZIER", "AUTO", 22.22222089767456, 25.00000012650595, "AUTO_CLAMPED", 55.55555820465088, 25.00000012650595, "AUTO_CLAMPED"], [-45.00000125223908, 66.66666666666666, "BEZIER", "AUTO", 77.77777512868245, -45.00000125223908, "AUTO_CLAMPED", 133.33333333333334, -45.00000125223908, "AUTO_CLAMPED"], [-0.0, 100.0, "BEZIER", "AUTO", 166.66666666666666, -0.0, "AUTO_CLAMPED", 233.33333333333334, -0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[3.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.125, "AUTO_CLAMPED"]], "z": [[1.862645149230957e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.862645149230957e-08, "AUTO_CLAMPED"]], "y": [[0.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.125, "AUTO_CLAMPED"]]}}, "Slide": {"location": {"x": [[-3.25, 0.0, "SINE", "EASE_OUT"], [-3.25, 33.333333333333336, "QUAD", "EASE_OUT"], [-1.75, 66.66666666666666, "SINE", "EASE_IN"], [-3.25, 100.0, "SINE", "EASE_OUT"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, -0.0, "AUTO_CLAMPED"]], "y": [[0.75, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.75, "AUTO_CLAMPED"]]}}}, "Inspect": {"Bullet": {"location": {"x": [[1.59375, 0.0, "CONSTANT", "AUTO"], [-0.59375, 16.666666666666668, "BEZIER", "AUTO", 944.4444656372069, -0.59375, "AUTO_CLAMPED"], [-0.59375, 2783.3333333333335, "BEZIER", "AUTO", 1872.2221374511719, -0.59375, "AUTO_CLAMPED", 3727.777862548828, -0.59375, "AUTO_CLAMPED"]], "y": [[0.5625, 0.0, "CONSTANT", "AUTO"], [1.0, 16.666666666666668, "BEZIER", "AUTO", 944.4444656372069, 1.0, "AUTO_CLAMPED"], [1.0, 2783.3333333333335, "BEZIER", "AUTO", 1872.2221374511719, 1.0, "AUTO_CLAMPED", 3727.777862548828, 1.0, "AUTO_CLAMPED"]]}}, "Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN", 22.22222089767456, 0.0, "AUTO_CLAMPED", 116.66666666666667, 0.0, "AUTO_CLAMPED"], [-1.71687650680542, 249.99999999999997, "BEZIER", "AUTO", 200.0, -1.71687650680542, "AUTO_CLAMPED", 383.3333333333333, -1.71687650680542, "AUTO_CLAMPED"], [0.5513148307800293, 300.00000000000006, "BEZIER", "AUTO", 483.3333333333333, -0.29949963092803955, "AUTO_CLAMPED", 683.3333333333334, 1.4021292924880981, "AUTO_CLAMPED"], [1.6863813400268555, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 1.6863813400268555, "AUTO_CLAMPED", 1322.2222646077473, 1.6863813400268555, "AUTO_CLAMPED"], [1.0514655113220215, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, 1.6863813400268555, "AUTO_CLAMPED", 2344.4445292154946, 0.8425058722496033, "AUTO_CLAMPED"], [-1.970992922782898, 433.3333333333335, "BEZIER", "AUTO", 2488.8888041178384, -1.970992922782898, "AUTO_CLAMPED", 2688.8888041178384, -1.970992922782898, "AUTO_CLAMPED"], [0.0, 166.66666666666652, "BEZIER", "EASE_IN", 2744.4445292154946, 0.0, "AUTO_CLAMPED", 2855.555470784505, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, -0.0, "AUTO_CLAMPED"], [-0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, -0.0, "AUTO_CLAMPED", 116.66666666666667, -0.0, "AUTO_CLAMPED"], [2.112370729446411, 249.99999999999997, "BEZIER", "AUTO", 200.0, 1.0917030572891235, "AUTO_CLAMPED", 361.11110051472986, 3.0649938583374023, "AUTO_CLAMPED"], [3.955737590789795, 233.33333333333331, "BEZIER", "AUTO", 438.88889948527014, 3.955737590789795, "AUTO_CLAMPED", 538.8888676961263, 3.955737590789795, "AUTO_CLAMPED"], [3.7618730068206787, 66.66666666666674, "BEZIER", "AUTO", 561.1111323038737, 3.8623299598693848, "AUTO_CLAMPED", 683.3333333333334, 3.309816360473633, "AUTO_CLAMPED"], [2.715005397796631, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 2.715005397796631, "AUTO_CLAMPED", 1322.2222646077473, 2.715005397796631, "AUTO_CLAMPED"], [4.174439907073975, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, 2.715005397796631, "AUTO_CLAMPED", 2277.777862548828, 4.433073997497559, "AUTO_CLAMPED"], [5.207278251647949, 233.33333333333303, "BEZIER", "AUTO", 2355.555470784505, 5.207278251647949, "AUTO_CLAMPED", 2555.5554707845054, 5.207278251647949, "AUTO_CLAMPED"], [-0.0, 366.66666666666697, "BEZIER", "EASE_IN_OUT", 2677.777862548828, -0.0, "AUTO_CLAMPED", 2922.222137451172, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [0.9560011625289917, 550.0, "BEZIER", "AUTO", 400.0, 0.6512281894683838, "AUTO_CLAMPED", 683.3333333333334, 1.1222410202026367, "AUTO_CLAMPED"], [1.235924243927002, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 1.1854032278060913, "AUTO_CLAMPED", 1072.2222646077473, 1.331352949142456, "AUTO_CLAMPED"], [1.3816792964935303, 566.6666666666667, "BEZIER", "AUTO", 1261.111068725586, 1.3816792964935303, "AUTO_CLAMPED", 1700.0, 1.3816792964935303, "AUTO_CLAMPED"], [0.991679310798645, 750.0, "BEZIER", "AUTO", 1950.0, 0.991679310798645, "AUTO_CLAMPED", 2277.777862548828, 0.991679310798645, "AUTO_CLAMPED"], [0.991679310798645, 233.33333333333303, "BEZIER", "AUTO", 2355.555470784505, 0.991679310798645, "AUTO_CLAMPED", 2555.5554707845054, 0.991679310798645, "AUTO_CLAMPED"], [0.0, 366.66666666666697, "BEZIER", "EASE_IN_OUT", 2677.777862548828, 0.0, "AUTO_CLAMPED", 2922.222137451172, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [5.020503228661193, 550.0, "BEZIER", "AUTO", 400.0, 3.059422302374893, "AUTO_CLAMPED", 683.3333333333334, 6.090183850331944, "AUTO_CLAMPED"], [7.589897451014929, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 6.833084743334013, "AUTO_CLAMPED", 1322.2222646077473, 10.911463694395382, "AUTO_CLAMPED"], [14.500997041935651, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, 14.500997041935651, "AUTO_CLAMPED", 2238.8888041178384, 14.500997041935651, "AUTO_CLAMPED"], [14.500997041935651, 116.66666666666652, "BEZIER", "AUTO", 2277.777862548828, 14.500997041935651, "AUTO_CLAMPED", 2477.777862548828, 14.500997041935651, "AUTO_CLAMPED"], [0.0, 483.3333333333335, "BEZIER", "EASE_IN_OUT", 2638.888804117839, 0.0, "AUTO_CLAMPED", 2961.1111958821616, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [-2.5185520017194545, 550.0, "BEZIER", "AUTO", 400.0, -1.7974633178318207, "AUTO_CLAMPED", 683.3333333333334, -2.9118731408296927, "AUTO_CLAMPED"], [-2.9849506154201286, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, -2.9849506154201286, "AUTO_CLAMPED", 1322.2222646077473, -2.9849506154201286, "AUTO_CLAMPED"], [-2.6852116056755273, 1316.6666666666667, "BEZIER", "AUTO", 1761.111068725586, -2.6852116056755273, "AUTO_CLAMPED", 2238.8888041178384, -2.6852116056755273, "AUTO_CLAMPED"], [-2.6852116056755273, 116.66666666666652, "BEZIER", "AUTO", 2277.777862548828, -2.6852116056755273, "AUTO_CLAMPED", 2477.777862548828, -2.6852116056755273, "AUTO_CLAMPED"], [0.0, 483.3333333333335, "BEZIER", "EASE_IN_OUT", 2638.888804117839, 0.0, "AUTO_CLAMPED", 2961.1111958821616, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 11.111111442248026, 0.0, "AUTO_CLAMPED"], [0.0, 33.333333333333336, "BEZIER", "EASE_IN_OUT", 22.22222089767456, 0.0, "AUTO_CLAMPED", 216.66666666666669, 0.0, "AUTO_CLAMPED"], [133.86457701475643, 550.0, "BEZIER", "AUTO", 400.0, 95.5376944872819, "AUTO_CLAMPED", 683.3333333333334, 154.77014681876466, "AUTO_CLAMPED"], [158.65432513558918, 299.9999999999999, "BEZIER", "AUTO", 783.3333333333334, 158.65432513558918, "AUTO_CLAMPED", 983.3333333333333, 158.65432513558918, "AUTO_CLAMPED"], [157.74876499505052, 300.0, "BEZIER", "AUTO", 1083.3333333333333, 158.02887105291276, "AUTO_CLAMPED", 1333.3333333333333, 157.32859907806804, "AUTO_CLAMPED"], [157.32859907806804, 450.0, "BEZIER", "AUTO", 1483.3333333333335, 157.32859907806804, "AUTO_CLAMPED", 1822.2222646077473, 157.32859907806804, "AUTO_CLAMPED"], [155.08037401086662, 566.6666666666667, "BEZIER", "AUTO", 2011.1110687255857, 157.32859907806804, "AUTO_CLAMPED", 2277.777862548828, 154.1546374915198, "AUTO_CLAMPED"], [108.19301732112919, 233.33333333333303, "BEZIER", "AUTO", 2355.555470784505, 135.62436159403188, "AUTO_CLAMPED", 2555.5554707845054, 65.08662112947903, "AUTO_CLAMPED"], [0.0, 366.66666666666697, "BEZIER", "EASE_IN_OUT", 2677.777862548828, 0.0, "AUTO_CLAMPED", 2922.222137451172, 0.0, "AUTO_CLAMPED"]]}}}, "Jam": {"Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [0.7684813737869263, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.07987856864929199, 300.0, "SINE", "AUTO"], [-0.07659769058227539, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -0.07659769058227539, "AUTO_CLAMPED"], [-0.07659769058227539, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -0.07659769058227539, "AUTO_CLAMPED"], [0.34417805075645447, 200.0, "QUAD", "EASE_IN"], [0.27417799830436707, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, 0.27417799830436707, "AUTO_CLAMPED"], [0.27417805790901184, 50.0, "QUAD", "EASE_IN", 1750.0, 0.27417805790901184, "AUTO_CLAMPED"], [-0.016215801239013672, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, -0.0, "AUTO_CLAMPED"], [-0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, -0.0, "AUTO_CLAMPED"], [-0.172386035323143, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.04781261831521988, 183.33333333333331, "BEZIER", "AUTO", 522.2222328186035, -0.04781261831521988, "AUTO_CLAMPED"], [-0.04781261831521988, 116.66666666666669, "SINE", "AUTO", 561.1111323038737, -0.04781261831521988, "AUTO_CLAMPED"], [-0.25952833890914917, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -0.25952833890914917, "AUTO_CLAMPED"], [-0.25952833890914917, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -0.25952833890914917, "AUTO_CLAMPED"], [-1.6563783884048462, 200.0, "QUAD", "EASE_IN"], [-0.9063783884048462, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -0.9063783884048462, "AUTO_CLAMPED"], [-0.9063783884048462, 50.0, "QUAD", "EASE_IN", 1750.0, -0.9063783884048462, "AUTO_CLAMPED"], [-0.19053393602371216, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [-0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [1.9825199842453003, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [0.699442982673645, 300.0, "SINE", "AUTO"], [0.6867120265960693, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, 0.6867120265960693, "AUTO_CLAMPED"], [0.6867120265960693, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, 0.6867120265960693, "AUTO_CLAMPED"], [0.8148880004882812, 200.0, "QUAD", "EASE_IN"], [1.2448880672454834, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, 1.2448880672454834, "AUTO_CLAMPED"], [1.2448880672454834, 50.0, "QUAD", "EASE_IN", 1750.0, 1.2448880672454834, "AUTO_CLAMPED"], [0.44753724336624146, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [-2.9187993795349088, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.4350010878597721, 183.33333333333331, "BEZIER", "AUTO", 522.2222328186035, -0.4350010878597721, "AUTO_CLAMPED"], [-0.4350010878597721, 116.66666666666669, "SINE", "AUTO", 561.1111323038737, -0.4350010878597721, "AUTO_CLAMPED"], [-2.977798553585479, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -2.977798553585479, "AUTO_CLAMPED"], [-2.977798553585479, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -2.977798553585479, "AUTO_CLAMPED"], [-3.8259987654743424, 200.0, "QUAD", "EASE_IN"], [-2.426001230918489, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -2.426001230918489, "AUTO_CLAMPED"], [-2.426001230918489, 50.0, "QUAD", "EASE_IN", 1750.0, -2.426001230918489, "AUTO_CLAMPED"], [-0.46099678784084064, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [-9.06172296242993, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [0.7263285595589442, 300.0, "SINE", "AUTO"], [0.9408103199582433, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, 0.9408103199582433, "AUTO_CLAMPED"], [0.9408103199582433, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, 0.9408103199582433, "AUTO_CLAMPED"], [-1.024439796486114, 200.0, "QUAD", "EASE_IN"], [-7.224439641736934, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -7.224439641736934, "AUTO_CLAMPED"], [-7.224439641736934, 50.0, "QUAD", "EASE_IN", 1750.0, -7.224439641736934, "AUTO_CLAMPED"], [-0.6818431639686808, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 16.666666666666668, 0.0, "AUTO_CLAMPED"], [0.0, 50.0, "QUAD", "EASE_IN_OUT", 33.333333333333336, 0.0, "AUTO_CLAMPED"], [-0.3186239491911578, 250.0, "BACK", "EASE_OUT", 1.7015800476074219], [-0.04786912399892983, 183.33333333333331, "BEZIER", "AUTO", 522.2222328186035, -0.04786912399892983, "AUTO_CLAMPED"], [-0.04786912399892983, 116.66666666666669, "SINE", "AUTO", 561.1111323038737, -0.04786912399892983, "AUTO_CLAMPED"], [-3.0794514052291326, 366.66666666666663, "BEZIER", "AUTO", 1044.444465637207, -3.0794514052291326, "AUTO_CLAMPED"], [-3.0794514052291326, 233.33333333333337, "QUAD", "EASE_OUT", 1122.2222646077473, -3.0794514052291326, "AUTO_CLAMPED"], [-6.585746518014926, 200.0, "QUAD", "EASE_IN"], [-3.3857467562467116, 316.6666666666665, "BEZIER", "AUTO", 1733.3333333333335, -3.3857467562467116, "AUTO_CLAMPED"], [-3.3857467562467116, 50.0, "QUAD", "EASE_IN", 1750.0, -3.3857467562467116, "AUTO_CLAMPED"], [-0.7094660497977991, 166.66666666666674, "BACK", "AUTO", 1.7015800476074219], [0.0, 266.66666666666674, "BEZIER", "EASE_IN_OUT", 2288.8888041178384, 0.0, "AUTO_CLAMPED"]]}}, "Magazine": {"location": {"x": [[2.125, 0.0, "BEZIER", "AUTO", 111.11110846201579, 2.125, "AUTO_CLAMPED"], [2.125, 333.3333333333333, "BEZIER", "EASE_OUT", 222.22223281860352, 2.125, "AUTO_CLAMPED", 400.0, 2.125, "AUTO_CLAMPED"], [3.215369939804077, 200.00000000000006, "BEZIER", "AUTO", 466.6666666666667, 3.0801353454589844, "AUTO_CLAMPED", 588.8888676961262, 3.3280653953552246, "AUTO_CLAMPED"], [3.3280653953552246, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, 3.3280653953552246, "ALIGNED", 811.1111323038737, 3.3280653953552246, "ALIGNED"], [2.663938045501709, 300.0, "CUBIC", "EASE_IN", 900.0, 2.8518593311309814, "AUTO_CLAMPED"], [2.5386571884155273, 200.0, "QUAD", "EASE_IN_OUT"], [3.517561435699463, 500.0, "QUAD", "AUTO"], [3.215369939804077, 116.66666666666674, "BEZIER", "EASE_IN", 1861.111068725586, 2.8700082302093506, "AUTO_CLAMPED"], [2.125, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, 2.125, "AUTO_CLAMPED", 1994.4444020589192, 2.125, "AUTO_CLAMPED"]], "z": [[-2.443810274144198e-07, 0.0, "BEZIER", "AUTO", 194.44444974263507, -2.443810274144198e-07, "AUTO_CLAMPED"], [-2.443810274144198e-07, 583.3333333333334, "BEZIER", "AUTO", 388.8888676961263, -2.443810274144198e-07, "AUTO_CLAMPED", 722.2222010294597, -2.443810274144198e-07, "AUTO_CLAMPED"], [4.639456748962402, 416.66666666666663, "CUBIC", "EASE_IN", 861.1111323038737, 4.639456748962402, "AUTO_CLAMPED"], [1.1628408432006836, 200.0, "QUAD", "EASE_IN_OUT"], [1.921958327293396, 200.0, "QUAD", "AUTO"], [-0.0, 300.0, "QUAD", "EASE_IN_OUT"], [-2.443810274144198e-07, 116.66666666666674, "BEZIER", "AUTO", 1861.111068725586, -2.443810274144198e-07, "AUTO_CLAMPED"], [-2.443810274144198e-07, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, -2.443810274144198e-07, "AUTO_CLAMPED", 1994.4444020589192, -2.443810274144198e-07, "AUTO_CLAMPED"]], "y": [[-1.5, 0.0, "BEZIER", "AUTO", 111.11110846201579, -1.5, "AUTO_CLAMPED"], [-1.5, 333.3333333333333, "BEZIER", "EASE_OUT", 222.22223281860352, -1.5, "AUTO_CLAMPED", 400.0, -1.5, "AUTO_CLAMPED"], [-5.614299774169922, 200.00000000000006, "BEZIER", "AUTO", 466.6666666666667, -5.13734769821167, "AUTO_CLAMPED", 588.8888676961262, -6.0117597579956055, "AUTO_CLAMPED"], [-6.0117597579956055, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, -6.0117597579956055, "ALIGNED", 811.1111323038737, -6.0117597579956055, "ALIGNED"], [-2.2079570293426514, 300.0, "CUBIC", "EASE_IN", 900.0, -2.2079570293426514, "AUTO_CLAMPED"], [-3.1993041038513184, 200.0, "QUAD", "EASE_IN_OUT"], [-6.543550491333008, 500.0, "QUAD", "AUTO"], [-5.614299774169922, 116.66666666666674, "BEZIER", "EASE_IN", 1861.111068725586, -4.5522990226745605, "AUTO_CLAMPED"], [-1.5, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, -1.5, "AUTO_CLAMPED", 1994.4444020589192, -1.5, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED"], [0.0, 533.3333333333334, "BEZIER", "AUTO", 366.6665395100911, 0.0, "ALIGNED", 616.6666666666667, 0.0, "ALIGNED"], [7.889100717796508, 216.66666666666663, "BEZIER", "EASE_IN", 677.7777989705404, 7.889100717796508, "AUTO_CLAMPED", 833.3333333333334, 7.889100717796508, "AUTO_CLAMPED"], [7.889100717796508, 250.0, "CUBIC", "EASE_IN", 916.6666666666666, 7.889100717796508, "AUTO_CLAMPED"], [-9.461601510030203, 200.0, "QUAD", "EASE_IN_OUT"], [0.09899676183016481, 166.66666666666674, "QUAD", "AUTO"], [0.0, 333.33333333333326, "QUAD", "AUTO"], [0.0, 116.66666666666674, "BEZIER", "AUTO", 1861.111068725586, 0.0, "AUTO_CLAMPED"], [0.0, 133.33333333333326, "BEZIER", "AUTO", 1905.5555979410808, 0.0, "AUTO_CLAMPED", 1994.4444020589192, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED"], [-0.0, 533.3333333333334, "BEZIER", "AUTO", 355.55553436279297, -0.0, "AUTO_CLAMPED", 588.8888676961262, -0.0, "AUTO_CLAMPED"], [-0.051977426088786305, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, -0.015593215153433329, "ALIGNED", 811.1111323038737, -0.1429379300817956, "ALIGNED"], [-3.0519773961795793, 300.0, "CUBIC", "EASE_IN", 900.0, -3.0519773961795793, "AUTO_CLAMPED"], [-2.346791954000674, 200.0, "QUAD", "EASE_IN_OUT"], [-3.453324221007995, 166.66666666666674, "QUAD", "AUTO"], [-0.0, 333.33333333333326, "BEZIER", "AUTO", 1783.3333333333333, -0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1866.6666666666667, 0.0, "AUTO_CLAMPED", 2033.3333333333333, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "AUTO", 177.77778307596842, 0.0, "AUTO_CLAMPED"], [0.0, 533.3333333333334, "BEZIER", "AUTO", 355.55553436279297, 0.0, "AUTO_CLAMPED", 588.8888676961262, 0.0, "AUTO_CLAMPED"], [-0.0825022485208741, 166.66666666666663, "BEZIER", "EASE_IN_OUT", 655.555534362793, -0.0825022485208741, "ALIGNED", 811.1111323038737, -0.0825022485208741, "ALIGNED"], [-0.0825022485208741, 300.0, "CUBIC", "EASE_IN", 900.0, -0.0825022485208741, "AUTO_CLAMPED"], [-1.7667953415716402, 200.0, "QUAD", "EASE_IN_OUT"], [-1.1941604991291164, 166.66666666666674, "QUAD", "AUTO"], [0.0, 333.33333333333326, "BEZIER", "AUTO", 1783.3333333333333, 0.0, "AUTO_CLAMPED"], [0.0, 250.0, "BEZIER", "AUTO", 1866.6666666666667, 0.0, "AUTO_CLAMPED", 2033.3333333333333, 0.0, "AUTO_CLAMPED"]]}}}, "Reload": {"Bullet": {"location": {"x": [[1.59375, 0.0, "BEZIER", "AUTO", 666.6666666666666, 1.59375, "AUTO_CLAMPED"], [1.59375, 2000.0, "BEZIER", "AUTO", 1333.3333333333333, 1.59375, "AUTO_CLAMPED", 2066.6666666666665, 1.59375, "AUTO_CLAMPED"], [0.90625, 200.0, "LINEAR", "AUTO", 2133.3333333333335, 0.90625, "AUTO_CLAMPED"], [0.90625, 133.33333333333348, "LINEAR", "AUTO"], [-0.5937501192092896, 99.99999999999955, "BEZIER", "AUTO", 2466.666666666667, -0.5937501192092896, "AUTO_CLAMPED"]], "y": [[0.5625, 0.0, "BEZIER", "AUTO", 666.6666666666666, 0.5625, "AUTO_CLAMPED"], [0.5625, 2000.0, "BEZIER", "AUTO", 1333.3333333333333, 0.5625, "AUTO_CLAMPED", 2066.6666666666665, 0.5625, "AUTO_CLAMPED"], [0.875, 200.0, "BEZIER", "AUTO", 2133.3333333333335, 0.875, "AUTO_CLAMPED", 2244.4445292154946, 0.875, "AUTO_CLAMPED"], [0.875, 133.33333333333348, "SINE", "EASE_OUT", 2288.8888041178384, 0.875, "AUTO_CLAMPED"], [0.9999978542327881, 33.33333333333303, "BEZIER", "AUTO", 2377.777862548828, 0.9999978542327881, "AUTO_CLAMPED"]]}, "rotation_euler": {"z": [[0.0, 0.0, "CONSTANT", "AUTO"], [-19.99999941818584, 2000.0, "BEZIER", "AUTO", 2066.6666666666665, -19.99999941818584, "AUTO_CLAMPED"], [-7.500000208706514, 200.0, "BEZIER", "AUTO", 2133.3333333333335, -7.500000208706514, "AUTO_CLAMPED", 2244.4445292154946, -7.500000208706514, "AUTO_CLAMPED"], [-7.500000208706514, 133.33333333333348, "SINE", "EASE_OUT", 2288.8888041178384, -7.500000208706514, "AUTO_CLAMPED"], [-0.0, 33.33333333333303, "BEZIER", "AUTO", 2377.777862548828, -0.0, "AUTO_CLAMPED"]]}}, "Grip": {"location": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-0.5098327398300171, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [0.23206636309623718, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, 0.23206636309623718, "AUTO_CLAMPED"], [0.23206636309623718, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, 0.23206636309623718, "AUTO_CLAMPED", 1266.6666666666665, 0.23206636309623718, "AUTO_CLAMPED"], [0.38155651092529297, 400.0, "BACK", "AUTO", 1483.3333333333335, 0.38155651092529297, "ALIGNED", 1.7015800476074219], [0.3984723687171936, 266.66666666666674, "LINEAR", "AUTO"], [0.3984723687171936, 166.66666666666652, "BEZIER", "AUTO", 2011.1111958821612, 0.3984723687171936, "ALIGNED"], [0.0, 633.3333333333335, "QUAD", "EASE_IN_OUT", 2388.888804117839, 0.0, "AUTO_CLAMPED"]], "z": [[-0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, -0.0, "AUTO_CLAMPED"], [-0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, -0.0, "AUTO_CLAMPED"], [-1.590022325515747, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [-0.16680538654327393, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, -0.16680538654327393, "AUTO_CLAMPED"], [-0.16680538654327393, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, -0.16680538654327393, "AUTO_CLAMPED", 1266.6666666666665, -0.16680538654327393, "AUTO_CLAMPED"], [-0.13560596108436584, 400.0, "BACK", "AUTO", 1466.6666666666665, -0.13560596108436584, "ALIGNED", 1.7015800476074219], [-0.29175129532814026, 266.66666666666674, "LINEAR", "AUTO"], [-0.29175129532814026, 166.66666666666652, "BEZIER", "AUTO", 2011.1111958821612, -0.29175129532814026, "ALIGNED"], [-0.0, 633.3333333333335, "QUAD", "EASE_IN_OUT", 2388.888804117839, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [3.8397903442382812, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [0.3740246295928955, 533.3333333333334, "BEZIER", "EASE_IN_OUT", 933.3333333333334, 0.3740246295928955, "AUTO_CLAMPED"], [0.3740246295928955, 299.9999999999999, "BEZIER", "EASE_IN", 1033.3333333333333, 0.3740246295928955, "AUTO_CLAMPED", 1266.6666666666665, 0.3740246295928955, "AUTO_CLAMPED"], [0.5059270858764648, 400.0, "BACK", "AUTO", 1466.6666666666665, 0.5059270858764648, "ALIGNED", 3.9015798568725586], [1.2094907760620117, 266.66666666666674, "LINEAR", "AUTO"], [1.2094907760620117, 166.66666666666652, "BEZIER", "AUTO", 2011.1111958821612, 1.2094907760620117, "ALIGNED"], [0.0, 633.3333333333335, "QUAD", "EASE_IN_OUT", 2388.888804117839, 0.0, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-16.158301462904227, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [-10.301796740211811, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, -10.301796740211811, "AUTO_CLAMPED"], [-10.301796740211811, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, -10.301796740211811, "AUTO_CLAMPED", 1266.6666666666665, -10.301796740211811, "AUTO_CLAMPED"], [-19.784100553616323, 400.0, "BACK", "AUTO", 1400.0, -19.784100553616323, "AUTO_CLAMPED", 1.7015800476074219], [-16.903297516434197, 266.66666666666674, "LINEAR", "AUTO"], [-16.903297516434197, 100.0, "BEZIER", "AUTO", 1944.4445292154949, -8.062240890614454, "ALIGNED"], [0.0, 766.6666666666665, "QUAD", "EASE_IN_OUT", 2411.1111958821616, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-16.899083289716298, 283.3333333333333, "BACK", "EASE_OUT", 2.5], [-5.380695815862754, 533.3333333333334, "BEZIER", "EASE_IN_OUT", 1066.6666666666667, -5.380695815862754, "AUTO_CLAMPED"], [-11.906051935670543, 699.9999999999999, "BACK", "AUTO", 1300.0, -6.886808876911218, "AUTO_CLAMPED", 6.0], [-20.04334209111145, 266.66666666666674, "LINEAR", "AUTO"], [-20.04334209111145, 166.66666666666652, "BEZIER", "AUTO", 2177.777862548828, -30.043338385109788, "ALIGNED"], [0.0, 700.0, "QUAD", "EASE_IN_OUT", 2433.333333333333, 0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "BEZIER", "EASE_IN_OUT", 5.555555721124013, 0.0, "AUTO_CLAMPED"], [0.0, 16.666666666666668, "QUAD", "EASE_IN_OUT", 11.11111044883728, 0.0, "AUTO_CLAMPED"], [-1.7823402117923546, 283.3333333333333, "BACK", "EASE_OUT", 1.7015800476074219], [6.773653132931616, 233.33333333333337, "BEZIER", "EASE_IN_OUT", 733.3333333333333, 6.773653132931616, "AUTO_CLAMPED"], [6.773653132931616, 599.9999999999999, "BEZIER", "EASE_IN", 933.3333333333334, 6.773653132931616, "AUTO_CLAMPED", 1266.6666666666665, 6.773653132931616, "AUTO_CLAMPED"], [18.416894757265702, 400.0, "BACK", "AUTO", 1400.0, 17.224420567809638, "AUTO_CLAMPED", 1.7015800476074219], [19.211877550236412, 266.66666666666674, "BEZIER", "AUTO", 1844.4445292154946, 19.211877550236412, "ALIGNED"], [19.211877550236412, 100.0, "BEZIER", "AUTO", 1866.6666666666667, 19.211877550236412, "ALIGNED", 1944.4445292154949, 19.211877550236412, "ALIGNED"], [0.0, 266.6666666666665, "QUAD", "EASE_IN_OUT", 2077.7777353922525, 0.0, "AUTO_CLAMPED"]]}}, "Hammer": {"rotation_euler": {"z": [[-0.0, 0.0, "BEZIER", "AUTO", 666.6666666666666, -0.0, "AUTO_CLAMPED"], [-0.0, 2000.0, "BEZIER", "AUTO", 1333.3333333333333, -0.0, "AUTO_CLAMPED", 2066.6666666666665, -0.0, "AUTO_CLAMPED"], [-45.00000125223908, 200.0, "BEZIER", "AUTO", 2133.3333333333335, -45.00000125223908, "AUTO_CLAMPED", 2244.4445292154946, -45.00000125223908, "AUTO_CLAMPED"], [-45.00000125223908, 133.33333333333348, "LINEAR", "AUTO", 2288.8888041178384, -45.00000125223908, "AUTO_CLAMPED"], [-0.0, 133.33333333333348, "BEZIER", "AUTO", 2511.111195882161, -0.0, "AUTO_CLAMPED"]]}, "location": {"x": [[3.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 3.125, "AUTO_CLAMPED"]], "z": [[1.862645149230957e-08, 0.0, "BEZIER", "AUTO", 16.666666666666668, 1.862645149230957e-08, "AUTO_CLAMPED"]], "y": [[0.125, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.125, "AUTO_CLAMPED"]]}}, "Magazine": {"location": {"x": [[2.125, 0.0, "LINEAR", "AUTO"], [2.125, 366.66666666666663, "LINEAR", "AUTO"], [3.215367555618286, 133.33333333333337, "LINEAR", "EASE_IN"], [6.216582298278809, 266.66666666666663, "CONSTANT", "AUTO"], [1.6932545900344849, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, 1.6932545900344849, "AUTO_CLAMPED"], [3.215367555618286, 400.0, "LINEAR", "EASE_IN", 1266.6666666666665, 3.215367555618286, "AUTO_CLAMPED"], [2.125, 166.66666666666674, "BEZIER", "AUTO", 1622.2222646077473, 2.125, "AUTO_CLAMPED"]], "z": [[-2.443810274144198e-07, 0.0, "LINEAR", "AUTO"], [-2.443810274144198e-07, 366.66666666666663, "LINEAR", "AUTO"], [-0.0, 133.33333333333337, "BEZIER", "EASE_IN", 522.2222010294596, -0.020347656682133675, "ALIGNED"], [-0.0, 266.66666666666663, "CONSTANT", "AUTO", 761.1110687255859, -7.450580596923828e-09, "ALIGNED"], [15.77025318145752, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, 15.77025318145752, "AUTO_CLAMPED"], [-0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 5.865144885319751e-07, "AUTO_CLAMPED", 1455.5555979410808, -2.443810274144198e-07, "AUTO_CLAMPED"], [-2.443810274144198e-07, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, -2.443810274144198e-07, "AUTO_CLAMPED", 1622.2222646077473, -2.443810274144198e-07, "AUTO_CLAMPED"]], "y": [[-1.5, 0.0, "LINEAR", "AUTO"], [-1.5, 366.66666666666663, "LINEAR", "AUTO"], [-5.614295482635498, 133.33333333333337, "LINEAR", "EASE_IN"], [-16.93880844116211, 266.66666666666663, "CONSTANT", "AUTO"], [-21.048290252685547, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -21.048290252685547, "AUTO_CLAMPED"], [-5.614295482635498, 400.0, "LINEAR", "EASE_IN", 1266.6666666666665, -11.369051933288574, "AUTO_CLAMPED"], [-1.5, 166.66666666666674, "BEZIER", "AUTO", 1622.2222646077473, -1.5, "AUTO_CLAMPED"]]}, "rotation_euler": {"x": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 366.66666666666663, "LINEAR", "AUTO"], [0.0, 133.33333333333337, "BEZIER", "EASE_IN", 555.555534362793, 0.0, "ALIGNED"], [0.0, 266.66666666666663, "CONSTANT", "AUTO", 677.7777989705404, 0.0, "AUTO_CLAMPED"], [-15.976201789442515, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -15.976201789442515, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 0.0, "AUTO_CLAMPED", 1455.5555979410808, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, 0.0, "AUTO_CLAMPED", 1622.2222646077473, 0.0, "AUTO_CLAMPED"]], "z": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 366.66666666666663, "LINEAR", "AUTO"], [0.0, 133.33333333333337, "BEZIER", "EASE_IN", 555.555534362793, 0.0, "ALIGNED"], [0.0, 266.66666666666663, "CONSTANT", "AUTO", 677.7777989705404, 0.0, "AUTO_CLAMPED"], [-7.264861555018716, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -7.264861555018716, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 0.0, "AUTO_CLAMPED", 1455.5555979410808, 0.0, "AUTO_CLAMPED"], [-0.0, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, -0.0, "AUTO_CLAMPED", 1622.2222646077473, -0.0, "AUTO_CLAMPED"]], "y": [[0.0, 0.0, "LINEAR", "AUTO"], [0.0, 366.66666666666663, "LINEAR", "AUTO"], [0.0, 133.33333333333337, "BEZIER", "EASE_IN", 555.555534362793, 0.0, "ALIGNED"], [0.0, 266.66666666666663, "CONSTANT", "AUTO", 677.7777989705404, 0.0, "AUTO_CLAMPED"], [-3.817224960598638, 233.33333333333337, "BEZIER", "AUTO", 1133.3333333333333, -3.817224960598638, "AUTO_CLAMPED"], [0.0, 400.0, "BEZIER", "EASE_IN", 1266.6666666666665, 0.0, "AUTO_CLAMPED", 1455.5555979410808, 0.0, "AUTO_CLAMPED"], [0.0, 166.66666666666674, "BEZIER", "AUTO", 1511.111068725586, 0.0, "AUTO_CLAMPED", 1622.2222646077473, 0.0, "AUTO_CLAMPED"]]}}, "Slide": {"location": {"x": [[-3.25, 0.0, "BEZIER", "AUTO", 666.6666666666666, -3.25, "AUTO_CLAMPED"], [-3.25, 2000.0, "BEZIER", "AUTO", 1766.6666666666665, -3.25, "ALIGNED", 2022.2221374511719, -3.25, "ALIGNED"], [-1.75, 200.0, "LINEAR", "AUTO", 2161.1111958821616, -1.75, "ALIGNED"], [-1.75, 133.33333333333348, "LINEAR", "AUTO"], [-3.25, 99.99999999999955, "BEZIER", "AUTO", 2433.333333333333, -3.25, "ALIGNED"]], "z": [[-0.0, 0.0, "BEZIER", "AUTO", 16.666666666666668, -0.0, "AUTO_CLAMPED"]], "y": [[0.75, 0.0, "BEZIER", "AUTO", 16.666666666666668, 0.75, "AUTO_CLAMPED"]]}}}}, "offset": {"Bullet": [1.59375, 0.5625, -2.443810274144198e-07], "Decal": [-2.3125, 0.6875, 0.3850004971027374], "DecalM": [0.0, 0.0, -10.609639167785645], "GripM": [0.0, 0.0, -10.609639167785645], "Hammer": [3.125, 0.125, 1.862645149230957e-08], "Magazine": [2.125, -1.5, -2.443810274144198e-07], "Slide": [-3.25, 0.75, -0.0], "SlideM": [0.0, 0.0, -10.609639167785645], "Text": [-6.25, 0.6875, 0.3850004971027374], "TextM": [0.0, 0.0, -10.609639167785645]}, "hierarchy": {"Bullet": "Magazine", "Decal": "Slide", "DecalM": "SlideM", "Hammer": "Grip", "Magazine": "Grip", "Slide": "Grip", "SlideM": "GripM", "Text": "Slide", "TextM": "SlideM"}} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/weapons/c130.obj b/src/main/resources/assets/hbm/models/weapons/c130.obj new file mode 100644 index 000000000..062ea4ab5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/c130.obj @@ -0,0 +1,3946 @@ +# Blender v2.79 (sub 0) OBJ File: 'c130.blend' +# www.blender.org +o Prop4 +v 8.876309 4.210099 19.990316 +v 9.975476 4.210099 20.539900 +v 8.876309 3.821485 20.151285 +v 8.876309 3.660516 20.539900 +v 8.876309 3.821485 20.928514 +v 8.876309 4.210099 21.089483 +v 8.876309 4.598713 20.928514 +v 8.876309 4.759683 20.539900 +v 8.876309 4.598713 20.151285 +v 9.092196 4.022467 23.179798 +v 9.092196 4.397732 23.179798 +v 9.092196 4.397732 20.800001 +v 9.092196 4.022467 20.800001 +v 9.259592 4.022467 20.800001 +v 9.259592 4.397732 20.800001 +v 9.259592 4.397732 23.179798 +v 9.259592 4.022467 23.179798 +v 9.092196 4.022467 20.279799 +v 9.092196 4.397732 20.279799 +v 9.092196 4.397732 17.900002 +v 9.092196 4.022467 17.900002 +v 9.259590 4.397732 17.900002 +v 9.259590 4.022467 17.900002 +v 9.259590 4.397732 20.279799 +v 9.259590 4.022467 20.279799 +v 9.092196 1.570201 20.352268 +v 9.092196 1.570201 20.727533 +v 9.092196 3.949998 20.727533 +v 9.092196 3.949998 20.352268 +v 9.259590 3.949998 20.352268 +v 9.259590 3.949998 20.727533 +v 9.259590 1.570201 20.727533 +v 9.259590 1.570201 20.352268 +v 9.092196 4.470201 20.352268 +v 9.092196 4.470201 20.727533 +v 9.092196 6.849997 20.727533 +v 9.092196 6.849997 20.352268 +v 9.259590 6.849997 20.727533 +v 9.259590 6.849997 20.352268 +v 9.259590 4.470201 20.727533 +v 9.259590 4.470201 20.352268 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.076250 0.876667 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +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 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 3/4/2 2/5/2 4/6/2 +f 4/7/3 2/8/3 5/9/3 +f 5/10/4 2/11/4 6/12/4 +f 6/13/5 2/14/5 7/15/5 +f 7/16/6 2/17/6 8/18/6 +f 8/19/7 2/20/7 9/21/7 +f 9/22/8 2/23/8 1/24/8 +f 11/25/9 13/26/9 10/27/9 +f 15/28/10 17/29/10 14/30/10 +f 16/31/11 10/32/11 17/29/11 +f 14/30/12 10/33/12 13/34/12 +f 12/35/13 16/31/13 15/28/13 +f 19/36/9 21/37/9 18/38/9 +f 20/39/14 23/40/14 21/41/14 +f 22/42/10 25/43/10 23/40/10 +f 23/40/12 18/38/12 21/37/12 +f 20/44/13 24/45/13 22/42/13 +f 27/46/9 29/47/9 26/48/9 +f 31/49/10 33/50/10 30/51/10 +f 32/52/12 26/53/12 33/50/12 +f 30/51/14 26/54/14 29/55/14 +f 28/56/11 32/52/11 31/49/11 +f 35/57/9 37/58/9 34/59/9 +f 36/60/13 39/61/13 37/62/13 +f 38/63/10 41/64/10 39/61/10 +f 39/61/14 34/59/14 37/58/14 +f 36/65/11 40/66/11 38/63/11 +f 11/25/9 12/35/9 13/26/9 +f 15/28/10 16/31/10 17/29/10 +f 16/31/11 11/67/11 10/32/11 +f 14/30/12 17/29/12 10/33/12 +f 12/35/13 11/25/13 16/31/13 +f 19/36/9 20/68/9 21/37/9 +f 20/39/14 22/42/14 23/40/14 +f 22/42/10 24/45/10 25/43/10 +f 23/40/12 25/43/12 18/38/12 +f 20/44/13 19/69/13 24/45/13 +f 27/46/9 28/56/9 29/47/9 +f 31/49/10 32/52/10 33/50/10 +f 32/52/12 27/70/12 26/53/12 +f 30/51/14 33/50/14 26/54/14 +f 28/56/11 27/46/11 32/52/11 +f 35/57/9 36/71/9 37/58/9 +f 36/60/13 38/63/13 39/61/13 +f 38/63/10 40/66/10 41/64/10 +f 39/61/14 41/64/14 34/59/14 +f 36/65/11 35/72/11 40/66/11 +o Prop3 +v 8.876309 4.210100 10.612316 +v 9.975476 4.210100 11.161900 +v 8.876309 3.821486 10.773286 +v 8.876309 3.660517 11.161900 +v 8.876309 3.821486 11.550513 +v 8.876309 4.210100 11.711483 +v 8.876309 4.598713 11.550513 +v 8.876309 4.759684 11.161900 +v 8.876309 4.598713 10.773286 +v 9.092196 4.022468 13.801797 +v 9.092196 4.397733 13.801797 +v 9.092196 4.397733 11.422001 +v 9.092196 4.022468 11.422001 +v 9.259592 4.022468 11.422001 +v 9.259592 4.397733 11.422001 +v 9.259592 4.397733 13.801797 +v 9.259592 4.022468 13.801797 +v 9.092196 4.022468 10.901798 +v 9.092196 4.397733 10.901798 +v 9.092196 4.397733 8.522002 +v 9.092196 4.022468 8.522002 +v 9.259590 4.397733 8.522002 +v 9.259590 4.022468 8.522002 +v 9.259590 4.397733 10.901798 +v 9.259590 4.022468 10.901798 +v 9.092196 1.570202 10.974267 +v 9.092196 1.570202 11.349533 +v 9.092196 3.949999 11.349533 +v 9.092196 3.949999 10.974267 +v 9.259590 3.949999 10.974267 +v 9.259590 3.949999 11.349533 +v 9.259590 1.570202 11.349533 +v 9.259590 1.570202 10.974267 +v 9.092196 4.470201 10.974267 +v 9.092196 4.470201 11.349533 +v 9.092196 6.849998 11.349533 +v 9.092196 6.849998 10.974267 +v 9.259590 6.849998 11.349533 +v 9.259590 6.849998 10.974267 +v 9.259590 4.470201 11.349533 +v 9.259590 4.470201 10.974267 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.076250 0.876667 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +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 +s 1 +f 42/73/15 43/74/15 44/75/15 +f 44/76/16 43/77/16 45/78/16 +f 45/79/17 43/80/17 46/81/17 +f 46/82/18 43/83/18 47/84/18 +f 47/85/19 43/86/19 48/87/19 +f 48/88/20 43/89/20 49/90/20 +f 49/91/21 43/92/21 50/93/21 +f 50/94/22 43/95/22 42/96/22 +f 52/97/23 54/98/23 51/99/23 +f 56/100/24 58/101/24 55/102/24 +f 57/103/25 51/104/25 58/101/25 +f 55/102/26 51/105/26 54/106/26 +f 53/107/27 57/103/27 56/100/27 +f 60/108/23 62/109/23 59/110/23 +f 61/111/28 64/112/28 62/113/28 +f 63/114/24 66/115/24 64/112/24 +f 64/112/26 59/110/26 62/109/26 +f 61/116/27 65/117/27 63/114/27 +f 68/118/23 70/119/23 67/120/23 +f 72/121/24 74/122/24 71/123/24 +f 73/124/26 67/125/26 74/122/26 +f 71/123/28 67/126/28 70/127/28 +f 69/128/25 73/124/25 72/121/25 +f 76/129/23 78/130/23 75/131/23 +f 77/132/27 80/133/27 78/134/27 +f 79/135/24 82/136/24 80/133/24 +f 80/133/28 75/131/28 78/130/28 +f 77/137/25 81/138/25 79/135/25 +f 52/97/23 53/107/23 54/98/23 +f 56/100/24 57/103/24 58/101/24 +f 57/103/25 52/139/25 51/104/25 +f 55/102/26 58/101/26 51/105/26 +f 53/107/27 52/97/27 57/103/27 +f 60/108/23 61/140/23 62/109/23 +f 61/111/28 63/114/28 64/112/28 +f 63/114/24 65/117/24 66/115/24 +f 64/112/26 66/115/26 59/110/26 +f 61/116/27 60/141/27 65/117/27 +f 68/118/23 69/128/23 70/119/23 +f 72/121/24 73/124/24 74/122/24 +f 73/124/26 68/142/26 67/125/26 +f 71/123/28 74/122/28 67/126/28 +f 69/128/25 68/118/25 73/124/25 +f 76/129/23 77/143/23 78/130/23 +f 77/132/27 79/135/27 80/133/27 +f 79/135/24 81/138/24 82/136/24 +f 80/133/28 82/136/28 75/131/28 +f 77/137/25 76/144/25 81/138/25 +o Prop2 +v 8.876309 4.210101 -11.711483 +v 9.975476 4.210101 -11.161900 +v 8.876309 3.821486 -11.550513 +v 8.876309 3.660517 -11.161900 +v 8.876309 3.821486 -10.773286 +v 8.876309 4.210101 -10.612316 +v 8.876309 4.598714 -10.773286 +v 8.876309 4.759685 -11.161900 +v 8.876309 4.598714 -11.550513 +v 9.092196 4.022469 -8.522002 +v 9.092196 4.397734 -8.522002 +v 9.092196 4.397734 -10.901798 +v 9.092196 4.022469 -10.901798 +v 9.259592 4.022469 -10.901798 +v 9.259592 4.397734 -10.901798 +v 9.259592 4.397734 -8.522002 +v 9.259592 4.022469 -8.522002 +v 9.092196 4.022469 -11.422001 +v 9.092196 4.397734 -11.422001 +v 9.092196 4.397734 -13.801797 +v 9.092196 4.022469 -13.801797 +v 9.259590 4.397734 -13.801797 +v 9.259590 4.022469 -13.801797 +v 9.259590 4.397734 -11.422001 +v 9.259590 4.022469 -11.422001 +v 9.092196 1.570202 -11.349532 +v 9.092196 1.570202 -10.974266 +v 9.092196 3.950000 -10.974266 +v 9.092196 3.950000 -11.349532 +v 9.259590 3.950000 -11.349532 +v 9.259590 3.950000 -10.974266 +v 9.259590 1.570202 -10.974266 +v 9.259590 1.570202 -11.349532 +v 9.092196 4.470202 -11.349532 +v 9.092196 4.470202 -10.974266 +v 9.092196 6.849998 -10.974266 +v 9.092196 6.849998 -11.349532 +v 9.259590 6.849998 -10.974266 +v 9.259590 6.849998 -11.349532 +v 9.259590 4.470202 -10.974266 +v 9.259590 4.470202 -11.349532 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.076250 0.876667 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +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 +s 1 +f 83/145/29 84/146/29 85/147/29 +f 85/148/30 84/149/30 86/150/30 +f 86/151/31 84/152/31 87/153/31 +f 87/154/32 84/155/32 88/156/32 +f 88/157/33 84/158/33 89/159/33 +f 89/160/34 84/161/34 90/162/34 +f 90/163/35 84/164/35 91/165/35 +f 91/166/36 84/167/36 83/168/36 +f 93/169/37 95/170/37 92/171/37 +f 97/172/38 99/173/38 96/174/38 +f 98/175/39 92/176/39 99/173/39 +f 96/174/40 92/177/40 95/178/40 +f 94/179/41 98/175/41 97/172/41 +f 101/180/37 103/181/37 100/182/37 +f 102/183/42 105/184/42 103/185/42 +f 104/186/38 107/187/38 105/184/38 +f 105/184/40 100/182/40 103/181/40 +f 102/188/41 106/189/41 104/186/41 +f 109/190/37 111/191/37 108/192/37 +f 113/193/38 115/194/38 112/195/38 +f 114/196/40 108/197/40 115/194/40 +f 112/195/42 108/198/42 111/199/42 +f 110/200/39 114/196/39 113/193/39 +f 117/201/37 119/202/37 116/203/37 +f 118/204/41 121/205/41 119/206/41 +f 120/207/38 123/208/38 121/205/38 +f 121/205/42 116/203/42 119/202/42 +f 118/209/39 122/210/39 120/207/39 +f 93/169/37 94/179/37 95/170/37 +f 97/172/38 98/175/38 99/173/38 +f 98/175/39 93/211/39 92/176/39 +f 96/174/40 99/173/40 92/177/40 +f 94/179/41 93/169/41 98/175/41 +f 101/180/37 102/212/37 103/181/37 +f 102/183/42 104/186/42 105/184/42 +f 104/186/38 106/189/38 107/187/38 +f 105/184/40 107/187/40 100/182/40 +f 102/188/41 101/213/41 106/189/41 +f 109/190/37 110/200/37 111/191/37 +f 113/193/38 114/196/38 115/194/38 +f 114/196/40 109/214/40 108/197/40 +f 112/195/42 115/194/42 108/198/42 +f 110/200/39 109/190/39 114/196/39 +f 117/201/37 118/215/37 119/202/37 +f 118/204/41 120/207/41 121/205/41 +f 120/207/38 122/210/38 123/208/38 +f 121/205/42 123/208/42 116/203/42 +f 118/209/39 117/216/39 122/210/39 +o Prop1 +v 8.876309 4.210101 -21.089483 +v 9.975476 4.210101 -20.539900 +v 8.876309 3.821487 -20.928514 +v 8.876309 3.660518 -20.539900 +v 8.876309 3.821487 -20.151285 +v 8.876309 4.210101 -19.990316 +v 8.876309 4.598715 -20.151285 +v 8.876309 4.759685 -20.539900 +v 8.876309 4.598715 -20.928514 +v 9.092196 4.022469 -17.900002 +v 9.092196 4.397734 -17.900002 +v 9.092196 4.397734 -20.279799 +v 9.092196 4.022469 -20.279799 +v 9.259592 4.022469 -20.279799 +v 9.259592 4.397734 -20.279799 +v 9.259592 4.397734 -17.900002 +v 9.259592 4.022469 -17.900002 +v 9.092196 4.022469 -20.800001 +v 9.092196 4.397734 -20.800001 +v 9.092196 4.397734 -23.179798 +v 9.092196 4.022469 -23.179798 +v 9.259590 4.397734 -23.179798 +v 9.259590 4.022469 -23.179798 +v 9.259590 4.397734 -20.800001 +v 9.259590 4.022469 -20.800001 +v 9.092196 1.570203 -20.727531 +v 9.092196 1.570203 -20.352266 +v 9.092196 3.950000 -20.352266 +v 9.092196 3.950000 -20.727531 +v 9.259590 3.950000 -20.727531 +v 9.259590 3.950000 -20.352266 +v 9.259590 1.570203 -20.352266 +v 9.259590 1.570203 -20.727531 +v 9.092196 4.470203 -20.727531 +v 9.092196 4.470203 -20.352266 +v 9.092196 6.849999 -20.352266 +v 9.092196 6.849999 -20.727531 +v 9.259590 6.849999 -20.352266 +v 9.259590 6.849999 -20.727531 +v 9.259590 4.470203 -20.352266 +v 9.259590 4.470203 -20.727531 +vt 0.076250 0.876667 +vt 0.073750 0.893333 +vt 0.072500 0.876667 +vt 0.070000 0.893333 +vt 0.068750 0.876667 +vt 0.066250 0.893333 +vt 0.065000 0.876667 +vt 0.062500 0.893333 +vt 0.061250 0.876667 +vt 0.057500 0.876667 +vt 0.055000 0.893333 +vt 0.053750 0.876667 +vt 0.051250 0.893333 +vt 0.050000 0.876667 +vt 0.061250 0.876667 +vt 0.058750 0.893333 +vt 0.057500 0.876667 +vt 0.080000 0.876667 +vt 0.077500 0.893333 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.185000 0.908333 +vt 0.188750 0.876667 +vt 0.188750 0.908333 +vt 0.183750 0.876667 +vt 0.180000 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.908333 +vt 0.180000 0.910000 +vt 0.178750 0.908333 +vt 0.178750 0.876667 +vt 0.185000 0.876667 +vt 0.188750 0.876667 +vt 0.185000 0.908333 +vt 0.185000 0.876667 +vt 0.180000 0.910000 +vt 0.183750 0.908333 +vt 0.183750 0.910000 +vt 0.180000 0.908333 +vt 0.183750 0.876667 +vt 0.178750 0.908333 +vt 0.180000 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vt 0.183750 0.910000 +vt 0.188750 0.908333 +vt 0.178750 0.876667 +vn 0.4194 -0.3474 -0.8387 +vn 0.4194 -0.8387 -0.3474 +vn 0.4194 -0.8387 0.3474 +vn 0.4194 -0.3474 0.8387 +vn 0.4194 0.3474 0.8387 +vn 0.4194 0.8387 0.3474 +vn 0.4194 0.8387 -0.3474 +vn 0.4194 0.3474 -0.8387 +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 +s 1 +f 124/217/43 125/218/43 126/219/43 +f 126/219/44 125/220/44 127/221/44 +f 127/221/45 125/222/45 128/223/45 +f 128/223/46 125/224/46 129/225/46 +f 129/226/47 125/227/47 130/228/47 +f 130/228/48 125/229/48 131/230/48 +f 131/231/49 125/232/49 132/233/49 +f 132/234/50 125/235/50 124/217/50 +f 134/236/51 136/237/51 133/238/51 +f 138/239/52 140/240/52 137/241/52 +f 139/242/53 133/243/53 140/240/53 +f 137/241/54 133/244/54 136/245/54 +f 135/246/55 139/242/55 138/239/55 +f 142/247/51 144/248/51 141/249/51 +f 143/250/56 146/251/56 144/252/56 +f 145/253/52 148/254/52 146/251/52 +f 146/251/54 141/249/54 144/248/54 +f 143/255/55 147/256/55 145/253/55 +f 150/257/51 152/258/51 149/259/51 +f 154/260/52 156/261/52 153/262/52 +f 155/263/54 149/264/54 156/261/54 +f 153/262/56 149/265/56 152/266/56 +f 151/267/53 155/263/53 154/260/53 +f 158/268/51 160/269/51 157/270/51 +f 159/271/55 162/272/55 160/273/55 +f 161/274/52 164/275/52 162/272/52 +f 162/272/56 157/270/56 160/269/56 +f 159/276/53 163/277/53 161/274/53 +f 134/236/51 135/246/51 136/237/51 +f 138/239/52 139/242/52 140/240/52 +f 139/242/53 134/278/53 133/243/53 +f 137/241/54 140/240/54 133/244/54 +f 135/246/55 134/236/55 139/242/55 +f 142/247/51 143/279/51 144/248/51 +f 143/250/56 145/253/56 146/251/56 +f 145/253/52 147/256/52 148/254/52 +f 146/251/54 148/254/54 141/249/54 +f 143/255/55 142/280/55 147/256/55 +f 150/257/51 151/267/51 152/258/51 +f 154/260/52 155/263/52 156/261/52 +f 155/263/54 150/281/54 149/264/54 +f 153/262/56 156/261/56 149/265/56 +f 151/267/53 150/257/53 155/263/53 +f 158/268/51 159/282/51 160/269/51 +f 159/271/55 161/274/55 162/272/55 +f 161/274/52 163/277/52 164/275/52 +f 162/272/56 164/275/56 157/270/56 +f 159/276/53 158/283/53 163/277/53 +o Plane +v -8.648877 2.337463 -3.828772 +v 17.109543 2.337462 -3.828772 +v 17.109543 0.872254 -3.537324 +v -8.648877 0.872255 -3.537324 +v 17.109543 -0.369889 -2.707351 +v -8.648877 -0.369888 -2.707351 +v 17.109543 -1.199862 -1.465208 +v -8.648877 -1.199861 -1.465208 +v 17.109543 -1.491310 -0.000000 +v -8.648877 -1.491309 -0.000000 +v 17.109543 -1.199862 1.465208 +v -8.648877 -1.199861 1.465208 +v 17.109543 -0.369889 2.707351 +v -8.648877 -0.369888 2.707351 +v 17.109543 0.872254 3.537324 +v -8.648877 0.872255 3.537324 +v 17.109543 2.337462 3.828772 +v -8.648877 2.337463 3.828772 +v 17.109543 3.802669 3.537324 +v -8.648877 3.802670 3.537324 +v 17.109543 5.044812 2.707351 +v -8.648877 5.044813 2.707351 +v 17.109543 5.874785 1.465208 +v -8.648877 5.874786 1.465208 +v 17.109543 6.166234 0.000000 +v -8.648877 6.166231 0.000000 +v 17.109543 5.874785 -1.465208 +v -8.648877 5.874786 -1.465208 +v 17.109543 5.044812 -2.707351 +v -8.648877 5.044813 -2.707351 +v 18.622576 0.819016 -3.307737 +v 18.622576 -0.342507 -2.531632 +v 17.109543 3.802669 -3.537324 +v -8.648877 3.802670 -3.537324 +v -22.527349 6.033054 -0.479178 +v -22.527349 5.863158 -0.885406 +v -24.803490 5.347558 0.000000 +v -17.322922 2.833023 -1.568635 +v -17.322922 2.415598 -0.848939 +v -22.527349 4.584874 -0.479178 +v -22.527349 4.754769 -0.885406 +v -17.322922 3.457743 2.049520 +v -17.322922 4.194651 2.218385 +v -22.527349 5.308964 1.252153 +v -22.527349 5.009036 1.156838 +v -17.322922 4.194651 -2.218385 +v -17.322922 3.457743 -2.049520 +v -22.527349 5.009036 -1.156838 +v -22.527349 5.308964 -1.252153 +v -17.322922 6.120280 0.000000 +v -17.322922 5.973704 -0.848939 +v -22.527349 6.092710 0.000000 +v -17.322922 2.415598 0.848939 +v -17.322922 2.833023 1.568635 +v -22.527349 4.754769 0.885406 +v -22.527349 4.584874 0.479178 +v -17.322922 5.556279 1.568635 +v -17.322922 5.973704 0.848939 +v -22.527349 6.033054 0.479178 +v -22.527349 5.863158 0.885406 +v -17.322922 4.931559 -2.049520 +v -22.527349 5.608891 -1.156838 +v -17.322922 2.269018 0.000000 +v -22.527349 4.525215 0.000000 +v -17.322922 4.931559 2.049520 +v -22.527349 5.608891 1.156838 +v -17.322922 5.556279 -1.568635 +v 18.622576 3.559235 -3.307737 +v 18.622576 4.720757 -2.531632 +v 20.313610 3.625209 -1.918521 +v 20.313610 2.744985 -2.506668 +v 18.622576 -0.342507 2.531632 +v 18.622576 0.819016 3.307737 +v 18.622576 5.496862 1.370110 +v 18.622576 5.769394 0.000000 +v 18.622576 -1.391143 -0.000000 +v 18.622576 -1.118612 1.370110 +v 18.622576 3.559235 3.307737 +v 18.622576 4.720757 2.531632 +v 18.622576 -1.118612 -1.370110 +v 18.622576 2.189125 3.580269 +v 18.622576 2.189125 -3.580269 +v 18.622576 5.496862 -1.370110 +v 20.313610 -0.799979 1.038296 +v 20.313610 -1.006509 -0.000000 +v 21.630833 -0.630115 -0.000000 +v 21.630833 -0.488594 0.711476 +v 20.313610 0.668393 2.506668 +v 20.313610 1.706689 2.713198 +v 20.313610 1.706689 -2.713198 +v 20.313610 0.668393 -2.506668 +v 20.313610 2.744985 2.506668 +v 20.313610 -0.211831 -1.918521 +v 20.313610 3.625209 1.918521 +v 20.313610 -0.799979 -1.038296 +v 20.313610 4.213357 1.038296 +v 20.313610 4.419887 0.000000 +v 20.313610 4.213357 -1.038296 +v 20.313610 -0.211831 1.918521 +v 21.630833 2.543696 1.314636 +v 21.630833 1.940536 1.717654 +v 23.161669 1.704029 1.096937 +v 23.161669 2.089221 0.839559 +v 21.630833 3.088236 0.000000 +v 21.630833 2.946714 -0.711476 +v 21.630833 -0.085575 1.314636 +v 21.630833 2.543696 -1.314635 +v 21.630833 0.517585 1.717654 +v 21.630833 1.940536 -1.717654 +v 21.630833 1.229060 1.859176 +v 21.630833 1.229060 -1.859176 +v 21.630833 0.517585 -1.717654 +v 21.630833 -0.085575 -1.314635 +v 21.630833 -0.488594 -0.711476 +v 21.630833 2.946714 0.711476 +v 23.161669 1.704029 -1.096937 +v 23.161669 2.089221 -0.839559 +v 23.950235 1.751938 -0.467252 +v 23.950235 1.537561 -0.610494 +v 23.161669 0.410103 -0.839559 +v 23.161669 0.152726 -0.454366 +v 23.161669 2.346599 0.454366 +v 23.161669 0.062347 0.000000 +v 23.161669 2.436978 0.000000 +v 23.161669 0.152726 0.454366 +v 23.161669 2.346599 -0.454366 +v 23.161669 0.410103 0.839559 +v 23.161669 0.795296 1.096937 +v 23.161669 1.249662 1.187316 +v 23.161669 1.249662 -1.187316 +v 23.161669 0.795296 -1.096937 +v 23.950235 1.031812 -0.610494 +v 23.950235 1.284687 -0.660794 +v 23.950235 1.895180 -0.252875 +v 23.950235 1.945480 0.000000 +v 23.950235 1.895180 0.252875 +v 23.950235 1.751938 0.467252 +v 23.950235 1.537561 0.610494 +v 23.950235 1.284687 0.660794 +v 23.950235 1.031812 0.610494 +v 23.950235 0.817435 0.467252 +v 23.950235 0.674193 0.252875 +v 23.950235 0.623893 0.000000 +v 23.950235 0.674193 -0.252875 +v 23.950235 0.817435 -0.467252 +v -23.618507 18.840416 -0.394288 +v -23.811937 6.847831 -0.394289 +v -29.203978 8.049699 0.000000 +v -18.412893 8.049699 0.000000 +v -23.272705 18.840416 0.000001 +v -23.618507 18.840416 0.394290 +v -18.758696 8.049699 0.404003 +v -23.811937 6.847831 0.394289 +v -16.836498 7.231033 0.394289 +v -26.797274 19.118101 0.000001 +v -29.365820 6.847831 0.000000 +v -23.435175 6.224818 -0.513844 +v -29.125296 6.008132 0.000000 +v -16.490694 7.231033 0.000000 +v -10.014664 5.966194 0.451128 +v -23.435175 6.224818 0.513844 +v -22.237053 5.198684 1.199751 +v -16.683172 5.198684 1.199751 +v -26.535391 5.330534 1.007645 +v -7.680647 5.966194 0.000000 +v -16.836498 7.231033 -0.394289 +v -10.014664 5.966194 -0.451128 +v -27.328730 4.765311 0.844866 +v -22.237053 5.198684 -1.199751 +v -26.535391 5.330534 -1.007645 +v -16.683172 5.198684 -1.199751 +v -27.328730 4.765311 -0.844866 +v -18.758696 8.049699 -0.404003 +v -21.774847 4.765311 -0.844866 +v -21.774847 4.765311 0.000000 +v -21.774847 4.765311 0.844866 +v -27.797274 18.840416 0.000001 +v -20.182421 5.820175 -13.388203 +v -17.837469 5.820174 -0.207668 +v -17.837469 5.519457 -0.207668 +v -20.182421 5.519457 -13.388203 +v -21.592556 6.009354 -13.388203 +v -23.479408 6.009353 -0.207668 +v -18.044111 6.009353 -0.207668 +v -20.374386 6.009354 -13.388203 +v -20.374386 5.330279 -13.388203 +v -18.044111 5.330279 -0.207668 +v -23.479408 5.330279 -0.207668 +v -21.592556 5.330279 -13.388203 +v -23.225643 5.669816 -13.388203 +v -25.237371 5.669816 -0.207668 +v -20.182421 5.519456 13.388203 +v -17.837469 5.519459 0.207668 +v -17.837469 5.820175 0.207668 +v -20.182421 5.820174 13.388203 +v -21.592556 5.330278 13.388203 +v -23.479408 5.330280 0.207668 +v -18.044111 5.330279 0.207668 +v -20.374386 5.330278 13.388203 +v -20.374386 6.009353 13.388203 +v -18.044111 6.009354 0.207668 +v -23.479408 6.009354 0.207668 +v -21.592556 6.009353 13.388203 +v -23.225643 5.669816 13.388203 +v -25.237371 5.669816 0.207668 +v -14.045300 3.096631 0.848939 +v -14.045300 3.514056 1.568635 +v -14.045300 3.096631 -0.848939 +v -14.045300 2.950051 0.000000 +v -14.045300 3.514056 -1.568635 +v -5.371254 0.311145 -2.707351 +v -5.371254 -0.518828 -1.465208 +v -5.371254 -0.518828 1.465208 +v -5.371254 0.311145 2.707351 +v -5.371254 -0.810276 -0.000000 +v 2.656979 -0.906801 -1.548738 +v 4.656979 -0.906801 -1.548738 +v 4.656979 -1.282411 -2.455540 +v 2.656979 -1.282411 -2.455540 +v 4.656979 -0.906801 -3.362341 +v 2.656979 -0.906801 -3.362341 +v 4.656979 0.000000 -3.737951 +v 2.656979 0.000000 -3.737951 +v 4.656979 0.906801 -3.362341 +v 2.656979 0.906801 -3.362341 +v 1.209754 0.906801 -3.362341 +v 1.209754 0.000000 -3.737951 +v 1.209754 -1.282411 -2.455540 +v 1.209754 -0.906801 -3.362341 +v 0.003049 -0.392748 -2.648372 +v 0.003049 -0.768357 -1.741571 +v 6.104204 0.000000 -3.737951 +v 6.104204 0.906802 -3.362341 +v 6.104204 -1.282411 -2.455540 +v 6.104204 -0.906801 -3.362341 +v 1.209754 -0.906801 -1.548738 +v 6.104204 -0.906801 -1.548738 +v 7.310909 -0.768357 -1.741571 +v 7.310909 -0.392747 -2.648372 +v 0.003049 0.514054 -3.023982 +v 7.310909 0.514054 -3.023982 +v 0.003048 1.420855 -2.648372 +v 7.310909 1.420856 -2.648372 +v 0.003049 -0.392748 -0.834769 +v 7.310909 -0.392747 -0.834769 +v 2.656979 -0.906801 1.548734 +v 4.656979 -0.906801 1.548734 +v 4.656979 -1.282411 2.455535 +v 2.656979 -1.282411 2.455535 +v 4.656979 -0.906801 3.362337 +v 2.656979 -0.906801 3.362337 +v 4.656979 -0.000000 3.737946 +v 2.656979 -0.000000 3.737946 +v 4.656979 0.906801 3.362337 +v 2.656979 0.906802 3.362337 +v 1.209754 0.906802 3.362337 +v 1.209754 -0.000000 3.737946 +v 1.209754 -1.282411 2.455535 +v 1.209754 -0.906801 3.362337 +v 0.003049 -0.392747 2.648367 +v 0.003049 -0.768357 1.741566 +v 6.104204 -0.000000 3.737946 +v 6.104204 0.906801 3.362337 +v 6.104204 -1.282411 2.455535 +v 6.104204 -0.906801 3.362337 +v 1.209754 -0.906801 1.548734 +v 6.104204 -0.906801 1.548734 +v 7.310909 -0.768357 1.741566 +v 7.310909 -0.392748 2.648367 +v 0.003049 0.514054 3.023977 +v 7.310909 0.514054 3.023977 +v 0.003049 1.420856 2.648367 +v 7.310909 1.420855 2.648367 +v 0.003049 -0.392747 0.834765 +v 7.310909 -0.392748 0.834765 +v 1.500305 3.122780 -17.418180 +v 2.907010 3.122780 -17.418180 +v 2.907010 2.581584 -16.876984 +v 1.500305 2.581584 -16.876984 +v 2.907010 2.581584 -16.111618 +v 1.500305 2.581584 -16.111618 +v 2.907010 3.122780 -15.570421 +v 1.500305 3.122781 -15.570421 +v 2.907010 3.888147 -15.570421 +v 1.500305 3.888147 -15.570421 +v 2.907010 4.429342 -16.111618 +v 1.500305 4.429342 -16.111618 +v 2.907010 4.429343 -16.876984 +v 2.907010 5.216080 -16.876984 +v 2.907010 5.216080 -16.111618 +v 2.907010 3.888147 -17.418180 +v 5.008881 4.429343 -16.876984 +v 5.008881 3.888147 -17.418180 +v 1.500305 4.429343 -16.876984 +v 1.500305 3.888147 -17.418180 +v 5.008881 2.581584 -16.876984 +v 5.008881 2.581584 -16.111618 +v -0.285478 4.429344 -16.111618 +v -0.285478 3.888148 -15.570421 +v 5.008881 3.888147 -15.570421 +v 5.008881 4.429342 -16.111618 +v -0.285478 3.122781 -15.570421 +v -0.285478 2.581584 -16.111618 +v -0.285478 3.122781 -17.418180 +v -0.285478 3.888147 -17.418180 +v -0.285478 2.581584 -16.876984 +v 5.008881 3.122780 -15.570421 +v 5.008881 3.122780 -17.418180 +v -0.285478 4.429343 -16.876984 +v -6.039415 3.505464 -16.494301 +v 7.367077 3.369535 -16.822462 +v 7.367077 3.177303 -16.630230 +v 7.367077 3.641392 -16.822462 +v 7.367077 3.833624 -16.630230 +v 7.367077 3.833624 -16.358374 +v 7.367077 3.641392 -16.166142 +v 7.367077 3.369535 -16.166142 +v 7.367077 3.177303 -16.358374 +v 1.500305 5.216080 -16.111618 +v 1.500305 5.216080 -16.876984 +v 4.805163 4.210103 -12.231182 +v 7.559474 4.239601 -11.989785 +v 7.559474 3.025841 -11.747283 +v 4.805163 2.904310 -11.917976 +v 7.559474 2.783338 -11.161830 +v 4.805163 2.591105 -11.161829 +v 7.559474 3.025841 -10.576376 +v 4.805163 2.904310 -10.405683 +v 7.559474 4.239601 -10.333874 +v 4.805163 4.210103 -10.092476 +v 7.559474 4.825054 -10.576376 +v 4.805163 4.966249 -10.405683 +v 7.559474 5.067556 -11.161829 +v 4.805163 5.279455 -11.161829 +v 8.887003 3.803822 -11.568155 +v 8.887003 3.635535 -11.161875 +v 7.559474 4.825054 -11.747282 +v 4.805163 4.966249 -11.917976 +v 8.887003 4.210102 -11.736441 +v 8.887003 4.616381 -11.568155 +v 8.887003 4.784667 -11.161875 +v 8.887003 4.616381 -10.755596 +v 8.887003 4.210102 -10.587309 +v 8.887003 3.803822 -10.755596 +v 2.193453 4.210103 -12.231182 +v 2.193453 2.904310 -11.917976 +v -0.516882 3.711920 -11.527017 +v -0.516882 4.254626 -11.678282 +v 2.193453 4.210103 -10.092476 +v 2.193453 2.904310 -10.405683 +v 2.193453 2.591105 -11.161829 +v 2.193453 4.966249 -10.405683 +v 2.193453 4.966249 -11.917976 +v -0.516882 3.560654 -11.161829 +v -0.516882 3.711920 -10.796642 +v -0.516882 4.254626 -10.645377 +v -0.516882 4.619813 -10.796642 +v -0.516882 4.771080 -11.161829 +v -0.516882 4.619813 -11.527017 +v 2.193454 5.279455 -11.161829 +v 4.354962 5.543211 -34.577400 +v 4.464384 5.455995 -34.388062 +v 4.464384 5.200350 -34.388062 +v 4.365958 5.151175 -34.558372 +v 3.854457 5.349201 -35.443459 +v 3.854457 5.543211 -35.443459 +v 4.245422 5.113065 -34.399647 +v 4.746218 4.829812 -10.770060 +v -3.556738 5.186512 -10.723449 +v -0.380831 5.328140 -34.644386 +v 4.245421 5.543215 -34.399647 +v 1.347604 5.543211 -35.483459 +v 4.964909 4.917097 -10.771288 +v 4.964909 5.455994 -10.771288 +v 4.999471 5.455992 -4.836422 +v 4.999471 4.779428 -4.836423 +v 1.347604 5.349200 -35.483459 +v 4.746218 5.543214 -10.770059 +v -3.470909 4.692151 -4.788582 +v -3.470909 5.543211 -4.788580 +v -5.886427 4.692151 -2.723212 +v -5.886427 5.543211 -1.772059 +v 4.780781 4.692149 -4.835188 +v 4.780781 5.543209 -4.835186 +v 4.999470 5.455994 -2.717648 +v 4.999470 4.779427 -2.717649 +v 4.780781 4.692150 -2.717762 +v 4.780781 5.543210 -2.717758 +v 4.780214 5.543206 -1.608046 +v 4.998903 5.455990 -1.607934 +v 4.805163 4.210103 -21.609173 +v 7.559474 4.239601 -21.367777 +v 7.559474 3.025841 -21.125275 +v 4.805162 2.904311 -21.295967 +v 7.559474 2.783338 -20.539822 +v 4.805162 2.591105 -20.539822 +v 7.559474 3.025841 -19.954369 +v 4.805162 2.904311 -19.783674 +v 7.559474 4.239601 -19.711866 +v 4.805163 4.210102 -19.470469 +v 7.559474 4.825054 -19.954369 +v 4.805163 4.966249 -19.783674 +v 7.559474 5.067557 -20.539822 +v 4.805163 5.279455 -20.539822 +v 8.887003 3.803822 -20.946146 +v 8.887003 3.635536 -20.539867 +v 7.559474 4.825054 -21.125275 +v 4.805163 4.966250 -21.295967 +v 2.193454 5.279455 -20.539822 +v 2.193453 4.966249 -19.783674 +v 8.887003 4.210102 -21.114433 +v 8.887003 4.616381 -20.946148 +v 8.887003 4.784668 -20.539867 +v 8.887003 4.616381 -20.133587 +v 8.887003 4.210101 -19.965302 +v 8.887003 3.803822 -20.133587 +v 2.193453 4.210103 -21.609173 +v 2.193453 2.904311 -21.295967 +v -0.516882 3.711920 -20.905008 +v -0.516882 4.254626 -21.056274 +v 2.193453 4.210102 -19.470469 +v 2.193453 2.904311 -19.783674 +v 2.193453 4.966249 -21.295967 +v 2.193453 2.591105 -20.539822 +v -0.516882 3.560655 -20.539822 +v -0.516882 3.711921 -20.174635 +v -0.516882 4.254626 -20.023371 +v -0.516882 4.619814 -20.174635 +v -0.516882 4.771080 -20.539822 +v -0.516882 4.619813 -20.905008 +v 4.998903 4.779424 -1.607935 +v -5.886994 5.543206 -1.613495 +v 1.500305 3.122778 17.418180 +v 2.907010 3.122778 17.418180 +v 2.907010 2.581582 16.876984 +v 1.500305 2.581582 16.876984 +v 2.907010 2.581582 16.111618 +v 1.500305 2.581582 16.111618 +v 2.907010 3.122779 15.570421 +v 1.500305 3.122779 15.570421 +v 2.907010 3.888145 15.570421 +v 1.500305 3.888145 15.570421 +v 2.907010 4.429341 16.111618 +v 1.500305 4.429341 16.111618 +v 2.907010 4.429341 16.876984 +v 2.907010 5.216078 16.876984 +v 2.907010 5.216079 16.111618 +v 2.907010 3.888145 17.418180 +v 5.008881 4.429341 16.876984 +v 5.008881 3.888145 17.418180 +v 1.500305 4.429341 16.876984 +v 1.500305 3.888145 17.418180 +v 5.008881 2.581582 16.876984 +v 5.008881 2.581582 16.111618 +v -0.285478 4.429343 16.111618 +v -0.285478 3.888146 15.570421 +v 5.008881 3.888145 15.570421 +v 5.008881 4.429341 16.111618 +v -0.285478 3.122779 15.570421 +v -0.285478 2.581582 16.111618 +v -0.285478 3.122778 17.418180 +v -0.285478 3.888145 17.418180 +v -0.285478 2.581582 16.876984 +v 5.008881 3.122778 15.570421 +v 5.008881 3.122778 17.418180 +v -0.285478 4.429341 16.876984 +v -6.039415 3.505462 16.494301 +v 7.367077 3.369533 16.822462 +v 7.367077 3.177301 16.630230 +v 7.367077 3.641390 16.822462 +v 7.367077 3.833622 16.630230 +v 7.367077 3.833622 16.358374 +v 7.367077 3.641390 16.166142 +v 7.367077 3.369533 16.166142 +v 7.367077 3.177301 16.358374 +v 1.500305 5.216079 16.111618 +v 1.500305 5.216078 16.876984 +v 4.805163 4.210102 12.231182 +v 7.559474 4.239600 11.989785 +v 7.559474 3.025840 11.747282 +v 4.805163 2.904310 11.917976 +v 7.559474 2.783338 11.161830 +v 4.805163 2.591104 11.161829 +v 7.559474 3.025840 10.576376 +v 4.805163 2.904310 10.405683 +v 7.559474 4.239600 10.333874 +v 4.805163 4.210102 10.092476 +v 7.559474 4.825053 10.576376 +v 4.805163 4.966249 10.405683 +v 7.559474 5.067555 11.161829 +v 4.805163 5.279455 11.161829 +v 8.887003 3.803821 11.568155 +v 8.887003 3.635535 11.161875 +v 7.559474 4.825053 11.747282 +v 4.805163 4.966249 11.917976 +v 8.887003 4.210101 11.736441 +v 8.887003 4.616380 11.568155 +v 8.887003 4.784667 11.161875 +v 8.887003 4.616381 10.755596 +v 8.887003 4.210101 10.587309 +v 8.887003 3.803821 10.755596 +v 2.193453 4.210102 12.231182 +v 2.193453 2.904310 11.917976 +v -0.516882 3.711920 11.527017 +v -0.516882 4.254625 11.678282 +v 2.193453 4.210102 10.092476 +v 2.193453 2.904310 10.405683 +v 2.193453 2.591104 11.161829 +v 2.193453 4.966249 10.405683 +v 2.193453 4.966249 11.917976 +v -0.516882 3.560653 11.161829 +v -0.516882 3.711920 10.796642 +v -0.516882 4.254625 10.645377 +v -0.516882 4.619812 10.796642 +v -0.516882 4.771079 11.161829 +v -0.516882 4.619812 11.527017 +v 2.193454 5.279454 11.161829 +v 4.354962 5.543208 34.577400 +v 4.464384 5.455991 34.388062 +v 4.464384 5.200346 34.388062 +v 4.365958 5.151172 34.558372 +v 3.854456 5.349198 35.443459 +v 3.854457 5.543209 35.443459 +v 4.245422 5.113067 34.399647 +v 4.746218 4.829815 10.770060 +v -3.556738 5.186512 10.723449 +v -0.380831 5.328137 34.644386 +v 4.245421 5.543208 34.399647 +v 1.347604 5.543208 35.483459 +v 4.964909 4.917096 10.771288 +v 4.964909 5.455994 10.771288 +v 4.999471 5.455993 4.836423 +v 4.999471 4.779428 4.836423 +v 1.347604 5.349197 35.483459 +v 4.746218 5.543210 10.770059 +v -3.470909 4.692152 4.788581 +v -3.470909 5.543211 4.788581 +v -5.886427 4.692151 2.723212 +v -5.886427 5.543211 1.772059 +v 4.780781 4.692150 4.835188 +v 4.780781 5.543209 4.835187 +v 4.999470 5.455994 2.717648 +v 4.999470 4.779428 2.717649 +v 4.780781 4.692151 2.717762 +v 4.780781 5.543211 2.717758 +v 4.780214 5.543207 1.608046 +v 4.998903 5.455990 1.607934 +v 4.805163 4.210100 21.609173 +v 7.559474 4.239599 21.367777 +v 7.559474 3.025839 21.125275 +v 4.805162 2.904309 21.295967 +v 7.559474 2.783336 20.539822 +v 4.805162 2.591103 20.539822 +v 7.559474 3.025839 19.954369 +v 4.805162 2.904309 19.783674 +v 7.559474 4.239599 19.711866 +v 4.805163 4.210100 19.470469 +v 7.559474 4.825052 19.954369 +v 4.805163 4.966247 19.783674 +v 7.559474 5.067555 20.539822 +v 4.805163 5.279453 20.539822 +v 8.887003 3.803820 20.946146 +v 8.887003 3.635534 20.539867 +v 7.559474 4.825052 21.125275 +v 4.805163 4.966248 21.295967 +v 2.193454 5.279453 20.539822 +v 2.193453 4.966247 19.783674 +v 8.887003 4.210099 21.114433 +v 8.887003 4.616379 20.946148 +v 8.887003 4.784666 20.539867 +v 8.887003 4.616379 20.133587 +v 8.887003 4.210099 19.965302 +v 8.887003 3.803820 20.133587 +v 2.193453 4.210101 21.609173 +v 2.193453 2.904309 21.295967 +v -0.516882 3.711918 20.905008 +v -0.516882 4.254624 21.056274 +v 2.193453 4.210100 19.470469 +v 2.193453 2.904309 19.783674 +v 2.193453 4.966247 21.295967 +v 2.193453 2.591103 20.539822 +v -0.516882 3.560653 20.539822 +v -0.516882 3.711918 20.174635 +v -0.516882 4.254624 20.023371 +v -0.516882 4.619812 20.174635 +v -0.516882 4.771078 20.539822 +v -0.516882 4.619811 20.905008 +v 4.998903 4.779424 1.607935 +v -5.886994 5.543207 1.613495 +v 1.683473 5.441774 -10.576500 +v 4.056783 5.531373 -10.576500 +v 4.056783 5.531373 -18.701500 +v 1.683473 5.441775 -18.701500 +v 1.683473 5.441773 18.701500 +v 4.056783 5.531371 18.701500 +v 4.056783 5.531372 10.576500 +v 1.683473 5.441773 10.576500 +v 1.176675 5.141184 -25.716265 +v 3.549040 5.029347 -25.716265 +v 3.552980 5.112920 -33.840836 +v 1.180615 5.224756 -33.840836 +v 1.176675 5.141182 25.716253 +v 3.549040 5.029345 25.716253 +v 3.552980 5.112917 33.840820 +v 1.180615 5.224753 33.840820 +vt 0.181250 0.853333 +vt 0.188750 0.858333 +vt 0.185000 0.868333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.093750 0.863333 +vt 0.177500 0.858333 +vt 0.185000 0.853333 +vt 0.188750 0.863333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.093750 0.863333 +vt 0.181250 0.868333 +vt 0.185000 0.868333 +vt 0.188750 0.863333 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.093750 0.851667 +vt 0.627500 0.311667 +vt 0.625000 0.311667 +vt 0.625000 0.315000 +vt 0.671250 0.191667 +vt 0.902500 0.131667 +vt 0.673750 0.131667 +vt 0.643750 0.138333 +vt 0.636250 0.131667 +vt 0.633750 0.133333 +vt 0.387500 0.311667 +vt 0.330000 0.318333 +vt 0.387500 0.318333 +vt 0.638750 0.311667 +vt 0.663750 0.315000 +vt 0.663750 0.311667 +vt 0.620000 0.315000 +vt 0.620000 0.318333 +vt 0.636250 0.193333 +vt 0.398750 0.133333 +vt 0.398750 0.241667 +vt 0.682500 0.311667 +vt 0.825000 0.295000 +vt 0.765000 0.295000 +vt 0.765000 0.306667 +vt 0.732500 0.310000 +vt 0.960000 0.238333 +vt 0.902500 0.238333 +vt 0.340000 0.241667 +vt 0.308750 0.310000 +vt 0.330000 0.310000 +vt 0.980000 0.131667 +vt 0.960000 0.131667 +vt 0.318750 0.133333 +vt 0.340000 0.133333 +vt 0.307500 0.130000 +vt 0.318750 0.130000 +vt 0.673750 0.128333 +vt 0.671250 0.130000 +vt 0.633750 0.130000 +vt 0.398750 0.130000 +vt 0.340000 0.130000 +vt 0.960000 0.128333 +vt 0.980000 0.128333 +vt 0.662500 0.168333 +vt 0.181250 0.853333 +vt 0.177500 0.863333 +vt 0.185000 0.868333 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.093750 0.851667 +vt 0.297500 0.318333 +vt 0.308750 0.318333 +vt 0.307500 0.133333 +vt 0.310000 0.273333 +vt 0.411250 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.058333 +vt 0.411250 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.058333 +vt 0.411250 0.058333 +vt 0.330000 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.090000 +vt 0.330000 0.058333 +vt 0.411250 0.058333 +vt 0.185000 0.853333 +vt 0.188750 0.863333 +vt 0.181250 0.868333 +vt 0.177500 0.863333 +vt 0.177500 0.858333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.851667 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.185000 0.868333 +vt 0.181250 0.868333 +vt 0.177500 0.863333 +vt 0.181250 0.853333 +vt 0.188750 0.858333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.851667 +vt 0.101250 0.851667 +vt 0.097500 0.850000 +vt 0.188750 0.858333 +vt 0.185000 0.853333 +vt 0.181250 0.853333 +vt 0.177500 0.858333 +vt 0.177500 0.863333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.863333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.627500 0.316667 +vt 0.637500 0.316667 +vt 0.637500 0.313333 +vt 0.645000 0.171667 +vt 0.638750 0.315000 +vt 0.726250 0.295000 +vt 0.980000 0.268333 +vt 0.902500 0.128333 +vt 0.662500 0.136667 +vt 0.188750 0.863333 +vt 0.188750 0.858333 +vt 0.185000 0.853333 +vt 0.177500 0.858333 +vt 0.181250 0.868333 +vt 0.092500 0.858333 +vt 0.102500 0.858333 +vt 0.093750 0.863333 +vt 0.101250 0.863333 +vt 0.097500 0.865000 +vt 0.297500 0.310000 +vt 0.307500 0.273333 +vt 0.330000 0.090000 +vt 0.330000 0.090000 +vt 0.411250 0.090000 +vt 0.330000 0.090000 +vt 0.620000 0.603333 +vt 0.362500 0.623333 +vt 0.362500 0.603333 +vt 0.620000 0.623333 +vt 0.362500 0.643333 +vt 0.620000 0.643333 +vt 0.362500 0.663333 +vt 0.620000 0.663333 +vt 0.362500 0.683333 +vt 0.620000 0.683333 +vt 0.362500 0.703333 +vt 0.620000 0.703333 +vt 0.362500 0.723333 +vt 0.620000 0.723333 +vt 0.362500 0.743333 +vt 0.620000 0.743333 +vt 0.362500 0.763333 +vt 0.620000 0.763333 +vt 0.362500 0.783333 +vt 0.620000 0.783333 +vt 0.362500 0.803333 +vt 0.620000 0.803333 +vt 0.362500 0.823333 +vt 0.620000 0.823333 +vt 0.362500 0.843333 +vt 0.620000 0.523333 +vt 0.362500 0.543333 +vt 0.362500 0.523333 +vt 0.620000 0.543333 +vt 0.362500 0.563333 +vt 0.635000 0.623333 +vt 0.635000 0.643333 +vt 0.620000 0.563333 +vt 0.362500 0.583333 +vt 0.620000 0.583333 +vt 0.222500 0.551667 +vt 0.222500 0.558333 +vt 0.197500 0.555000 +vt 0.273750 0.665000 +vt 0.217500 0.676667 +vt 0.217500 0.665000 +vt 0.271250 0.758333 +vt 0.216250 0.750000 +vt 0.271250 0.748333 +vt 0.271250 0.608333 +vt 0.215000 0.616667 +vt 0.215000 0.611667 +vt 0.275000 0.528333 +vt 0.222500 0.538333 +vt 0.222500 0.531667 +vt 0.273750 0.711667 +vt 0.217500 0.700000 +vt 0.273750 0.700000 +vt 0.275000 0.820000 +vt 0.222500 0.810000 +vt 0.275000 0.808333 +vt 0.272500 0.588333 +vt 0.218750 0.596667 +vt 0.218750 0.591667 +vt 0.273750 0.676667 +vt 0.217500 0.688333 +vt 0.272500 0.778333 +vt 0.218750 0.770000 +vt 0.272500 0.768333 +vt 0.275000 0.548333 +vt 0.268750 0.628333 +vt 0.212500 0.636667 +vt 0.212500 0.631667 +vt 0.268750 0.738333 +vt 0.212500 0.730000 +vt 0.268750 0.728333 +vt 0.275000 0.838333 +vt 0.222500 0.828333 +vt 0.275000 0.826667 +vt 0.273750 0.688333 +vt 0.273750 0.798333 +vt 0.220000 0.790000 +vt 0.273750 0.788333 +vt 0.635000 0.583333 +vt 0.656250 0.563333 +vt 0.656250 0.583333 +vt 0.635000 0.743333 +vt 0.635000 0.843333 +vt 0.620000 0.843333 +vt 0.635000 0.703333 +vt 0.635000 0.803333 +vt 0.635000 0.563333 +vt 0.635000 0.663333 +vt 0.635000 0.763333 +vt 0.635000 0.603333 +vt 0.635000 0.523333 +vt 0.635000 0.543333 +vt 0.635000 0.723333 +vt 0.635000 0.823333 +vt 0.635000 0.683333 +vt 0.635000 0.783333 +vt 0.656250 0.686667 +vt 0.670000 0.698333 +vt 0.656250 0.701667 +vt 0.656250 0.763333 +vt 0.656250 0.603333 +vt 0.656250 0.623333 +vt 0.656250 0.783333 +vt 0.656250 0.643333 +vt 0.656250 0.803333 +vt 0.656250 0.663333 +vt 0.656250 0.823333 +vt 0.656250 0.683333 +vt 0.656250 0.843333 +vt 0.656250 0.703333 +vt 0.656250 0.523333 +vt 0.656250 0.543333 +vt 0.656250 0.723333 +vt 0.656250 0.743333 +vt 0.673750 0.798333 +vt 0.690000 0.790000 +vt 0.690000 0.796667 +vt 0.656250 0.541667 +vt 0.675000 0.530000 +vt 0.675000 0.540000 +vt 0.656250 0.705000 +vt 0.670000 0.716667 +vt 0.656250 0.720000 +vt 0.656250 0.561667 +vt 0.673750 0.550000 +vt 0.673750 0.560000 +vt 0.656250 0.725000 +vt 0.671250 0.736667 +vt 0.656250 0.740000 +vt 0.656250 0.581667 +vt 0.673750 0.570000 +vt 0.673750 0.580000 +vt 0.656250 0.746667 +vt 0.671250 0.758333 +vt 0.656250 0.761667 +vt 0.656250 0.620000 +vt 0.671250 0.608333 +vt 0.671250 0.618333 +vt 0.656250 0.601667 +vt 0.672500 0.590000 +vt 0.672500 0.600000 +vt 0.656250 0.768333 +vt 0.672500 0.780000 +vt 0.656250 0.781667 +vt 0.656250 0.641667 +vt 0.671250 0.630000 +vt 0.671250 0.640000 +vt 0.656250 0.786667 +vt 0.656250 0.801667 +vt 0.656250 0.661667 +vt 0.670000 0.650000 +vt 0.670000 0.660000 +vt 0.656250 0.806667 +vt 0.673750 0.816667 +vt 0.656250 0.820000 +vt 0.656250 0.681667 +vt 0.670000 0.670000 +vt 0.670000 0.680000 +vt 0.656250 0.826667 +vt 0.675000 0.836667 +vt 0.656250 0.840000 +vt 0.690000 0.571667 +vt 0.700000 0.576667 +vt 0.690000 0.578333 +vt 0.686250 0.658333 +vt 0.690000 0.808333 +vt 0.690000 0.815000 +vt 0.686206 0.678333 +vt 0.691250 0.828333 +vt 0.691250 0.835000 +vt 0.686250 0.690000 +vt 0.686250 0.696667 +vt 0.691250 0.538333 +vt 0.686250 0.708333 +vt 0.686250 0.715000 +vt 0.690000 0.558333 +vt 0.687500 0.728333 +vt 0.687500 0.735000 +vt 0.687500 0.750000 +vt 0.687500 0.756667 +vt 0.687500 0.616667 +vt 0.688750 0.598333 +vt 0.688750 0.771667 +vt 0.688750 0.778333 +vt 0.687500 0.638333 +vt 0.717500 0.551667 +vt 0.721250 0.555000 +vt 0.711250 0.565000 +vt 0.697500 0.751667 +vt 0.697500 0.755000 +vt 0.687500 0.610000 +vt 0.697500 0.615000 +vt 0.688750 0.591667 +vt 0.698750 0.596667 +vt 0.698750 0.773333 +vt 0.698750 0.776667 +vt 0.687500 0.631667 +vt 0.697500 0.636667 +vt 0.700000 0.791667 +vt 0.700000 0.795000 +vt 0.686250 0.651667 +vt 0.696250 0.656667 +vt 0.701250 0.810000 +vt 0.701250 0.813333 +vt 0.686250 0.671667 +vt 0.696250 0.676667 +vt 0.701250 0.830000 +vt 0.701250 0.833333 +vt 0.696250 0.691667 +vt 0.696250 0.695000 +vt 0.691250 0.531667 +vt 0.701250 0.536667 +vt 0.696250 0.710000 +vt 0.696250 0.713333 +vt 0.690000 0.551667 +vt 0.700000 0.556667 +vt 0.697500 0.730000 +vt 0.697500 0.733333 +vt 0.212500 0.735000 +vt 0.186250 0.731667 +vt 0.220000 0.571667 +vt 0.220000 0.576667 +vt 0.193750 0.575000 +vt 0.216250 0.755000 +vt 0.190000 0.753333 +vt 0.188750 0.613333 +vt 0.192500 0.595000 +vt 0.218750 0.775000 +vt 0.192500 0.773333 +vt 0.186250 0.635000 +vt 0.220000 0.795000 +vt 0.193750 0.791667 +vt 0.217500 0.668333 +vt 0.217500 0.675000 +vt 0.192500 0.671667 +vt 0.222500 0.816667 +vt 0.197500 0.813333 +vt 0.217500 0.680000 +vt 0.217500 0.686667 +vt 0.192500 0.683333 +vt 0.222500 0.835000 +vt 0.198750 0.831667 +vt 0.217500 0.690000 +vt 0.217500 0.696667 +vt 0.192500 0.693333 +vt 0.198750 0.535000 +vt 0.217500 0.701667 +vt 0.217500 0.708333 +vt 0.192500 0.705000 +vt 0.083750 0.290000 +vt 0.082500 0.125000 +vt 0.027500 0.141667 +vt 0.083750 0.290000 +vt 0.132500 0.141667 +vt 0.132500 0.141667 +vt 0.082500 0.125000 +vt 0.152500 0.130000 +vt 0.246250 0.413333 +vt 0.211250 0.413333 +vt 0.243750 0.406667 +vt 0.026250 0.111667 +vt 0.026250 0.125000 +vt 0.155000 0.130000 +vt 0.118750 0.101667 +vt 0.185000 0.078333 +vt 0.252500 0.101667 +vt 0.087500 0.081667 +vt 0.118750 0.078333 +vt 0.221250 0.111667 +vt 0.242500 0.111667 +vt 0.086250 0.111667 +vt 0.152500 0.130000 +vt 0.086250 0.111667 +vt 0.272500 0.440000 +vt 0.301250 0.440000 +vt 0.272500 0.453333 +vt 0.118750 0.101667 +vt 0.087500 0.081667 +vt 0.061250 0.101667 +vt 0.185000 0.078333 +vt 0.118750 0.078333 +vt 0.301250 0.490000 +vt 0.272500 0.490000 +vt 0.272500 0.476667 +vt 0.221250 0.111667 +vt 0.243750 0.420000 +vt 0.132500 0.141667 +vt 0.217500 0.465000 +vt 0.217500 0.453333 +vt 0.217500 0.476667 +vt 0.217500 0.440000 +vt 0.083750 0.290000 +vt 0.052500 0.295000 +vt 0.042500 0.290000 +vt 0.296250 0.465000 +vt 0.103750 0.321667 +vt 0.106250 0.498333 +vt 0.103750 0.498333 +vt 0.048750 0.321667 +vt 0.101250 0.498333 +vt 0.047500 0.498333 +vt 0.108750 0.498333 +vt 0.162500 0.321667 +vt 0.162500 0.498333 +vt 0.101250 0.321667 +vt 0.108750 0.321667 +vt 0.106250 0.321667 +vt 0.101250 0.500000 +vt 0.030000 0.498333 +vt 0.180000 0.498333 +vt 0.103750 0.321667 +vt 0.106250 0.498333 +vt 0.103750 0.498333 +vt 0.047500 0.321667 +vt 0.101250 0.498333 +vt 0.047500 0.498333 +vt 0.108297 0.498333 +vt 0.162500 0.321667 +vt 0.162500 0.498333 +vt 0.101250 0.321667 +vt 0.108750 0.321667 +vt 0.106250 0.321667 +vt 0.101250 0.500000 +vt 0.030000 0.498333 +vt 0.180000 0.498333 +vt 0.273750 0.568333 +vt 0.230000 0.885000 +vt 0.238750 0.930000 +vt 0.230000 0.930000 +vt 0.271250 0.743333 +vt 0.271250 0.623333 +vt 0.271250 0.603333 +vt 0.275000 0.543333 +vt 0.275000 0.523333 +vt 0.256250 0.885000 +vt 0.247500 0.930000 +vt 0.247500 0.885000 +vt 0.275000 0.803333 +vt 0.272500 0.603333 +vt 0.272500 0.583333 +vt 0.265000 0.885000 +vt 0.256250 0.930000 +vt 0.272500 0.763333 +vt 0.275000 0.563333 +vt 0.268750 0.643333 +vt 0.268750 0.623333 +vt 0.268750 0.723333 +vt 0.275000 0.823333 +vt 0.238750 0.885000 +vt 0.273750 0.783333 +vt 0.273750 0.583333 +vt 0.273750 0.563333 +vt 0.122500 0.990000 +vt 0.216250 0.971667 +vt 0.216250 0.990000 +vt 0.122500 0.916667 +vt 0.216250 0.935000 +vt 0.122500 0.935000 +vt 0.122500 0.971667 +vt 0.216250 0.953333 +vt 0.122500 0.953333 +vt 0.333750 0.885000 +vt 0.318750 0.928333 +vt 0.318750 0.885000 +vt 0.303750 0.928333 +vt 0.303750 0.885000 +vt 0.288750 0.885000 +vt 0.288750 0.928333 +vt 0.333750 0.986667 +vt 0.240000 0.941667 +vt 0.333750 0.941667 +vt 0.333750 0.941667 +vt 0.240000 0.986667 +vt 0.240000 0.941667 +vt 0.273750 0.885000 +vt 0.273750 0.928333 +vt 0.435000 0.963333 +vt 0.415000 0.976667 +vt 0.435000 0.976667 +vt 0.435000 0.950000 +vt 0.415000 0.963333 +vt 0.435000 0.936667 +vt 0.415000 0.950000 +vt 0.435000 0.923333 +vt 0.415000 0.936667 +vt 0.450000 0.936667 +vt 0.450000 0.963333 +vt 0.465000 0.950000 +vt 0.450000 0.950000 +vt 0.415000 0.923333 +vt 0.400000 0.936667 +vt 0.400000 0.950000 +vt 0.450000 0.976667 +vt 0.400000 0.963333 +vt 0.385000 0.950000 +vt 0.462500 0.936667 +vt 0.450000 0.923333 +vt 0.400000 0.923333 +vt 0.387500 0.936667 +vt 0.462500 0.963333 +vt 0.387500 0.963333 +vt 0.400000 0.976667 +vt 0.435000 0.923333 +vt 0.415000 0.936667 +vt 0.415000 0.923333 +vt 0.435000 0.936667 +vt 0.415000 0.950000 +vt 0.435000 0.950000 +vt 0.415000 0.963333 +vt 0.435000 0.963333 +vt 0.415000 0.976667 +vt 0.400000 0.963333 +vt 0.400000 0.936667 +vt 0.385000 0.950000 +vt 0.385000 0.936667 +vt 0.450000 0.976667 +vt 0.435000 0.976667 +vt 0.450000 0.950000 +vt 0.400000 0.950000 +vt 0.450000 0.963333 +vt 0.400000 0.923333 +vt 0.450000 0.936667 +vt 0.465000 0.950000 +vt 0.465000 0.963333 +vt 0.400000 0.976667 +vt 0.387500 0.963333 +vt 0.462500 0.963333 +vt 0.462500 0.976667 +vt 0.387500 0.936667 +vt 0.387500 0.923333 +vt 0.450000 0.923333 +vt 0.462500 0.936667 +vt 0.143750 0.846667 +vt 0.136250 0.828333 +vt 0.143750 0.828333 +vt 0.136250 0.846667 +vt 0.128750 0.828333 +vt 0.121250 0.846667 +vt 0.121250 0.828333 +vt 0.113750 0.846667 +vt 0.113750 0.828333 +vt 0.106250 0.828333 +vt 0.076250 0.898333 +vt 0.068750 0.908333 +vt 0.068750 0.898333 +vt 0.158750 0.846667 +vt 0.151250 0.875000 +vt 0.151250 0.846667 +vt 0.151250 0.828333 +vt 0.158750 0.828333 +vt 0.128750 0.875000 +vt 0.128750 0.846667 +vt 0.113750 0.805000 +vt 0.106250 0.875000 +vt 0.106250 0.846667 +vt 0.128750 0.805000 +vt 0.151250 0.805000 +vt 0.143750 0.805000 +vt 0.121250 0.875000 +vt 0.143750 0.875000 +vt 0.136250 0.875000 +vt 0.166250 0.805000 +vt 0.166250 0.828333 +vt 0.166250 0.846667 +vt 0.158750 0.875000 +vt 0.121250 0.805000 +vt 0.113750 0.875000 +vt 0.136250 0.805000 +vt 0.158750 0.805000 +vt 0.125000 0.726667 +vt 0.155000 0.726667 +vt 0.141250 0.908333 +vt 0.138750 0.908333 +vt 0.117500 0.726667 +vt 0.147500 0.726667 +vt 0.140000 0.726667 +vt 0.106250 0.805000 +vt 0.110000 0.726667 +vt 0.102500 0.871667 +vt 0.101250 0.878333 +vt 0.096250 0.876667 +vt 0.132500 0.726667 +vt 0.162500 0.726667 +vt 0.131250 0.908333 +vt 0.123750 0.908333 +vt 0.116250 0.908333 +vt 0.108750 0.908333 +vt 0.166250 0.875000 +vt 0.161250 0.908333 +vt 0.153750 0.908333 +vt 0.146250 0.908333 +vt 0.055000 0.908333 +vt 0.055000 0.898333 +vt 0.090000 0.898333 +vt 0.076250 0.908333 +vt 0.097500 0.898333 +vt 0.090000 0.908333 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.075000 0.608333 +vt 0.047500 0.606667 +vt 0.075000 0.596667 +vt 0.047500 0.586667 +vt 0.075000 0.585000 +vt 0.047500 0.583333 +vt 0.075000 0.566667 +vt 0.047500 0.565000 +vt 0.075000 0.555000 +vt 0.047500 0.553333 +vt 0.075000 0.543333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.630000 +vt 0.047500 0.626667 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.031250 0.586667 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.566667 +vt 0.033750 0.646667 +vt 0.033750 0.640000 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.128750 0.625000 +vt 0.101250 0.585000 +vt 0.101250 0.608333 +vt 0.101250 0.566667 +vt 0.101250 0.638333 +vt 0.101250 0.596667 +vt 0.128750 0.630000 +vt 0.128750 0.636667 +vt 0.101250 0.543333 +vt 0.128750 0.551667 +vt 0.101250 0.555000 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.128750 0.606667 +vt 0.101250 0.650000 +vt 0.128750 0.641667 +vt 0.128750 0.646667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.627500 0.311667 +vt 0.637500 0.313333 +vt 0.627500 0.316667 +vt 0.902500 0.131667 +vt 0.671250 0.191667 +vt 0.673750 0.131667 +vt 0.633750 0.133333 +vt 0.643750 0.138333 +vt 0.645000 0.171667 +vt 0.387500 0.311667 +vt 0.330000 0.318333 +vt 0.330000 0.310000 +vt 0.663750 0.315000 +vt 0.638750 0.311667 +vt 0.663750 0.311667 +vt 0.387500 0.318333 +vt 0.620000 0.315000 +vt 0.620000 0.318333 +vt 0.636250 0.193333 +vt 0.398750 0.133333 +vt 0.682500 0.311667 +vt 0.825000 0.295000 +vt 0.765000 0.306667 +vt 0.765000 0.295000 +vt 0.732500 0.310000 +vt 0.726250 0.295000 +vt 0.960000 0.238333 +vt 0.902500 0.238333 +vt 0.340000 0.241667 +vt 0.340000 0.133333 +vt 0.308750 0.310000 +vt 0.980000 0.131667 +vt 0.980000 0.268333 +vt 0.318750 0.133333 +vt 0.307500 0.130000 +vt 0.318750 0.130000 +vt 0.673750 0.128333 +vt 0.671250 0.130000 +vt 0.633750 0.130000 +vt 0.636250 0.131667 +vt 0.902500 0.128333 +vt 0.398750 0.130000 +vt 0.340000 0.130000 +vt 0.960000 0.128333 +vt 0.960000 0.131667 +vt 0.980000 0.128333 +vt 0.662500 0.168333 +vt 0.662500 0.136667 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.075000 0.608333 +vt 0.047500 0.606667 +vt 0.075000 0.596667 +vt 0.047500 0.586667 +vt 0.075000 0.585000 +vt 0.047500 0.583333 +vt 0.075000 0.566667 +vt 0.047500 0.565000 +vt 0.075000 0.555000 +vt 0.047500 0.553333 +vt 0.075000 0.543333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.101250 0.543333 +vt 0.101250 0.555000 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.630000 +vt 0.047500 0.626667 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.031250 0.586667 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.566667 +vt 0.033750 0.646667 +vt 0.033750 0.640000 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.128750 0.625000 +vt 0.101250 0.585000 +vt 0.101250 0.650000 +vt 0.101250 0.608333 +vt 0.101250 0.566667 +vt 0.101250 0.638333 +vt 0.101250 0.596667 +vt 0.128750 0.630000 +vt 0.128750 0.636667 +vt 0.128750 0.551667 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.128750 0.606667 +vt 0.128750 0.641667 +vt 0.128750 0.646667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.297500 0.318333 +vt 0.297500 0.310000 +vt 0.310000 0.273333 +vt 0.307500 0.133333 +vt 0.136250 0.828333 +vt 0.143750 0.846667 +vt 0.143750 0.828333 +vt 0.128750 0.828333 +vt 0.136250 0.846667 +vt 0.121250 0.828333 +vt 0.128750 0.846667 +vt 0.113750 0.828333 +vt 0.121250 0.846667 +vt 0.106250 0.828333 +vt 0.113750 0.846667 +vt 0.068750 0.908333 +vt 0.076250 0.898333 +vt 0.068750 0.898333 +vt 0.151250 0.875000 +vt 0.158750 0.846667 +vt 0.151250 0.846667 +vt 0.151250 0.828333 +vt 0.158750 0.828333 +vt 0.128750 0.875000 +vt 0.113750 0.805000 +vt 0.106250 0.875000 +vt 0.106250 0.846667 +vt 0.128750 0.805000 +vt 0.151250 0.805000 +vt 0.143750 0.805000 +vt 0.121250 0.875000 +vt 0.143750 0.875000 +vt 0.136250 0.875000 +vt 0.166250 0.805000 +vt 0.166250 0.828333 +vt 0.158750 0.875000 +vt 0.166250 0.846667 +vt 0.121250 0.805000 +vt 0.113750 0.875000 +vt 0.136250 0.805000 +vt 0.158750 0.805000 +vt 0.125000 0.726667 +vt 0.155000 0.726667 +vt 0.141250 0.908333 +vt 0.117500 0.726667 +vt 0.147500 0.726667 +vt 0.140000 0.726667 +vt 0.110000 0.726667 +vt 0.106250 0.805000 +vt 0.097500 0.878333 +vt 0.101250 0.878333 +vt 0.102500 0.876667 +vt 0.132500 0.726667 +vt 0.162500 0.726667 +vt 0.131250 0.908333 +vt 0.123750 0.908333 +vt 0.116250 0.908333 +vt 0.111250 0.908333 +vt 0.161250 0.908333 +vt 0.166250 0.875000 +vt 0.156250 0.908333 +vt 0.146250 0.908333 +vt 0.055000 0.908333 +vt 0.055000 0.898333 +vt 0.076250 0.908333 +vt 0.090000 0.898333 +vt 0.090000 0.908333 +vt 0.097500 0.898333 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.047500 0.626667 +vt 0.075000 0.596667 +vt 0.047500 0.606667 +vt 0.075000 0.608333 +vt 0.047500 0.586667 +vt 0.047500 0.595000 +vt 0.075000 0.566667 +vt 0.047500 0.583333 +vt 0.075000 0.585000 +vt 0.075000 0.555000 +vt 0.047500 0.565000 +vt 0.075000 0.543333 +vt 0.047500 0.553333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.047500 0.648333 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.047500 0.636667 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.646667 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.101250 0.608333 +vt 0.101250 0.585000 +vt 0.101250 0.566667 +vt 0.101250 0.638333 +vt 0.101250 0.596667 +vt 0.128750 0.630000 +vt 0.128750 0.551667 +vt 0.101250 0.543333 +vt 0.101250 0.555000 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.101250 0.650000 +vt 0.128750 0.641667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.075000 0.626667 +vt 0.047500 0.610000 +vt 0.047500 0.626667 +vt 0.075000 0.596667 +vt 0.047500 0.606667 +vt 0.075000 0.608333 +vt 0.047500 0.586667 +vt 0.047500 0.595000 +vt 0.075000 0.566667 +vt 0.047500 0.583333 +vt 0.075000 0.585000 +vt 0.075000 0.555000 +vt 0.047500 0.565000 +vt 0.075000 0.543333 +vt 0.047500 0.553333 +vt 0.031250 0.600000 +vt 0.047500 0.598333 +vt 0.075000 0.650000 +vt 0.047500 0.640000 +vt 0.047500 0.648333 +vt 0.075000 0.638333 +vt 0.047500 0.628333 +vt 0.047500 0.636667 +vt 0.101250 0.543333 +vt 0.033750 0.558333 +vt 0.047500 0.556667 +vt 0.033750 0.635000 +vt 0.033750 0.621667 +vt 0.031250 0.593333 +vt 0.033750 0.546667 +vt 0.047500 0.545000 +vt 0.047500 0.566667 +vt 0.033750 0.571667 +vt 0.033750 0.646667 +vt 0.101250 0.626667 +vt 0.128750 0.618333 +vt 0.101250 0.608333 +vt 0.101250 0.585000 +vt 0.101250 0.650000 +vt 0.101250 0.566667 +vt 0.101250 0.596667 +vt 0.101250 0.638333 +vt 0.128750 0.630000 +vt 0.128750 0.551667 +vt 0.101250 0.555000 +vt 0.128750 0.575000 +vt 0.128750 0.601667 +vt 0.128750 0.641667 +vt 0.128750 0.563333 +vt 0.128750 0.591667 +vt 0.271250 0.618333 +vt 0.275000 0.540000 +vt 0.217500 0.711667 +vt 0.272500 0.598333 +vt 0.275000 0.560000 +vt 0.268750 0.638333 +vt 0.670000 0.688333 +vt 0.673750 0.788333 +vt 0.656250 0.526667 +vt 0.670000 0.706667 +vt 0.656250 0.546667 +vt 0.671250 0.726667 +vt 0.656250 0.566667 +vt 0.671250 0.748333 +vt 0.656250 0.605000 +vt 0.656250 0.586667 +vt 0.672500 0.770000 +vt 0.656250 0.626667 +vt 0.656250 0.646667 +vt 0.673750 0.806667 +vt 0.656250 0.666667 +vt 0.675000 0.826667 +vt 0.700000 0.573333 +vt 0.722500 0.558333 +vt 0.722500 0.561667 +vt 0.721250 0.565000 +vt 0.720000 0.566667 +vt 0.717500 0.568333 +vt 0.715000 0.568333 +vt 0.712500 0.566667 +vt 0.710000 0.561667 +vt 0.712500 0.553333 +vt 0.710000 0.558333 +vt 0.711250 0.555000 +vt 0.715000 0.551667 +vt 0.720000 0.553333 +vt 0.697500 0.611667 +vt 0.698750 0.593333 +vt 0.697500 0.633333 +vt 0.696250 0.653333 +vt 0.696250 0.673333 +vt 0.701250 0.533333 +vt 0.700000 0.553333 +vt 0.061250 0.101610 +vt 0.252500 0.101667 +vt 0.217500 0.490000 +vt 0.108750 0.500000 +vt 0.108750 0.516667 +vt 0.101250 0.516667 +vt 0.105000 0.538333 +vt 0.030000 0.321667 +vt 0.180000 0.321667 +vt 0.108750 0.500000 +vt 0.108750 0.516667 +vt 0.101250 0.516667 +vt 0.105000 0.538333 +vt 0.030000 0.321667 +vt 0.180000 0.321667 +vt 0.273750 0.578333 +vt 0.271250 0.763333 +vt 0.265000 0.930000 +vt 0.272500 0.783333 +vt 0.268750 0.743333 +vt 0.275000 0.843333 +vt 0.273750 0.803333 +vt 0.216250 0.916667 +vt 0.333750 0.928333 +vt 0.240000 0.986667 +vt 0.333750 0.986667 +vt 0.465000 0.963333 +vt 0.385000 0.963333 +vt 0.465000 0.936667 +vt 0.385000 0.936667 +vt 0.462500 0.923333 +vt 0.387500 0.923333 +vt 0.462500 0.976667 +vt 0.387500 0.976667 +vt 0.465000 0.936667 +vt 0.385000 0.963333 +vt 0.387500 0.976667 +vt 0.462500 0.923333 +vt 0.097500 0.870000 +vt 0.101250 0.870000 +vt 0.102500 0.876667 +vt 0.097500 0.878333 +vt 0.096250 0.871667 +vt 0.133750 0.908333 +vt 0.126250 0.908333 +vt 0.118750 0.908333 +vt 0.111250 0.908333 +vt 0.163750 0.908333 +vt 0.156250 0.908333 +vt 0.148750 0.908333 +vt 0.097500 0.908333 +vt 0.047500 0.595000 +vt 0.031250 0.606667 +vt 0.047500 0.648333 +vt 0.047500 0.636667 +vt 0.033750 0.563333 +vt 0.033750 0.626667 +vt 0.033750 0.553333 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vt 0.637500 0.316667 +vt 0.625000 0.315000 +vt 0.625000 0.311667 +vt 0.638750 0.315000 +vt 0.398750 0.241667 +vt 0.308750 0.318333 +vt 0.047500 0.595000 +vt 0.031250 0.606667 +vt 0.047500 0.648333 +vt 0.047500 0.636667 +vt 0.033750 0.563333 +vt 0.033750 0.626667 +vt 0.033750 0.553333 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vt 0.307500 0.273333 +vt 0.138750 0.908333 +vt 0.102500 0.871667 +vt 0.101250 0.870000 +vt 0.097500 0.870000 +vt 0.096250 0.871667 +vt 0.096250 0.876667 +vt 0.133750 0.908333 +vt 0.126250 0.908333 +vt 0.118750 0.908333 +vt 0.108750 0.908333 +vt 0.163750 0.908333 +vt 0.153750 0.908333 +vt 0.148750 0.908333 +vt 0.097500 0.908333 +vt 0.031250 0.606667 +vt 0.033750 0.563333 +vt 0.033750 0.630000 +vt 0.033750 0.626667 +vt 0.031250 0.586667 +vt 0.033750 0.553333 +vt 0.033750 0.566667 +vt 0.033750 0.640000 +vt 0.128750 0.625000 +vt 0.128750 0.636667 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.606667 +vt 0.128750 0.646667 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vt 0.031250 0.606667 +vt 0.033750 0.563333 +vt 0.033750 0.630000 +vt 0.033750 0.626667 +vt 0.031250 0.586667 +vt 0.033750 0.553333 +vt 0.033750 0.566667 +vt 0.033750 0.640000 +vt 0.128750 0.625000 +vt 0.128750 0.636667 +vt 0.128750 0.546667 +vt 0.128750 0.568333 +vt 0.128750 0.606667 +vt 0.128750 0.646667 +vt 0.128750 0.558333 +vt 0.128750 0.586667 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.8658 0.0000 0.5004 +vn -0.0459 -0.9989 0.0110 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0058 +vn 0.0160 0.0000 0.9999 +vn 0.9998 0.0000 0.0212 +vn -0.0429 0.9991 -0.0002 +vn -0.4367 0.0000 0.8996 +vn -0.9999 0.0000 -0.0145 +vn -0.6499 0.0000 0.7600 +vn -0.0432 -0.9957 0.0823 +vn -0.0432 0.9973 0.0593 +vn -0.0000 -1.0000 -0.0000 +vn 0.3704 0.9289 -0.0002 +vn 0.3671 -0.9285 -0.0559 +vn 0.3514 0.9109 -0.2165 +vn 0.3704 0.9288 0.0078 +vn 0.3711 -0.9284 0.0190 +vn 0.3704 0.9289 0.0022 +vn 0.3704 -0.9286 0.0237 +vn 0.3704 0.9289 0.0000 +vn 0.3707 -0.9288 0.0000 +vn -0.0405 -0.9933 0.1083 +vn 1.0000 0.0000 -0.0005 +vn -0.0377 0.9993 0.0000 +vn -0.0471 -0.9988 -0.0103 +vn -0.0471 -0.9988 0.0103 +vn -0.0430 -0.9990 0.0116 +vn -0.0535 0.9883 -0.1431 +vn -0.0465 0.9989 -0.0010 +vn -0.6399 0.5727 0.5124 +vn -0.0001 -0.9997 0.0232 +vn 0.3705 -0.9286 0.0190 +vn 0.3705 -0.9285 0.0237 +vn 0.0119 -0.9743 0.2249 +vn 0.0035 -0.9751 0.2219 +vn 0.0810 0.0057 -0.9967 +vn -0.1343 -0.3904 -0.9108 +vn -0.0938 -0.0125 -0.9955 +vn 0.0630 -0.3770 -0.9241 +vn -0.0927 -0.6622 -0.7436 +vn 0.0473 -0.7034 -0.7093 +vn -0.0000 -0.9239 -0.3827 +vn 0.0367 -0.9224 -0.3845 +vn 0.0329 -0.9995 -0.0000 +vn -0.0000 -0.9239 0.3827 +vn 0.0367 -0.9224 0.3845 +vn -0.0927 -0.6622 0.7436 +vn 0.0473 -0.7034 0.7093 +vn -0.1343 -0.3904 0.9108 +vn 0.0630 -0.3770 0.9241 +vn -0.0938 -0.0125 0.9955 +vn 0.0810 0.0057 0.9967 +vn -0.0550 0.3723 0.9265 +vn 0.0986 0.3856 0.9174 +vn -0.0249 0.7017 0.7120 +vn 0.1131 0.7053 0.6998 +vn -0.0070 0.9226 0.3858 +vn 0.1226 0.9177 0.3779 +vn -0.0014 1.0000 0.0000 +vn 0.1259 0.9920 0.0000 +vn -0.0070 0.9226 -0.3858 +vn 0.1226 0.9177 -0.3779 +vn -0.0249 0.7017 -0.7120 +vn 0.2507 -0.3642 -0.8969 +vn 0.1960 -0.6891 -0.6976 +vn 0.1131 0.7053 -0.6998 +vn -0.0550 0.3723 -0.9265 +vn 0.0986 0.3856 -0.9174 +vn -0.1689 0.9518 -0.2560 +vn -0.2026 0.8198 -0.5356 +vn -0.9999 0.0152 -0.0000 +vn -0.3334 -0.6673 -0.6660 +vn -0.3677 -0.8964 -0.2474 +vn -0.3703 -0.7707 -0.5186 +vn -0.1850 0.0004 0.9827 +vn -0.3649 -0.4770 0.7996 +vn -0.2728 -0.4089 0.8708 +vn -0.1850 0.0004 -0.9827 +vn -0.3649 -0.4770 -0.7996 +vn -0.3264 0.0192 -0.9450 +vn -0.0032 1.0000 0.0000 +vn -0.1583 0.9874 0.0000 +vn -0.3334 -0.6673 0.6660 +vn -0.3677 -0.8964 0.2474 +vn -0.3863 -0.8696 0.3074 +vn -0.0117 0.9403 0.3403 +vn -0.2026 0.8198 0.5356 +vn -0.0419 0.7512 0.6588 +vn -0.1008 0.4241 -0.9000 +vn -0.2608 0.5178 -0.8148 +vn -0.3863 -0.8696 -0.3074 +vn -0.3669 -0.9303 -0.0000 +vn -0.1008 0.4241 0.9000 +vn -0.3264 0.0192 0.9450 +vn -0.0117 0.9403 -0.3403 +vn -0.2728 -0.4089 -0.8708 +vn -0.3703 -0.7707 0.5186 +vn -0.1689 0.9518 0.2560 +vn -0.3977 -0.9175 -0.0000 +vn -0.2608 0.5178 0.8148 +vn 0.3630 0.3606 -0.8592 +vn 0.6235 0.5508 -0.5548 +vn 0.5707 0.3111 -0.7599 +vn 0.2507 -0.3642 0.8969 +vn 0.4384 0.8988 0.0000 +vn 0.1571 -0.9110 0.3812 +vn 0.4042 0.6486 0.6449 +vn 0.4042 0.6486 -0.6449 +vn 0.1571 -0.9110 -0.3812 +vn 0.3097 0.0059 0.9508 +vn 0.3097 0.0059 -0.9508 +vn 0.4298 0.8347 -0.3444 +vn 0.1960 -0.6891 0.6976 +vn 0.4298 0.8347 0.3444 +vn 0.1430 -0.9897 -0.0000 +vn 0.3630 0.3606 0.8592 +vn 0.2476 -0.9689 0.0000 +vn 0.3523 -0.8680 0.3499 +vn 0.2698 -0.8895 0.3687 +vn 0.4980 -0.0029 0.8672 +vn 0.4980 -0.0029 -0.8672 +vn 0.4128 -0.3500 -0.8409 +vn 0.5707 0.3111 0.7599 +vn 0.3303 -0.6676 -0.6672 +vn 0.6235 0.5508 0.5548 +vn 0.2698 -0.8895 -0.3687 +vn 0.6547 0.6978 0.2907 +vn 0.6649 0.7469 -0.0000 +vn 0.6547 0.6978 -0.2907 +vn 0.3303 -0.6676 0.6672 +vn 0.4128 -0.3500 0.8409 +vn 0.5478 0.5836 0.5994 +vn 0.4691 0.3372 0.8162 +vn 0.4631 0.6263 0.6271 +vn 0.5732 0.8194 0.0000 +vn 0.5669 0.7589 -0.3205 +vn 0.3827 -0.6643 0.6421 +vn 0.5478 0.5836 -0.5994 +vn 0.4269 -0.3638 0.8279 +vn 0.5161 0.3131 -0.7973 +vn 0.4737 -0.0189 0.8805 +vn 0.4737 -0.0189 -0.8805 +vn 0.4257 -0.3636 -0.8286 +vn 0.5161 0.3131 0.7973 +vn 0.3827 -0.6643 -0.6421 +vn 0.3523 -0.8680 -0.3499 +vn 0.5669 0.7589 0.3205 +vn 0.3415 -0.9399 0.0000 +vn 0.4631 0.6263 -0.6271 +vn 0.8540 0.2014 -0.4797 +vn 0.4691 0.3372 -0.8162 +vn 0.4920 -0.8044 -0.3329 +vn 0.4591 0.8206 0.3403 +vn 0.4933 -0.8699 -0.0000 +vn 0.4577 0.8891 0.0000 +vn 0.4920 -0.8044 0.3329 +vn 0.4591 0.8206 -0.3403 +vn 0.4883 -0.6175 0.6167 +vn 0.4827 -0.3358 0.8088 +vn 0.4759 -0.0008 0.8795 +vn 0.4827 -0.3358 -0.8088 +vn 0.4759 -0.0008 -0.8795 +vn 0.4883 -0.6175 -0.6167 +vn 0.8654 -0.5011 0.0000 +vn 0.8631 -0.3559 -0.3584 +vn 0.8512 0.3725 0.3698 +vn 0.8604 -0.1928 0.4717 +vn 0.8572 0.0026 0.5149 +vn 0.8604 -0.1928 -0.4717 +vn 0.8572 0.0026 -0.5149 +vn 0.8540 0.2014 0.4797 +vn 0.8648 -0.4635 -0.1931 +vn 0.8493 0.4881 0.2010 +vn 0.8486 0.5290 -0.0000 +vn 0.8648 -0.4635 0.1931 +vn 0.8493 0.4881 -0.2010 +vn 0.8631 -0.3559 0.3584 +vn 0.8512 0.3725 -0.3698 +vn 0.2304 0.6351 -0.7372 +vn -0.0556 0.0738 -0.9957 +vn -0.0764 0.0081 -0.9970 +vn 0.6917 0.7222 -0.0000 +vn 0.2932 0.2402 0.9254 +vn 0.5995 0.8004 0.0000 +vn -0.0477 0.0732 0.9962 +vn 0.1893 0.5721 0.7980 +vn -0.2282 0.9736 0.0000 +vn 0.2304 0.6351 0.7372 +vn -0.9997 0.0243 0.0000 +vn -0.0708 -0.0046 -0.9975 +vn 0.2401 0.9707 -0.0000 +vn -0.0307 0.3710 0.9281 +vn 0.0147 0.6209 0.7838 +vn 0.1072 0.7709 0.6279 +vn -0.0940 0.2428 0.9655 +vn -0.0321 0.0475 0.9984 +vn 0.1421 0.9899 0.0000 +vn 0.1893 0.5721 -0.7980 +vn -0.0307 0.3710 -0.9281 +vn -0.3565 -0.6551 0.6661 +vn -0.0940 0.2428 -0.9655 +vn 0.0147 0.6209 -0.7838 +vn -0.0321 0.0475 -0.9984 +vn -0.3565 -0.6551 -0.6661 +vn 0.1072 0.7709 -0.6279 +vn 0.2892 0.2425 -0.9260 +vn -0.0185 -0.9506 0.3099 +vn -0.0185 -0.9506 -0.3099 +vn -0.0938 0.0570 0.9940 +vn -0.0768 0.0053 0.9970 +vn -0.0708 -0.0046 0.9975 +vn -0.0938 0.0570 -0.9940 +vn 0.9098 0.3822 -0.1619 +vn 0.9036 -0.3973 -0.1603 +vn 0.9036 0.3973 -0.1603 +vn -0.1043 0.9944 -0.0158 +vn 0.3414 0.9380 -0.0604 +vn -0.0931 0.9956 -0.0133 +vn 0.3414 -0.9380 -0.0604 +vn -0.1043 -0.9944 -0.0158 +vn -0.0931 -0.9956 -0.0133 +vn 0.3955 0.9158 -0.0703 +vn 0.3955 -0.9158 -0.0703 +vn 0.9098 -0.3822 -0.1619 +vn 0.0000 0.0000 -1.0000 +vn -0.2024 0.9789 -0.0291 +vn -0.2024 -0.9789 -0.0291 +vn 0.9098 -0.3822 0.1619 +vn 0.9036 0.3973 0.1603 +vn 0.9036 -0.3973 0.1603 +vn -0.1043 -0.9944 0.0158 +vn 0.3414 -0.9380 0.0604 +vn -0.0931 -0.9956 0.0133 +vn 0.3414 0.9380 0.0604 +vn -0.1043 0.9944 0.0158 +vn -0.0931 0.9956 0.0133 +vn 0.3955 -0.9158 0.0704 +vn 0.3955 0.9158 0.0703 +vn 0.9098 0.3822 0.1619 +vn -0.0000 0.0000 1.0000 +vn -0.2024 -0.9789 0.0291 +vn -0.2024 0.9789 0.0291 +vn -0.0419 0.7512 -0.6588 +vn 0.1769 -0.8514 0.4938 +vn 0.1911 -0.9199 0.3424 +vn 0.1922 -0.9249 -0.3279 +vn 0.2034 -0.9791 0.0000 +vn 0.1769 -0.8514 -0.4938 +vn 0.1911 -0.9199 -0.3424 +vn 0.1922 -0.9249 0.3279 +vn -0.3601 -0.7774 -0.5156 +vn -0.3792 -0.8660 -0.3260 +vn -0.3595 -0.8072 -0.4682 +vn -0.3601 -0.7774 0.5156 +vn -0.3792 -0.8660 0.3260 +vn -0.3829 -0.8572 0.3443 +vn -0.3829 -0.8572 -0.3443 +vn -0.3946 -0.9188 0.0000 +vn -0.0478 0.2298 -0.9721 +vn -0.1878 0.9036 -0.3850 +vn -0.1892 0.9107 -0.3673 +vn -0.2034 0.9791 0.0000 +vn -0.1892 0.9107 0.3673 +vn -0.1878 0.9036 0.3850 +vn 0.0460 -0.2216 -0.9740 +vn -0.1276 0.6143 -0.7787 +vn -0.0478 0.2298 0.9721 +vn 0.0460 -0.2216 0.9740 +vn -0.1276 0.6143 0.7787 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.3827 -0.9239 +vn -0.2584 -0.0301 -0.9656 +vn -0.2138 -0.9758 -0.0466 +vn -0.5821 -0.5915 -0.5579 +vn -0.2876 -0.6718 -0.6826 +vn 0.2584 -0.0301 -0.9656 +vn 0.2876 -0.6718 -0.6826 +vn -0.0962 -0.9196 0.3809 +vn 0.2138 -0.9758 -0.0466 +vn 0.5821 -0.5915 -0.5579 +vn -0.4781 0.0910 -0.8736 +vn -0.2081 0.3743 -0.9036 +vn 0.2081 0.3743 -0.9036 +vn 0.4781 0.0910 -0.8736 +vn -0.3220 -0.9376 0.1309 +vn 0.3220 -0.9376 0.1309 +vn 0.0962 -0.9196 0.3809 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.3827 0.9239 +vn -0.2584 -0.0301 0.9656 +vn -0.2138 -0.9758 0.0466 +vn -0.5821 -0.5915 0.5579 +vn -0.3220 -0.9376 -0.1309 +vn 0.2081 0.3743 0.9036 +vn 0.2876 -0.6718 0.6826 +vn -0.2876 -0.6718 0.6826 +vn 0.2584 -0.0301 0.9656 +vn -0.0962 -0.9196 -0.3809 +vn 0.2138 -0.9758 0.0466 +vn 0.5821 -0.5915 0.5579 +vn 0.4781 0.0910 0.8736 +vn -0.2081 0.3743 0.9037 +vn -0.4781 0.0910 0.8736 +vn 0.3582 0.3573 0.8626 +vn -0.1649 -0.9112 -0.3774 +vn 0.0962 -0.9196 -0.3809 +vn 0.3220 -0.9376 -0.1309 +vn 0.0000 -0.3827 -0.9239 +vn -0.0000 -0.3827 0.9239 +vn -0.2811 0.6786 0.6786 +vn 0.2811 0.6786 -0.6786 +vn 0.7071 0.0000 0.7071 +vn 0.2811 0.6786 0.6786 +vn 0.1290 0.3795 -0.9162 +vn -0.2811 0.6786 -0.6786 +vn 0.1290 -0.9162 0.3795 +vn -0.0842 0.3813 0.9206 +vn 0.1290 0.9162 0.3795 +vn -0.0842 -0.9206 0.3813 +vn -0.0842 0.3813 -0.9206 +vn -0.0842 -0.3813 -0.9206 +vn 0.1290 -0.3795 0.9162 +vn 0.1290 -0.3795 -0.9162 +vn 0.1290 -0.9162 -0.3795 +vn -0.0842 0.9206 0.3813 +vn 0.1290 0.9162 -0.3795 +vn -0.0842 -0.3813 0.9206 +vn 0.1290 0.3795 0.9162 +vn -0.0842 -0.9206 -0.3813 +vn -0.0842 0.9206 -0.3813 +vn 0.7274 -0.2626 -0.6340 +vn 0.7274 -0.6340 -0.2626 +vn 0.7274 0.6340 -0.2626 +vn 0.7274 0.2626 0.6340 +vn 0.7274 -0.6340 0.2626 +vn 0.7274 -0.2626 0.6340 +vn 0.7274 0.6340 0.2626 +vn 0.7274 0.2626 -0.6340 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0395 0.0793 -0.9961 +vn 0.2579 -0.6421 -0.7219 +vn 0.0374 -0.6482 -0.7605 +vn 0.0345 -0.9994 0.0000 +vn 0.2580 -0.6421 0.7219 +vn 0.0374 -0.6482 0.7605 +vn 0.0395 0.0793 0.9961 +vn 0.1484 0.0900 0.9848 +vn 0.0396 0.7059 0.7072 +vn 0.1393 0.7021 0.6983 +vn 0.0380 0.9993 0.0000 +vn 0.5402 -0.8415 -0.0000 +vn 0.2980 -0.9546 0.0000 +vn 0.1393 0.7021 -0.6983 +vn 0.0396 0.7059 -0.7072 +vn 0.1483 0.0900 -0.9848 +vn 0.2023 0.6897 0.6953 +vn 0.2022 0.6897 -0.6953 +vn 0.1873 -0.0056 -0.9823 +vn 0.3633 -0.5613 -0.7436 +vn 0.3633 -0.5613 0.7436 +vn 0.2084 0.9780 -0.0000 +vn 0.1406 0.9901 0.0000 +vn 0.1874 -0.0056 0.9823 +vn -0.0994 0.0743 -0.9923 +vn -0.2799 -0.6041 -0.7461 +vn -0.1984 0.0653 -0.9779 +vn -0.1426 -0.6541 0.7428 +vn -0.1426 -0.6541 -0.7428 +vn -0.0994 0.0743 0.9923 +vn -0.0928 0.7032 -0.7049 +vn -0.1643 -0.9864 0.0000 +vn -0.1889 0.6964 -0.6923 +vn -0.0906 0.9959 0.0000 +vn -0.1889 0.6964 0.6923 +vn -0.0928 0.7032 0.7049 +vn -0.2799 -0.6041 0.7461 +vn -0.3368 -0.9416 0.0000 +vn -0.1844 0.9829 0.0000 +vn -0.1984 0.0653 0.9779 +vn 0.6227 -0.6827 -0.3822 +vn 0.4008 -0.5261 -0.7501 +vn 0.6464 0.7155 -0.2650 +vn 0.1749 -0.9843 -0.0258 +vn -0.9373 -0.0099 -0.3483 +vn 0.1369 -0.9880 -0.0719 +vn 0.1380 0.9894 0.0443 +vn 0.4011 0.6112 -0.6824 +vn -0.1967 0.7052 -0.6812 +vn 0.8295 -0.5582 -0.0210 +vn 0.8281 0.5606 -0.0024 +vn 0.8262 -0.5633 -0.0090 +vn -0.1756 -0.6143 -0.7693 +vn 0.8286 0.5598 -0.0112 +vn 0.8478 -0.4952 -0.1898 +vn 0.8588 0.4836 -0.1688 +vn 0.1747 0.9846 -0.0085 +vn -0.9999 -0.0000 0.0145 +vn -0.9059 0.0000 -0.4234 +vn -0.9123 0.0653 -0.4043 +vn -0.6550 0.5133 -0.5545 +vn -0.6399 0.5727 -0.5124 +vn -0.0103 -0.9997 -0.0232 +vn -0.0431 -0.9979 -0.0485 +vn -0.0108 0.9998 -0.0148 +vn 0.1889 0.9820 -0.0005 +vn 0.9311 -0.3647 0.0002 +vn 0.1888 -0.9820 0.0000 +vn 0.1886 0.9820 0.0000 +vn 0.8278 0.5611 0.0004 +vn 0.8278 0.5610 0.0002 +vn 0.1887 -0.9820 -0.0119 +vn 1.0000 -0.0000 0.0005 +vn 0.1886 0.9821 0.0001 +vn 0.2579 -0.6421 0.7219 +vn 0.1483 0.0900 0.9848 +vn 0.2580 -0.6421 -0.7219 +vn 0.1484 0.0900 -0.9848 +vn 0.2023 0.6897 -0.6953 +vn 0.2022 0.6897 0.6953 +vn -0.1896 0.9814 -0.0289 +vn -0.1896 -0.9814 -0.0289 +vn -0.1896 -0.9814 0.0289 +vn -0.1896 0.9814 0.0289 +vn -0.3595 -0.8072 0.4682 +vn -0.3582 0.3573 -0.8626 +vn 0.3582 0.3573 -0.8626 +vn -0.1649 -0.9112 0.3774 +vn 0.1649 -0.9112 0.3774 +vn -0.3582 0.3573 0.8626 +vn 0.1649 -0.9112 -0.3774 +vn -0.0431 0.9986 -0.0308 +vn 0.1874 -0.0056 -0.9823 +vn 0.1873 -0.0056 0.9823 +s off +f 500/284/57 503/285/57 505/286/57 +f 521/287/58 522/288/58 523/289/58 +f 577/290/57 579/291/57 570/292/57 +f 592/293/58 593/294/58 594/295/58 +f 662/296/57 661/297/57 660/298/57 +f 676/299/58 675/300/58 668/301/58 +f 685/302/59 684/303/59 683/304/59 +f 691/305/60 689/306/60 688/307/60 +f 687/308/61 682/309/61 692/310/61 +f 694/311/62 696/312/62 695/313/62 +f 686/314/63 693/315/63 698/316/63 +f 684/317/64 695/313/64 683/318/64 +f 691/319/65 699/320/65 690/321/65 +f 691/322/66 698/316/66 693/315/66 +f 690/323/67 701/324/67 700/325/67 +f 701/324/68 702/326/68 700/325/68 +f 700/327/69 689/306/69 690/328/69 +f 699/320/70 701/329/70 690/321/70 +f 707/330/57 696/312/57 697/331/57 +f 700/327/71 708/332/71 704/333/71 +f 709/334/61 701/329/61 705/335/61 +f 711/336/72 709/334/72 706/337/72 +f 684/338/73 685/339/73 688/307/73 +f 692/310/74 682/309/74 683/340/74 +f 683/340/75 699/320/75 692/310/75 +f 689/306/76 684/338/76 688/307/76 +f 705/335/77 695/341/77 696/342/77 +f 697/343/78 689/306/78 704/333/78 +f 706/337/79 705/335/79 696/342/79 +f 707/344/80 704/333/80 708/332/80 +f 698/345/81 691/305/81 688/307/81 +f 736/346/57 734/347/57 732/348/57 +f 747/349/58 746/350/58 740/351/58 +f 707/330/82 711/352/82 706/353/82 +f 710/354/61 703/355/61 709/334/61 +f 755/356/83 757/357/83 754/358/83 +f 759/359/83 761/360/83 758/361/83 +f 765/362/84 763/363/84 762/364/84 +f 767/365/85 769/366/85 766/367/85 +f 500/284/57 499/368/57 503/285/57 +f 503/285/57 504/369/57 505/286/57 +f 505/286/57 506/370/57 500/284/57 +f 506/370/57 507/371/57 500/284/57 +f 507/371/57 508/372/57 500/284/57 +f 523/289/58 512/373/58 520/374/58 +f 512/373/58 511/375/58 519/376/58 +f 511/375/58 518/377/58 519/376/58 +f 519/376/58 520/374/58 512/373/58 +f 520/374/58 521/287/58 523/289/58 +f 570/292/57 569/378/57 577/290/57 +f 569/378/57 575/379/57 577/290/57 +f 575/379/57 576/380/57 577/290/57 +f 577/290/57 578/381/57 579/291/57 +f 579/291/57 580/382/57 570/292/57 +f 594/295/58 584/383/58 591/384/58 +f 584/383/58 583/385/58 590/386/58 +f 583/385/58 589/387/58 590/386/58 +f 590/386/58 591/384/58 584/383/58 +f 591/384/58 592/293/58 594/295/58 +f 660/298/57 656/388/57 657/389/57 +f 657/389/57 665/390/57 660/298/57 +f 665/390/57 664/391/57 660/298/57 +f 664/391/57 663/392/57 660/298/57 +f 663/392/57 662/296/57 660/298/57 +f 668/301/58 669/393/58 677/394/58 +f 669/393/58 680/395/58 678/396/58 +f 680/395/58 679/397/58 678/396/58 +f 678/396/58 677/394/58 669/393/58 +f 677/394/58 676/299/58 668/301/58 +f 683/304/59 682/398/59 685/302/59 +f 682/398/59 687/399/59 686/400/59 +f 685/302/59 682/398/59 686/400/59 +f 691/305/86 690/328/86 689/306/86 +f 692/310/87 691/319/87 693/401/87 +f 693/401/61 687/308/61 692/310/61 +f 694/311/62 697/331/62 696/312/62 +f 686/314/63 687/402/63 693/315/63 +f 684/317/64 694/311/64 695/313/64 +f 691/319/88 692/310/88 699/320/88 +f 701/324/89 703/403/89 702/326/89 +f 700/327/90 704/333/90 689/306/90 +f 699/320/61 705/335/61 701/329/61 +f 707/330/57 706/353/57 696/312/57 +f 700/327/71 702/404/71 708/332/71 +f 709/334/61 703/355/61 701/329/61 +f 711/336/72 710/354/72 709/334/72 +f 683/340/75 695/341/75 699/320/75 +f 689/306/91 694/405/91 684/338/91 +f 705/335/77 699/320/77 695/341/77 +f 697/343/92 694/405/92 689/306/92 +f 706/337/79 709/334/79 705/335/79 +f 707/344/80 697/343/80 704/333/80 +f 688/307/93 685/339/93 686/406/93 +f 686/406/94 698/345/94 688/307/94 +f 732/348/57 726/407/57 736/346/57 +f 726/407/57 727/408/57 736/346/57 +f 727/408/57 737/409/57 736/346/57 +f 736/346/57 735/410/57 734/347/57 +f 734/347/57 733/411/57 732/348/57 +f 740/351/58 741/412/58 748/413/58 +f 741/412/58 751/414/58 749/415/58 +f 751/414/58 750/416/58 749/415/58 +f 749/415/58 748/413/58 741/412/58 +f 748/413/58 747/349/58 740/351/58 +f 707/330/82 752/417/82 711/352/82 +f 710/354/61 753/418/61 703/355/61 +f 755/356/83 756/419/83 757/357/83 +f 759/359/83 760/420/83 761/360/83 +f 765/362/84 764/421/84 763/363/84 +f 767/365/85 768/422/85 769/366/85 +s 1 +f 166/423/95 168/424/96 165/425/97 +f 167/426/98 170/427/99 168/424/96 +f 169/428/100 172/429/101 170/427/99 +f 171/430/102 174/431/71 172/429/101 +f 173/432/103 176/433/104 174/431/71 +f 175/434/105 178/435/106 176/433/104 +f 177/436/107 180/437/108 178/435/106 +f 179/438/109 182/439/110 180/437/108 +f 181/440/111 184/441/112 182/439/110 +f 183/442/113 186/443/114 184/441/112 +f 185/444/115 188/445/116 186/443/114 +f 187/446/117 190/447/118 188/445/116 +f 189/448/119 192/449/120 190/450/118 +f 191/451/121 194/452/122 192/449/120 +f 169/428/100 195/453/123 196/454/124 +f 193/455/125 198/456/126 194/452/122 +f 197/457/127 165/425/97 198/456/126 +f 199/458/128 200/459/129 201/460/130 +f 202/461/131 204/462/132 205/463/133 +f 207/464/134 209/465/135 206/466/136 +f 210/467/137 212/468/138 213/469/139 +f 214/470/140 199/471/128 216/472/141 +f 218/473/142 220/474/143 217/475/144 +f 222/476/145 224/477/146 221/478/147 +f 225/479/148 213/480/139 226/481/149 +f 203/482/150 228/483/151 204/462/132 +f 229/484/152 208/485/153 207/486/134 +f 215/487/154 200/459/129 199/458/128 +f 211/488/155 205/489/133 212/490/138 +f 206/491/136 219/492/156 218/493/142 +f 214/494/140 223/495/157 222/496/145 +f 217/475/144 228/483/151 227/497/158 +f 221/498/147 230/499/159 229/500/152 +f 232/501/160 234/502/161 235/503/162 +f 177/436/107 237/504/163 179/438/109 +f 187/446/117 239/505/164 189/506/119 +f 173/432/103 241/507/165 175/434/105 +f 183/442/113 243/508/166 185/444/115 +f 197/457/127 233/509/167 232/501/160 +f 171/430/102 196/454/124 244/510/168 +f 179/438/109 245/511/169 181/440/111 +f 167/426/98 246/512/170 195/453/123 +f 191/451/121 239/513/164 247/514/171 +f 175/434/105 236/515/172 177/436/107 +f 185/444/115 238/516/173 187/446/117 +f 166/423/95 232/501/160 246/512/170 +f 173/432/103 244/510/168 240/517/174 +f 181/440/111 242/518/175 183/442/113 +f 193/455/125 247/514/171 233/509/167 +f 249/519/176 251/520/177 248/521/178 +f 237/504/163 253/522/179 245/511/169 +f 195/453/123 254/523/180 255/524/181 +f 246/512/170 235/503/162 254/523/180 +f 245/511/169 256/525/182 242/518/175 +f 196/454/124 255/524/181 257/526/183 +f 242/518/175 258/527/184 243/508/166 +f 244/510/168 257/526/183 259/528/185 +f 243/508/166 260/529/186 238/516/173 +f 240/517/174 259/528/185 249/530/176 +f 238/516/173 261/531/187 239/505/164 +f 240/517/174 248/532/178 241/507/165 +f 247/514/171 261/533/187 262/534/188 +f 241/507/165 263/535/189 236/515/172 +f 233/509/167 262/534/188 234/502/161 +f 236/515/172 252/536/190 237/504/163 +f 264/537/191 266/538/192 267/539/193 +f 262/540/188 268/541/194 269/542/195 +f 248/543/178 270/544/196 263/545/189 +f 234/546/161 269/547/195 271/548/197 +f 263/549/189 272/550/198 252/551/190 +f 235/552/162 271/553/197 273/554/199 +f 252/555/190 274/556/200 253/557/179 +f 255/558/181 275/559/201 276/560/202 +f 254/561/180 273/562/199 275/563/201 +f 253/564/179 265/565/203 256/566/182 +f 257/567/183 276/568/202 277/569/204 +f 256/570/182 264/537/191 258/571/184 +f 259/572/185 277/573/204 278/574/205 +f 258/575/184 279/576/206 260/577/186 +f 249/578/176 278/579/205 250/580/207 +f 260/581/186 268/582/194 261/583/187 +f 281/584/208 283/585/209 280/586/210 +f 277/573/204 285/587/211 278/574/205 +f 279/576/206 267/588/193 286/589/212 +f 278/579/205 287/590/213 250/580/207 +f 268/582/194 286/591/212 288/592/214 +f 251/520/177 287/593/213 289/594/215 +f 268/541/194 290/595/216 269/542/195 +f 270/544/196 289/596/215 291/597/217 +f 269/547/195 281/598/208 271/548/197 +f 272/550/198 291/599/217 292/600/218 +f 271/553/197 280/586/210 273/554/199 +f 274/556/200 292/601/218 293/602/219 +f 275/559/201 295/603/220 276/560/202 +f 273/562/199 294/604/221 275/563/201 +f 265/565/203 293/605/219 266/606/192 +f 276/568/202 284/607/222 277/569/204 +f 307/608/223 309/609/224 301/610/225 +f 293/602/219 304/611/226 303/612/227 +f 294/613/221 296/614/228 295/603/220 +f 280/615/210 297/616/229 294/604/221 +f 266/606/192 303/617/227 302/618/230 +f 295/619/220 309/620/224 284/607/222 +f 267/539/193 302/621/230 301/622/225 +f 284/623/222 308/624/231 285/587/211 +f 286/589/212 301/625/225 300/626/232 +f 285/627/211 307/628/223 287/590/213 +f 288/592/214 300/629/232 299/630/233 +f 289/594/215 307/631/223 306/632/234 +f 288/633/214 298/634/235 290/595/216 +f 291/597/217 306/635/234 305/636/236 +f 290/637/216 282/638/237 281/598/208 +f 292/600/218 305/639/236 304/640/226 +f 219/492/156 209/641/135 201/642/130 +f 200/643/129 226/644/149 201/645/130 +f 209/465/135 208/646/153 201/647/130 +f 213/469/139 212/468/138 201/648/130 +f 226/481/149 213/480/139 201/649/130 +f 208/485/153 230/650/159 201/651/130 +f 212/490/138 205/489/133 201/652/130 +f 230/499/159 224/653/146 201/654/130 +f 205/655/133 204/656/132 201/657/130 +f 224/477/146 223/658/157 201/659/130 +f 204/660/132 228/661/151 201/662/130 +f 223/495/157 216/663/141 201/664/130 +f 228/665/151 220/666/143 201/667/130 +f 216/472/141 199/471/128 201/668/130 +f 220/669/143 219/670/156 201/671/130 +f 310/672/238 311/673/239 312/674/240 +f 314/675/241 316/676/242 313/677/243 +f 317/678/244 318/679/245 316/676/242 +f 314/680/241 319/681/246 315/682/247 +f 311/673/239 322/683/248 320/684/249 +f 313/677/243 318/679/245 323/685/250 +f 325/686/251 327/687/252 324/688/253 +f 325/686/251 328/689/254 326/690/255 +f 323/685/250 324/691/253 329/692/256 +f 317/678/244 322/683/248 325/693/251 +f 330/694/257 321/695/258 311/673/239 +f 318/679/245 325/693/251 324/691/253 +f 328/696/254 322/697/248 332/698/259 +f 321/699/258 334/700/260 322/701/248 +f 321/699/258 335/702/261 333/703/262 +f 322/704/248 334/705/260 336/706/263 +f 323/685/250 331/707/264 330/694/257 +f 330/694/257 313/677/243 323/685/250 +f 310/708/238 319/681/246 314/680/241 +f 337/709/265 314/675/241 313/677/243 +f 339/710/71 340/711/266 332/698/259 +f 334/705/260 338/712/267 336/706/263 +f 328/696/254 340/711/266 326/713/255 +f 316/676/242 315/714/247 317/678/244 +f 315/714/247 319/715/246 341/716/268 +f 317/678/244 315/714/247 312/674/269 +f 341/716/268 312/674/269 315/714/247 +f 312/674/269 320/684/270 317/678/244 +f 312/674/240 341/716/271 310/672/238 +f 341/716/271 319/715/246 310/672/238 +f 310/672/238 337/709/265 311/673/239 +f 337/709/265 330/694/257 311/673/239 +f 311/673/239 320/684/249 312/674/240 +f 322/717/248 336/706/263 332/698/259 +f 343/718/272 345/719/273 342/720/274 +f 347/721/275 349/722/276 346/723/277 +f 350/724/278 352/725/279 353/726/280 +f 342/720/274 348/727/281 343/718/272 +f 351/728/282 345/719/273 344/729/283 +f 349/730/284 342/720/284 345/719/284 +f 354/731/285 347/721/275 346/723/277 +f 352/725/279 354/732/286 353/726/280 +f 357/733/287 359/734/288 356/735/289 +f 361/736/290 363/737/291 360/738/292 +f 364/739/293 366/740/294 367/741/295 +f 356/735/289 362/742/296 357/733/287 +f 365/743/297 359/734/288 358/744/298 +f 363/745/299 356/735/299 359/734/299 +f 368/746/300 361/736/290 360/738/292 +f 366/740/294 368/747/301 367/741/295 +f 231/748/302 226/644/149 200/643/129 +f 218/749/303 370/750/304 371/751/303 +f 182/439/110 206/752/136 180/437/108 +f 165/425/97 211/753/155 210/754/137 +f 190/450/118 215/755/154 214/756/140 +f 203/757/305 373/758/306 227/759/306 +f 188/445/116 221/760/147 186/443/114 +f 198/456/126 210/761/137 225/762/148 +f 202/763/307 372/764/308 203/757/305 +f 184/441/112 207/765/134 182/439/110 +f 192/449/120 231/766/302 215/755/154 +f 168/424/96 202/767/131 211/768/155 +f 180/437/108 218/769/142 178/435/106 +f 190/447/118 222/770/145 188/445/116 +f 217/771/309 373/758/306 370/750/304 +f 186/443/114 229/772/152 184/441/112 +f 194/452/122 225/773/148 231/774/302 +f 375/775/310 372/776/311 374/777/312 +f 378/778/313 370/779/314 377/780/315 +f 376/781/316 373/782/317 372/776/311 +f 377/780/315 373/782/317 379/783/158 +f 178/784/318 377/785/319 176/786/320 +f 176/786/320 379/787/321 174/788/321 +f 172/789/322 379/787/321 376/790/323 +f 178/791/318 371/792/324 378/793/325 +f 170/794/326 374/795/327 202/796/327 +f 170/797/326 376/790/323 375/798/328 +f 383/799/71 381/800/104 380/801/104 +f 385/802/329 382/803/71 383/799/71 +f 387/804/284 384/805/329 385/802/329 +f 389/806/330 386/807/284 387/804/284 +f 391/808/331 389/806/330 387/804/284 +f 392/809/332 394/810/333 393/811/334 +f 388/812/330 396/813/335 386/807/284 +f 392/809/332 385/802/329 383/799/71 +f 399/814/336 382/803/71 384/805/329 +f 393/811/334 387/804/284 385/802/329 +f 396/813/335 384/805/329 386/807/284 +f 400/815/337 383/799/71 380/801/104 +f 398/816/338 381/800/104 382/803/71 +f 403/817/339 398/816/338 399/814/336 +f 394/810/333 391/808/331 393/811/334 +f 396/813/335 403/817/339 399/814/336 +f 404/818/340 390/819/341 391/808/331 +f 397/820/342 405/821/343 396/813/335 +f 400/815/337 395/822/344 392/809/332 +f 402/823/345 401/824/346 398/816/338 +f 411/825/101 413/826/71 410/827/101 +f 412/828/71 415/829/347 413/826/71 +f 414/830/347 417/831/299 415/829/347 +f 416/832/299 419/833/348 417/831/299 +f 419/833/348 421/834/349 417/831/299 +f 422/835/350 424/836/351 425/837/352 +f 416/832/299 427/838/353 418/839/348 +f 415/829/347 422/835/350 413/826/71 +f 412/828/71 429/840/354 414/830/347 +f 417/831/299 423/841/355 415/829/347 +f 414/830/347 426/842/356 416/832/299 +f 413/826/71 430/843/357 410/827/101 +f 411/825/101 428/844/358 412/828/71 +f 428/844/358 433/845/359 429/840/354 +f 421/834/349 424/836/351 423/841/355 +f 426/842/356 433/845/359 435/846/360 +f 420/847/361 434/848/362 421/834/349 +f 427/838/353 435/849/360 437/850/363 +f 430/843/357 425/851/352 438/852/364 +f 431/853/365 432/854/366 428/844/358 +f 441/855/367 443/856/101 440/857/367 +f 442/858/101 445/859/104 443/856/101 +f 445/859/104 446/860/368 447/861/368 +f 447/861/368 448/862/348 449/863/348 +f 448/862/348 451/864/369 449/863/348 +f 452/865/370 454/866/371 450/867/372 +f 452/868/370 457/869/373 455/870/330 +f 452/868/370 459/871/330 458/872/374 +f 455/870/330 440/857/367 459/871/330 +f 442/858/101 461/873/375 444/874/104 +f 451/864/369 463/875/376 449/863/348 +f 448/862/348 465/876/377 450/877/372 +f 447/861/368 467/878/378 445/859/104 +f 440/857/367 469/879/379 459/871/330 +f 443/856/101 468/880/380 440/857/367 +f 444/874/104 471/881/381 446/860/368 +f 455/870/330 472/882/382 441/855/367 +f 441/855/367 460/883/383 442/858/101 +f 458/872/374 462/884/384 451/885/369 +f 450/886/372 456/887/385 452/868/370 +f 449/863/348 466/888/386 447/861/368 +f 446/860/368 464/889/387 448/862/348 +f 445/859/104 470/890/388 443/856/101 +f 459/871/330 473/891/389 458/872/374 +f 467/878/378 466/888/386 474/892/58 +f 473/891/389 469/879/379 474/893/58 +f 460/883/383 475/894/390 476/895/391 +f 466/888/386 463/875/376 474/896/58 +f 469/879/379 468/880/380 474/897/58 +f 468/880/380 470/890/388 474/898/58 +f 463/875/376 462/899/384 474/900/58 +f 475/901/390 478/902/392 480/903/393 +f 470/890/388 467/878/378 474/904/58 +f 462/884/384 473/891/389 474/905/58 +f 460/883/383 482/906/394 461/873/375 +f 461/873/375 481/907/395 471/881/381 +f 471/881/381 480/908/393 464/889/387 +f 464/889/387 479/909/396 465/876/377 +f 465/910/377 478/911/392 456/887/385 +f 456/887/385 477/912/397 457/869/373 +f 457/869/373 475/913/390 472/882/382 +f 450/867/372 483/914/398 451/915/369 +f 458/916/374 453/917/399 452/865/370 +f 451/918/369 484/919/400 458/916/374 +f 485/920/401 487/921/402 488/922/403 +f 487/923/402 490/924/404 488/922/403 +f 490/924/404 491/925/405 492/926/406 +f 491/927/405 494/928/407 492/926/406 +f 493/929/408 496/930/409 494/928/407 +f 495/931/410 498/932/411 496/930/409 +f 487/923/402 500/933/412 489/934/413 +f 498/935/411 501/936/414 502/937/415 +f 502/937/415 486/938/416 485/920/401 +f 493/929/408 506/939/417 495/940/410 +f 486/938/416 504/941/418 503/942/419 +f 486/943/416 499/944/420 487/921/402 +f 491/925/405 500/945/412 508/946/421 +f 495/931/410 505/947/422 497/948/423 +f 493/949/408 508/950/421 507/951/424 +f 501/936/414 505/952/422 504/953/418 +f 509/954/425 511/955/426 512/956/427 +f 494/928/407 514/957/428 492/926/406 +f 490/924/404 510/958/429 488/922/403 +f 496/930/409 513/959/430 494/928/407 +f 485/920/401 517/960/431 502/937/415 +f 488/922/403 509/954/425 485/920/401 +f 492/926/406 515/961/432 490/924/404 +f 517/960/431 512/962/427 523/963/433 +f 524/964/434 521/965/435 516/966/436 +f 513/959/430 519/967/437 514/957/428 +f 510/958/429 518/968/438 511/969/426 +f 524/970/434 523/971/433 522/972/439 +f 516/966/436 520/973/440 513/959/430 +f 514/957/428 518/974/438 515/961/432 +f 528/975/441 529/976/442 525/977/443 +f 532/978/444 534/979/445 531/980/446 +f 535/981/447 530/982/448 536/983/449 +f 537/984/450 539/985/451 540/986/452 +f 536/987/449 529/988/442 541/989/453 +f 538/990/454 527/991/455 526/992/456 +f 534/993/445 542/994/457 535/981/447 +f 534/995/445 536/987/449 541/989/453 +f 533/996/458 543/997/459 544/998/460 +f 544/998/460 545/999/461 546/1000/462 +f 532/978/444 543/1001/463 533/1002/464 +f 542/994/457 544/1003/465 548/1004/466 +f 539/985/451 550/1005/467 540/986/452 +f 543/1001/463 551/1006/468 545/1007/71 +f 544/1003/465 552/1008/469 548/1004/466 +f 552/1008/469 554/1009/470 549/1010/471 +f 527/1011/455 531/980/446 528/1012/441 +f 535/981/447 526/1013/456 525/1014/443 +f 542/994/457 526/1013/456 535/981/447 +f 532/978/444 527/1011/455 537/1015/450 +f 538/1016/454 548/1004/466 539/1017/451 +f 532/978/444 540/1018/452 547/1019/472 +f 549/1010/471 548/1004/466 552/1008/469 +f 547/1019/472 550/1020/467 551/1006/468 +f 531/980/446 541/1021/453 529/1022/442 +f 555/1023/401 557/1024/402 558/1025/403 +f 557/1026/402 560/1027/404 558/1025/403 +f 560/1027/404 561/1028/405 562/1029/406 +f 561/1030/405 564/1031/407 562/1029/406 +f 563/1032/408 566/1033/409 564/1031/407 +f 565/1034/410 568/1035/411 566/1033/409 +f 557/1026/402 570/1036/412 559/1037/413 +f 568/1038/411 571/1039/414 572/1040/415 +f 572/1040/415 556/1041/416 555/1023/401 +f 566/1033/409 573/1042/434 574/1043/436 +f 563/1032/408 578/1044/417 565/1045/410 +f 556/1041/416 576/1046/418 575/1047/419 +f 556/1048/416 569/1049/420 557/1024/402 +f 561/1028/405 570/1050/412 580/1051/421 +f 565/1034/410 577/1052/422 567/1053/423 +f 563/1054/408 580/1055/421 579/1056/424 +f 571/1039/414 577/1057/422 576/1058/418 +f 581/1059/425 583/1060/426 584/1061/427 +f 564/1031/407 586/1062/428 562/1029/406 +f 572/1040/415 573/1063/434 568/1038/411 +f 560/1027/404 582/1064/429 558/1025/403 +f 566/1033/409 585/1065/430 564/1031/407 +f 555/1023/401 587/1066/431 572/1040/415 +f 558/1025/403 581/1059/425 555/1023/401 +f 562/1029/406 588/1067/432 560/1027/404 +f 587/1066/431 584/1068/427 594/1069/433 +f 573/1042/434 592/1070/435 574/1043/436 +f 585/1065/430 590/1071/437 586/1062/428 +f 582/1064/429 589/1072/438 583/1073/426 +f 573/1063/434 594/1074/433 593/1075/439 +f 574/1043/436 591/1076/440 585/1065/430 +f 586/1062/428 589/1077/438 588/1067/432 +f 550/1005/467 554/1078/470 595/1079/473 +f 546/1080/61 553/1081/474 552/1008/469 +f 600/1082/104 598/1083/368 597/1084/368 +f 602/1085/101 599/1086/104 600/1082/104 +f 604/1087/367 601/1088/101 602/1085/101 +f 606/1089/330 603/1090/367 604/1087/367 +f 608/1091/374 605/1092/330 606/1089/330 +f 611/1093/399 609/1094/372 607/1095/370 +f 614/1096/387 609/1097/372 612/1098/348 +f 616/1099/348 609/1097/372 615/1100/369 +f 597/1084/368 612/1098/348 616/1099/348 +f 618/1101/383 599/1086/104 601/1088/101 +f 620/1102/379 608/1091/374 606/1089/330 +f 622/1103/385 605/1092/330 607/1104/370 +f 624/1105/388 604/1087/367 602/1085/101 +f 626/1106/376 597/1084/368 616/1099/348 +f 625/1107/386 600/1082/104 597/1084/368 +f 628/1108/382 601/1088/101 603/1090/367 +f 629/1109/381 612/1098/348 598/1083/368 +f 617/1110/375 598/1083/368 599/1086/104 +f 619/1111/389 615/1100/369 608/1112/374 +f 613/1113/377 607/1114/370 609/1097/372 +f 623/1115/380 606/1089/330 604/1087/367 +f 621/1116/373 603/1090/367 605/1092/330 +f 627/1117/378 602/1085/101 600/1082/104 +f 630/1118/384 616/1099/348 615/1100/369 +f 624/1105/388 631/1119/58 623/1115/380 +f 630/1118/384 631/1120/58 626/1106/376 +f 617/1110/375 632/1121/395 629/1109/381 +f 623/1115/380 631/1122/58 620/1102/379 +f 626/1106/376 631/1123/58 625/1107/386 +f 625/1107/386 631/1124/58 627/1117/378 +f 620/1102/379 631/1125/58 619/1126/389 +f 635/1127/396 634/1128/393 632/1129/395 +f 627/1117/378 631/1130/58 624/1105/388 +f 619/1111/389 631/1131/58 630/1118/384 +f 639/1132/391 617/1110/375 618/1101/383 +f 638/1133/390 618/1101/383 628/1108/382 +f 637/1134/397 628/1108/382 621/1116/373 +f 622/1103/385 637/1135/397 621/1116/373 +f 635/1136/396 622/1137/385 613/1113/377 +f 614/1096/387 635/1138/396 613/1113/377 +f 632/1139/395 614/1096/387 629/1109/381 +f 640/1140/400 607/1095/370 608/1141/374 +f 610/1142/371 615/1143/369 609/1094/372 +f 641/1144/398 608/1145/374 615/1143/369 +f 642/1146/407 644/1147/475 643/1148/476 +f 647/1149/404 644/1150/475 645/1151/406 +f 647/1149/404 648/1152/477 646/1153/413 +f 651/1154/401 648/1155/477 649/1156/403 +f 653/1157/415 650/1158/478 651/1154/401 +f 655/1159/411 652/1160/414 653/1157/415 +f 657/1161/412 644/1150/475 646/1162/413 +f 655/1163/411 658/1164/410 654/1165/423 +f 659/1166/409 643/1167/476 658/1168/410 +f 663/1169/479 650/1158/478 652/1170/414 +f 643/1167/476 661/1171/480 658/1168/410 +f 656/1172/421 643/1148/476 644/1147/475 +f 648/1152/477 657/1173/412 646/1153/413 +f 662/1174/422 652/1160/414 654/1175/423 +f 650/1176/478 665/1177/420 648/1155/477 +f 658/1164/410 662/1178/422 654/1165/423 +f 666/1179/430 668/1180/437 667/1181/428 +f 671/1182/429 651/1154/401 649/1156/403 +f 667/1181/428 647/1149/404 645/1151/406 +f 670/1183/425 653/1157/415 651/1154/401 +f 674/1184/436 642/1146/407 659/1166/409 +f 666/1179/430 645/1151/406 642/1146/407 +f 672/1185/432 649/1156/403 647/1149/404 +f 674/1184/436 669/1186/440 666/1179/430 +f 678/1187/433 681/1188/434 673/1189/431 +f 676/1190/426 670/1183/425 671/1182/429 +f 667/1181/428 675/1191/438 672/1185/432 +f 681/1192/434 680/1193/435 674/1184/436 +f 677/1194/427 673/1189/431 670/1183/425 +f 675/1195/438 671/1182/429 672/1185/432 +f 712/1196/407 714/1197/475 713/1198/476 +f 717/1199/404 714/1200/475 715/1201/406 +f 717/1199/404 718/1202/477 716/1203/413 +f 721/1204/401 718/1205/477 719/1206/403 +f 723/1207/415 720/1208/478 721/1204/401 +f 725/1209/411 722/1210/414 723/1207/415 +f 727/1211/412 714/1200/475 716/1212/413 +f 725/1213/411 728/1214/410 724/1215/423 +f 729/1216/409 713/1217/476 728/1218/410 +f 723/1207/415 730/1219/434 725/1209/411 +f 735/1220/479 720/1208/478 722/1221/414 +f 713/1217/476 733/1222/480 728/1218/410 +f 726/1223/421 713/1198/476 714/1197/475 +f 718/1202/477 727/1224/412 716/1203/413 +f 734/1225/422 722/1210/414 724/1226/423 +f 720/1227/478 737/1228/420 718/1205/477 +f 728/1214/410 734/1229/422 724/1215/423 +f 738/1230/430 740/1231/437 739/1232/428 +f 743/1233/429 721/1204/401 719/1206/403 +f 730/1234/434 729/1216/409 725/1213/411 +f 739/1232/428 717/1199/404 715/1201/406 +f 742/1235/425 723/1207/415 721/1204/401 +f 729/1216/409 738/1230/430 712/1196/407 +f 738/1230/430 715/1201/406 712/1196/407 +f 745/1236/432 719/1206/403 717/1199/404 +f 744/1237/436 741/1238/440 738/1230/430 +f 749/1239/433 730/1219/434 731/1240/431 +f 747/1241/426 742/1235/425 743/1233/429 +f 739/1232/428 746/1242/438 745/1236/432 +f 730/1234/434 751/1243/435 744/1237/436 +f 748/1244/427 731/1240/431 742/1235/425 +f 746/1245/438 743/1233/429 745/1236/432 +f 524/964/434 496/930/409 498/932/411 +f 502/937/415 524/970/434 498/935/411 +f 659/1166/409 681/1192/434 674/1184/436 +f 653/1157/415 681/1188/434 655/1159/411 +f 166/423/95 167/426/98 168/424/96 +f 167/426/98 169/428/100 170/427/99 +f 169/428/100 171/430/102 172/429/101 +f 171/430/102 173/432/103 174/431/71 +f 173/432/103 175/434/105 176/433/104 +f 175/434/105 177/436/107 178/435/106 +f 177/436/107 179/438/109 180/437/108 +f 179/438/109 181/440/111 182/439/110 +f 181/440/111 183/442/113 184/441/112 +f 183/442/113 185/444/115 186/443/114 +f 185/444/115 187/446/117 188/445/116 +f 187/446/117 189/506/119 190/447/118 +f 189/448/119 191/451/121 192/449/120 +f 191/451/121 193/455/125 194/452/122 +f 169/428/100 167/426/98 195/453/123 +f 193/455/125 197/457/127 198/456/126 +f 197/457/127 166/423/95 165/425/97 +f 202/461/131 203/482/150 204/462/132 +f 207/464/134 208/646/153 209/465/135 +f 210/467/137 211/1246/155 212/468/138 +f 214/470/140 215/1247/154 199/471/128 +f 218/473/142 219/1248/156 220/474/143 +f 222/476/145 223/658/157 224/477/146 +f 225/479/148 210/1249/137 213/480/139 +f 203/482/150 227/497/158 228/483/151 +f 229/484/152 230/650/159 208/485/153 +f 215/487/154 231/1250/302 200/459/129 +f 211/488/155 202/1251/131 205/489/133 +f 206/491/136 209/641/135 219/492/156 +f 214/494/140 216/663/141 223/495/157 +f 217/475/144 220/474/143 228/483/151 +f 221/498/147 224/653/146 230/499/159 +f 232/501/160 233/509/167 234/502/161 +f 177/436/107 236/515/172 237/504/163 +f 187/446/117 238/516/173 239/505/164 +f 173/432/103 240/517/174 241/507/165 +f 183/442/113 242/518/175 243/508/166 +f 197/457/127 193/455/125 233/509/167 +f 171/430/102 169/428/100 196/454/124 +f 179/438/109 237/504/163 245/511/169 +f 167/426/98 166/423/95 246/512/170 +f 191/451/121 189/448/119 239/513/164 +f 175/434/105 241/507/165 236/515/172 +f 185/444/115 243/508/166 238/516/173 +f 166/423/95 197/457/127 232/501/160 +f 173/432/103 171/430/102 244/510/168 +f 181/440/111 245/511/169 242/518/175 +f 193/455/125 191/451/121 247/514/171 +f 249/519/176 250/1252/207 251/520/177 +f 237/504/163 252/536/190 253/522/179 +f 195/453/123 246/512/170 254/523/180 +f 246/512/170 232/501/160 235/503/162 +f 245/511/169 253/522/179 256/525/182 +f 196/454/124 195/453/123 255/524/181 +f 242/518/175 256/525/182 258/527/184 +f 244/510/168 196/454/124 257/526/183 +f 243/508/166 258/527/184 260/529/186 +f 240/517/174 244/510/168 259/528/185 +f 238/516/173 260/529/186 261/531/187 +f 240/517/174 249/530/176 248/532/178 +f 247/514/171 239/513/164 261/533/187 +f 241/507/165 248/532/178 263/535/189 +f 233/509/167 247/514/171 262/534/188 +f 236/515/172 263/535/189 252/536/190 +f 264/537/191 265/1253/203 266/538/192 +f 262/540/188 261/1254/187 268/541/194 +f 248/543/178 251/1255/177 270/544/196 +f 234/546/161 262/1256/188 269/547/195 +f 263/549/189 270/1257/196 272/550/198 +f 235/552/162 234/1258/161 271/553/197 +f 252/555/190 272/1259/198 274/556/200 +f 255/558/181 254/1260/180 275/559/201 +f 254/561/180 235/1261/162 273/562/199 +f 253/564/179 274/1262/200 265/565/203 +f 257/567/183 255/1263/181 276/568/202 +f 256/570/182 265/1253/203 264/537/191 +f 259/572/185 257/1264/183 277/573/204 +f 258/575/184 264/1265/191 279/576/206 +f 249/578/176 259/1266/185 278/579/205 +f 260/581/186 279/1267/206 268/582/194 +f 281/584/208 282/1268/237 283/585/209 +f 277/573/204 284/623/222 285/587/211 +f 279/576/206 264/1265/191 267/588/193 +f 278/579/205 285/627/211 287/590/213 +f 268/582/194 279/1267/206 286/591/212 +f 251/520/177 250/1252/207 287/593/213 +f 268/541/194 288/633/214 290/595/216 +f 270/544/196 251/1255/177 289/596/215 +f 269/547/195 290/637/216 281/598/208 +f 272/550/198 270/1257/196 291/599/217 +f 271/553/197 281/584/208 280/586/210 +f 274/556/200 272/1259/198 292/601/218 +f 275/559/201 294/613/221 295/603/220 +f 273/562/199 280/615/210 294/604/221 +f 265/565/203 274/1262/200 293/605/219 +f 276/568/202 295/619/220 284/607/222 +f 309/609/224 296/1269/228 297/1270/229 +f 297/1270/229 283/1271/209 309/609/224 +f 283/1271/209 282/1272/237 309/609/224 +f 282/1272/237 298/1273/235 299/1274/233 +f 299/1274/233 300/1275/232 301/610/225 +f 301/610/225 302/1276/230 305/1277/236 +f 302/1276/230 303/1278/227 305/1277/236 +f 303/1278/227 304/1279/226 305/1277/236 +f 305/1277/236 306/1280/234 307/608/223 +f 307/608/223 308/1281/231 309/609/224 +f 282/1272/237 299/1274/233 309/609/224 +f 299/1274/233 301/610/225 309/609/224 +f 305/1277/236 307/608/223 301/610/225 +f 293/602/219 292/601/218 304/611/226 +f 294/613/221 297/1282/229 296/614/228 +f 280/615/210 283/1283/209 297/616/229 +f 266/606/192 293/605/219 303/617/227 +f 295/619/220 296/1284/228 309/620/224 +f 267/539/193 266/538/192 302/621/230 +f 284/623/222 309/1285/224 308/624/231 +f 286/589/212 267/588/193 301/625/225 +f 285/627/211 308/1286/231 307/628/223 +f 288/592/214 286/591/212 300/629/232 +f 289/594/215 287/593/213 307/631/223 +f 288/633/214 299/1287/233 298/634/235 +f 291/597/217 289/596/215 306/635/234 +f 290/637/216 298/1288/235 282/638/237 +f 292/600/218 291/599/217 305/639/236 +f 314/675/241 315/714/247 316/676/242 +f 311/673/239 321/695/258 322/683/248 +f 313/677/243 316/676/242 318/679/245 +f 325/686/251 326/690/255 327/687/252 +f 325/686/251 322/1289/248 328/689/254 +f 323/685/250 318/679/245 324/691/253 +f 317/678/244 320/684/270 322/683/248 +f 330/694/257 331/707/264 321/695/258 +f 318/679/245 317/678/244 325/693/251 +f 321/699/258 333/703/262 334/700/260 +f 321/699/258 331/1290/264 335/702/261 +f 323/685/250 329/692/256 331/707/264 +f 330/694/257 337/709/265 313/677/243 +f 337/709/265 310/672/238 314/675/241 +f 332/698/259 336/706/263 339/710/71 +f 336/706/263 338/712/267 339/710/71 +f 334/705/260 333/1291/262 338/712/267 +f 328/696/254 332/698/259 340/711/266 +f 343/718/272 344/729/283 345/719/273 +f 347/721/275 348/727/281 349/722/276 +f 350/724/278 351/728/282 352/725/279 +f 342/720/274 349/722/276 348/727/281 +f 351/728/282 350/724/278 345/719/273 +f 350/1292/284 353/1293/284 346/1294/284 +f 353/1293/284 354/1295/284 346/1294/284 +f 346/1294/284 349/730/284 350/1292/284 +f 350/1292/284 349/730/284 345/719/284 +f 354/731/285 355/1296/481 347/721/275 +f 352/725/279 355/1297/482 354/732/286 +f 357/733/287 358/744/298 359/734/288 +f 361/736/290 362/742/296 363/737/291 +f 364/739/293 365/743/297 366/740/294 +f 356/735/289 363/737/291 362/742/296 +f 365/743/297 364/739/293 359/734/288 +f 364/1298/299 367/1299/299 360/1300/299 +f 367/1299/299 368/1301/299 360/1300/299 +f 360/1300/299 363/745/299 364/1298/299 +f 364/1298/299 363/745/299 359/734/299 +f 368/746/300 369/1302/483 361/736/290 +f 366/740/294 369/1303/484 368/747/301 +f 231/748/302 225/1304/148 226/644/149 +f 218/749/303 217/771/309 370/750/304 +f 182/439/110 207/1305/134 206/752/136 +f 165/425/97 168/424/96 211/753/155 +f 190/450/118 192/449/120 215/755/154 +f 203/757/305 372/764/308 373/758/306 +f 188/445/116 222/770/145 221/760/147 +f 198/456/126 165/425/97 210/761/137 +f 202/763/307 374/1306/307 372/764/308 +f 184/441/112 229/1307/152 207/765/134 +f 192/449/120 194/452/122 231/766/302 +f 168/424/96 170/427/99 202/767/131 +f 180/437/108 206/1308/136 218/769/142 +f 190/447/118 214/1309/140 222/770/145 +f 217/771/309 227/759/306 373/758/306 +f 186/443/114 221/1310/147 229/772/152 +f 194/452/122 198/456/126 225/773/148 +f 375/775/310 376/781/316 372/776/311 +f 378/778/313 371/1311/485 370/779/314 +f 376/781/316 379/783/158 373/782/317 +f 377/780/315 370/779/314 373/782/317 +f 178/784/318 378/1312/325 377/785/319 +f 176/786/320 377/785/319 379/787/321 +f 172/789/322 174/788/321 379/787/321 +f 178/791/318 218/1313/324 371/792/324 +f 170/794/326 375/1314/328 374/795/327 +f 170/797/326 172/789/322 376/790/323 +f 383/799/71 382/803/71 381/800/104 +f 385/802/329 384/805/329 382/803/71 +f 387/804/284 386/807/284 384/805/329 +f 389/806/330 388/812/330 386/807/284 +f 391/808/331 390/819/341 389/806/330 +f 392/809/332 395/1315/344 394/810/333 +f 388/812/330 397/820/342 396/813/335 +f 392/809/332 393/811/334 385/802/329 +f 399/814/336 398/816/338 382/803/71 +f 393/811/334 391/808/331 387/804/284 +f 396/813/335 399/814/336 384/805/329 +f 400/815/337 392/809/332 383/799/71 +f 398/816/338 401/824/346 381/800/104 +f 403/817/339 402/1316/345 398/816/338 +f 394/810/333 404/1317/340 391/808/331 +f 396/813/335 405/1318/343 403/817/339 +f 404/818/340 406/1319/486 390/819/341 +f 397/820/342 407/1320/487 405/821/343 +f 400/815/337 408/1321/488 395/822/344 +f 402/823/345 409/1322/489 401/824/346 +f 411/825/101 412/828/71 413/826/71 +f 412/828/71 414/830/347 415/829/347 +f 414/830/347 416/832/299 417/831/299 +f 416/832/299 418/839/348 419/833/348 +f 419/833/348 420/847/361 421/834/349 +f 422/835/350 423/841/355 424/836/351 +f 416/832/299 426/842/356 427/838/353 +f 415/829/347 423/841/355 422/835/350 +f 412/828/71 428/844/358 429/840/354 +f 417/831/299 421/834/349 423/841/355 +f 414/830/347 429/840/354 426/842/356 +f 413/826/71 422/835/350 430/843/357 +f 411/825/101 431/853/365 428/844/358 +f 428/844/358 432/1323/366 433/845/359 +f 421/834/349 434/1324/362 424/836/351 +f 426/842/356 429/840/354 433/845/359 +f 420/847/361 436/1325/490 434/848/362 +f 427/838/353 426/842/356 435/849/360 +f 430/843/357 422/835/350 425/851/352 +f 431/853/365 439/1326/491 432/854/366 +f 441/855/367 442/858/101 443/856/101 +f 442/858/101 444/874/104 445/859/104 +f 445/859/104 444/874/104 446/860/368 +f 447/861/368 446/860/368 448/862/348 +f 448/862/348 450/877/372 451/864/369 +f 452/865/370 453/917/399 454/866/371 +f 452/868/370 456/887/385 457/869/373 +f 452/868/370 455/870/330 459/871/330 +f 455/870/330 441/855/367 440/857/367 +f 442/858/101 460/883/383 461/873/375 +f 451/864/369 462/899/384 463/875/376 +f 448/862/348 464/889/387 465/876/377 +f 447/861/368 466/888/386 467/878/378 +f 440/857/367 468/880/380 469/879/379 +f 443/856/101 470/890/388 468/880/380 +f 444/874/104 461/873/375 471/881/381 +f 455/870/330 457/869/373 472/882/382 +f 441/855/367 472/882/382 460/883/383 +f 458/872/374 473/891/389 462/884/384 +f 450/886/372 465/910/377 456/887/385 +f 449/863/348 463/875/376 466/888/386 +f 446/860/368 471/881/381 464/889/387 +f 445/859/104 467/878/378 470/890/388 +f 459/871/330 469/879/379 473/891/389 +f 460/883/383 472/882/382 475/894/390 +f 482/1327/394 476/1328/391 475/901/390 +f 475/901/390 477/1329/397 478/902/392 +f 478/902/392 479/1330/396 480/903/393 +f 480/903/393 481/1331/395 482/1327/394 +f 482/1327/394 475/901/390 480/903/393 +f 460/883/383 476/1332/391 482/906/394 +f 461/873/375 482/1333/394 481/907/395 +f 471/881/381 481/1334/395 480/908/393 +f 464/889/387 480/1335/393 479/909/396 +f 465/910/377 479/1336/396 478/911/392 +f 456/887/385 478/1337/392 477/912/397 +f 457/869/373 477/1338/397 475/913/390 +f 450/867/372 454/866/371 483/914/398 +f 458/916/374 484/919/400 453/917/399 +f 451/918/369 483/1339/398 484/919/400 +f 485/920/401 486/943/416 487/921/402 +f 487/923/402 489/934/413 490/924/404 +f 490/924/404 489/1340/413 491/925/405 +f 491/927/405 493/949/408 494/928/407 +f 493/929/408 495/940/410 496/930/409 +f 495/931/410 497/948/423 498/932/411 +f 487/923/402 499/1341/420 500/933/412 +f 498/935/411 497/1342/423 501/936/414 +f 502/937/415 501/1343/414 486/938/416 +f 493/929/408 507/1344/424 506/939/417 +f 486/938/416 501/1343/414 504/941/418 +f 486/943/416 503/1345/419 499/944/420 +f 491/925/405 489/1340/413 500/945/412 +f 495/931/410 506/1346/417 505/947/422 +f 493/949/408 491/927/405 508/950/421 +f 501/936/414 497/1342/423 505/952/422 +f 509/954/425 510/958/429 511/955/426 +f 494/928/407 513/959/430 514/957/428 +f 490/924/404 515/961/432 510/958/429 +f 496/930/409 516/966/436 513/959/430 +f 485/920/401 509/954/425 517/960/431 +f 488/922/403 510/958/429 509/954/425 +f 492/926/406 514/957/428 515/961/432 +f 517/960/431 509/954/425 512/962/427 +f 524/964/434 522/1347/439 521/965/435 +f 513/959/430 520/1348/440 519/967/437 +f 510/958/429 515/961/432 518/968/438 +f 524/970/434 517/960/431 523/971/433 +f 516/966/436 521/1349/435 520/973/440 +f 514/957/428 519/1350/437 518/974/438 +f 530/1351/448 525/977/443 529/976/442 +f 525/977/443 526/1352/456 528/975/441 +f 526/1352/456 527/1353/455 528/975/441 +f 532/978/444 533/1002/464 534/979/445 +f 536/983/449 534/993/445 535/981/447 +f 535/981/447 525/1014/443 530/982/448 +f 537/984/450 538/990/454 539/985/451 +f 536/987/449 530/1354/448 529/988/442 +f 538/990/454 537/984/450 527/991/455 +f 534/993/445 533/1355/492 542/994/457 +f 544/998/460 543/997/459 545/999/461 +f 532/978/444 547/1019/472 543/1001/463 +f 542/994/457 533/1355/492 544/1003/465 +f 539/985/451 549/1356/471 550/1005/467 +f 543/1001/463 547/1019/472 551/1006/468 +f 544/1003/465 546/1080/61 552/1008/469 +f 552/1008/469 553/1081/474 554/1009/470 +f 542/994/457 538/1016/454 526/1013/456 +f 532/978/444 531/980/446 527/1011/455 +f 538/1016/454 542/994/457 548/1004/466 +f 532/978/444 537/1015/450 540/1018/452 +f 549/1010/471 539/1017/451 548/1004/466 +f 547/1019/472 540/1018/452 550/1020/467 +f 529/1022/442 528/1012/441 531/980/446 +f 531/980/446 534/979/445 541/1021/453 +f 555/1023/401 556/1048/416 557/1024/402 +f 557/1026/402 559/1037/413 560/1027/404 +f 560/1027/404 559/1357/413 561/1028/405 +f 561/1030/405 563/1054/408 564/1031/407 +f 563/1032/408 565/1045/410 566/1033/409 +f 565/1034/410 567/1053/423 568/1035/411 +f 557/1026/402 569/1358/420 570/1036/412 +f 568/1038/411 567/1359/423 571/1039/414 +f 572/1040/415 571/1360/414 556/1041/416 +f 566/1033/409 568/1035/411 573/1042/434 +f 563/1032/408 579/1361/424 578/1044/417 +f 556/1041/416 571/1360/414 576/1046/418 +f 556/1048/416 575/1362/419 569/1049/420 +f 561/1028/405 559/1357/413 570/1050/412 +f 565/1034/410 578/1363/417 577/1052/422 +f 563/1054/408 561/1030/405 580/1055/421 +f 571/1039/414 567/1359/423 577/1057/422 +f 581/1059/425 582/1064/429 583/1060/426 +f 564/1031/407 585/1065/430 586/1062/428 +f 572/1040/415 587/1066/431 573/1063/434 +f 560/1027/404 588/1067/432 582/1064/429 +f 566/1033/409 574/1043/436 585/1065/430 +f 555/1023/401 581/1059/425 587/1066/431 +f 558/1025/403 582/1064/429 581/1059/425 +f 562/1029/406 586/1062/428 588/1067/432 +f 587/1066/431 581/1059/425 584/1068/427 +f 573/1042/434 593/1364/439 592/1070/435 +f 585/1065/430 591/1365/440 590/1071/437 +f 582/1064/429 588/1067/432 589/1072/438 +f 573/1063/434 587/1066/431 594/1074/433 +f 574/1043/436 592/1366/435 591/1076/440 +f 586/1062/428 590/1367/437 589/1077/438 +f 550/1005/467 549/1356/471 554/1078/470 +f 546/1080/61 596/1368/61 553/1081/474 +f 600/1082/104 599/1086/104 598/1083/368 +f 602/1085/101 601/1088/101 599/1086/104 +f 604/1087/367 603/1090/367 601/1088/101 +f 606/1089/330 605/1092/330 603/1090/367 +f 608/1091/374 607/1104/370 605/1092/330 +f 611/1093/399 610/1142/371 609/1094/372 +f 614/1096/387 613/1113/377 609/1097/372 +f 616/1099/348 612/1098/348 609/1097/372 +f 597/1084/368 598/1083/368 612/1098/348 +f 618/1101/383 617/1110/375 599/1086/104 +f 620/1102/379 619/1126/389 608/1091/374 +f 622/1103/385 621/1116/373 605/1092/330 +f 624/1105/388 623/1115/380 604/1087/367 +f 626/1106/376 625/1107/386 597/1084/368 +f 625/1107/386 627/1117/378 600/1082/104 +f 628/1108/382 618/1101/383 601/1088/101 +f 629/1109/381 614/1096/387 612/1098/348 +f 617/1110/375 629/1109/381 598/1083/368 +f 619/1111/389 630/1118/384 615/1100/369 +f 613/1113/377 622/1137/385 607/1114/370 +f 623/1115/380 620/1102/379 606/1089/330 +f 621/1116/373 628/1108/382 603/1090/367 +f 627/1117/378 624/1105/388 602/1085/101 +f 630/1118/384 626/1106/376 616/1099/348 +f 617/1110/375 633/1369/394 632/1121/395 +f 632/1129/395 633/1370/394 639/1371/391 +f 639/1371/391 638/1372/390 632/1129/395 +f 638/1372/390 637/1373/397 632/1129/395 +f 637/1373/397 636/1374/392 632/1129/395 +f 636/1374/392 635/1127/396 632/1129/395 +f 639/1132/391 633/1375/394 617/1110/375 +f 638/1133/390 639/1376/391 618/1101/383 +f 637/1134/397 638/1377/390 628/1108/382 +f 622/1103/385 636/1378/392 637/1135/397 +f 635/1136/396 636/1379/392 622/1137/385 +f 614/1096/387 634/1380/393 635/1138/396 +f 632/1139/395 634/1381/393 614/1096/387 +f 640/1140/400 611/1093/399 607/1095/370 +f 610/1142/371 641/1144/398 615/1143/369 +f 641/1144/398 640/1382/400 608/1145/374 +f 642/1146/407 645/1151/406 644/1147/475 +f 647/1149/404 646/1162/413 644/1150/475 +f 647/1149/404 649/1156/403 648/1152/477 +f 651/1154/401 650/1176/478 648/1155/477 +f 653/1157/415 652/1170/414 650/1158/478 +f 655/1159/411 654/1175/423 652/1160/414 +f 657/1161/412 656/1383/421 644/1150/475 +f 655/1163/411 659/1166/409 658/1164/410 +f 659/1166/409 642/1146/407 643/1167/476 +f 663/1169/479 664/1384/493 650/1158/478 +f 643/1167/476 660/1385/494 661/1171/480 +f 656/1172/421 660/1386/494 643/1148/476 +f 648/1152/477 665/1387/420 657/1173/412 +f 662/1174/422 663/1388/479 652/1160/414 +f 650/1176/478 664/1389/493 665/1177/420 +f 658/1164/410 661/1390/480 662/1178/422 +f 666/1179/430 669/1391/440 668/1180/437 +f 671/1182/429 670/1183/425 651/1154/401 +f 667/1181/428 672/1185/432 647/1149/404 +f 670/1183/425 673/1189/431 653/1157/415 +f 674/1184/436 666/1179/430 642/1146/407 +f 666/1179/430 667/1181/428 645/1151/406 +f 672/1185/432 671/1182/429 649/1156/403 +f 674/1184/436 680/1392/435 669/1186/440 +f 678/1187/433 679/1393/439 681/1188/434 +f 676/1190/426 677/1394/427 670/1183/425 +f 667/1181/428 668/1395/437 675/1191/438 +f 681/1192/434 679/1396/439 680/1193/435 +f 677/1194/427 678/1397/433 673/1189/431 +f 675/1195/438 676/1398/426 671/1182/429 +f 712/1196/407 715/1201/406 714/1197/475 +f 717/1199/404 716/1212/413 714/1200/475 +f 717/1199/404 719/1206/403 718/1202/477 +f 721/1204/401 720/1227/478 718/1205/477 +f 723/1207/415 722/1221/414 720/1208/478 +f 725/1209/411 724/1226/423 722/1210/414 +f 727/1211/412 726/1399/421 714/1200/475 +f 725/1213/411 729/1216/409 728/1214/410 +f 729/1216/409 712/1196/407 713/1217/476 +f 723/1207/415 731/1240/431 730/1219/434 +f 735/1220/479 736/1400/493 720/1208/478 +f 713/1217/476 732/1401/494 733/1222/480 +f 726/1223/421 732/1402/494 713/1198/476 +f 718/1202/477 737/1403/420 727/1224/412 +f 734/1225/422 735/1404/479 722/1210/414 +f 720/1227/478 736/1405/493 737/1228/420 +f 728/1214/410 733/1406/480 734/1229/422 +f 738/1230/430 741/1407/440 740/1231/437 +f 743/1233/429 742/1235/425 721/1204/401 +f 730/1234/434 744/1237/436 729/1216/409 +f 739/1232/428 745/1236/432 717/1199/404 +f 742/1235/425 731/1240/431 723/1207/415 +f 729/1216/409 744/1237/436 738/1230/430 +f 738/1230/430 739/1232/428 715/1201/406 +f 745/1236/432 743/1233/429 719/1206/403 +f 744/1237/436 751/1408/435 741/1238/440 +f 749/1239/433 750/1409/439 730/1219/434 +f 747/1241/426 748/1410/427 742/1235/425 +f 739/1232/428 740/1411/437 746/1242/438 +f 730/1234/434 750/1412/439 751/1243/435 +f 748/1244/427 749/1413/433 731/1240/431 +f 746/1245/438 747/1414/426 743/1233/429 +f 524/964/434 516/966/436 496/930/409 +f 502/937/415 517/960/431 524/970/434 +f 659/1166/409 655/1163/411 681/1192/434 +f 653/1157/415 673/1189/431 681/1188/434 diff --git a/src/main/resources/assets/hbm/models/weapons/moonlight.obj b/src/main/resources/assets/hbm/models/weapons/folly.obj similarity index 54% rename from src/main/resources/assets/hbm/models/weapons/moonlight.obj rename to src/main/resources/assets/hbm/models/weapons/folly.obj index aa4bfc765..814647aec 100644 --- a/src/main/resources/assets/hbm/models/weapons/moonlight.obj +++ b/src/main/resources/assets/hbm/models/weapons/folly.obj @@ -1,6 +1,1449 @@ -# Blender v2.79 (sub 0) OBJ File: 'nice_try_shitass' +# Blender v2.79 (sub 0) OBJ File: 'folly.blend' # www.blender.org -o Circle +o Cog +v 0.382683 1.923880 -4.500000 +v 0.707107 1.707107 -4.500000 +v 0.923880 1.382684 -4.500000 +v 1.000000 1.000000 -4.500000 +v 0.923880 0.617316 -4.500000 +v 0.707107 0.292893 -4.500000 +v 0.382683 0.076120 -4.500000 +v 0.000000 0.000000 -4.500000 +v -0.382683 0.076120 -4.500000 +v -0.707107 0.292893 -4.500000 +v -0.923880 0.617316 -4.500000 +v -1.000000 1.000000 -4.500000 +v -0.923880 1.382683 -4.500000 +v -0.707107 1.707107 -4.500000 +v -0.382683 1.923880 -4.500000 +v 0.000000 2.000000 -4.500000 +v 0.000000 2.000000 -3.500000 +v -0.382683 1.923880 -3.500000 +v -0.707107 1.707107 -3.500000 +v -0.923880 1.382683 -3.500000 +v -1.000000 1.000000 -3.500000 +v -0.923880 0.617316 -3.500000 +v -0.707107 0.292893 -3.500000 +v -0.382683 0.076120 -3.500000 +v 0.000000 0.000000 -3.500000 +v 0.382683 0.076120 -3.500000 +v 0.707107 0.292893 -3.500000 +v 0.923880 0.617316 -3.500000 +v 1.000000 1.000000 -3.500000 +v 0.923880 1.382684 -3.500000 +v 0.707107 1.707107 -3.500000 +v 0.382683 1.923880 -3.500000 +v 1.250000 0.750000 -4.375000 +v -1.250000 0.750000 -4.375000 +v 1.250000 1.250000 -4.375000 +v -1.250000 1.250000 -4.375000 +v -1.250000 1.250000 -4.125000 +v 1.250000 1.250000 -4.125000 +v -1.250000 0.750000 -4.125000 +v 1.250000 0.750000 -4.125000 +v 0.250000 2.250000 -4.125000 +v 0.250000 -0.250000 -4.125000 +v -0.250000 2.250000 -4.125000 +v -0.250000 -0.250000 -4.125000 +v -0.250000 -0.250000 -4.375000 +v -0.250000 2.250000 -4.375000 +v 0.250000 -0.250000 -4.375000 +v 0.250000 2.250000 -4.375000 +v -0.707107 2.060660 -4.125000 +v 1.060660 0.292893 -4.125000 +v -1.060660 1.707107 -4.125000 +v 0.707107 -0.060660 -4.125000 +v 0.707107 -0.060660 -4.375000 +v -1.060660 1.707107 -4.375000 +v 1.060660 0.292893 -4.375000 +v -0.707107 2.060660 -4.375000 +v 1.060660 1.707107 -4.375000 +v -0.707107 -0.060660 -4.375000 +v 0.707107 2.060660 -4.375000 +v -1.060660 0.292893 -4.375000 +v -1.060660 0.292893 -4.125000 +v 0.707107 2.060660 -4.125000 +v -0.707107 -0.060660 -4.125000 +v 1.060660 1.707107 -4.125000 +vt 0.668136 0.865446 +vt 0.629147 0.797819 +vt 0.645297 0.634554 +vt 0.705005 0.634623 +vt 0.743971 0.702209 +vt 0.727831 0.865378 +vt 0.126866 0.765625 +vt 0.134328 0.828125 +vt 0.126866 0.828125 +vt 0.216418 0.828125 +vt 0.208955 0.765625 +vt 0.216418 0.765625 +vt 0.134328 0.671875 +vt 0.208955 0.734375 +vt 0.134328 0.734375 +vt 0.208955 0.765625 +vt 0.134328 0.828125 +vt 0.134328 0.765625 +vt 0.134328 0.859375 +vt 0.208955 0.828125 +vt 0.208955 0.859375 +vt 0.216418 0.828125 +vt 0.216418 0.765625 +vt 0.126866 0.765625 +vt 0.126866 0.828125 +vt 0.134328 0.859375 +vt 0.208955 0.828125 +vt 0.208955 0.859375 +vt 0.208955 0.734375 +vt 0.134328 0.765625 +vt 0.134328 0.734375 +vt 0.134328 0.671875 +vt 0.126866 0.765625 +vt 0.134328 0.828125 +vt 0.126866 0.828125 +vt 0.216418 0.828125 +vt 0.208955 0.765625 +vt 0.216418 0.765625 +vt 0.134328 0.859375 +vt 0.208955 0.828125 +vt 0.208955 0.859375 +vt 0.208955 0.734375 +vt 0.134328 0.765625 +vt 0.134328 0.734375 +vt 0.134328 0.671875 +vt 0.134328 0.671875 +vt 0.208955 0.734375 +vt 0.134328 0.734375 +vt 0.134328 0.765625 +vt 0.208955 0.828125 +vt 0.134328 0.828125 +vt 0.134328 0.859375 +vt 0.208955 0.859375 +vt 0.216418 0.828125 +vt 0.208955 0.765625 +vt 0.216418 0.765625 +vt 0.126866 0.765625 +vt 0.126866 0.828125 +vt 0.656716 0.874957 +vt 0.645297 0.865445 +vt 0.635616 0.838358 +vt 0.626876 0.750000 +vt 0.629147 0.702181 +vt 0.635616 0.661642 +vt 0.656716 0.625043 +vt 0.668136 0.634554 +vt 0.677817 0.661642 +vt 0.684285 0.702181 +vt 0.686557 0.750000 +vt 0.684285 0.797819 +vt 0.677817 0.838358 +vt 0.716418 0.874884 +vt 0.705005 0.865378 +vt 0.695330 0.838306 +vt 0.688865 0.797791 +vt 0.686595 0.750000 +vt 0.688865 0.702209 +vt 0.695330 0.661694 +vt 0.716418 0.625117 +vt 0.727831 0.634623 +vt 0.737506 0.661694 +vt 0.746241 0.750000 +vt 0.743971 0.797791 +vt 0.737506 0.838306 +vt 0.208955 0.671875 +vt 0.208955 0.671875 +vt 0.208955 0.671875 +vt 0.208955 0.671875 +vt 0.776119 0.562500 +vt 0.746269 0.515625 +vt 0.776119 0.515625 +vt 0.776119 0.187500 +vt 0.746269 0.140625 +vt 0.776119 0.140625 +vt 0.776119 0.609375 +vt 0.746269 0.562500 +vt 0.776119 0.234375 +vt 0.746269 0.187500 +vt 0.776119 0.656250 +vt 0.746269 0.609375 +vt 0.776119 0.281250 +vt 0.746269 0.234375 +vt 0.776119 0.703125 +vt 0.746269 0.656250 +vt 0.776119 0.328125 +vt 0.746269 0.281250 +vt 0.776119 0.750000 +vt 0.746269 0.703125 +vt 0.776119 0.421875 +vt 0.746269 0.375000 +vt 0.776119 0.375000 +vt 0.746269 0.328125 +vt 0.776119 0.046875 +vt 0.746269 -0.000000 +vt 0.776119 -0.000000 +vt 0.776119 0.468750 +vt 0.746269 0.421875 +vt 0.776119 0.093750 +vt 0.746269 0.046875 +vt 0.746269 0.468750 +vt 0.746269 0.093750 +vt 0.746269 0.750000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.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.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 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +s off +f 32/1/1 20/2/1 24/3/1 +f 7/4/2 11/5/2 15/6/2 +f 41/7/3 46/8/3 43/9/3 +f 44/10/4 47/11/4 42/12/4 +f 38/13/1 39/14/1 40/15/1 +f 34/16/2 35/17/2 33/18/2 +f 39/14/4 33/18/4 40/15/4 +f 38/19/3 36/20/3 37/21/3 +f 37/22/5 34/16/5 39/23/5 +f 40/24/6 35/17/6 38/25/6 +f 43/26/5 45/27/5 44/28/5 +f 42/29/6 48/30/6 41/31/6 +f 47/11/2 46/8/2 48/30/2 +f 43/32/1 42/29/1 41/31/1 +f 49/33/7 54/34/7 51/35/7 +f 52/36/8 55/37/8 50/38/8 +f 51/39/9 53/40/9 52/41/9 +f 50/42/10 56/43/10 49/44/10 +f 55/37/2 54/34/2 56/43/2 +f 51/45/1 50/42/1 49/44/1 +f 62/46/1 63/47/1 64/48/1 +f 57/49/2 60/50/2 59/51/2 +f 63/47/8 57/49/8 64/48/8 +f 62/52/7 60/50/7 61/53/7 +f 61/54/9 58/55/9 63/56/9 +f 64/57/10 59/51/10 62/58/10 +f 32/1/1 17/59/1 18/60/1 +f 18/60/1 19/61/1 32/1/1 +f 19/61/1 20/2/1 32/1/1 +f 20/2/1 21/62/1 22/63/1 +f 22/63/1 23/64/1 20/2/1 +f 23/64/1 24/3/1 20/2/1 +f 24/3/1 25/65/1 26/66/1 +f 26/66/1 27/67/1 28/68/1 +f 28/68/1 29/69/1 32/1/1 +f 29/69/1 30/70/1 32/1/1 +f 30/70/1 31/71/1 32/1/1 +f 24/3/1 26/66/1 32/1/1 +f 26/66/1 28/68/1 32/1/1 +f 15/6/2 16/72/2 1/73/2 +f 1/73/2 2/74/2 3/75/2 +f 3/75/2 4/76/2 7/4/2 +f 4/76/2 5/77/2 7/4/2 +f 5/77/2 6/78/2 7/4/2 +f 7/4/2 8/79/2 9/80/2 +f 9/80/2 10/81/2 7/4/2 +f 10/81/2 11/5/2 7/4/2 +f 11/5/2 12/82/2 13/83/2 +f 13/83/2 14/84/2 11/5/2 +f 14/84/2 15/6/2 11/5/2 +f 15/6/2 1/73/2 7/4/2 +f 1/73/2 3/75/2 7/4/2 +f 41/7/3 48/30/3 46/8/3 +f 44/10/4 45/27/4 47/11/4 +f 38/13/1 37/85/1 39/14/1 +f 34/16/2 36/20/2 35/17/2 +f 39/14/4 34/16/4 33/18/4 +f 38/19/3 35/17/3 36/20/3 +f 37/22/5 36/20/5 34/16/5 +f 40/24/6 33/18/6 35/17/6 +f 43/26/5 46/8/5 45/27/5 +f 42/29/6 47/11/6 48/30/6 +f 47/11/2 45/27/2 46/8/2 +f 43/32/1 44/86/1 42/29/1 +f 49/33/7 56/43/7 54/34/7 +f 52/36/8 53/40/8 55/37/8 +f 51/39/9 54/34/9 53/40/9 +f 50/42/10 55/37/10 56/43/10 +f 55/37/2 53/40/2 54/34/2 +f 51/45/1 52/87/1 50/42/1 +f 62/46/1 61/88/1 63/47/1 +f 57/49/2 58/55/2 60/50/2 +f 63/47/8 58/55/8 57/49/8 +f 62/52/7 59/51/7 60/50/7 +f 61/54/9 60/50/9 58/55/9 +f 64/57/10 57/49/10 59/51/10 +s 1 +f 12/89/5 20/90/11 13/91/11 +f 4/92/6 28/93/12 5/94/12 +f 11/95/13 21/96/5 12/89/5 +f 3/97/14 29/98/6 4/92/6 +f 10/99/9 22/100/13 11/95/13 +f 2/101/10 30/102/14 3/97/14 +f 9/103/15 23/104/9 10/99/9 +f 1/105/16 31/106/10 2/101/10 +f 8/107/4 24/108/15 9/103/15 +f 15/109/17 17/110/3 16/111/3 +f 16/111/3 32/112/16 1/105/16 +f 7/113/18 25/114/4 8/115/4 +f 14/116/7 18/117/17 15/109/17 +f 6/118/8 26/119/18 7/113/18 +f 13/91/11 19/120/7 14/116/7 +f 5/94/12 27/121/8 6/118/8 +f 12/89/5 21/96/5 20/90/11 +f 4/92/6 29/98/6 28/93/12 +f 11/95/13 22/100/13 21/96/5 +f 3/97/14 30/102/14 29/98/6 +f 10/99/9 23/104/9 22/100/13 +f 2/101/10 31/106/10 30/102/14 +f 9/103/15 24/108/15 23/104/9 +f 1/105/16 32/112/16 31/106/10 +f 8/107/4 25/122/4 24/108/15 +f 15/109/17 18/117/17 17/110/3 +f 16/111/3 17/110/3 32/112/16 +f 7/113/18 26/119/18 25/114/4 +f 14/116/7 19/120/7 18/117/17 +f 6/118/8 27/121/8 26/119/18 +f 13/91/11 20/90/11 19/120/7 +f 5/94/12 28/93/12 27/121/8 +o Breech +v -0.500000 0.000000 -6.000000 +v 0.500000 0.000000 -6.000000 +v -0.500000 0.000000 -7.000000 +v 0.500000 0.000000 -7.000000 +v -0.500000 -0.250000 -7.250000 +v 0.500000 -0.250000 -7.250000 +v -0.500000 -0.250000 -5.750000 +v 0.500000 -0.250000 -5.750000 +v 0.250000 0.125000 -7.187500 +v -0.250000 0.125000 -7.187500 +v 0.250000 0.125000 -5.812500 +v -0.250000 0.125000 -5.812500 +v -0.500000 -0.250000 -5.625000 +v 0.500000 -0.250000 -5.625000 +v -0.500000 0.125000 -5.625000 +v 0.500000 0.125000 -5.625000 +v 0.500000 -0.250000 -7.375000 +v -0.500000 -0.250000 -7.375000 +v 0.500000 0.125000 -7.375000 +v -0.500000 0.125000 -7.375000 +v 0.250000 0.375000 -5.812500 +v 0.250000 0.375000 -7.187500 +v -0.250000 0.375000 -7.187500 +v -0.250000 0.375000 -5.812500 +v 0.000000 2.000000 -4.500000 +v -0.382683 1.923880 -4.500000 +v -0.707107 1.707107 -4.500000 +v -0.923880 1.382683 -4.500000 +v -1.000000 1.000000 -4.500000 +v -0.923880 0.617316 -4.500000 +v -0.707107 0.292893 -4.500000 +v -0.382683 0.076120 -4.500000 +v 0.000000 0.000000 -4.500000 +v 0.382683 0.076120 -4.500000 +v 0.707107 0.292893 -4.500000 +v 0.923880 0.617316 -4.500000 +v 1.000000 1.000000 -4.500000 +v 0.923880 1.382684 -4.500000 +v 0.707107 1.707107 -4.500000 +v 0.382683 1.923880 -4.500000 +v 0.000000 1.750000 -5.500000 +v -0.287013 1.692910 -5.500000 +v -0.530330 1.530330 -5.500000 +v -0.692910 1.287013 -5.500000 +v -0.750000 1.000000 -5.500000 +v -0.692910 0.712987 -5.500000 +v -0.530330 0.469670 -5.500000 +v -0.287013 0.307090 -5.500000 +v 0.000000 0.250000 -5.500000 +v 0.287013 0.307090 -5.500000 +v 0.530330 0.469670 -5.500000 +v 0.692910 0.712987 -5.500000 +v 0.750000 1.000000 -5.500000 +v 0.692910 1.287013 -5.500000 +v 0.530330 1.530330 -5.500000 +v 0.287012 1.692910 -5.500000 +v 0.000000 1.750000 -7.500000 +v -0.287013 1.692910 -7.500000 +v -0.530330 1.530330 -7.500000 +v -0.692910 1.287013 -7.500000 +v -0.750000 1.000000 -7.500000 +v -0.692910 0.712987 -7.500000 +v -0.530330 0.469670 -7.500000 +v -0.287013 0.307090 -7.500000 +v 0.000000 0.250000 -7.500000 +v 0.287013 0.307090 -7.500000 +v 0.530330 0.469670 -7.500000 +v 0.692910 0.712987 -7.500000 +v 0.750000 1.000000 -7.500000 +v 0.692910 1.287013 -7.500000 +v 0.530330 1.530330 -7.500000 +v 0.287012 1.692910 -7.500000 +v 0.000000 1.500000 -8.000000 +v -0.191342 1.461940 -8.000000 +v -0.353553 1.353553 -8.000000 +v -0.461940 1.191342 -8.000000 +v -0.500000 1.000000 -8.000000 +v -0.461940 0.808658 -8.000000 +v -0.353553 0.646447 -8.000000 +v -0.191342 0.538060 -8.000000 +v 0.000000 0.500000 -8.000000 +v 0.191341 0.538060 -8.000000 +v 0.353553 0.646446 -8.000000 +v 0.461940 0.808658 -8.000000 +v 0.500000 1.000000 -8.000000 +v 0.461940 1.191342 -8.000000 +v 0.353553 1.353554 -8.000000 +v 0.191341 1.461940 -8.000000 +vt 0.085821 0.796875 +vt 0.115672 0.671875 +vt 0.115672 0.796875 +vt 0.078358 0.796875 +vt 0.085821 0.671875 +vt 0.123134 0.671875 +vt 0.022388 0.656250 +vt 0.063433 0.671875 +vt 0.011194 0.671875 +vt 0.011194 0.796875 +vt 0.014925 0.843750 +vt 0.022388 0.812500 +vt 0.078358 0.625000 +vt 0.063433 0.656250 +vt 0.063433 0.625000 +vt 0.000000 0.796875 +vt 0.000000 0.671875 +vt 0.126866 0.796875 +vt 0.123134 0.796875 +vt 0.175373 0.625000 +vt 0.134328 0.656250 +vt 0.134328 0.625000 +vt 0.119403 0.625000 +vt 0.078358 0.656250 +vt 0.063433 0.796875 +vt 0.074627 0.671875 +vt 0.074627 0.796875 +vt 0.078358 0.671875 +vt 0.119403 0.656250 +vt 0.810345 0.643319 +vt 0.831446 0.643319 +vt 0.831446 0.731681 +vt 0.014925 0.625000 +vt 0.059701 0.625000 +vt 0.063433 0.625000 +vt 0.059701 0.843750 +vt 0.052239 0.812500 +vt 0.052239 0.656250 +vt 0.011194 0.843750 +vt 0.126866 0.671875 +vt 0.175373 0.656250 +vt 0.826605 0.745225 +vt 0.820895 0.749981 +vt 0.815185 0.745225 +vt 0.810345 0.731681 +vt 0.807110 0.711411 +vt 0.805975 0.687500 +vt 0.807110 0.663589 +vt 0.815185 0.629775 +vt 0.820895 0.625019 +vt 0.826605 0.629775 +vt 0.834680 0.663589 +vt 0.835816 0.687500 +vt 0.834680 0.711411 +vt 0.011194 0.625000 +vt 0.063433 0.843750 +vt 0.776119 0.281250 +vt 0.805970 0.234375 +vt 0.805970 0.273438 +vt 0.776119 0.656250 +vt 0.805970 0.695312 +vt 0.776119 0.703125 +vt 0.805970 0.320312 +vt 0.776119 0.328125 +vt 0.805970 0.742188 +vt 0.776119 0.750000 +vt 0.776119 0.421875 +vt 0.805970 0.375000 +vt 0.805970 0.414062 +vt 0.805970 0.367188 +vt 0.776119 0.375000 +vt 0.776119 0.046875 +vt 0.805970 -0.000000 +vt 0.805970 0.039062 +vt 0.776119 0.468750 +vt 0.805970 0.421875 +vt 0.805970 0.460938 +vt 0.805970 0.085938 +vt 0.776119 0.093750 +vt 0.776119 0.515625 +vt 0.805970 0.468750 +vt 0.805970 0.507812 +vt 0.805970 0.132812 +vt 0.776119 0.140625 +vt 0.805970 0.554688 +vt 0.776119 0.562500 +vt 0.805970 0.179688 +vt 0.776119 0.187500 +vt 0.776119 0.609375 +vt 0.805970 0.562500 +vt 0.805970 0.601562 +vt 0.776119 0.234375 +vt 0.805970 0.187500 +vt 0.805970 0.226562 +vt 0.805970 0.648438 +vt 0.805970 0.117188 +vt 0.865672 0.156250 +vt 0.805970 0.156250 +vt 0.805970 0.468750 +vt 0.865672 0.507812 +vt 0.805970 0.507812 +vt 0.865672 0.195312 +vt 0.805970 0.195312 +vt 0.865672 0.546875 +vt 0.805970 0.546875 +vt 0.865672 0.234375 +vt 0.805970 0.234375 +vt 0.865672 0.585938 +vt 0.805970 0.585938 +vt 0.865672 0.273438 +vt 0.805970 0.273438 +vt 0.865672 0.625000 +vt 0.805970 0.625000 +vt 0.805970 0.312500 +vt 0.865672 0.351562 +vt 0.805970 0.351562 +vt 0.865672 0.312500 +vt 0.865672 0.039062 +vt 0.865672 0.390625 +vt 0.805970 0.390625 +vt 0.865672 0.078125 +vt 0.805970 0.078125 +vt 0.865672 0.429688 +vt 0.805970 0.429688 +vt 0.865672 0.117188 +vt 0.865672 0.468750 +vt 0.880597 0.203125 +vt 0.880597 0.242188 +vt 0.880597 0.281250 +vt 0.880597 0.320312 +vt 0.880597 0.359375 +vt 0.880597 0.421875 +vt 0.880597 0.437500 +vt 0.880597 0.500000 +vt 0.880597 0.515625 +vt 0.880597 0.578125 +vt 0.880597 0.593750 +vt 0.865672 -0.000000 +vt 0.880597 0.031250 +vt 0.880597 0.070312 +vt 0.880597 0.085938 +vt 0.880597 0.125000 +vt 0.880597 0.187500 +vt 0.805970 0.656250 +vt 0.805970 0.281250 +vt 0.805970 0.703125 +vt 0.805970 0.328125 +vt 0.776119 -0.000000 +vt 0.805970 0.046875 +vt 0.805970 0.093750 +vt 0.805970 0.515625 +vt 0.805970 0.140625 +vt 0.805970 0.609375 +vt 0.880597 0.226562 +vt 0.880597 0.265625 +vt 0.880597 0.304688 +vt 0.880597 0.343750 +vt 0.880597 0.382812 +vt 0.880597 0.398438 +vt 0.880597 0.460938 +vt 0.880597 0.476562 +vt 0.880597 0.539062 +vt 0.880597 0.554688 +vt 0.880597 0.617188 +vt 0.880597 0.007812 +vt 0.880597 0.046875 +vt 0.880597 0.109375 +vt 0.880597 0.148438 +vt 0.880597 0.164062 +vn 0.0000 -1.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 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.6860 0.6860 -0.2425 +vn 0.8963 0.3713 -0.2425 +vn -0.6860 -0.6860 -0.2425 +vn -0.3713 -0.8963 -0.2425 +vn 0.3713 0.8963 -0.2425 +vn -0.0000 -0.9701 -0.2425 +vn -0.3713 0.8963 -0.2425 +vn -0.0000 0.9701 -0.2425 +vn 0.3713 -0.8963 -0.2425 +vn -0.6860 0.6860 -0.2425 +vn 0.6860 -0.6860 -0.2425 +vn -0.8963 0.3713 -0.2425 +vn 0.8963 -0.3713 -0.2425 +vn -0.9701 -0.0000 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn -0.8963 -0.3713 -0.2425 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.8263 0.3423 -0.4472 +vn 0.6325 0.6325 -0.4472 +vn 0.3423 0.8263 -0.4472 +vn -0.0000 0.8944 -0.4472 +vn -0.3423 0.8263 -0.4472 +vn -0.6325 0.6325 -0.4472 +vn -0.8263 0.3423 -0.4472 +vn -0.8944 -0.0000 -0.4472 +vn -0.8263 -0.3423 -0.4472 +vn -0.6325 -0.6325 -0.4472 +vn -0.3423 -0.8263 -0.4472 +vn -0.0000 -0.8944 -0.4472 +vn 0.3423 -0.8263 -0.4472 +vn 0.6325 -0.6325 -0.4472 +vn 0.8263 -0.3423 -0.4472 +vn 0.8944 -0.0000 -0.4472 +s off +f 67/123/19 66/124/19 65/125/19 +f 69/126/20 68/127/20 67/123/20 +f 72/128/21 65/125/21 66/124/21 +f 66/129/22 83/130/22 80/131/22 +f 83/130/23 79/132/23 80/131/23 +f 71/133/24 79/132/24 65/134/24 +f 75/135/25 88/136/25 76/137/25 +f 80/131/25 77/138/25 78/139/25 +f 72/128/19 77/140/19 71/141/19 +f 76/142/24 87/143/24 74/144/24 +f 73/145/22 85/146/22 75/135/22 +f 84/147/26 81/148/26 82/149/26 +f 69/126/19 81/148/19 70/150/19 +f 74/144/26 86/151/26 73/145/26 +f 147/152/26 143/153/26 139/154/26 +f 80/131/22 72/155/22 66/129/22 +f 83/130/22 70/156/22 81/157/22 +f 84/147/24 69/158/24 67/159/24 +f 79/132/24 67/159/24 65/134/24 +f 67/123/19 68/127/19 66/124/19 +f 69/126/20 70/150/20 68/127/20 +f 72/128/21 71/141/21 65/125/21 +f 66/129/22 68/160/22 83/130/22 +f 83/130/23 84/147/23 79/132/23 +f 71/133/24 77/161/24 79/132/24 +f 75/135/25 85/146/25 88/136/25 +f 80/131/25 79/132/25 77/138/25 +f 72/128/19 78/162/19 77/140/19 +f 76/142/24 88/163/24 87/143/24 +f 73/145/22 86/151/22 85/146/22 +f 84/147/26 83/130/26 81/148/26 +f 69/126/19 82/149/19 81/148/19 +f 74/144/26 87/143/26 86/151/26 +f 139/154/26 138/164/26 137/165/26 +f 137/165/26 152/166/26 139/154/26 +f 152/166/26 151/167/26 139/154/26 +f 151/167/26 150/168/26 149/169/26 +f 149/169/26 148/170/26 147/152/26 +f 147/152/26 146/171/26 143/153/26 +f 146/171/26 145/172/26 143/153/26 +f 145/172/26 144/173/26 143/153/26 +f 143/153/26 142/174/26 141/175/26 +f 141/175/26 140/176/26 139/154/26 +f 151/167/26 149/169/26 139/154/26 +f 149/169/26 147/152/26 139/154/26 +f 143/153/26 141/175/26 139/154/26 +f 80/131/22 78/177/22 72/155/22 +f 83/130/22 68/160/22 70/156/22 +f 84/147/24 82/178/24 69/158/24 +f 79/132/24 84/147/24 67/159/24 +s 1 +f 103/179/27 118/180/28 119/181/27 +f 95/182/29 112/183/30 96/184/30 +f 103/179/27 120/185/31 104/186/31 +f 96/184/30 113/187/32 97/188/32 +f 90/189/33 105/190/34 106/191/33 +f 104/186/31 105/192/34 89/193/34 +f 98/194/35 113/195/32 114/196/35 +f 91/197/36 106/198/33 107/199/36 +f 98/194/35 115/200/37 99/201/37 +f 92/202/38 107/203/36 108/204/38 +f 99/201/37 116/205/39 100/206/39 +f 92/202/38 109/207/40 93/208/40 +f 100/206/39 117/209/41 101/210/41 +f 94/211/42 109/212/40 110/213/42 +f 102/214/28 117/215/41 118/216/28 +f 94/211/42 111/217/29 95/182/29 +f 116/218/43 133/219/22 117/220/22 +f 109/221/24 126/222/44 110/223/44 +f 117/220/22 134/224/45 118/225/45 +f 110/223/44 127/226/46 111/227/46 +f 118/225/45 135/228/47 119/229/47 +f 111/227/46 128/230/48 112/231/48 +f 119/229/47 136/232/49 120/233/49 +f 112/231/48 129/234/19 113/235/19 +f 105/236/23 122/237/50 106/238/50 +f 120/233/49 121/239/23 105/236/23 +f 113/195/19 130/240/51 114/196/51 +f 106/238/50 123/241/52 107/242/52 +f 114/196/51 131/243/53 115/244/53 +f 107/242/52 124/245/54 108/246/54 +f 115/244/53 132/247/43 116/218/43 +f 108/246/54 125/248/24 109/221/24 +f 150/249/55 135/228/56 134/224/55 +f 151/250/56 136/232/57 135/228/56 +f 152/251/57 121/239/58 136/232/57 +f 137/252/58 122/237/59 121/239/58 +f 138/253/59 123/241/60 122/237/59 +f 123/241/60 140/254/61 124/245/61 +f 140/255/61 125/248/62 124/245/61 +f 125/248/62 142/256/63 126/222/63 +f 142/257/63 127/226/64 126/222/63 +f 127/226/64 144/258/65 128/230/65 +f 144/259/65 129/234/66 128/230/65 +f 129/260/66 146/261/67 130/240/67 +f 130/240/67 147/262/68 131/243/68 +f 147/263/68 132/247/69 131/243/68 +f 148/264/69 133/219/70 132/247/69 +f 133/219/70 150/265/55 134/224/55 +f 103/179/27 102/214/28 118/180/28 +f 95/182/29 111/266/29 112/183/30 +f 103/179/27 119/267/27 120/185/31 +f 96/184/30 112/268/30 113/187/32 +f 90/189/33 89/193/34 105/190/34 +f 104/186/31 120/269/31 105/192/34 +f 98/194/35 97/270/32 113/195/32 +f 91/197/36 90/189/33 106/198/33 +f 98/194/35 114/271/35 115/200/37 +f 92/202/38 91/197/36 107/203/36 +f 99/201/37 115/272/37 116/205/39 +f 92/202/38 108/273/38 109/207/40 +f 100/206/39 116/274/39 117/209/41 +f 94/211/42 93/208/40 109/212/40 +f 102/214/28 101/210/41 117/215/41 +f 94/211/42 110/275/42 111/217/29 +f 116/218/43 132/247/43 133/219/22 +f 109/221/24 125/248/24 126/222/44 +f 117/220/22 133/219/22 134/224/45 +f 110/223/44 126/222/44 127/226/46 +f 118/225/45 134/224/45 135/228/47 +f 111/227/46 127/226/46 128/230/48 +f 119/229/47 135/228/47 136/232/49 +f 112/231/48 128/230/48 129/234/19 +f 105/236/23 121/239/23 122/237/50 +f 120/233/49 136/232/49 121/239/23 +f 113/195/19 129/260/19 130/240/51 +f 106/238/50 122/237/50 123/241/52 +f 114/196/51 130/240/51 131/243/53 +f 107/242/52 123/241/52 124/245/54 +f 115/244/53 131/243/53 132/247/43 +f 108/246/54 124/245/54 125/248/24 +f 150/249/55 151/276/56 135/228/56 +f 151/250/56 152/277/57 136/232/57 +f 152/251/57 137/278/58 121/239/58 +f 137/252/58 138/279/59 122/237/59 +f 138/253/59 139/280/60 123/241/60 +f 123/241/60 139/281/60 140/254/61 +f 140/255/61 141/282/62 125/248/62 +f 125/248/62 141/283/62 142/256/63 +f 142/257/63 143/284/64 127/226/64 +f 127/226/64 143/285/64 144/258/65 +f 144/259/65 145/286/66 129/234/66 +f 129/260/66 145/287/66 146/261/67 +f 130/240/67 146/288/67 147/262/68 +f 147/263/68 148/289/69 132/247/69 +f 148/264/69 149/290/70 133/219/70 +f 133/219/70 149/291/70 150/265/55 +o Shell +v 0.000000 1.562500 -3.500000 +v -0.215260 1.519682 -3.500000 +v -0.397748 1.397748 -3.500000 +v -0.519682 1.215260 -3.500000 +v -0.562500 1.000000 -3.500000 +v -0.519682 0.784740 -3.500000 +v -0.397748 0.602252 -3.500000 +v -0.215260 0.480318 -3.500000 +v 0.000000 0.437500 -3.500000 +v 0.215260 0.480318 -3.500000 +v 0.397747 0.602252 -3.500000 +v 0.519682 0.784740 -3.500000 +v 0.562500 1.000000 -3.500000 +v 0.519682 1.215260 -3.500000 +v 0.397747 1.397748 -3.500000 +v 0.215259 1.519682 -3.500000 +v 0.287012 1.692909 -3.250000 +v 0.530330 1.530331 -3.250000 +v 0.692910 1.287012 -3.250000 +v 0.750000 1.000000 -3.250000 +v 0.692910 0.712988 -3.250000 +v 0.530330 0.469669 -3.250000 +v 0.287013 0.307091 -3.250000 +v 0.000000 0.250000 -3.250000 +v -0.287013 0.307091 -3.250000 +v -0.530330 0.469669 -3.250000 +v -0.692910 0.712988 -3.250000 +v -0.750000 1.000000 -3.250000 +v -0.692910 1.287012 -3.250000 +v -0.530330 1.530331 -3.250000 +v -0.287013 1.692909 -3.250000 +v 0.000000 1.750000 -3.250000 +v 0.287012 1.692909 -1.000000 +v 0.530330 1.530331 -1.000000 +v 0.692910 1.287012 -1.000000 +v 0.750000 1.000000 -1.000000 +v 0.692910 0.712988 -1.000000 +v 0.530330 0.469669 -1.000000 +v 0.287013 0.307091 -1.000000 +v 0.000000 0.250000 -1.000000 +v -0.287013 0.307091 -1.000000 +v -0.530330 0.469669 -1.000000 +v -0.692910 0.712988 -1.000000 +v -0.750000 1.000000 -1.000000 +v -0.692910 1.287012 -1.000000 +v -0.530330 1.530331 -1.000000 +v -0.287013 1.692909 -1.000000 +v 0.000000 1.750000 -1.000000 +v 0.179382 1.433068 0.000000 +v 0.331456 1.331457 0.000000 +v 0.433069 1.179382 0.000000 +v 0.468750 1.000000 0.000000 +v 0.433069 0.820618 0.000000 +v 0.331456 0.668543 0.000000 +v 0.179383 0.566932 0.000000 +v 0.000000 0.531250 0.000000 +v -0.179383 0.566932 0.000000 +v -0.331456 0.668543 0.000000 +v -0.433069 0.820618 0.000000 +v -0.468750 1.000000 0.000000 +v -0.433069 1.179382 0.000000 +v -0.331456 1.331457 0.000000 +v -0.179383 1.433068 0.000000 +v 0.000000 1.468750 0.000000 +v 0.000000 1.000000 0.500000 +vt 0.864481 0.745016 +vt 0.840742 0.745016 +vt 0.840743 0.645609 +vt 0.846188 0.630372 +vt 0.852612 0.625022 +vt 0.859036 0.630372 +vt 0.864481 0.645610 +vt 0.868120 0.668414 +vt 0.869398 0.695313 +vt 0.868120 0.722212 +vt 0.859036 0.760253 +vt 0.852612 0.765604 +vt 0.846188 0.760253 +vt 0.837104 0.722212 +vt 0.835826 0.695313 +vt 0.837104 0.668414 +vt 1.000000 0.242188 +vt 0.992537 0.273438 +vt 0.992537 0.234375 +vt 1.000000 0.007812 +vt 0.992537 0.039062 +vt 0.992537 0.000000 +vt 0.992537 0.351562 +vt 1.000000 0.382812 +vt 0.992537 0.390625 +vt 1.000000 0.554688 +vt 0.992537 0.585938 +vt 0.992537 0.546875 +vt 1.000000 0.320312 +vt 0.992537 0.312500 +vt 1.000000 0.164062 +vt 0.992537 0.195312 +vt 0.992537 0.156250 +vt 1.000000 0.617188 +vt 0.992537 0.625000 +vt 1.000000 0.398438 +vt 0.992537 0.429688 +vt 0.992537 0.078125 +vt 1.000000 0.109375 +vt 0.992537 0.117188 +vt 1.000000 0.476562 +vt 0.992537 0.507812 +vt 0.992537 0.468750 +vt 1.000000 0.539062 +vt 1.000000 0.148438 +vt 1.000000 0.304688 +vt 1.000000 0.203125 +vt 1.000000 0.070312 +vt 1.000000 0.460938 +vt 0.925373 0.156250 +vt 0.925373 0.078125 +vt 0.925373 0.585938 +vt 0.925373 0.468750 +vt 0.925373 0.390625 +vt 0.925373 0.507812 +vt 0.925373 0.234375 +vt 0.925373 0.117188 +vt 0.925373 0.000000 +vt 0.925373 0.273438 +vt 0.925373 0.351562 +vt 0.925373 0.195312 +vt 0.925373 0.546875 +vt 0.925373 0.429688 +vt 0.925373 0.312500 +vt 0.925373 0.039062 +vt 0.895522 0.007812 +vt 0.895522 0.320312 +vt 0.895522 0.539062 +vt 0.895522 0.515625 +vt 0.895522 0.164062 +vt 0.895522 0.304688 +vt 0.895522 0.281250 +vt 0.895522 0.226562 +vt 0.895522 0.203125 +vt 0.895522 0.554688 +vt 0.895522 0.070312 +vt 0.895522 0.046875 +vt 0.895522 0.617188 +vt 0.895522 0.593750 +vt 0.895522 0.085938 +vt 0.895522 0.398438 +vt 0.895522 0.242188 +vt 0.895522 0.125000 +vt 0.895522 0.437500 +vt 0.895522 0.382812 +vt 0.895522 0.359375 +vt 0.895522 0.476562 +vt 0.895522 0.460938 +vt 0.880597 0.445312 +vt 0.880597 0.367188 +vt 0.895522 0.031250 +vt 0.880597 0.015625 +vt 0.895522 0.343750 +vt 0.880597 0.328125 +vt 0.880597 0.523438 +vt 0.895522 0.187500 +vt 0.880597 0.171875 +vt 0.880597 0.289062 +vt 0.880597 0.210938 +vt 0.895522 0.578125 +vt 0.880597 0.562500 +vt 0.880597 0.054688 +vt 0.880597 0.601562 +vt 0.895522 0.109375 +vt 0.880597 0.093750 +vt 0.895522 0.421875 +vt 0.880597 0.406250 +vt 0.895522 0.265625 +vt 0.880597 0.250000 +vt 0.895522 0.148438 +vt 0.880597 0.132812 +vt 0.895522 0.500000 +vt 0.880597 0.484375 +vt 1.000000 0.265625 +vt 1.000000 0.031250 +vt 1.000000 0.359375 +vt 1.000000 0.578125 +vt 1.000000 0.343750 +vt 1.000000 0.187500 +vt 1.000000 0.593750 +vt 1.000000 0.421875 +vt 1.000000 0.085938 +vt 1.000000 0.500000 +vt 1.000000 0.515625 +vt 1.000000 0.125000 +vt 1.000000 0.281250 +vt 1.000000 0.226562 +vt 1.000000 0.046875 +vt 1.000000 0.437500 +vt 0.925373 0.625000 +vn 0.0000 0.0000 -1.0000 +vn 0.5657 0.5657 -0.6000 +vn 0.3061 0.7391 -0.6000 +vn 0.0000 -0.8000 -0.6000 +vn 0.3061 -0.7391 -0.6000 +vn -0.3061 0.7391 -0.6000 +vn -0.5657 0.5657 -0.6000 +vn -0.5657 -0.5657 -0.6000 +vn -0.3061 -0.7391 -0.6000 +vn 0.0000 0.8000 -0.6000 +vn 0.8000 0.0000 -0.6000 +vn 0.7391 0.3061 -0.6000 +vn -0.7391 0.3061 -0.6000 +vn 0.5657 -0.5657 -0.6000 +vn 0.7391 -0.3061 -0.6000 +vn -0.8000 -0.0000 -0.6000 +vn -0.7391 -0.3061 -0.6000 +vn 0.9239 0.3827 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3684 -0.8894 0.2707 +vn 0.0000 -0.8777 0.4792 +vn 0.0000 -0.9627 0.2707 +vn -0.3684 0.8894 0.2707 +vn 0.0000 0.8777 0.4792 +vn 0.0000 0.9627 0.2707 +vn -0.8894 -0.3684 0.2707 +vn -0.6206 -0.6207 0.4792 +vn -0.8109 -0.3359 0.4792 +vn 0.8894 0.3684 0.2707 +vn 0.8777 0.0000 0.4792 +vn 0.9627 0.0000 0.2707 +vn 0.3684 0.8894 0.2707 +vn 0.3359 0.8109 0.4792 +vn 0.6206 0.6207 0.4792 +vn 0.8109 0.3359 0.4792 +vn -0.3684 -0.8894 0.2707 +vn -0.6807 -0.6807 0.2707 +vn 0.6206 -0.6207 0.4792 +vn 0.3359 -0.8109 0.4792 +vn -0.3359 -0.8109 0.4792 +vn 0.8894 -0.3684 0.2707 +vn 0.6807 -0.6807 0.2707 +vn -0.8894 0.3684 0.2707 +vn -0.6206 0.6207 0.4792 +vn -0.6807 0.6807 0.2707 +vn 0.6807 0.6807 0.2707 +vn 0.8109 -0.3359 0.4792 +vn -0.9627 -0.0000 0.2707 +vn -0.8109 0.3359 0.4792 +vn -0.3359 0.8109 0.4792 +vn -0.8777 -0.0000 0.4792 +vn -0.0000 -0.0000 1.0000 +s off +f 155/292/71 167/293/71 163/294/71 +f 163/294/71 162/295/71 161/296/71 +f 161/296/71 160/297/71 163/294/71 +f 160/297/71 159/298/71 163/294/71 +f 159/298/71 158/299/71 157/300/71 +f 157/300/71 156/301/71 155/292/71 +f 155/292/71 154/302/71 167/293/71 +f 154/302/71 153/303/71 167/293/71 +f 153/303/71 168/304/71 167/293/71 +f 167/293/71 166/305/71 165/306/71 +f 165/306/71 164/307/71 163/294/71 +f 159/298/71 157/300/71 163/294/71 +f 157/300/71 155/292/71 163/294/71 +f 167/293/71 165/306/71 163/294/71 +s 1 +f 167/308/72 169/309/73 170/310/72 +f 161/311/74 175/312/75 176/313/74 +f 183/314/76 155/315/77 182/316/77 +f 159/317/78 177/318/79 178/319/78 +f 153/320/80 183/314/76 184/321/80 +f 165/322/81 171/323/82 172/324/81 +f 177/318/79 161/325/74 176/326/74 +f 155/327/77 181/328/83 182/316/77 +f 174/329/84 164/330/85 173/331/85 +f 157/332/86 179/333/87 180/334/86 +f 179/333/87 159/335/78 178/319/78 +f 173/331/85 165/336/81 172/324/81 +f 169/309/73 153/337/80 184/321/80 +f 166/338/82 170/310/72 171/323/82 +f 175/312/75 163/339/84 174/329/84 +f 181/328/83 157/340/86 180/334/86 +f 171/323/88 188/341/89 172/324/89 +f 173/331/90 190/342/91 174/329/91 +f 176/326/92 193/343/93 177/318/93 +f 179/333/94 196/344/95 180/334/95 +f 181/328/96 198/345/97 182/316/97 +f 178/319/98 195/346/94 179/333/94 +f 169/309/99 186/347/100 170/310/100 +f 172/324/89 189/348/90 173/331/90 +f 175/312/101 192/349/92 176/313/92 +f 184/321/102 185/350/99 169/309/99 +f 182/316/97 199/351/103 183/314/103 +f 170/310/100 187/352/88 171/323/88 +f 177/318/93 194/353/98 178/319/98 +f 180/334/95 197/354/96 181/328/96 +f 183/314/103 200/355/102 184/321/102 +f 174/329/91 191/356/101 175/312/101 +f 191/356/104 208/357/105 192/349/106 +f 199/351/107 216/358/108 200/355/109 +f 195/346/110 210/359/111 211/360/112 +f 187/352/113 204/361/114 188/341/115 +f 185/350/116 216/362/108 201/363/117 +f 187/352/113 202/364/118 203/365/119 +f 193/343/120 210/366/111 194/353/121 +f 191/356/104 206/367/122 207/368/123 +f 193/343/120 208/369/105 209/370/124 +f 189/348/125 206/371/122 190/342/126 +f 197/354/127 214/372/128 198/345/129 +f 185/350/116 202/373/118 186/347/130 +f 188/341/115 205/374/131 189/348/125 +f 196/344/132 213/375/133 197/354/127 +f 199/351/107 214/376/128 215/377/134 +f 195/346/110 212/378/135 196/344/132 +f 212/379/135 217/380/136 213/375/133 +f 214/376/128 217/381/136 215/377/134 +f 207/382/123 217/383/136 208/357/105 +f 215/384/134 217/385/136 216/358/108 +f 210/359/111 217/386/136 211/360/112 +f 203/387/119 217/388/136 204/361/114 +f 216/362/108 217/389/136 201/363/117 +f 202/364/118 217/390/136 203/365/119 +f 209/391/124 217/392/136 210/366/111 +f 206/367/122 217/393/136 207/368/123 +f 208/369/105 217/394/136 209/370/124 +f 205/395/131 217/396/136 206/371/122 +f 213/397/133 217/398/136 214/372/128 +f 201/399/117 217/400/136 202/373/118 +f 204/401/114 217/402/136 205/374/131 +f 211/403/112 217/404/136 212/378/135 +f 167/308/72 168/405/73 169/309/73 +f 161/311/74 162/406/75 175/312/75 +f 183/314/76 154/407/76 155/315/77 +f 159/317/78 160/408/79 177/318/79 +f 153/320/80 154/409/76 183/314/76 +f 165/322/81 166/410/82 171/323/82 +f 177/318/79 160/411/79 161/325/74 +f 155/327/77 156/412/83 181/328/83 +f 174/329/84 163/413/84 164/330/85 +f 157/332/86 158/414/87 179/333/87 +f 179/333/87 158/415/87 159/335/78 +f 173/331/85 164/416/85 165/336/81 +f 169/309/73 168/417/73 153/337/80 +f 166/338/82 167/418/72 170/310/72 +f 175/312/75 162/419/75 163/339/84 +f 181/328/83 156/420/83 157/340/86 +f 171/323/88 187/352/88 188/341/89 +f 173/331/90 189/348/90 190/342/91 +f 176/326/92 192/421/92 193/343/93 +f 179/333/94 195/346/94 196/344/95 +f 181/328/96 197/354/96 198/345/97 +f 178/319/98 194/353/98 195/346/94 +f 169/309/99 185/350/99 186/347/100 +f 172/324/89 188/341/89 189/348/90 +f 175/312/101 191/356/101 192/349/92 +f 184/321/102 200/355/102 185/350/99 +f 182/316/97 198/345/97 199/351/103 +f 170/310/100 186/347/100 187/352/88 +f 177/318/93 193/343/93 194/353/98 +f 180/334/95 196/344/95 197/354/96 +f 183/314/103 199/351/103 200/355/102 +f 174/329/91 190/342/91 191/356/101 +f 191/356/104 207/382/123 208/357/105 +f 199/351/107 215/384/134 216/358/108 +f 195/346/110 194/353/121 210/359/111 +f 187/352/113 203/387/119 204/361/114 +f 185/350/116 200/355/109 216/362/108 +f 187/352/113 186/347/130 202/364/118 +f 193/343/120 209/391/124 210/366/111 +f 191/356/104 190/342/126 206/367/122 +f 193/343/120 192/421/106 208/369/105 +f 189/348/125 205/395/131 206/371/122 +f 197/354/127 213/397/133 214/372/128 +f 185/350/116 201/399/117 202/373/118 +f 188/341/115 204/401/114 205/374/131 +f 196/344/132 212/379/135 213/375/133 +f 199/351/107 198/345/129 214/376/128 +f 195/346/110 211/403/112 212/378/135 +o Barrel +v 0.000000 2.000000 8.000000 +v -0.382683 1.923880 8.000000 +v -0.707107 1.707107 8.000000 +v -0.923880 1.382683 8.000000 +v -1.000000 1.000000 8.000000 +v -0.923880 0.617316 8.000000 +v -0.707107 0.292893 8.000000 +v -0.382683 0.076120 8.000000 +v 0.000000 0.000000 8.000000 +v 0.382683 0.076120 8.000000 +v 0.707107 0.292893 8.000000 +v 0.923880 0.617316 8.000000 +v 1.000000 1.000000 8.000000 +v 0.923880 1.382684 8.000000 +v 0.707107 1.707107 8.000000 +v 0.382683 1.923880 8.000000 +v 0.000000 2.000000 0.500000 +v -0.382683 1.923880 0.500000 +v -0.707107 1.707107 0.500000 +v -0.923880 1.382683 0.500000 +v -1.000000 1.000000 0.500000 +v -0.923880 0.617316 0.500000 +v -0.707107 0.292893 0.500000 +v -0.382683 0.076120 0.500000 +v 0.000000 0.000000 0.500000 +v 0.382683 0.076120 0.500000 +v 0.707107 0.292893 0.500000 +v 0.923880 0.617316 0.500000 +v 1.000000 1.000000 0.500000 +v 0.923880 1.382684 0.500000 +v 0.707107 1.707107 0.500000 +v 0.382683 1.923880 0.500000 +v 0.287012 1.692910 0.500000 +v 0.530330 1.530330 0.500000 +v 0.692910 1.287013 0.500000 +v 0.750000 1.000000 0.500000 +v 0.692910 0.712987 0.500000 +v 0.530330 0.469670 0.500000 +v 0.287013 0.307090 0.500000 +v 0.000000 0.250000 0.500000 +v -0.287013 0.307090 0.500000 +v -0.530330 0.469670 0.500000 +v -0.692910 0.712987 0.500000 +v -0.750000 1.000000 0.500000 +v -0.692910 1.287013 0.500000 +v -0.530330 1.530330 0.500000 +v -0.287013 1.692910 0.500000 +v 0.000000 1.750000 0.500000 +v 0.000000 1.750000 8.000000 +v -0.287013 1.692910 8.000000 +v -0.530330 1.530330 8.000000 +v -0.692910 1.287013 8.000000 +v -0.750000 1.000000 8.000000 +v -0.692910 0.712987 8.000000 +v -0.530330 0.469670 8.000000 +v -0.287013 0.307090 8.000000 +v 0.000000 0.250000 8.000000 +v 0.287013 0.307090 8.000000 +v 0.530330 0.469670 8.000000 +v 0.692910 0.712987 8.000000 +v 0.750000 1.000000 8.000000 +v 0.692910 1.287013 8.000000 +v 0.530330 1.530330 8.000000 +v 0.287012 1.692910 8.000000 +vt 0.231343 0.468750 +vt 0.223881 0.507812 +vt 0.223881 0.468750 +vt 0.231343 0.093750 +vt 0.223881 0.046875 +vt 0.231343 0.046875 +vt 0.223881 0.421875 +vt 0.231343 0.421875 +vt 0.231343 -0.000000 +vt 0.223881 0.039062 +vt 0.223881 0.000000 +vt 0.223881 0.375000 +vt 0.231343 0.375000 +vt 0.231343 0.703125 +vt 0.223881 0.742188 +vt 0.223881 0.703125 +vt 0.223881 0.328125 +vt 0.231343 0.328125 +vt 0.231343 0.656250 +vt 0.223881 0.695312 +vt 0.223881 0.656250 +vt 0.223881 0.281250 +vt 0.231343 0.281250 +vt 0.231343 0.609375 +vt 0.223881 0.648438 +vt 0.223881 0.609375 +vt 0.223881 0.234375 +vt 0.231343 0.234375 +vt 0.231343 0.562500 +vt 0.223881 0.601562 +vt 0.223881 0.562500 +vt 0.231343 0.187500 +vt 0.223881 0.226562 +vt 0.223881 0.187500 +vt 0.223881 0.140625 +vt 0.231343 0.140625 +vt 0.223881 0.515625 +vt 0.231343 0.515625 +vt 0.223881 0.132812 +vt 0.223881 0.093750 +vt 0.223881 0.085938 +vt 0.223881 0.460938 +vt 0.223881 0.414062 +vt 0.231343 0.750000 +vt 0.223881 0.367188 +vt 0.223881 0.320312 +vt 0.223881 0.273438 +vt 0.223881 0.179688 +vt 0.223881 0.554688 +vt 0.000000 0.156250 +vt 0.223881 0.195312 +vt 0.000000 0.195312 +vt 0.000000 -0.000000 +vt 0.223881 0.039062 +vt 0.000000 0.039062 +vt 0.000000 0.507812 +vt 0.223881 0.546875 +vt 0.000000 0.546875 +vt 0.000000 0.351562 +vt 0.223881 0.390625 +vt 0.000000 0.390625 +vt 0.223881 0.234375 +vt 0.000000 0.234375 +vt 0.223881 0.078125 +vt 0.000000 0.078125 +vt 0.223881 0.585938 +vt 0.000000 0.585938 +vt 0.223881 0.429688 +vt 0.000000 0.429688 +vt 0.223881 0.273438 +vt 0.000000 0.273438 +vt 0.223881 0.117188 +vt 0.000000 0.117188 +vt 0.223881 0.625000 +vt 0.000000 0.625000 +vt 0.223881 0.468750 +vt 0.000000 0.468750 +vt 0.000000 0.312500 +vt 0.223881 0.351562 +vt 0.223881 0.507812 +vt 0.223881 0.156250 +vt 0.223881 0.312500 +vt 0.455224 0.046875 +vt 0.455224 0.468750 +vt 0.455224 0.093750 +vt 0.455224 0.515625 +vt 0.455224 0.140625 +vt 0.455224 0.562500 +vt 0.455224 0.187500 +vt 0.455224 0.609375 +vt 0.455224 0.234375 +vt 0.455224 0.656250 +vt 0.455224 0.281250 +vt 0.455224 0.703125 +vt 0.455224 0.375000 +vt 0.455224 0.328125 +vt 0.455224 -0.000000 +vt 0.455224 0.421875 +vt 0.223881 -0.000000 +vt 0.455224 0.750000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 220/422/137 269/423/137 268/424/137 +f 228/425/137 275/426/137 227/427/137 +f 220/422/137 267/428/137 219/429/137 +f 226/430/137 275/431/137 274/432/137 +f 219/429/137 266/433/137 218/434/137 +f 225/435/137 274/436/137 273/437/137 +f 218/434/137 281/438/137 233/439/137 +f 224/440/137 273/441/137 272/442/137 +f 233/439/137 280/443/137 232/444/137 +f 223/445/137 272/446/137 271/447/137 +f 232/444/137 279/448/137 231/449/137 +f 222/450/137 271/451/137 270/452/137 +f 230/453/137 279/454/137 278/455/137 +f 230/453/137 277/456/137 229/457/137 +f 222/450/137 269/458/137 221/459/137 +f 228/425/137 277/460/137 276/461/137 +f 220/422/137 221/459/137 269/423/137 +f 228/425/137 276/462/137 275/426/137 +f 220/422/137 268/463/137 267/428/137 +f 226/430/137 227/427/137 275/431/137 +f 219/429/137 267/464/137 266/433/137 +f 225/435/137 226/465/137 274/436/137 +f 218/434/137 266/466/137 281/438/137 +f 224/440/137 225/435/137 273/441/137 +f 233/439/137 281/467/137 280/443/137 +f 223/445/137 224/440/137 272/446/137 +f 232/444/137 280/468/137 279/448/137 +f 222/450/137 223/445/137 271/451/137 +f 230/453/137 231/449/137 279/454/137 +f 230/453/137 278/469/137 277/456/137 +f 222/450/137 270/470/137 269/458/137 +f 228/425/137 229/457/137 277/460/137 +s 1 +f 270/471/138 262/472/139 269/473/139 +f 274/474/140 258/475/141 273/476/141 +f 277/477/142 255/478/143 276/479/143 +f 281/480/144 251/481/145 280/482/145 +f 269/473/139 263/483/146 268/484/146 +f 273/476/141 259/485/147 272/486/147 +f 276/479/143 256/487/148 275/488/148 +f 280/482/145 252/489/149 279/490/149 +f 268/484/146 264/491/150 267/492/150 +f 272/486/147 260/493/151 271/494/151 +f 275/488/148 257/495/140 274/496/140 +f 279/490/149 253/497/152 278/498/152 +f 266/499/153 250/500/144 281/480/144 +f 278/498/152 254/501/142 277/477/142 +f 271/494/151 261/502/138 270/471/138 +f 267/492/150 265/503/153 266/499/153 +f 243/504/150 228/425/146 227/427/150 +f 236/505/143 221/459/142 220/422/143 +f 244/506/146 229/457/139 228/425/146 +f 237/507/142 222/450/152 221/459/142 +f 245/508/139 230/453/138 229/457/139 +f 238/509/152 223/445/149 222/450/152 +f 246/510/138 231/449/151 230/453/138 +f 239/511/149 224/440/145 223/445/149 +f 247/512/151 232/444/147 231/449/151 +f 240/513/145 225/435/144 224/440/145 +f 248/514/147 233/439/141 232/444/147 +f 241/515/144 226/465/153 225/435/144 +f 234/516/140 219/429/148 218/434/140 +f 249/517/141 218/434/140 233/439/141 +f 242/518/153 227/427/150 226/430/153 +f 235/519/148 220/422/143 219/429/148 +f 270/471/138 261/502/138 262/472/139 +f 274/474/140 257/520/140 258/475/141 +f 277/477/142 254/501/142 255/478/143 +f 281/480/144 250/500/144 251/481/145 +f 269/473/139 262/472/139 263/483/146 +f 273/476/141 258/475/141 259/485/147 +f 276/479/143 255/478/143 256/487/148 +f 280/482/145 251/481/145 252/489/149 +f 268/484/146 263/483/146 264/491/150 +f 272/486/147 259/485/147 260/493/151 +f 275/488/148 256/487/148 257/495/140 +f 279/490/149 252/489/149 253/497/152 +f 266/499/153 265/503/153 250/500/144 +f 278/498/152 253/497/152 254/501/142 +f 271/494/151 260/493/151 261/502/138 +f 267/492/150 264/491/150 265/503/153 +f 243/504/150 244/506/146 228/425/146 +f 236/505/143 237/507/142 221/459/142 +f 244/506/146 245/508/139 229/457/139 +f 237/507/142 238/509/152 222/450/152 +f 245/508/139 246/510/138 230/453/138 +f 238/509/152 239/511/149 223/445/149 +f 246/510/138 247/512/151 231/449/151 +f 239/511/149 240/513/145 224/440/145 +f 247/512/151 248/514/147 232/444/147 +f 240/513/145 241/515/144 225/435/144 +f 248/514/147 249/517/141 233/439/141 +f 241/515/144 242/521/153 226/465/153 +f 234/516/140 235/519/148 219/429/148 +f 249/517/141 234/516/140 218/434/140 +f 242/518/153 243/504/150 227/427/150 +f 235/519/148 236/505/143 220/422/143 +o Cannon v 0.000000 2.000000 0.500000 v -0.382683 1.923880 0.500000 v -0.707107 1.707107 0.500000 @@ -81,22 +1524,6 @@ v 1.000000 1.000000 -4.000000 v 0.923880 1.382684 -4.000000 v 0.707107 1.707107 -4.000000 v 0.382683 1.923880 -4.000000 -v 0.382683 1.923880 -4.500000 -v 0.707107 1.707107 -4.500000 -v 0.923880 1.382684 -4.500000 -v 1.000000 1.000000 -4.500000 -v 0.923880 0.617316 -4.500000 -v 0.707107 0.292893 -4.500000 -v 0.382683 0.076120 -4.500000 -v 0.000000 0.000000 -4.500000 -v -0.382683 0.076120 -4.500000 -v -0.707107 0.292893 -4.500000 -v -0.923880 0.617316 -4.500000 -v -1.000000 1.000000 -4.500000 -v -0.923880 1.382683 -4.500000 -v -0.707107 1.707107 -4.500000 -v -0.382683 1.923880 -4.500000 -v 0.000000 2.000000 -4.500000 v 0.000000 2.000000 -3.500000 v -0.382683 1.923880 -3.500000 v -0.707107 1.707107 -3.500000 @@ -113,158 +1540,6 @@ v 1.000000 1.000000 -3.500000 v 0.923880 1.382684 -3.500000 v 0.707107 1.707107 -3.500000 v 0.382683 1.923880 -3.500000 -v -0.500000 0.000000 -6.000000 -v 0.500000 0.000000 -6.000000 -v -0.500000 0.000000 -7.000000 -v 0.500000 0.000000 -7.000000 -v -0.500000 -0.250000 -7.250000 -v 0.500000 -0.250000 -7.250000 -v -0.500000 -0.250000 -5.750000 -v 0.500000 -0.250000 -5.750000 -v 0.250000 0.125000 -7.187500 -v -0.250000 0.125000 -7.187500 -v 0.250000 0.125000 -5.812500 -v -0.250000 0.125000 -5.812500 -v -0.500000 -0.250000 -5.625000 -v 0.500000 -0.250000 -5.625000 -v -0.500000 0.125000 -5.625000 -v 0.500000 0.125000 -5.625000 -v 0.500000 -0.250000 -7.375000 -v -0.500000 -0.250000 -7.375000 -v 0.500000 0.125000 -7.375000 -v -0.500000 0.125000 -7.375000 -v 0.250000 0.375000 -5.812500 -v 0.250000 0.375000 -7.187500 -v -0.250000 0.375000 -7.187500 -v -0.250000 0.375000 -5.812500 -v 1.250000 0.750000 -4.375000 -v -1.250000 0.750000 -4.375000 -v 1.250000 1.250000 -4.375000 -v -1.250000 1.250000 -4.375000 -v -1.250000 1.250000 -4.125000 -v 1.250000 1.250000 -4.125000 -v -1.250000 0.750000 -4.125000 -v 1.250000 0.750000 -4.125000 -v 0.250000 2.250000 -4.125000 -v 0.250000 -0.250000 -4.125000 -v -0.250000 2.250000 -4.125000 -v -0.250000 -0.250000 -4.125000 -v -0.250000 -0.250000 -4.375000 -v -0.250000 2.250000 -4.375000 -v 0.250000 -0.250000 -4.375000 -v 0.250000 2.250000 -4.375000 -v -0.707107 2.060660 -4.125000 -v 1.060660 0.292893 -4.125000 -v -1.060660 1.707107 -4.125000 -v 0.707107 -0.060660 -4.125000 -v 0.707107 -0.060660 -4.375000 -v -1.060660 1.707107 -4.375000 -v 1.060660 0.292893 -4.375000 -v -0.707107 2.060660 -4.375000 -v 1.060660 1.707107 -4.375000 -v -0.707107 -0.060660 -4.375000 -v 0.707107 2.060660 -4.375000 -v -1.060660 0.292893 -4.375000 -v -1.060660 0.292893 -4.125000 -v 0.707107 2.060660 -4.125000 -v -0.707107 -0.060660 -4.125000 -v 1.060660 1.707107 -4.125000 -v 0.000000 2.000000 -4.500000 -v -0.382683 1.923880 -4.500000 -v -0.707107 1.707107 -4.500000 -v -0.923880 1.382683 -4.500000 -v -1.000000 1.000000 -4.500000 -v -0.923880 0.617316 -4.500000 -v -0.707107 0.292893 -4.500000 -v -0.382683 0.076120 -4.500000 -v 0.000000 0.000000 -4.500000 -v 0.382683 0.076120 -4.500000 -v 0.707107 0.292893 -4.500000 -v 0.923880 0.617316 -4.500000 -v 1.000000 1.000000 -4.500000 -v 0.923880 1.382684 -4.500000 -v 0.707107 1.707107 -4.500000 -v 0.382683 1.923880 -4.500000 -v 0.000000 1.750000 -5.500000 -v -0.287013 1.692910 -5.500000 -v -0.530330 1.530330 -5.500000 -v -0.692910 1.287013 -5.500000 -v -0.750000 1.000000 -5.500000 -v -0.692910 0.712987 -5.500000 -v -0.530330 0.469670 -5.500000 -v -0.287013 0.307090 -5.500000 -v 0.000000 0.250000 -5.500000 -v 0.287013 0.307090 -5.500000 -v 0.530330 0.469670 -5.500000 -v 0.692910 0.712987 -5.500000 -v 0.750000 1.000000 -5.500000 -v 0.692910 1.287013 -5.500000 -v 0.530330 1.530330 -5.500000 -v 0.287012 1.692910 -5.500000 -v 0.000000 1.750000 -7.500000 -v -0.287013 1.692910 -7.500000 -v -0.530330 1.530330 -7.500000 -v -0.692910 1.287013 -7.500000 -v -0.750000 1.000000 -7.500000 -v -0.692910 0.712987 -7.500000 -v -0.530330 0.469670 -7.500000 -v -0.287013 0.307090 -7.500000 -v 0.000000 0.250000 -7.500000 -v 0.287013 0.307090 -7.500000 -v 0.530330 0.469670 -7.500000 -v 0.692910 0.712987 -7.500000 -v 0.750000 1.000000 -7.500000 -v 0.692910 1.287013 -7.500000 -v 0.530330 1.530330 -7.500000 -v 0.287012 1.692910 -7.500000 -v 0.000000 1.500000 -8.000000 -v -0.191342 1.461940 -8.000000 -v -0.353553 1.353553 -8.000000 -v -0.461940 1.191342 -8.000000 -v -0.500000 1.000000 -8.000000 -v -0.461940 0.808658 -8.000000 -v -0.353553 0.646447 -8.000000 -v -0.191342 0.538060 -8.000000 -v 0.000000 0.500000 -8.000000 -v 0.191341 0.538060 -8.000000 -v 0.353553 0.646446 -8.000000 -v 0.461940 0.808658 -8.000000 -v 0.500000 1.000000 -8.000000 -v 0.461940 1.191342 -8.000000 -v 0.353553 1.353554 -8.000000 -v 0.191341 1.461940 -8.000000 -v 0.000000 2.000000 -3.500000 -v -0.382683 1.923880 -3.500000 -v -0.707107 1.707107 -3.500000 -v -0.923880 1.382683 -3.500000 -v -1.000000 1.000000 -3.500000 -v -0.923880 0.617316 -3.500000 -v -0.707107 0.292893 -3.500000 -v -0.382683 0.076120 -3.500000 -v 0.000000 0.000000 -3.500000 -v 0.382683 0.076120 -3.500000 -v 0.707107 0.292893 -3.500000 -v 0.923880 0.617316 -3.500000 -v 1.000000 1.000000 -3.500000 -v 0.923880 1.382684 -3.500000 -v 0.707107 1.707107 -3.500000 -v 0.382683 1.923880 -3.500000 -v 0.000000 1.562500 -3.500000 -v -0.215260 1.519682 -3.500000 -v -0.397748 1.397748 -3.500000 -v -0.519682 1.215260 -3.500000 -v -0.562500 1.000000 -3.500000 -v -0.519682 0.784740 -3.500000 -v -0.397748 0.602252 -3.500000 -v -0.215260 0.480318 -3.500000 -v 0.000000 0.437500 -3.500000 -v 0.215260 0.480318 -3.500000 -v 0.397747 0.602252 -3.500000 -v 0.519682 0.784740 -3.500000 -v 0.562500 1.000000 -3.500000 -v 0.519682 1.215260 -3.500000 -v 0.397747 1.397748 -3.500000 -v 0.215259 1.519682 -3.500000 v -0.250000 -0.375000 -2.000000 v 0.250000 -0.375000 -2.000000 v -0.250000 -0.375000 -3.000000 @@ -393,70 +1668,6 @@ v 1.375000 1.500000 -2.687500 v 1.375000 0.500000 -2.687500 v 2.625000 1.500000 -2.687500 v 2.625000 0.500000 -2.687500 -v 0.287012 1.692909 -3.250000 -v 0.530330 1.530331 -3.250000 -v 0.692910 1.287012 -3.250000 -v 0.750000 1.000000 -3.250000 -v 0.692910 0.712988 -3.250000 -v 0.530330 0.469669 -3.250000 -v 0.287013 0.307091 -3.250000 -v 0.000000 0.250000 -3.250000 -v -0.287013 0.307091 -3.250000 -v -0.530330 0.469669 -3.250000 -v -0.692910 0.712988 -3.250000 -v -0.750000 1.000000 -3.250000 -v -0.692910 1.287012 -3.250000 -v -0.530330 1.530331 -3.250000 -v -0.287013 1.692909 -3.250000 -v 0.000000 1.750000 -3.250000 -v 0.000000 2.000000 8.000000 -v -0.382683 1.923880 8.000000 -v -0.707107 1.707107 8.000000 -v -0.923880 1.382683 8.000000 -v -1.000000 1.000000 8.000000 -v -0.923880 0.617316 8.000000 -v -0.707107 0.292893 8.000000 -v -0.382683 0.076120 8.000000 -v 0.000000 0.000000 8.000000 -v 0.382683 0.076120 8.000000 -v 0.707107 0.292893 8.000000 -v 0.923880 0.617316 8.000000 -v 1.000000 1.000000 8.000000 -v 0.923880 1.382684 8.000000 -v 0.707107 1.707107 8.000000 -v 0.382683 1.923880 8.000000 -v 0.000000 2.000000 0.500000 -v -0.382683 1.923880 0.500000 -v -0.707107 1.707107 0.500000 -v -0.923880 1.382683 0.500000 -v -1.000000 1.000000 0.500000 -v -0.923880 0.617316 0.500000 -v -0.707107 0.292893 0.500000 -v -0.382683 0.076120 0.500000 -v 0.000000 0.000000 0.500000 -v 0.382683 0.076120 0.500000 -v 0.707107 0.292893 0.500000 -v 0.923880 0.617316 0.500000 -v 1.000000 1.000000 0.500000 -v 0.923880 1.382684 0.500000 -v 0.707107 1.707107 0.500000 -v 0.382683 1.923880 0.500000 -v 0.287012 1.692910 0.500000 -v 0.530330 1.530330 0.500000 -v 0.692910 1.287013 0.500000 -v 0.750000 1.000000 0.500000 -v 0.692910 0.712987 0.500000 -v 0.530330 0.469670 0.500000 -v 0.287013 0.307090 0.500000 -v 0.000000 0.250000 0.500000 -v -0.287013 0.307090 0.500000 -v -0.530330 0.469670 0.500000 -v -0.692910 0.712987 0.500000 -v -0.750000 1.000000 0.500000 -v -0.692910 1.287013 0.500000 -v -0.530330 1.530330 0.500000 -v -0.287013 1.692910 0.500000 -v 0.000000 1.750000 0.500000 v 1.500000 1.375000 -1.250000 v 1.500000 0.625000 -1.250000 v 1.500000 1.375000 -2.250000 @@ -585,22 +1796,6 @@ v 0.000000 2.312500 -2.000000 v 0.478354 2.154849 -2.000000 v 0.883883 1.883883 -2.000000 v 0.000000 2.312500 -1.875000 -v 0.000000 1.750000 8.000000 -v -0.287013 1.692910 8.000000 -v -0.530330 1.530330 8.000000 -v -0.692910 1.287013 8.000000 -v -0.750000 1.000000 8.000000 -v -0.692910 0.712987 8.000000 -v -0.530330 0.469670 8.000000 -v -0.287013 0.307090 8.000000 -v 0.000000 0.250000 8.000000 -v 0.287013 0.307090 8.000000 -v 0.530330 0.469670 8.000000 -v 0.692910 0.712987 8.000000 -v 0.750000 1.000000 8.000000 -v 0.692910 1.287013 8.000000 -v 0.530330 1.530330 8.000000 -v 0.287012 1.692910 8.000000 v 0.000000 1.750000 -3.500000 v -0.287013 1.692910 -3.500000 v -0.530330 1.530330 -3.500000 @@ -617,39 +1812,6 @@ v 0.750000 1.000000 -3.500000 v 0.692910 1.287013 -3.500000 v 0.530330 1.530330 -3.500000 v 0.287012 1.692910 -3.500000 -v 0.287012 1.692909 -1.000000 -v 0.530330 1.530331 -1.000000 -v 0.692910 1.287012 -1.000000 -v 0.750000 1.000000 -1.000000 -v 0.692910 0.712988 -1.000000 -v 0.530330 0.469669 -1.000000 -v 0.287013 0.307091 -1.000000 -v 0.000000 0.250000 -1.000000 -v -0.287013 0.307091 -1.000000 -v -0.530330 0.469669 -1.000000 -v -0.692910 0.712988 -1.000000 -v -0.750000 1.000000 -1.000000 -v -0.692910 1.287012 -1.000000 -v -0.530330 1.530331 -1.000000 -v -0.287013 1.692909 -1.000000 -v 0.000000 1.750000 -1.000000 -v 0.179382 1.433068 0.000000 -v 0.331456 1.331457 0.000000 -v 0.433069 1.179382 0.000000 -v 0.468750 1.000000 0.000000 -v 0.433069 0.820618 0.000000 -v 0.331456 0.668543 0.000000 -v 0.179383 0.566932 0.000000 -v 0.000000 0.531250 0.000000 -v -0.179383 0.566932 0.000000 -v -0.331456 0.668543 0.000000 -v -0.433069 0.820618 0.000000 -v -0.468750 1.000000 0.000000 -v -0.433069 1.179382 0.000000 -v -0.331456 1.331457 0.000000 -v -0.179383 1.433068 0.000000 -v 0.000000 1.468750 0.000000 -v 0.000000 1.000000 0.500000 vt 0.455224 0.320312 vt 0.462687 0.375000 vt 0.455224 0.367188 @@ -727,96 +1889,6 @@ vt 0.597015 0.125000 vt 0.604478 0.179688 vt 0.597015 0.187500 vt 0.604478 0.195312 -vt 0.668136 0.865446 -vt 0.629147 0.797819 -vt 0.645297 0.634554 -vt 0.705005 0.634623 -vt 0.743971 0.702209 -vt 0.727831 0.865378 -vt 0.085821 0.796875 -vt 0.115672 0.671875 -vt 0.115672 0.796875 -vt 0.078358 0.796875 -vt 0.085821 0.671875 -vt 0.123134 0.671875 -vt 0.022388 0.656250 -vt 0.063433 0.671875 -vt 0.011194 0.671875 -vt 0.011194 0.796875 -vt 0.014925 0.843750 -vt 0.022388 0.812500 -vt 0.078358 0.625000 -vt 0.063433 0.656250 -vt 0.063433 0.625000 -vt 0.000000 0.796875 -vt 0.000000 0.671875 -vt 0.126866 0.796875 -vt 0.123134 0.796875 -vt 0.175373 0.625000 -vt 0.134328 0.656250 -vt 0.134328 0.625000 -vt 0.119403 0.625000 -vt 0.078358 0.656250 -vt 0.063433 0.796875 -vt 0.074627 0.671875 -vt 0.074627 0.796875 -vt 0.078358 0.671875 -vt 0.119403 0.656250 -vt 0.126866 0.765625 -vt 0.134328 0.828125 -vt 0.126866 0.828125 -vt 0.216418 0.828125 -vt 0.208955 0.765625 -vt 0.216418 0.765625 -vt 0.134328 0.671875 -vt 0.208955 0.734375 -vt 0.134328 0.734375 -vt 0.208955 0.765625 -vt 0.134328 0.828125 -vt 0.134328 0.765625 -vt 0.134328 0.859375 -vt 0.208955 0.828125 -vt 0.208955 0.859375 -vt 0.216418 0.828125 -vt 0.216418 0.765625 -vt 0.126866 0.765625 -vt 0.126866 0.828125 -vt 0.134328 0.859375 -vt 0.208955 0.828125 -vt 0.208955 0.859375 -vt 0.208955 0.734375 -vt 0.134328 0.765625 -vt 0.134328 0.734375 -vt 0.134328 0.671875 -vt 0.126866 0.765625 -vt 0.134328 0.828125 -vt 0.126866 0.828125 -vt 0.216418 0.828125 -vt 0.208955 0.765625 -vt 0.216418 0.765625 -vt 0.134328 0.859375 -vt 0.208955 0.828125 -vt 0.208955 0.859375 -vt 0.208955 0.734375 -vt 0.134328 0.765625 -vt 0.134328 0.734375 -vt 0.134328 0.671875 -vt 0.134328 0.671875 -vt 0.208955 0.734375 -vt 0.134328 0.734375 -vt 0.134328 0.765625 -vt 0.208955 0.828125 -vt 0.134328 0.828125 -vt 0.134328 0.859375 -vt 0.208955 0.859375 -vt 0.216418 0.828125 -vt 0.208955 0.765625 -vt 0.216418 0.765625 -vt 0.126866 0.765625 -vt 0.126866 0.828125 -vt 0.810345 0.643319 -vt 0.831446 0.643319 -vt 0.831446 0.731681 vt 0.626866 0.421875 vt 0.619403 0.468750 vt 0.619403 0.421875 @@ -969,46 +2041,6 @@ vt 0.871269 0.812500 vt 0.865672 0.929688 vt 0.865672 0.820312 vt 0.794776 0.914062 -vt 0.231343 0.468750 -vt 0.223881 0.507812 -vt 0.223881 0.468750 -vt 0.231343 0.093750 -vt 0.223881 0.046875 -vt 0.231343 0.046875 -vt 0.223881 0.421875 -vt 0.231343 0.421875 -vt 0.231343 -0.000000 -vt 0.223881 0.039062 -vt 0.223881 0.000000 -vt 0.223881 0.375000 -vt 0.231343 0.375000 -vt 0.231343 0.703125 -vt 0.223881 0.742188 -vt 0.223881 0.703125 -vt 0.223881 0.328125 -vt 0.231343 0.328125 -vt 0.231343 0.656250 -vt 0.223881 0.695312 -vt 0.223881 0.656250 -vt 0.223881 0.281250 -vt 0.231343 0.281250 -vt 0.231343 0.609375 -vt 0.223881 0.648438 -vt 0.223881 0.609375 -vt 0.223881 0.234375 -vt 0.231343 0.234375 -vt 0.231343 0.562500 -vt 0.223881 0.601562 -vt 0.223881 0.562500 -vt 0.231343 0.187500 -vt 0.223881 0.226562 -vt 0.223881 0.187500 -vt 0.223881 0.140625 -vt 0.231343 0.140625 -vt 0.223881 0.515625 -vt 0.231343 0.515625 -vt 0.223881 0.132812 -vt 0.223881 0.093750 vt 0.313433 0.796875 vt 0.343284 0.890625 vt 0.313433 0.890625 @@ -1104,14 +2136,6 @@ vt 0.044776 0.875000 vt 0.074627 0.843750 vt 0.059701 0.851562 vt 0.059701 0.843750 -vt 0.014925 0.625000 -vt 0.059701 0.625000 -vt 0.063433 0.625000 -vt 0.059701 0.843750 -vt 0.052239 0.812500 -vt 0.864481 0.745016 -vt 0.840742 0.745016 -vt 0.840743 0.645609 vt 0.044776 0.851562 vt 0.029851 0.843750 vt 0.044776 0.843750 @@ -1144,53 +2168,6 @@ vt 0.604478 0.054688 vt 0.604478 0.117188 vt 0.604478 0.132812 vt 0.604478 0.242188 -vt 0.656716 0.874957 -vt 0.645297 0.865445 -vt 0.635616 0.838358 -vt 0.626876 0.750000 -vt 0.629147 0.702181 -vt 0.635616 0.661642 -vt 0.656716 0.625043 -vt 0.668136 0.634554 -vt 0.677817 0.661642 -vt 0.684285 0.702181 -vt 0.686557 0.750000 -vt 0.684285 0.797819 -vt 0.677817 0.838358 -vt 0.716418 0.874884 -vt 0.705005 0.865378 -vt 0.695330 0.838306 -vt 0.688865 0.797791 -vt 0.686595 0.750000 -vt 0.688865 0.702209 -vt 0.695330 0.661694 -vt 0.716418 0.625117 -vt 0.727831 0.634623 -vt 0.737506 0.661694 -vt 0.746241 0.750000 -vt 0.743971 0.797791 -vt 0.737506 0.838306 -vt 0.052239 0.656250 -vt 0.011194 0.843750 -vt 0.126866 0.671875 -vt 0.175373 0.656250 -vt 0.208955 0.671875 -vt 0.208955 0.671875 -vt 0.208955 0.671875 -vt 0.208955 0.671875 -vt 0.826605 0.745225 -vt 0.820895 0.749981 -vt 0.815185 0.745225 -vt 0.810345 0.731681 -vt 0.807110 0.711411 -vt 0.805975 0.687500 -vt 0.807110 0.663589 -vt 0.815185 0.629775 -vt 0.820895 0.625019 -vt 0.826605 0.629775 -vt 0.834680 0.663589 -vt 0.835816 0.687500 -vt 0.834680 0.711411 vt 0.626866 0.460938 vt 0.626866 0.328125 vt 0.626866 0.273438 @@ -1239,15 +2216,6 @@ vt 0.152985 0.882812 vt 0.792910 0.953125 vt 0.828358 0.835938 vt 0.828358 0.914062 -vt 0.223881 0.085938 -vt 0.223881 0.460938 -vt 0.223881 0.414062 -vt 0.231343 0.750000 -vt 0.223881 0.367188 -vt 0.223881 0.320312 -vt 0.223881 0.273438 -vt 0.223881 0.179688 -vt 0.223881 0.554688 vt 0.354478 0.796875 vt 0.302239 0.890625 vt 0.313433 0.750000 @@ -1284,175 +2252,7 @@ vt 0.059701 0.875000 vt 0.059701 0.875000 vt 0.014925 0.851562 vt 0.074627 0.851562 -vt 0.011194 0.625000 -vt 0.063433 0.843750 -vt 0.846188 0.630372 -vt 0.852612 0.625022 -vt 0.859036 0.630372 -vt 0.864481 0.645610 -vt 0.868120 0.668414 -vt 0.869398 0.695313 -vt 0.868120 0.722212 -vt 0.859036 0.760253 -vt 0.852612 0.765604 -vt 0.846188 0.760253 -vt 0.837104 0.722212 -vt 0.835826 0.695313 -vt 0.837104 0.668414 vt 0.014925 0.851562 -vt 0.000000 0.156250 -vt 0.223881 0.195312 -vt 0.000000 0.195312 -vt 0.000000 -0.000000 -vt 0.223881 0.039062 -vt 0.000000 0.039062 -vt 0.000000 0.507812 -vt 0.223881 0.546875 -vt 0.000000 0.546875 -vt 0.000000 0.351562 -vt 0.223881 0.390625 -vt 0.000000 0.390625 -vt 0.223881 0.234375 -vt 0.000000 0.234375 -vt 0.223881 0.078125 -vt 0.000000 0.078125 -vt 0.223881 0.585938 -vt 0.000000 0.585938 -vt 0.223881 0.429688 -vt 0.000000 0.429688 -vt 0.223881 0.273438 -vt 0.000000 0.273438 -vt 0.223881 0.117188 -vt 0.000000 0.117188 -vt 0.223881 0.625000 -vt 0.000000 0.625000 -vt 0.223881 0.468750 -vt 0.000000 0.468750 -vt 0.000000 0.312500 -vt 0.223881 0.351562 -vt 0.223881 0.507812 -vt 0.223881 0.156250 -vt 0.223881 0.312500 -vt 0.776119 0.562500 -vt 0.746269 0.515625 -vt 0.776119 0.515625 -vt 0.776119 0.187500 -vt 0.746269 0.140625 -vt 0.776119 0.140625 -vt 0.776119 0.609375 -vt 0.746269 0.562500 -vt 0.776119 0.234375 -vt 0.746269 0.187500 -vt 0.776119 0.656250 -vt 0.746269 0.609375 -vt 0.776119 0.281250 -vt 0.746269 0.234375 -vt 0.776119 0.703125 -vt 0.746269 0.656250 -vt 0.776119 0.328125 -vt 0.746269 0.281250 -vt 0.776119 0.750000 -vt 0.746269 0.703125 -vt 0.776119 0.421875 -vt 0.746269 0.375000 -vt 0.776119 0.375000 -vt 0.746269 0.328125 -vt 0.776119 0.046875 -vt 0.746269 -0.000000 -vt 0.776119 -0.000000 -vt 0.776119 0.468750 -vt 0.746269 0.421875 -vt 0.776119 0.093750 -vt 0.746269 0.046875 -vt 0.746269 0.468750 -vt 0.746269 0.093750 -vt 0.776119 0.281250 -vt 0.805970 0.234375 -vt 0.805970 0.273438 -vt 0.776119 0.656250 -vt 0.805970 0.695312 -vt 0.776119 0.703125 -vt 0.805970 0.320312 -vt 0.776119 0.328125 -vt 0.805970 0.742188 -vt 0.776119 0.750000 -vt 0.776119 0.421875 -vt 0.805970 0.375000 -vt 0.805970 0.414062 -vt 0.805970 0.367188 -vt 0.776119 0.375000 -vt 0.776119 0.046875 -vt 0.805970 -0.000000 -vt 0.805970 0.039062 -vt 0.776119 0.468750 -vt 0.805970 0.421875 -vt 0.805970 0.460938 -vt 0.805970 0.085938 -vt 0.776119 0.093750 -vt 0.776119 0.515625 -vt 0.805970 0.468750 -vt 0.805970 0.507812 -vt 0.805970 0.132812 -vt 0.776119 0.140625 -vt 0.805970 0.554688 -vt 0.776119 0.562500 -vt 0.805970 0.179688 -vt 0.776119 0.187500 -vt 0.776119 0.609375 -vt 0.805970 0.562500 -vt 0.805970 0.601562 -vt 0.776119 0.234375 -vt 0.805970 0.187500 -vt 0.805970 0.226562 -vt 0.805970 0.648438 -vt 0.805970 0.117188 -vt 0.865672 0.156250 -vt 0.805970 0.156250 -vt 0.805970 0.468750 -vt 0.865672 0.507812 -vt 0.805970 0.507812 -vt 0.865672 0.195312 -vt 0.805970 0.195312 -vt 0.865672 0.546875 -vt 0.805970 0.546875 -vt 0.865672 0.234375 -vt 0.805970 0.234375 -vt 0.865672 0.585938 -vt 0.805970 0.585938 -vt 0.865672 0.273438 -vt 0.805970 0.273438 -vt 0.865672 0.625000 -vt 0.805970 0.625000 -vt 0.805970 0.312500 -vt 0.865672 0.351562 -vt 0.805970 0.351562 -vt 0.865672 0.312500 -vt 0.865672 0.039062 -vt 0.865672 0.390625 -vt 0.805970 0.390625 -vt 0.865672 0.078125 -vt 0.805970 0.078125 -vt 0.865672 0.429688 -vt 0.805970 0.429688 -vt 0.865672 0.117188 -vt 0.865672 0.468750 -vt 0.880597 0.203125 -vt 0.880597 0.242188 -vt 0.880597 0.281250 -vt 0.880597 0.320312 -vt 0.880597 0.359375 -vt 0.880597 0.421875 -vt 0.880597 0.437500 -vt 0.880597 0.500000 -vt 0.880597 0.515625 -vt 0.880597 0.578125 -vt 0.880597 0.593750 -vt 0.865672 -0.000000 -vt 0.880597 0.031250 -vt 0.880597 0.070312 -vt 0.880597 0.085938 -vt 0.880597 0.125000 -vt 0.880597 0.187500 vt 0.604478 0.000000 vt 0.604478 0.046875 vt 0.604478 0.421875 @@ -1470,39 +2270,6 @@ vt 0.604478 0.703125 vt 0.604478 0.328125 vt 0.604478 0.750000 vt 0.604478 0.375000 -vt 1.000000 0.242188 -vt 0.992537 0.273438 -vt 0.992537 0.234375 -vt 1.000000 0.007812 -vt 0.992537 0.039062 -vt 0.992537 0.000000 -vt 0.992537 0.351562 -vt 1.000000 0.382812 -vt 0.992537 0.390625 -vt 1.000000 0.554688 -vt 0.992537 0.585938 -vt 0.992537 0.546875 -vt 1.000000 0.320312 -vt 0.992537 0.312500 -vt 1.000000 0.164062 -vt 0.992537 0.195312 -vt 0.992537 0.156250 -vt 1.000000 0.617188 -vt 0.992537 0.625000 -vt 1.000000 0.398438 -vt 0.992537 0.429688 -vt 0.992537 0.078125 -vt 1.000000 0.109375 -vt 0.992537 0.117188 -vt 1.000000 0.476562 -vt 0.992537 0.507812 -vt 0.992537 0.468750 -vt 1.000000 0.539062 -vt 1.000000 0.148438 -vt 1.000000 0.304688 -vt 1.000000 0.203125 -vt 1.000000 0.070312 -vt 1.000000 0.460938 vt 0.746269 0.773438 vt 0.753731 0.765625 vt 0.753731 0.773438 @@ -1544,22 +2311,6 @@ vt 0.789179 0.781250 vt 0.789179 0.796875 vt 0.789179 0.843750 vt 0.789179 0.875000 -vt 0.455224 0.046875 -vt 0.455224 0.468750 -vt 0.455224 0.093750 -vt 0.455224 0.515625 -vt 0.455224 0.140625 -vt 0.455224 0.562500 -vt 0.455224 0.187500 -vt 0.455224 0.609375 -vt 0.455224 0.234375 -vt 0.455224 0.656250 -vt 0.455224 0.281250 -vt 0.455224 0.703125 -vt 0.455224 0.375000 -vt 0.455224 0.328125 -vt 0.455224 -0.000000 -vt 0.455224 0.421875 vt 0.919776 0.695312 vt 0.919776 0.718750 vt 0.919776 0.671875 @@ -1627,117 +2378,8 @@ vt 0.746269 0.117188 vt 0.746269 0.507812 vt 0.746269 0.390625 vt 0.746269 0.585938 -vt 0.925373 0.156250 -vt 0.925373 0.078125 -vt 0.925373 0.585938 -vt 0.925373 0.468750 -vt 0.925373 0.390625 -vt 0.925373 0.507812 -vt 0.925373 0.234375 -vt 0.925373 0.117188 -vt 0.925373 0.000000 -vt 0.925373 0.273438 -vt 0.925373 0.351562 -vt 0.925373 0.195312 -vt 0.925373 0.546875 -vt 0.925373 0.429688 -vt 0.925373 0.312500 -vt 0.925373 0.039062 -vt 0.895522 0.007812 -vt 0.895522 0.320312 -vt 0.895522 0.539062 -vt 0.895522 0.515625 -vt 0.895522 0.164062 -vt 0.895522 0.304688 -vt 0.895522 0.281250 -vt 0.895522 0.226562 -vt 0.895522 0.203125 -vt 0.895522 0.554688 -vt 0.895522 0.070312 -vt 0.895522 0.046875 -vt 0.895522 0.617188 -vt 0.895522 0.593750 -vt 0.895522 0.085938 -vt 0.895522 0.398438 -vt 0.895522 0.242188 -vt 0.895522 0.125000 -vt 0.895522 0.437500 -vt 0.895522 0.382812 -vt 0.895522 0.359375 -vt 0.895522 0.476562 -vt 0.895522 0.460938 -vt 0.880597 0.445312 -vt 0.880597 0.367188 -vt 0.895522 0.031250 -vt 0.880597 0.015625 -vt 0.895522 0.343750 -vt 0.880597 0.328125 -vt 0.880597 0.523438 -vt 0.895522 0.187500 -vt 0.880597 0.171875 -vt 0.880597 0.289062 -vt 0.880597 0.210938 -vt 0.895522 0.578125 -vt 0.880597 0.562500 -vt 0.880597 0.054688 -vt 0.880597 0.601562 -vt 0.895522 0.109375 -vt 0.880597 0.093750 -vt 0.895522 0.421875 -vt 0.880597 0.406250 -vt 0.895522 0.265625 -vt 0.880597 0.250000 -vt 0.895522 0.148438 -vt 0.880597 0.132812 -vt 0.895522 0.500000 -vt 0.880597 0.484375 -vt 0.223881 -0.000000 -vt 0.746269 0.750000 -vt 0.805970 0.656250 -vt 0.805970 0.281250 -vt 0.805970 0.703125 -vt 0.805970 0.328125 -vt 0.776119 -0.000000 -vt 0.805970 0.046875 -vt 0.805970 0.093750 -vt 0.805970 0.515625 -vt 0.805970 0.140625 -vt 0.805970 0.609375 -vt 0.880597 0.226562 -vt 0.880597 0.265625 -vt 0.880597 0.304688 -vt 0.880597 0.343750 -vt 0.880597 0.382812 -vt 0.880597 0.398438 -vt 0.880597 0.460938 -vt 0.880597 0.476562 -vt 0.880597 0.539062 -vt 0.880597 0.554688 -vt 0.880597 0.617188 -vt 0.880597 0.007812 -vt 0.880597 0.046875 -vt 0.880597 0.109375 -vt 0.880597 0.148438 -vt 0.880597 0.164062 -vt 1.000000 0.265625 -vt 1.000000 0.031250 -vt 1.000000 0.359375 -vt 1.000000 0.578125 -vt 1.000000 0.343750 -vt 1.000000 0.187500 -vt 1.000000 0.593750 -vt 1.000000 0.421875 -vt 1.000000 0.085938 -vt 1.000000 0.500000 -vt 1.000000 0.515625 -vt 1.000000 0.125000 -vt 1.000000 0.281250 -vt 1.000000 0.226562 -vt 1.000000 0.046875 -vt 1.000000 0.437500 vt 0.753731 0.750000 vt 0.789179 0.750000 -vt 0.455224 0.750000 vt 0.919776 0.796875 vt 0.869403 0.781250 vt 0.869403 0.640625 @@ -1748,21 +2390,14 @@ vt 0.869403 0.664062 vt 0.869403 0.710938 vt 0.869403 0.734375 vt 0.746269 0.000000 -vt 0.925373 0.625000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 -0.7071 -0.7071 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.1414 -0.9899 vn 0.0000 -0.1414 0.9899 +vn 0.0000 1.0000 0.0000 vn 0.7035 -0.1005 0.7035 vn 0.7035 0.1005 -0.7035 vn -0.7035 0.1005 -0.7035 @@ -1773,62 +2408,18 @@ vn -0.5000 -0.8660 0.0000 vn 0.5000 0.8660 0.0000 vn -0.8660 0.5000 -0.0000 vn 0.0000 0.7071 -0.7071 -vn 0.9239 -0.3827 0.0000 -vn 0.3827 0.9239 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.9239 0.3827 0.0000 -vn 0.6860 0.6860 -0.2425 -vn 0.8963 0.3713 -0.2425 -vn -0.6860 -0.6860 -0.2425 -vn -0.3713 -0.8963 -0.2425 -vn 0.3713 0.8963 -0.2425 -vn -0.0000 -0.9701 -0.2425 -vn -0.3713 0.8963 -0.2425 -vn -0.0000 0.9701 -0.2425 -vn 0.3713 -0.8963 -0.2425 -vn -0.6860 0.6860 -0.2425 -vn 0.6860 -0.6860 -0.2425 -vn -0.8963 0.3713 -0.2425 -vn 0.8963 -0.3713 -0.2425 -vn -0.9701 -0.0000 -0.2425 -vn 0.9701 0.0000 -0.2425 -vn -0.8963 -0.3713 -0.2425 -vn 0.8263 0.3423 -0.4472 -vn 0.6325 0.6325 -0.4472 -vn 0.3423 0.8263 -0.4472 -vn -0.0000 0.8944 -0.4472 -vn -0.3423 0.8263 -0.4472 -vn -0.6325 0.6325 -0.4472 -vn -0.8263 0.3423 -0.4472 -vn -0.8944 -0.0000 -0.4472 -vn -0.8263 -0.3423 -0.4472 -vn -0.6325 -0.6325 -0.4472 -vn -0.3423 -0.8263 -0.4472 -vn -0.0000 -0.8944 -0.4472 -vn 0.3423 -0.8263 -0.4472 -vn 0.6325 -0.6325 -0.4472 -vn 0.8263 -0.3423 -0.4472 -vn 0.8944 -0.0000 -0.4472 -vn 0.5657 0.5657 -0.6000 -vn 0.3061 0.7391 -0.6000 -vn 0.0000 -0.8000 -0.6000 -vn 0.3061 -0.7391 -0.6000 -vn -0.3061 0.7391 -0.6000 -vn -0.5657 0.5657 -0.6000 -vn -0.5657 -0.5657 -0.6000 -vn -0.3061 -0.7391 -0.6000 -vn 0.0000 0.8000 -0.6000 -vn 0.8000 0.0000 -0.6000 -vn 0.7391 0.3061 -0.6000 -vn -0.7391 0.3061 -0.6000 -vn 0.5657 -0.5657 -0.6000 -vn 0.7391 -0.3061 -0.6000 -vn -0.8000 -0.0000 -0.6000 -vn -0.7391 -0.3061 -0.6000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 vn 0.3536 0.6124 -0.7071 vn 0.5738 0.8140 0.0899 vn 0.1205 0.7727 -0.6233 @@ -1851,1071 +2442,563 @@ vn -0.1205 -0.7727 0.6233 vn -0.5738 -0.8140 -0.0899 vn 0.1951 0.9808 -0.0000 vn 0.9808 0.1951 0.0000 -vn 0.3684 -0.8894 0.2707 -vn 0.0000 -0.8777 0.4792 -vn 0.0000 -0.9627 0.2707 -vn -0.3684 0.8894 0.2707 -vn 0.0000 0.8777 0.4792 -vn 0.0000 0.9627 0.2707 -vn -0.8894 -0.3684 0.2707 -vn -0.6206 -0.6207 0.4792 -vn -0.8109 -0.3359 0.4792 -vn 0.8894 0.3684 0.2707 -vn 0.8777 0.0000 0.4792 -vn 0.9627 0.0000 0.2707 -vn 0.3684 0.8894 0.2707 -vn 0.3359 0.8109 0.4792 -vn 0.6206 0.6207 0.4792 -vn 0.8109 0.3359 0.4792 -vn -0.3684 -0.8894 0.2707 -vn -0.6807 -0.6807 0.2707 -vn 0.6206 -0.6207 0.4792 -vn 0.3359 -0.8109 0.4792 -vn -0.3359 -0.8109 0.4792 -vn 0.8894 -0.3684 0.2707 -vn 0.6807 -0.6807 0.2707 -vn -0.8894 0.3684 0.2707 -vn -0.6206 0.6207 0.4792 -vn -0.6807 0.6807 0.2707 -vn 0.6807 0.6807 0.2707 -vn 0.8109 -0.3359 0.4792 -vn -0.9627 -0.0000 0.2707 -vn -0.8109 0.3359 0.4792 -vn -0.3359 0.8109 0.4792 -vn -0.8777 -0.0000 0.4792 s off -f 14/1/1 47/2/1 15/3/1 -f 15/4/1 48/5/1 16/6/1 -f 48/5/1 1/7/1 16/8/1 -f 33/9/1 2/10/1 1/11/1 -f 34/12/1 3/13/1 2/14/1 -f 35/15/1 4/16/1 3/17/1 -f 4/18/1 37/19/1 5/20/1 -f 37/19/1 6/21/1 5/22/1 -f 6/23/1 39/24/1 7/25/1 -f 39/24/1 8/26/1 7/27/1 -f 8/28/1 41/29/1 9/30/1 -f 9/31/1 42/32/1 10/33/1 -f 42/32/1 11/34/1 10/35/1 -f 43/36/1 12/37/1 11/38/1 -f 44/39/1 13/40/1 12/41/1 -f 45/42/1 14/43/1 13/44/1 -f 77/45/2 62/46/2 61/47/2 -f 78/48/2 63/49/2 62/46/2 -f 79/50/2 64/51/2 63/49/2 -f 64/51/2 65/52/2 49/53/2 -f 49/53/2 66/54/2 50/55/2 -f 66/56/2 51/57/2 50/55/2 -f 67/58/2 52/59/2 51/57/2 -f 68/60/2 53/61/2 52/59/2 -f 69/62/2 54/63/2 53/61/2 -f 70/64/2 55/65/2 54/63/2 -f 71/66/2 56/67/2 55/65/2 -f 72/68/2 57/69/2 56/67/2 -f 73/70/2 58/71/2 57/72/2 -f 74/73/2 59/74/2 58/71/2 -f 59/74/2 76/75/2 60/76/2 -f 76/77/2 61/47/2 60/76/2 -f 112/78/1 100/79/1 104/80/1 -f 87/81/2 91/82/2 95/83/2 -f 115/84/3 114/85/3 113/86/3 -f 117/87/4 116/88/4 115/84/4 -f 120/89/5 113/86/5 114/85/5 -f 114/90/6 131/91/6 128/92/6 -f 131/91/7 127/93/7 128/92/7 -f 119/94/8 127/93/8 113/95/8 -f 123/96/1 136/97/1 124/98/1 -f 128/92/1 125/99/1 126/100/1 -f 120/89/3 125/101/3 119/102/3 -f 124/103/8 135/104/8 122/105/8 -f 121/106/6 133/107/6 123/96/6 -f 132/108/2 129/109/2 130/110/2 -f 117/87/3 129/109/3 118/111/3 -f 122/105/2 134/112/2 121/106/2 -f 145/113/7 150/114/7 147/115/7 -f 148/116/3 151/117/3 146/118/3 -f 142/119/1 143/120/1 144/121/1 -f 138/122/2 139/123/2 137/124/2 -f 143/120/3 137/124/3 144/121/3 -f 142/125/7 140/126/7 141/127/7 -f 141/128/8 138/122/8 143/129/8 -f 144/130/6 139/123/6 142/131/6 -f 147/132/8 149/133/8 148/134/8 -f 146/135/6 152/136/6 145/137/6 -f 151/117/2 150/114/2 152/136/2 -f 147/138/1 146/135/1 145/137/1 -f 153/139/9 158/140/9 155/141/9 -f 156/142/10 159/143/10 154/144/10 -f 155/145/11 157/146/11 156/147/11 -f 154/148/12 160/149/12 153/150/12 -f 159/143/2 158/140/2 160/149/2 -f 155/151/1 154/148/1 153/150/1 -f 166/152/1 167/153/1 168/154/1 -f 161/155/2 164/156/2 163/157/2 -f 167/153/10 161/155/10 168/154/10 -f 166/158/9 164/156/9 165/159/9 -f 165/160/11 162/161/11 167/162/11 -f 168/163/12 163/157/12 166/164/12 -f 227/165/2 223/166/2 219/167/2 -f 602/168/2 235/169/2 234/170/2 -f 248/171/2 601/172/2 233/173/2 -f 614/174/2 247/175/2 246/176/2 -f 612/177/2 245/178/2 244/179/2 -f 610/180/2 243/181/2 242/182/2 -f 608/183/2 241/184/2 240/185/2 -f 606/186/2 239/187/2 238/188/2 -f 604/189/2 237/190/2 236/191/2 -f 241/192/2 610/193/2 242/182/2 -f 239/187/2 608/194/2 240/185/2 -f 237/190/2 606/195/2 238/188/2 -f 235/169/2 604/196/2 236/191/2 -f 233/173/2 602/197/2 234/170/2 -f 615/198/2 248/171/2 247/175/2 -f 245/178/2 614/199/2 246/176/2 -f 243/181/2 612/200/2 244/179/2 -f 267/201/3 266/202/3 265/203/3 -f 267/201/2 272/204/2 268/205/2 -f 266/202/1 269/206/1 265/203/1 -f 268/205/6 270/207/6 266/202/6 -f 265/203/8 271/208/8 267/201/8 -f 275/209/3 273/210/3 274/211/3 -f 288/212/13 290/213/13 285/214/13 -f 282/215/14 294/216/14 283/217/14 -f 279/218/7 278/219/7 280/220/7 -f 287/221/6 293/222/6 296/223/6 -f 294/216/15 284/224/15 283/217/15 -f 288/212/16 296/223/16 295/225/16 -f 285/214/17 289/226/17 286/227/17 -f 291/228/18 281/229/18 292/230/18 -f 286/227/8 292/230/8 281/229/8 -f 278/219/8 274/231/8 280/220/8 -f 277/232/2 275/233/2 278/219/2 -f 279/218/6 276/234/6 277/232/6 -f 280/220/1 273/235/1 279/218/1 -f 299/236/14 298/237/14 297/238/14 -f 302/239/13 304/240/13 303/241/13 -f 299/242/8 303/241/8 304/240/8 -f 307/243/19 306/244/19 305/245/19 -f 300/246/6 302/239/6 298/237/6 -f 305/247/8 312/248/8 307/243/8 -f 314/249/20 315/250/20 313/251/20 -f 308/252/6 309/253/6 306/254/6 -f 307/243/3 311/255/3 308/252/3 -f 314/249/21 320/256/21 316/257/21 -f 315/250/2 320/258/2 317/259/2 -f 313/251/1 319/260/1 314/249/1 -f 315/250/22 318/261/22 313/251/22 -f 350/262/23 359/263/23 358/264/23 -f 348/265/23 357/266/23 356/267/23 -f 346/268/23 355/269/23 354/270/23 -f 351/271/23 360/272/23 359/263/23 -f 350/273/23 357/274/23 349/275/23 -f 348/276/23 355/269/23 347/277/23 -f 346/278/23 353/279/23 345/280/23 -f 352/281/23 353/279/23 360/272/23 -f 365/282/20 367/283/20 361/284/20 -f 370/285/6 371/286/6 369/287/6 -f 386/288/8 390/289/8 389/290/8 -f 369/287/1 375/291/1 370/285/1 -f 370/285/3 376/292/3 372/293/3 -f 371/286/7 374/294/7 369/287/7 -f 372/293/2 373/295/2 371/286/2 -f 392/296/6 388/297/6 391/298/6 -f 389/299/7 388/297/7 386/288/7 -f 380/300/7 383/301/7 384/302/7 -f 379/303/6 378/304/6 380/305/6 -f 385/306/3 392/307/3 390/308/3 -f 380/300/2 386/288/2 379/309/2 -f 381/310/2 387/311/2 384/302/2 -f 379/309/2 388/297/2 381/310/2 -f 384/302/2 385/306/2 380/300/2 -f 377/312/1 390/289/1 378/304/1 -f 383/313/1 391/314/1 382/315/1 -f 382/315/1 389/290/1 377/312/1 -f 378/304/1 392/316/1 383/313/1 -f 383/313/8 381/317/8 384/318/8 -f 382/319/3 379/309/3 381/310/3 -f 411/320/1 588/321/1 587/322/1 -f 419/323/1 594/324/1 418/325/1 -f 411/320/1 586/326/1 410/327/1 -f 417/328/1 594/329/1 593/330/1 -f 410/327/1 585/331/1 409/332/1 -f 416/333/1 593/334/1 592/335/1 -f 409/332/1 600/336/1 424/337/1 -f 415/338/1 592/339/1 591/340/1 -f 424/337/1 599/341/1 423/342/1 -f 414/343/1 591/344/1 590/345/1 -f 423/342/1 598/346/1 422/347/1 -f 413/348/1 590/349/1 589/350/1 -f 421/351/1 598/352/1 597/353/1 -f 421/351/1 596/354/1 420/355/1 -f 413/348/1 588/356/1 412/357/1 -f 419/323/1 596/358/1 595/359/1 -f 458/360/6 459/361/6 457/362/6 -f 472/363/6 466/364/6 468/365/6 -f 460/366/2 461/367/2 459/361/2 -f 457/362/1 463/368/1 458/360/1 -f 458/360/3 464/369/3 460/366/3 -f 459/361/7 462/370/7 457/362/7 -f 469/371/8 467/372/8 465/373/8 -f 471/374/7 468/365/7 467/372/7 -f 470/375/3 465/376/3 466/364/3 -f 480/377/6 474/378/6 476/379/6 -f 477/380/8 475/381/8 473/382/8 -f 479/383/7 476/379/7 475/381/7 -f 478/384/3 473/385/3 474/378/3 -f 488/386/6 482/387/6 484/388/6 -f 485/389/8 483/390/8 481/391/8 -f 487/392/7 484/388/7 483/390/7 -f 486/393/3 481/394/3 482/387/3 -f 490/395/7 491/396/7 489/397/7 -f 492/398/24 493/399/24 491/396/24 -f 489/397/1 495/400/1 490/395/1 -f 492/398/6 495/401/6 496/402/6 -f 491/396/8 494/403/8 489/397/8 -f 512/404/1 535/405/1 536/406/1 -f 503/407/2 507/408/2 511/409/2 -f 525/410/1 527/411/1 521/412/1 -f 502/413/1 529/414/1 531/415/1 -f 508/416/1 533/417/1 534/418/1 -f 512/404/1 530/419/1 498/420/1 -f 498/420/1 529/421/1 500/422/1 -f 502/413/1 532/423/1 504/424/1 -f 508/416/1 535/425/1 510/426/1 -f 504/424/1 533/427/1 506/428/1 -f 541/429/1 540/430/1 539/431/1 -f 555/432/1 558/433/1 554/434/1 -f 551/435/2 562/436/2 550/437/2 -f 578/438/2 567/439/2 579/440/2 -f 559/441/1 552/442/1 553/443/1 -f 558/433/1 553/443/1 554/434/1 -f 560/444/1 556/445/1 552/442/1 -f 564/446/2 549/447/2 548/448/2 -f 563/449/2 547/450/2 564/446/2 -f 562/436/2 546/451/2 563/449/2 -f 574/452/1 571/453/1 575/454/1 -f 128/92/6 120/455/6 114/90/6 -f 131/91/6 118/456/6 129/457/6 -f 132/108/8 117/458/8 115/459/8 -f 127/93/8 115/459/8 113/95/8 -f 251/460/2 263/461/2 259/462/2 -f 570/463/1 577/464/1 576/465/1 -f 571/453/1 576/465/1 575/454/1 -f 569/466/1 573/467/1 577/464/1 -f 565/468/2 580/469/2 581/470/2 -f 566/471/2 582/472/2 565/468/2 -f 567/439/2 583/473/2 566/471/2 -f 14/1/1 46/474/1 47/2/1 -f 15/4/1 47/2/1 48/5/1 -f 48/5/1 33/9/1 1/7/1 -f 33/9/1 34/12/1 2/10/1 -f 34/12/1 35/15/1 3/13/1 -f 35/15/1 36/475/1 4/16/1 -f 4/18/1 36/475/1 37/19/1 -f 37/19/1 38/476/1 6/21/1 -f 6/23/1 38/476/1 39/24/1 -f 39/24/1 40/477/1 8/26/1 -f 8/28/1 40/477/1 41/29/1 -f 9/31/1 41/478/1 42/32/1 -f 42/32/1 43/36/1 11/34/1 -f 43/36/1 44/39/1 12/37/1 -f 44/39/1 45/42/1 13/40/1 -f 45/42/1 46/474/1 14/43/1 -f 77/45/2 78/479/2 62/46/2 -f 78/48/2 79/480/2 63/49/2 -f 79/50/2 80/481/2 64/51/2 -f 64/51/2 80/482/2 65/52/2 -f 49/53/2 65/483/2 66/54/2 -f 66/56/2 67/484/2 51/57/2 -f 67/58/2 68/485/2 52/59/2 -f 68/60/2 69/486/2 53/61/2 -f 69/62/2 70/487/2 54/63/2 -f 70/64/2 71/488/2 55/65/2 -f 71/66/2 72/489/2 56/67/2 -f 72/68/2 73/490/2 57/69/2 -f 73/70/2 74/491/2 58/71/2 -f 74/73/2 75/492/2 59/74/2 -f 59/74/2 75/493/2 76/75/2 -f 76/77/2 77/494/2 61/47/2 -f 112/78/1 97/495/1 98/496/1 -f 98/496/1 99/497/1 112/78/1 -f 99/497/1 100/79/1 112/78/1 -f 100/79/1 101/498/1 102/499/1 -f 102/499/1 103/500/1 100/79/1 -f 103/500/1 104/80/1 100/79/1 -f 104/80/1 105/501/1 106/502/1 -f 106/502/1 107/503/1 108/504/1 -f 108/504/1 109/505/1 112/78/1 -f 109/505/1 110/506/1 112/78/1 -f 110/506/1 111/507/1 112/78/1 -f 104/80/1 106/502/1 112/78/1 -f 106/502/1 108/504/1 112/78/1 -f 95/83/2 96/508/2 81/509/2 -f 81/509/2 82/510/2 83/511/2 -f 83/511/2 84/512/2 87/81/2 -f 84/512/2 85/513/2 87/81/2 -f 85/513/2 86/514/2 87/81/2 -f 87/81/2 88/515/2 89/516/2 -f 89/516/2 90/517/2 87/81/2 -f 90/517/2 91/82/2 87/81/2 -f 91/82/2 92/518/2 93/519/2 -f 93/519/2 94/520/2 91/82/2 -f 94/520/2 95/83/2 91/82/2 -f 95/83/2 81/509/2 87/81/2 -f 81/509/2 83/511/2 87/81/2 -f 115/84/3 116/88/3 114/85/3 -f 117/87/4 118/111/4 116/88/4 -f 120/89/5 119/102/5 113/86/5 -f 114/90/6 116/521/6 131/91/6 -f 131/91/7 132/108/7 127/93/7 -f 119/94/8 125/522/8 127/93/8 -f 123/96/1 133/107/1 136/97/1 -f 128/92/1 127/93/1 125/99/1 -f 120/89/3 126/523/3 125/101/3 -f 124/103/8 136/524/8 135/104/8 -f 121/106/6 134/112/6 133/107/6 -f 132/108/2 131/91/2 129/109/2 -f 117/87/3 130/110/3 129/109/3 -f 122/105/2 135/104/2 134/112/2 -f 145/113/7 152/136/7 150/114/7 -f 148/116/3 149/133/3 151/117/3 -f 142/119/1 141/525/1 143/120/1 -f 138/122/2 140/126/2 139/123/2 -f 143/120/3 138/122/3 137/124/3 -f 142/125/7 139/123/7 140/126/7 -f 141/128/8 140/126/8 138/122/8 -f 144/130/6 137/124/6 139/123/6 -f 147/132/8 150/114/8 149/133/8 -f 146/135/6 151/117/6 152/136/6 -f 151/117/2 149/133/2 150/114/2 -f 147/138/1 148/526/1 146/135/1 -f 153/139/9 160/149/9 158/140/9 -f 156/142/10 157/146/10 159/143/10 -f 155/145/11 158/140/11 157/146/11 -f 154/148/12 159/143/12 160/149/12 -f 159/143/2 157/146/2 158/140/2 -f 155/151/1 156/527/1 154/148/1 -f 166/152/1 165/528/1 167/153/1 -f 161/155/2 162/161/2 164/156/2 -f 167/153/10 162/161/10 161/155/10 -f 166/158/9 163/157/9 164/156/9 -f 165/160/11 164/156/11 162/161/11 -f 168/163/12 161/155/12 163/157/12 -f 219/167/2 218/529/2 217/530/2 -f 217/530/2 232/531/2 219/167/2 -f 232/531/2 231/532/2 219/167/2 -f 231/532/2 230/533/2 229/534/2 -f 229/534/2 228/535/2 227/165/2 -f 227/165/2 226/536/2 223/166/2 -f 226/536/2 225/537/2 223/166/2 -f 225/537/2 224/538/2 223/166/2 -f 223/166/2 222/539/2 221/540/2 -f 221/540/2 220/541/2 219/167/2 -f 231/532/2 229/534/2 219/167/2 -f 229/534/2 227/165/2 219/167/2 -f 223/166/2 221/540/2 219/167/2 -f 602/168/2 603/542/2 235/169/2 -f 248/171/2 616/543/2 601/172/2 -f 614/174/2 615/544/2 247/175/2 -f 612/177/2 613/545/2 245/178/2 -f 610/180/2 611/546/2 243/181/2 -f 608/183/2 609/547/2 241/184/2 -f 606/186/2 607/548/2 239/187/2 -f 604/189/2 605/549/2 237/190/2 -f 241/192/2 609/550/2 610/193/2 -f 239/187/2 607/551/2 608/194/2 -f 237/190/2 605/552/2 606/195/2 -f 235/169/2 603/553/2 604/196/2 -f 233/173/2 601/554/2 602/197/2 -f 615/198/2 616/555/2 248/171/2 -f 245/178/2 613/556/2 614/199/2 -f 243/181/2 611/557/2 612/200/2 -f 267/201/3 268/205/3 266/202/3 -f 267/201/2 271/558/2 272/204/2 -f 266/202/1 270/559/1 269/206/1 -f 268/205/6 272/560/6 270/207/6 -f 265/203/8 269/561/8 271/208/8 -f 275/209/3 276/234/3 273/210/3 -f 288/212/13 295/225/13 290/213/13 -f 282/215/14 291/562/14 294/216/14 -f 279/218/7 277/232/7 278/219/7 -f 287/221/6 284/224/6 293/222/6 -f 294/216/15 293/222/15 284/224/15 -f 288/212/16 287/221/16 296/223/16 -f 285/214/17 290/213/17 289/226/17 -f 291/228/18 282/563/18 281/229/18 -f 286/227/8 289/226/8 292/230/8 -f 278/219/8 275/564/8 274/231/8 -f 277/232/2 276/565/2 275/233/2 -f 279/218/6 273/210/6 276/234/6 -f 280/220/1 274/566/1 273/235/1 -f 299/236/14 300/246/14 298/237/14 -f 302/239/13 301/567/13 304/240/13 -f 299/242/8 297/568/8 303/241/8 -f 307/243/19 308/252/19 306/244/19 -f 300/246/6 301/567/6 302/239/6 -f 305/247/8 310/569/8 312/248/8 -f 314/249/20 316/257/20 315/250/20 -f 308/252/6 311/255/6 309/253/6 -f 307/243/3 312/248/3 311/255/3 -f 314/249/21 319/570/21 320/256/21 -f 315/250/2 316/257/2 320/258/2 -f 313/251/1 318/571/1 319/260/1 -f 315/250/22 317/572/22 318/261/22 -f 350/262/23 351/573/23 359/263/23 -f 348/265/23 349/574/23 357/266/23 -f 346/268/23 347/575/23 355/269/23 -f 351/271/23 352/576/23 360/272/23 -f 350/273/23 358/264/23 357/274/23 -f 348/276/23 356/267/23 355/269/23 -f 346/278/23 354/270/23 353/279/23 -f 352/281/23 345/577/23 353/279/23 -f 361/284/20 362/578/20 363/579/20 -f 363/579/20 364/580/20 365/282/20 -f 365/282/20 366/581/20 367/283/20 -f 367/283/20 368/582/20 361/284/20 -f 361/284/20 363/579/20 365/282/20 -f 370/285/6 372/293/6 371/286/6 -f 386/288/8 385/306/8 390/289/8 -f 369/287/1 374/583/1 375/291/1 -f 370/285/3 375/584/3 376/292/3 -f 371/286/7 373/585/7 374/294/7 -f 372/293/2 376/586/2 373/295/2 -f 392/296/6 387/311/6 388/297/6 -f 389/299/7 391/587/7 388/297/7 -f 380/300/7 378/588/7 383/301/7 -f 379/303/6 377/312/6 378/304/6 -f 385/306/3 387/311/3 392/307/3 -f 380/300/2 385/306/2 386/288/2 -f 381/310/2 388/297/2 387/311/2 -f 379/309/2 386/288/2 388/297/2 -f 384/302/2 387/311/2 385/306/2 -f 377/312/1 389/290/1 390/289/1 -f 383/313/1 392/316/1 391/314/1 -f 382/315/1 391/314/1 389/290/1 -f 378/304/1 390/289/1 392/316/1 -f 383/313/8 382/315/8 381/317/8 -f 382/319/3 377/589/3 379/309/3 -f 411/320/1 412/357/1 588/321/1 -f 419/323/1 595/590/1 594/324/1 -f 411/320/1 587/591/1 586/326/1 -f 417/328/1 418/325/1 594/329/1 -f 410/327/1 586/592/1 585/331/1 -f 416/333/1 417/593/1 593/334/1 -f 409/332/1 585/594/1 600/336/1 -f 415/338/1 416/333/1 592/339/1 -f 424/337/1 600/595/1 599/341/1 -f 414/343/1 415/338/1 591/344/1 -f 423/342/1 599/596/1 598/346/1 -f 413/348/1 414/343/1 590/349/1 -f 421/351/1 422/347/1 598/352/1 -f 421/351/1 597/597/1 596/354/1 -f 413/348/1 589/598/1 588/356/1 -f 419/323/1 420/355/1 596/358/1 -f 458/360/6 460/366/6 459/361/6 -f 472/363/6 470/375/6 466/364/6 -f 460/366/2 464/599/2 461/367/2 -f 457/362/1 462/600/1 463/368/1 -f 458/360/3 463/601/3 464/369/3 -f 459/361/7 461/602/7 462/370/7 -f 469/371/8 471/374/8 467/372/8 -f 471/374/7 472/363/7 468/365/7 -f 470/375/3 469/603/3 465/376/3 -f 480/377/6 478/384/6 474/378/6 -f 477/380/8 479/383/8 475/381/8 -f 479/383/7 480/377/7 476/379/7 -f 478/384/3 477/604/3 473/385/3 -f 488/386/6 486/393/6 482/387/6 -f 485/389/8 487/392/8 483/390/8 -f 487/392/7 488/386/7 484/388/7 -f 486/393/3 485/605/3 481/394/3 -f 490/395/7 492/398/7 491/396/7 -f 492/398/24 496/606/24 493/399/24 -f 489/397/1 494/607/1 495/400/1 -f 492/398/6 490/395/6 495/401/6 -f 491/396/8 493/608/8 494/403/8 -f 512/404/1 510/426/1 535/405/1 -f 511/409/2 497/609/2 499/610/2 -f 499/610/2 501/611/2 511/409/2 -f 501/611/2 503/407/2 511/409/2 -f 503/407/2 505/612/2 507/408/2 -f 507/408/2 509/613/2 511/409/2 -f 521/412/1 522/614/1 523/615/1 -f 523/615/1 524/616/1 525/410/1 -f 525/410/1 526/617/1 527/411/1 -f 527/411/1 528/618/1 521/412/1 -f 521/412/1 523/615/1 525/410/1 -f 502/413/1 500/422/1 529/414/1 -f 508/416/1 506/619/1 533/417/1 -f 512/404/1 536/620/1 530/419/1 -f 498/420/1 530/621/1 529/421/1 -f 502/413/1 531/622/1 532/423/1 -f 508/416/1 534/623/1 535/425/1 -f 504/424/1 532/624/1 533/427/1 -f 539/431/1 537/625/1 538/626/1 -f 538/626/1 544/627/1 539/431/1 -f 544/627/1 543/628/1 539/431/1 -f 543/628/1 542/629/1 539/431/1 -f 542/629/1 541/429/1 539/431/1 -f 555/432/1 557/630/1 558/433/1 -f 551/435/2 561/631/2 562/436/2 -f 578/438/2 568/632/2 567/439/2 -f 559/441/1 560/444/1 552/442/1 -f 558/433/1 559/441/1 553/443/1 -f 560/444/1 545/633/1 556/445/1 -f 564/446/2 547/450/2 549/447/2 -f 563/449/2 546/451/2 547/450/2 -f 562/436/2 561/631/2 546/451/2 -f 574/452/1 572/634/1 571/453/1 -f 128/92/6 126/635/6 120/455/6 -f 131/91/6 116/521/6 118/456/6 -f 132/108/8 130/636/8 117/458/8 -f 127/93/8 132/108/8 115/459/8 -f 259/462/2 258/637/2 257/638/2 -f 257/638/2 256/639/2 259/462/2 -f 256/639/2 255/640/2 259/462/2 -f 255/640/2 254/641/2 253/642/2 -f 253/642/2 252/643/2 251/460/2 -f 251/460/2 250/644/2 263/461/2 -f 250/644/2 249/645/2 263/461/2 -f 249/645/2 264/646/2 263/461/2 -f 263/461/2 262/647/2 261/648/2 -f 261/648/2 260/649/2 259/462/2 -f 255/640/2 253/642/2 259/462/2 -f 253/642/2 251/460/2 259/462/2 -f 263/461/2 261/648/2 259/462/2 -f 570/463/1 569/466/1 577/464/1 -f 571/453/1 570/463/1 576/465/1 -f 569/466/1 584/650/1 573/467/1 -f 565/468/2 582/472/2 580/469/2 -f 566/471/2 583/473/2 582/472/2 -f 567/439/2 568/632/2 583/473/2 +f 295/522/154 328/523/154 296/524/154 +f 296/525/154 329/526/154 297/527/154 +f 329/526/154 282/528/154 297/529/154 +f 314/530/154 283/531/154 282/532/154 +f 315/533/154 284/534/154 283/535/154 +f 316/536/154 285/537/154 284/538/154 +f 285/539/154 318/540/154 286/541/154 +f 318/540/154 287/542/154 286/543/154 +f 287/544/154 320/545/154 288/546/154 +f 320/545/154 289/547/154 288/548/154 +f 289/549/154 322/550/154 290/551/154 +f 290/552/154 323/553/154 291/554/154 +f 323/553/154 292/555/154 291/556/154 +f 324/557/154 293/558/154 292/559/154 +f 325/560/154 294/561/154 293/562/154 +f 326/563/154 295/564/154 294/565/154 +f 358/566/155 343/567/155 342/568/155 +f 359/569/155 344/570/155 343/567/155 +f 360/571/155 345/572/155 344/570/155 +f 345/572/155 346/573/155 330/574/155 +f 330/574/155 347/575/155 331/576/155 +f 347/577/155 332/578/155 331/576/155 +f 348/579/155 333/580/155 332/578/155 +f 349/581/155 334/582/155 333/580/155 +f 350/583/155 335/584/155 334/582/155 +f 351/585/155 336/586/155 335/584/155 +f 352/587/155 337/588/155 336/586/155 +f 353/589/155 338/590/155 337/588/155 +f 354/591/155 339/592/155 338/593/155 +f 355/594/155 340/595/155 339/592/155 +f 340/595/155 357/596/155 341/597/155 +f 357/598/155 342/568/155 341/597/155 +f 635/599/155 364/600/155 363/601/155 +f 377/602/155 634/603/155 362/604/155 +f 647/605/155 376/606/155 375/607/155 +f 645/608/155 374/609/155 373/610/155 +f 643/611/155 372/612/155 371/613/155 +f 641/614/155 370/615/155 369/616/155 +f 639/617/155 368/618/155 367/619/155 +f 637/620/155 366/621/155 365/622/155 +f 370/623/155 643/624/155 371/613/155 +f 368/618/155 641/625/155 369/616/155 +f 366/621/155 639/626/155 367/619/155 +f 364/600/155 637/627/155 365/622/155 +f 362/604/155 635/628/155 363/601/155 +f 648/629/155 377/602/155 376/606/155 +f 374/609/155 647/630/155 375/607/155 +f 372/612/155 645/631/155 373/610/155 +f 380/632/156 379/633/156 378/634/156 +f 380/632/155 385/635/155 381/636/155 +f 379/633/154 382/637/154 378/634/154 +f 381/636/157 383/638/157 379/633/157 +f 378/634/158 384/639/158 380/632/158 +f 388/640/156 386/641/156 387/642/156 +f 401/643/159 403/644/159 398/645/159 +f 395/646/160 407/647/160 396/648/160 +f 392/649/161 391/650/161 393/651/161 +f 400/652/157 406/653/157 409/654/157 +f 407/647/162 397/655/162 396/648/162 +f 401/643/163 409/654/163 408/656/163 +f 398/645/164 402/657/164 399/658/164 +f 404/659/165 394/660/165 405/661/165 +f 399/658/158 405/661/158 394/660/158 +f 391/650/158 387/662/158 393/651/158 +f 390/663/155 388/664/155 391/650/155 +f 392/649/157 389/665/157 390/663/157 +f 393/651/154 386/666/154 392/649/154 +f 412/667/160 411/668/160 410/669/160 +f 415/670/159 417/671/159 416/672/159 +f 412/673/158 416/672/158 417/671/158 +f 420/674/166 419/675/166 418/676/166 +f 413/677/157 415/670/157 411/668/157 +f 418/678/158 425/679/158 420/674/158 +f 427/680/167 428/681/167 426/682/167 +f 421/683/157 422/684/157 419/685/157 +f 420/674/156 424/686/156 421/683/156 +f 427/680/168 433/687/168 429/688/168 +f 428/681/155 433/689/155 430/690/155 +f 426/682/154 432/691/154 427/680/154 +f 428/681/169 431/692/169 426/682/169 +f 463/693/170 472/694/170 471/695/170 +f 461/696/170 470/697/170 469/698/170 +f 459/699/170 468/700/170 467/701/170 +f 464/702/170 473/703/170 472/694/170 +f 463/704/170 470/705/170 462/706/170 +f 461/707/170 468/700/170 460/708/170 +f 459/709/170 466/710/170 458/711/170 +f 465/712/170 466/710/170 473/703/170 +f 478/713/167 480/714/167 474/715/167 +f 483/716/157 484/717/157 482/718/157 +f 499/719/158 503/720/158 502/721/158 +f 482/718/154 488/722/154 483/716/154 +f 483/716/156 489/723/156 485/724/156 +f 484/717/161 487/725/161 482/718/161 +f 485/724/155 486/726/155 484/717/155 +f 505/727/157 501/728/157 504/729/157 +f 502/730/161 501/728/161 499/719/161 +f 493/731/161 496/732/161 497/733/161 +f 492/734/157 491/735/157 493/736/157 +f 498/737/156 505/738/156 503/739/156 +f 493/731/155 499/719/155 492/740/155 +f 494/741/155 500/742/155 497/733/155 +f 492/740/155 501/728/155 494/741/155 +f 497/733/155 498/737/155 493/731/155 +f 490/743/154 503/720/154 491/735/154 +f 496/744/154 504/745/154 495/746/154 +f 495/746/154 502/721/154 490/743/154 +f 491/735/154 505/747/154 496/744/154 +f 496/744/158 494/748/158 497/749/158 +f 495/750/156 492/740/156 494/741/156 +f 507/751/157 508/752/157 506/753/157 +f 521/754/157 515/755/157 517/756/157 +f 509/757/155 510/758/155 508/752/155 +f 506/753/154 512/759/154 507/751/154 +f 507/751/156 513/760/156 509/757/156 +f 508/752/161 511/761/161 506/753/161 +f 518/762/158 516/763/158 514/764/158 +f 520/765/161 517/756/161 516/763/161 +f 519/766/156 514/767/156 515/755/156 +f 529/768/157 523/769/157 525/770/157 +f 526/771/158 524/772/158 522/773/158 +f 528/774/161 525/770/161 524/772/161 +f 527/775/156 522/776/156 523/769/156 +f 537/777/157 531/778/157 533/779/157 +f 534/780/158 532/781/158 530/782/158 +f 536/783/161 533/779/161 532/781/161 +f 535/784/156 530/785/156 531/778/156 +f 539/786/161 540/787/161 538/788/161 +f 541/789/171 542/790/171 540/787/171 +f 538/788/154 544/791/154 539/786/154 +f 541/789/157 544/792/157 545/793/157 +f 540/787/158 543/794/158 538/788/158 +f 561/795/154 584/796/154 585/797/154 +f 552/798/155 556/799/155 560/800/155 +f 574/801/154 576/802/154 570/803/154 +f 551/804/154 578/805/154 580/806/154 +f 557/807/154 582/808/154 583/809/154 +f 561/795/154 579/810/154 547/811/154 +f 547/811/154 578/812/154 549/813/154 +f 551/804/154 581/814/154 553/815/154 +f 557/807/154 584/816/154 559/817/154 +f 553/815/154 582/818/154 555/819/154 +f 590/820/154 589/821/154 588/822/154 +f 604/823/154 607/824/154 603/825/154 +f 600/826/155 611/827/155 599/828/155 +f 627/829/155 616/830/155 628/831/155 +f 608/832/154 601/833/154 602/834/154 +f 607/824/154 602/834/154 603/825/154 +f 609/835/154 605/836/154 601/833/154 +f 613/837/155 598/838/155 597/839/155 +f 612/840/155 596/841/155 613/837/155 +f 611/827/155 595/842/155 612/840/155 +f 623/843/154 620/844/154 624/845/154 +f 619/846/154 626/847/154 625/848/154 +f 620/844/154 625/848/154 624/845/154 +f 618/849/154 622/850/154 626/847/154 +f 614/851/155 629/852/155 630/853/155 +f 615/854/155 631/855/155 614/851/155 +f 616/830/155 632/856/155 615/854/155 +f 295/522/154 327/857/154 328/523/154 +f 296/525/154 328/523/154 329/526/154 +f 329/526/154 314/530/154 282/528/154 +f 314/530/154 315/533/154 283/531/154 +f 315/533/154 316/536/154 284/534/154 +f 316/536/154 317/858/154 285/537/154 +f 285/539/154 317/858/154 318/540/154 +f 318/540/154 319/859/154 287/542/154 +f 287/544/154 319/859/154 320/545/154 +f 320/545/154 321/860/154 289/547/154 +f 289/549/154 321/860/154 322/550/154 +f 290/552/154 322/861/154 323/553/154 +f 323/553/154 324/557/154 292/555/154 +f 324/557/154 325/560/154 293/558/154 +f 325/560/154 326/563/154 294/561/154 +f 326/563/154 327/857/154 295/564/154 +f 358/566/155 359/862/155 343/567/155 +f 359/569/155 360/863/155 344/570/155 +f 360/571/155 361/864/155 345/572/155 +f 345/572/155 361/865/155 346/573/155 +f 330/574/155 346/866/155 347/575/155 +f 347/577/155 348/867/155 332/578/155 +f 348/579/155 349/868/155 333/580/155 +f 349/581/155 350/869/155 334/582/155 +f 350/583/155 351/870/155 335/584/155 +f 351/585/155 352/871/155 336/586/155 +f 352/587/155 353/872/155 337/588/155 +f 353/589/155 354/873/155 338/590/155 +f 354/591/155 355/874/155 339/592/155 +f 355/594/155 356/875/155 340/595/155 +f 340/595/155 356/876/155 357/596/155 +f 357/598/155 358/877/155 342/568/155 +f 635/599/155 636/878/155 364/600/155 +f 377/602/155 649/879/155 634/603/155 +f 647/605/155 648/880/155 376/606/155 +f 645/608/155 646/881/155 374/609/155 +f 643/611/155 644/882/155 372/612/155 +f 641/614/155 642/883/155 370/615/155 +f 639/617/155 640/884/155 368/618/155 +f 637/620/155 638/885/155 366/621/155 +f 370/623/155 642/886/155 643/624/155 +f 368/618/155 640/887/155 641/625/155 +f 366/621/155 638/888/155 639/626/155 +f 364/600/155 636/889/155 637/627/155 +f 362/604/155 634/890/155 635/628/155 +f 648/629/155 649/891/155 377/602/155 +f 374/609/155 646/892/155 647/630/155 +f 372/612/155 644/893/155 645/631/155 +f 380/632/156 381/636/156 379/633/156 +f 380/632/155 384/894/155 385/635/155 +f 379/633/154 383/895/154 382/637/154 +f 381/636/157 385/896/157 383/638/157 +f 378/634/158 382/897/158 384/639/158 +f 388/640/156 389/665/156 386/641/156 +f 401/643/159 408/656/159 403/644/159 +f 395/646/160 404/898/160 407/647/160 +f 392/649/161 390/663/161 391/650/161 +f 400/652/157 397/655/157 406/653/157 +f 407/647/162 406/653/162 397/655/162 +f 401/643/163 400/652/163 409/654/163 +f 398/645/164 403/644/164 402/657/164 +f 404/659/165 395/899/165 394/660/165 +f 399/658/158 402/657/158 405/661/158 +f 391/650/158 388/900/158 387/662/158 +f 390/663/155 389/901/155 388/664/155 +f 392/649/157 386/641/157 389/665/157 +f 393/651/154 387/902/154 386/666/154 +f 412/667/160 413/677/160 411/668/160 +f 415/670/159 414/903/159 417/671/159 +f 412/673/158 410/904/158 416/672/158 +f 420/674/166 421/683/166 419/675/166 +f 413/677/157 414/903/157 415/670/157 +f 418/678/158 423/905/158 425/679/158 +f 427/680/167 429/688/167 428/681/167 +f 421/683/157 424/686/157 422/684/157 +f 420/674/156 425/679/156 424/686/156 +f 427/680/168 432/906/168 433/687/168 +f 428/681/155 429/688/155 433/689/155 +f 426/682/154 431/907/154 432/691/154 +f 428/681/169 430/908/169 431/692/169 +f 463/693/170 464/909/170 472/694/170 +f 461/696/170 462/910/170 470/697/170 +f 459/699/170 460/911/170 468/700/170 +f 464/702/170 465/912/170 473/703/170 +f 463/704/170 471/695/170 470/705/170 +f 461/707/170 469/698/170 468/700/170 +f 459/709/170 467/701/170 466/710/170 +f 465/712/170 458/913/170 466/710/170 +f 474/715/167 475/914/167 476/915/167 +f 476/915/167 477/916/167 478/713/167 +f 478/713/167 479/917/167 480/714/167 +f 480/714/167 481/918/167 474/715/167 +f 474/715/167 476/915/167 478/713/167 +f 483/716/157 485/724/157 484/717/157 +f 499/719/158 498/737/158 503/720/158 +f 482/718/154 487/919/154 488/722/154 +f 483/716/156 488/920/156 489/723/156 +f 484/717/161 486/921/161 487/725/161 +f 485/724/155 489/922/155 486/726/155 +f 505/727/157 500/742/157 501/728/157 +f 502/730/161 504/923/161 501/728/161 +f 493/731/161 491/924/161 496/732/161 +f 492/734/157 490/743/157 491/735/157 +f 498/737/156 500/742/156 505/738/156 +f 493/731/155 498/737/155 499/719/155 +f 494/741/155 501/728/155 500/742/155 +f 492/740/155 499/719/155 501/728/155 +f 497/733/155 500/742/155 498/737/155 +f 490/743/154 502/721/154 503/720/154 +f 496/744/154 505/747/154 504/745/154 +f 495/746/154 504/745/154 502/721/154 +f 491/735/154 503/720/154 505/747/154 +f 496/744/158 495/746/158 494/748/158 +f 495/750/156 490/925/156 492/740/156 +f 507/751/157 509/757/157 508/752/157 +f 521/754/157 519/766/157 515/755/157 +f 509/757/155 513/926/155 510/758/155 +f 506/753/154 511/927/154 512/759/154 +f 507/751/156 512/928/156 513/760/156 +f 508/752/161 510/929/161 511/761/161 +f 518/762/158 520/765/158 516/763/158 +f 520/765/161 521/754/161 517/756/161 +f 519/766/156 518/930/156 514/767/156 +f 529/768/157 527/775/157 523/769/157 +f 526/771/158 528/774/158 524/772/158 +f 528/774/161 529/768/161 525/770/161 +f 527/775/156 526/931/156 522/776/156 +f 537/777/157 535/784/157 531/778/157 +f 534/780/158 536/783/158 532/781/158 +f 536/783/161 537/777/161 533/779/161 +f 535/784/156 534/932/156 530/785/156 +f 539/786/161 541/789/161 540/787/161 +f 541/789/171 545/933/171 542/790/171 +f 538/788/154 543/934/154 544/791/154 +f 541/789/157 539/786/157 544/792/157 +f 540/787/158 542/935/158 543/794/158 +f 561/795/154 559/817/154 584/796/154 +f 560/800/155 546/936/155 548/937/155 +f 548/937/155 550/938/155 560/800/155 +f 550/938/155 552/798/155 560/800/155 +f 552/798/155 554/939/155 556/799/155 +f 556/799/155 558/940/155 560/800/155 +f 570/803/154 571/941/154 572/942/154 +f 572/942/154 573/943/154 574/801/154 +f 574/801/154 575/944/154 576/802/154 +f 576/802/154 577/945/154 570/803/154 +f 570/803/154 572/942/154 574/801/154 +f 551/804/154 549/813/154 578/805/154 +f 557/807/154 555/946/154 582/808/154 +f 561/795/154 585/947/154 579/810/154 +f 547/811/154 579/948/154 578/812/154 +f 551/804/154 580/949/154 581/814/154 +f 557/807/154 583/950/154 584/816/154 +f 553/815/154 581/951/154 582/818/154 +f 588/822/154 586/952/154 587/953/154 +f 587/953/154 593/954/154 588/822/154 +f 593/954/154 592/955/154 588/822/154 +f 592/955/154 591/956/154 588/822/154 +f 591/956/154 590/820/154 588/822/154 +f 604/823/154 606/957/154 607/824/154 +f 600/826/155 610/958/155 611/827/155 +f 627/829/155 617/959/155 616/830/155 +f 608/832/154 609/835/154 601/833/154 +f 607/824/154 608/832/154 602/834/154 +f 609/835/154 594/960/154 605/836/154 +f 613/837/155 596/841/155 598/838/155 +f 612/840/155 595/842/155 596/841/155 +f 611/827/155 610/958/155 595/842/155 +f 623/843/154 621/961/154 620/844/154 +f 619/846/154 618/849/154 626/847/154 +f 620/844/154 619/846/154 625/848/154 +f 618/849/154 633/962/154 622/850/154 +f 614/851/155 631/855/155 629/852/155 +f 615/854/155 632/856/155 631/855/155 +f 616/830/155 617/959/155 632/856/155 s 1 -f 589/651/6 453/652/25 588/653/25 -f 593/654/7 449/655/26 592/656/26 -f 596/657/27 446/658/9 595/659/9 -f 600/660/28 442/661/11 599/662/11 -f 588/653/25 454/663/10 587/664/10 -f 592/656/26 450/665/12 591/666/12 -f 595/659/9 447/667/29 594/668/29 -f 599/662/11 443/669/30 598/670/30 -f 587/664/10 455/671/31 586/672/31 -f 591/666/12 451/673/32 590/674/32 -f 594/668/29 448/675/7 593/676/7 -f 598/670/30 444/677/8 597/678/8 -f 585/679/3 441/680/28 600/660/28 -f 597/678/8 445/681/27 596/657/27 -f 590/674/32 452/682/6 589/651/6 -f 586/672/31 456/683/3 585/679/3 -f 36/475/27 53/61/8 37/19/8 -f 44/39/25 61/47/6 45/42/6 -f 37/19/8 54/63/30 38/476/30 -f 45/42/6 62/46/32 46/474/32 -f 38/476/30 55/65/11 39/24/11 -f 46/474/32 63/49/12 47/2/12 -f 39/24/11 56/67/28 40/477/28 -f 47/2/12 64/51/26 48/5/26 -f 40/477/28 57/69/3 41/29/3 -f 33/9/7 50/55/29 34/12/29 -f 48/5/26 49/53/7 33/9/7 -f 41/478/3 58/71/31 42/32/31 -f 34/12/29 51/57/9 35/15/9 -f 42/32/31 59/74/10 43/36/10 -f 35/15/9 52/59/27 36/475/27 -f 43/36/10 60/76/25 44/39/25 -f 92/684/8 100/685/27 93/686/27 -f 84/687/6 108/688/25 85/689/25 -f 91/690/30 101/691/8 92/684/8 -f 83/692/32 109/693/6 84/687/6 -f 90/694/11 102/695/30 91/690/30 -f 82/696/12 110/697/32 83/692/32 -f 89/698/28 103/699/11 90/694/11 -f 81/700/26 111/701/12 82/696/12 -f 88/702/3 104/703/28 89/698/28 -f 95/704/29 97/705/7 96/706/7 -f 96/706/7 112/707/26 81/700/26 -f 87/708/31 105/709/3 88/710/3 -f 94/711/9 98/712/29 95/704/29 -f 86/713/10 106/714/31 87/708/31 -f 93/686/27 99/715/9 94/711/9 -f 85/689/25 107/716/10 86/713/10 -f 183/717/33 198/718/34 199/719/33 -f 175/720/35 192/721/36 176/722/36 -f 183/717/33 200/723/37 184/724/37 -f 176/722/36 193/725/38 177/726/38 -f 170/727/39 185/728/40 186/729/39 -f 184/724/37 185/730/40 169/731/40 -f 178/732/41 193/733/38 194/734/41 -f 171/735/42 186/736/39 187/737/42 -f 178/732/41 195/738/43 179/739/43 -f 172/740/44 187/741/42 188/742/44 -f 179/739/43 196/743/45 180/744/45 -f 172/740/44 189/745/46 173/746/46 -f 180/744/45 197/747/47 181/748/47 -f 174/749/48 189/750/46 190/751/48 -f 182/752/34 197/753/47 198/754/34 -f 174/749/48 191/755/35 175/720/35 -f 196/756/25 213/757/6 197/758/6 -f 189/759/8 206/760/30 190/761/30 -f 197/758/6 214/762/32 198/763/32 -f 190/761/30 207/764/11 191/765/11 -f 198/763/32 215/766/12 199/767/12 -f 191/765/11 208/768/28 192/769/28 -f 199/767/12 216/770/26 200/771/26 -f 192/769/28 209/772/3 193/773/3 -f 185/774/7 202/775/29 186/776/29 -f 200/771/26 201/777/7 185/774/7 -f 193/733/3 210/778/31 194/734/31 -f 186/776/29 203/779/9 187/780/9 -f 194/734/31 211/781/10 195/782/10 -f 187/780/9 204/783/27 188/784/27 -f 195/782/10 212/785/25 196/756/25 -f 188/784/27 205/786/8 189/759/8 -f 230/787/49 215/766/50 214/762/49 -f 231/788/50 216/770/51 215/766/50 -f 232/789/51 201/777/52 216/770/51 -f 217/790/52 202/775/53 201/777/52 -f 218/791/53 203/779/54 202/775/53 -f 203/779/54 220/792/55 204/783/55 -f 220/793/55 205/786/56 204/783/55 -f 205/786/56 222/794/57 206/760/57 -f 222/795/57 207/764/58 206/760/57 -f 207/764/58 224/796/59 208/768/59 -f 224/797/59 209/772/60 208/768/59 -f 209/798/60 226/799/61 210/778/61 -f 210/778/61 227/800/62 211/781/62 -f 227/801/62 212/785/63 211/781/62 -f 228/802/63 213/757/64 212/785/63 -f 213/757/64 230/803/49 214/762/49 -f 73/804/7 242/182/29 74/805/29 -f 66/806/31 235/169/10 67/807/10 -f 74/805/29 243/181/9 75/808/9 -f 67/807/10 236/191/25 68/809/25 -f 75/808/9 244/179/27 76/810/27 -f 68/809/25 237/190/6 69/811/6 -f 76/810/27 245/178/8 77/812/8 -f 69/811/6 238/188/32 70/813/32 -f 77/812/8 246/176/30 78/814/30 -f 70/813/32 239/187/12 71/815/12 -f 78/814/30 247/175/11 79/816/11 -f 71/815/12 240/185/26 72/817/26 -f 79/816/11 248/171/28 80/818/28 -f 72/817/26 241/184/7 73/819/7 -f 65/820/3 234/170/31 66/806/31 -f 80/818/28 233/173/3 65/820/3 -f 263/821/65 393/822/66 394/823/65 -f 257/824/67 399/825/68 400/826/67 -f 407/827/69 251/828/70 406/829/70 -f 255/830/71 401/831/72 402/832/71 -f 249/833/73 407/827/69 408/834/73 -f 261/835/74 395/836/75 396/837/74 -f 401/831/72 257/838/67 400/839/67 -f 251/840/70 405/841/76 406/829/70 -f 398/842/77 260/843/78 397/844/78 -f 253/845/79 403/846/80 404/847/79 -f 403/846/80 255/848/71 402/832/71 -f 397/844/78 261/849/74 396/837/74 -f 393/822/66 249/850/73 408/834/73 -f 262/851/75 394/823/65 395/836/75 -f 399/825/68 259/852/77 398/842/77 -f 405/841/76 253/853/79 404/847/79 -f 322/854/81 331/855/82 330/856/83 -f 327/857/21 336/858/84 335/859/85 -f 326/860/86 333/861/87 325/862/1 -f 324/863/88 331/855/82 323/864/22 -f 321/865/2 330/856/83 329/866/89 -f 321/865/2 336/858/84 328/867/90 -f 326/860/86 335/859/85 334/868/91 -f 325/869/1 332/870/92 324/863/88 -f 334/868/91 341/871/93 333/861/87 -f 331/855/82 340/872/94 339/873/95 -f 329/866/89 338/874/96 337/875/97 -f 329/866/89 344/876/98 336/858/84 -f 335/859/85 342/877/99 334/868/91 -f 332/870/92 341/878/93 340/872/94 -f 330/856/83 339/873/95 338/874/96 -f 336/858/84 343/879/100 335/859/85 -f 343/879/100 352/880/90 351/881/21 -f 341/871/93 350/882/86 349/883/1 -f 339/873/95 348/265/88 347/884/22 -f 337/875/97 346/885/81 345/886/2 -f 337/875/97 352/880/90 344/876/98 -f 342/877/99 351/881/21 350/882/86 -f 341/878/93 348/265/88 340/872/94 -f 339/873/95 346/885/81 338/874/96 -f 354/270/81 361/887/2 353/279/2 -f 353/279/2 368/888/90 360/272/90 -f 359/263/21 366/889/86 358/264/86 -f 357/266/1 364/890/88 356/267/88 -f 354/270/81 363/891/22 362/892/81 -f 359/263/21 368/888/90 367/893/21 -f 357/274/1 366/889/86 365/894/1 -f 356/267/88 363/891/22 355/269/22 -f 434/895/31 419/323/10 418/325/31 -f 427/896/9 412/357/27 411/320/9 -f 435/897/10 420/355/25 419/323/10 -f 428/898/27 413/348/8 412/357/27 -f 436/899/25 421/351/6 420/355/25 -f 429/900/8 414/343/30 413/348/8 -f 437/901/6 422/347/32 421/351/6 -f 430/902/30 415/338/11 414/343/30 -f 438/903/32 423/342/12 422/347/32 -f 431/904/11 416/333/28 415/338/11 -f 439/905/12 424/337/26 423/342/12 -f 432/906/28 417/593/3 416/333/28 -f 425/907/7 410/327/29 409/332/7 -f 440/908/26 409/332/7 424/337/26 -f 433/909/3 418/325/31 417/328/3 -f 426/910/29 411/320/9 410/327/29 -f 498/420/7 499/911/12 497/912/7 -f 500/422/12 501/913/6 499/911/12 -f 502/413/6 503/914/10 501/913/6 -f 504/424/10 505/915/3 503/914/10 -f 506/619/3 507/916/11 505/917/3 -f 508/416/11 509/918/8 507/916/11 -f 510/426/8 511/919/9 509/918/8 -f 512/404/9 497/912/7 511/919/9 -f 513/920/7 528/921/12 520/922/12 -f 519/923/6 526/924/10 518/925/10 -f 517/926/3 524/927/11 516/928/11 -f 515/929/8 522/930/9 514/931/9 -f 520/922/12 527/932/6 519/923/6 -f 518/925/10 525/933/3 517/934/3 -f 516/928/11 523/935/8 515/929/8 -f 514/931/9 521/936/7 513/920/7 -f 534/623/11 543/937/8 535/425/8 -f 532/624/10 541/938/3 533/427/3 -f 529/414/12 539/939/6 531/415/6 -f 535/405/8 544/940/9 536/406/9 -f 533/417/3 542/941/11 534/418/11 -f 531/622/6 540/942/10 532/423/10 -f 530/621/7 537/943/12 529/421/12 -f 536/620/9 538/944/7 530/419/7 -f 560/444/26 548/448/101 545/633/101 -f 557/630/102 562/436/32 558/433/32 -f 558/433/32 563/449/12 559/441/12 -f 559/441/12 564/446/26 560/444/26 -f 18/945/31 601/946/3 17/947/3 -f 20/948/25 603/949/10 19/950/10 -f 22/951/32 605/952/6 21/953/6 -f 17/947/3 616/954/28 32/955/28 -f 26/956/29 609/957/7 25/958/7 -f 21/953/6 604/959/25 20/948/25 -f 24/960/26 607/961/12 23/962/12 -f 30/963/30 613/964/8 29/965/8 -f 31/966/11 614/967/30 30/963/30 -f 25/968/7 608/969/26 24/960/26 -f 19/950/10 602/970/31 18/945/31 -f 28/971/27 611/972/9 27/973/9 -f 23/962/12 606/974/32 22/951/32 -f 29/965/8 612/975/27 28/971/27 -f 32/955/28 615/976/11 31/966/11 -f 27/973/9 610/977/29 26/956/29 -f 395/836/32 620/978/6 396/837/6 -f 397/844/25 622/979/10 398/842/10 -f 400/839/3 625/980/28 401/831/28 -f 403/846/30 628/981/8 404/847/8 -f 405/841/27 630/982/9 406/829/9 -f 402/832/11 627/983/30 403/846/30 -f 393/822/26 618/984/12 394/823/12 -f 396/837/6 621/985/25 397/844/25 -f 399/825/31 624/986/3 400/826/3 -f 408/834/7 617/987/26 393/822/26 -f 406/829/9 631/988/29 407/827/29 -f 394/823/12 619/989/32 395/836/32 -f 401/831/28 626/990/11 402/832/11 -f 404/847/8 629/991/27 405/841/27 -f 407/827/29 632/992/7 408/834/7 -f 398/842/10 623/993/31 399/825/31 -f 623/993/103 640/994/104 624/986/105 -f 631/988/106 648/995/107 632/992/108 -f 627/983/109 642/996/110 643/997/111 -f 619/989/112 636/998/113 620/978/114 -f 617/987/115 648/999/107 633/1000/116 -f 619/989/112 634/1001/117 635/1002/118 -f 625/980/119 642/1003/110 626/990/120 -f 623/993/103 638/1004/121 639/1005/122 -f 625/980/119 640/1006/104 641/1007/123 -f 621/985/124 638/1008/121 622/979/125 -f 629/991/126 646/1009/127 630/982/128 -f 617/987/115 634/1010/117 618/984/129 -f 620/978/114 637/1011/130 621/985/124 -f 628/981/131 645/1012/132 629/991/126 -f 631/988/106 646/1013/127 647/1014/133 -f 627/983/109 644/1015/134 628/981/131 -f 644/1016/134 649/1017/1 645/1012/132 -f 646/1013/127 649/1018/1 647/1014/133 -f 639/1019/122 649/1020/1 640/994/104 -f 647/1021/133 649/1022/1 648/995/107 -f 642/996/110 649/1023/1 643/997/111 -f 635/1024/118 649/1025/1 636/998/113 -f 648/999/107 649/1026/1 633/1000/116 -f 634/1001/117 649/1027/1 635/1002/118 -f 641/1028/123 649/1029/1 642/1003/110 -f 638/1004/121 649/1030/1 639/1005/122 -f 640/1006/104 649/1031/1 641/1007/123 -f 637/1032/130 649/1033/1 638/1008/121 -f 645/1034/132 649/1035/1 646/1009/127 -f 633/1036/116 649/1037/1 634/1010/117 -f 636/1038/113 649/1039/1 637/1011/130 -f 643/1040/111 649/1041/1 644/1015/134 -f 569/466/26 581/470/101 584/650/101 -f 572/634/102 567/439/32 571/453/32 -f 571/453/32 566/471/12 570/463/12 -f 570/463/12 565/468/26 569/466/26 -f 589/651/6 452/682/6 453/652/25 -f 593/654/7 448/1042/7 449/655/26 -f 596/657/27 445/681/27 446/658/9 -f 600/660/28 441/680/28 442/661/11 -f 588/653/25 453/652/25 454/663/10 -f 592/656/26 449/655/26 450/665/12 -f 595/659/9 446/658/9 447/667/29 -f 599/662/11 442/661/11 443/669/30 -f 587/664/10 454/663/10 455/671/31 -f 591/666/12 450/665/12 451/673/32 -f 594/668/29 447/667/29 448/675/7 -f 598/670/30 443/669/30 444/677/8 -f 585/679/3 456/683/3 441/680/28 -f 597/678/8 444/677/8 445/681/27 -f 590/674/32 451/673/32 452/682/6 -f 586/672/31 455/671/31 456/683/3 -f 36/475/27 52/59/27 53/61/8 -f 44/39/25 60/76/25 61/47/6 -f 37/19/8 53/61/8 54/63/30 -f 45/42/6 61/47/6 62/46/32 -f 38/476/30 54/63/30 55/65/11 -f 46/474/32 62/46/32 63/49/12 -f 39/24/11 55/65/11 56/67/28 -f 47/2/12 63/49/12 64/51/26 -f 40/477/28 56/67/28 57/69/3 -f 33/9/7 49/53/7 50/55/29 -f 48/5/26 64/51/26 49/53/7 -f 41/478/3 57/72/3 58/71/31 -f 34/12/29 50/55/29 51/57/9 -f 42/32/31 58/71/31 59/74/10 -f 35/15/9 51/57/9 52/59/27 -f 43/36/10 59/74/10 60/76/25 -f 92/684/8 101/691/8 100/685/27 -f 84/687/6 109/693/6 108/688/25 -f 91/690/30 102/695/30 101/691/8 -f 83/692/32 110/697/32 109/693/6 -f 90/694/11 103/699/11 102/695/30 -f 82/696/12 111/701/12 110/697/32 -f 89/698/28 104/703/28 103/699/11 -f 81/700/26 112/707/26 111/701/12 -f 88/702/3 105/1043/3 104/703/28 -f 95/704/29 98/712/29 97/705/7 -f 96/706/7 97/705/7 112/707/26 -f 87/708/31 106/714/31 105/709/3 -f 94/711/9 99/715/9 98/712/29 -f 86/713/10 107/716/10 106/714/31 -f 93/686/27 100/685/27 99/715/9 -f 85/689/25 108/688/25 107/716/10 -f 183/717/33 182/752/34 198/718/34 -f 175/720/35 191/1044/35 192/721/36 -f 183/717/33 199/1045/33 200/723/37 -f 176/722/36 192/1046/36 193/725/38 -f 170/727/39 169/731/40 185/728/40 -f 184/724/37 200/1047/37 185/730/40 -f 178/732/41 177/1048/38 193/733/38 -f 171/735/42 170/727/39 186/736/39 -f 178/732/41 194/1049/41 195/738/43 -f 172/740/44 171/735/42 187/741/42 -f 179/739/43 195/1050/43 196/743/45 -f 172/740/44 188/1051/44 189/745/46 -f 180/744/45 196/1052/45 197/747/47 -f 174/749/48 173/746/46 189/750/46 -f 182/752/34 181/748/47 197/753/47 -f 174/749/48 190/1053/48 191/755/35 -f 196/756/25 212/785/25 213/757/6 -f 189/759/8 205/786/8 206/760/30 -f 197/758/6 213/757/6 214/762/32 -f 190/761/30 206/760/30 207/764/11 -f 198/763/32 214/762/32 215/766/12 -f 191/765/11 207/764/11 208/768/28 -f 199/767/12 215/766/12 216/770/26 -f 192/769/28 208/768/28 209/772/3 -f 185/774/7 201/777/7 202/775/29 -f 200/771/26 216/770/26 201/777/7 -f 193/733/3 209/798/3 210/778/31 -f 186/776/29 202/775/29 203/779/9 -f 194/734/31 210/778/31 211/781/10 -f 187/780/9 203/779/9 204/783/27 -f 195/782/10 211/781/10 212/785/25 -f 188/784/27 204/783/27 205/786/8 -f 230/787/49 231/1054/50 215/766/50 -f 231/788/50 232/1055/51 216/770/51 -f 232/789/51 217/1056/52 201/777/52 -f 217/790/52 218/1057/53 202/775/53 -f 218/791/53 219/1058/54 203/779/54 -f 203/779/54 219/1059/54 220/792/55 -f 220/793/55 221/1060/56 205/786/56 -f 205/786/56 221/1061/56 222/794/57 -f 222/795/57 223/1062/58 207/764/58 -f 207/764/58 223/1063/58 224/796/59 -f 224/797/59 225/1064/60 209/772/60 -f 209/798/60 225/1065/60 226/799/61 -f 210/778/61 226/1066/61 227/800/62 -f 227/801/62 228/1067/63 212/785/63 -f 228/802/63 229/1068/64 213/757/64 -f 213/757/64 229/1069/64 230/803/49 -f 73/804/7 241/192/7 242/182/29 -f 66/806/31 234/170/31 235/169/10 -f 74/805/29 242/182/29 243/181/9 -f 67/807/10 235/169/10 236/191/25 -f 75/808/9 243/181/9 244/179/27 -f 68/809/25 236/191/25 237/190/6 -f 76/810/27 244/179/27 245/178/8 -f 69/811/6 237/190/6 238/188/32 -f 77/812/8 245/178/8 246/176/30 -f 70/813/32 238/188/32 239/187/12 -f 78/814/30 246/176/30 247/175/11 -f 71/815/12 239/187/12 240/185/26 -f 79/816/11 247/175/11 248/171/28 -f 72/817/26 240/185/26 241/184/7 -f 65/820/3 233/173/3 234/170/31 -f 80/818/28 248/171/28 233/173/3 -f 263/821/65 264/1070/66 393/822/66 -f 257/824/67 258/1071/68 399/825/68 -f 407/827/69 250/1072/69 251/828/70 -f 255/830/71 256/1073/72 401/831/72 -f 249/833/73 250/1074/69 407/827/69 -f 261/835/74 262/1075/75 395/836/75 -f 401/831/72 256/1076/72 257/838/67 -f 251/840/70 252/1077/76 405/841/76 -f 398/842/77 259/1078/77 260/843/78 -f 253/845/79 254/1079/80 403/846/80 -f 403/846/80 254/1080/80 255/848/71 -f 397/844/78 260/1081/78 261/849/74 -f 393/822/66 264/1082/66 249/850/73 -f 262/851/75 263/1083/65 394/823/65 -f 399/825/68 258/1084/68 259/852/77 -f 405/841/76 252/1085/76 253/853/79 -f 322/854/81 323/864/22 331/855/82 -f 327/857/21 328/867/90 336/858/84 -f 326/860/86 334/868/91 333/861/87 -f 324/863/88 332/870/92 331/855/82 -f 321/865/2 322/854/81 330/856/83 -f 321/865/2 329/866/89 336/858/84 -f 326/860/86 327/857/21 335/859/85 -f 325/869/1 333/1086/87 332/870/92 -f 334/868/91 342/877/99 341/871/93 -f 331/855/82 332/870/92 340/872/94 -f 329/866/89 330/856/83 338/874/96 -f 329/866/89 337/875/97 344/876/98 -f 335/859/85 343/879/100 342/877/99 -f 332/870/92 333/1086/87 341/878/93 -f 330/856/83 331/855/82 339/873/95 -f 336/858/84 344/876/98 343/879/100 -f 343/879/100 344/876/98 352/880/90 -f 341/871/93 342/877/99 350/882/86 -f 339/873/95 340/872/94 348/265/88 -f 337/875/97 338/874/96 346/885/81 -f 337/875/97 345/886/2 352/880/90 -f 342/877/99 343/879/100 351/881/21 -f 341/878/93 349/574/1 348/265/88 -f 339/873/95 347/884/22 346/885/81 -f 354/270/81 362/892/81 361/887/2 -f 353/279/2 361/887/2 368/888/90 -f 359/263/21 367/893/21 366/889/86 -f 357/266/1 365/1087/1 364/890/88 -f 354/270/81 355/269/22 363/891/22 -f 359/263/21 360/272/90 368/888/90 -f 357/274/1 358/264/86 366/889/86 -f 356/267/88 364/890/88 363/891/22 -f 434/895/31 435/897/10 419/323/10 -f 427/896/9 428/898/27 412/357/27 -f 435/897/10 436/899/25 420/355/25 -f 428/898/27 429/900/8 413/348/8 -f 436/899/25 437/901/6 421/351/6 -f 429/900/8 430/902/30 414/343/30 -f 437/901/6 438/903/32 422/347/32 -f 430/902/30 431/904/11 415/338/11 -f 438/903/32 439/905/12 423/342/12 -f 431/904/11 432/906/28 416/333/28 -f 439/905/12 440/908/26 424/337/26 -f 432/906/28 433/1088/3 417/593/3 -f 425/907/7 426/910/29 410/327/29 -f 440/908/26 425/907/7 409/332/7 -f 433/909/3 434/895/31 418/325/31 -f 426/910/29 427/896/9 411/320/9 -f 498/420/7 500/422/12 499/911/12 -f 500/422/12 502/413/6 501/913/6 -f 502/413/6 504/424/10 503/914/10 -f 504/424/10 506/428/3 505/915/3 -f 506/619/3 508/416/11 507/916/11 -f 508/416/11 510/426/8 509/918/8 -f 510/426/8 512/404/9 511/919/9 -f 512/404/9 498/420/7 497/912/7 -f 513/920/7 521/936/7 528/921/12 -f 519/923/6 527/932/6 526/924/10 -f 517/926/3 525/1089/3 524/927/11 -f 515/929/8 523/935/8 522/930/9 -f 520/922/12 528/921/12 527/932/6 -f 518/925/10 526/924/10 525/933/3 -f 516/928/11 524/927/11 523/935/8 -f 514/931/9 522/930/9 521/936/7 -f 534/623/11 542/1090/11 543/937/8 -f 532/624/10 540/1091/10 541/938/3 -f 529/414/12 537/1092/12 539/939/6 -f 535/405/8 543/1093/8 544/940/9 -f 533/417/3 541/1094/3 542/941/11 -f 531/622/6 539/1095/6 540/942/10 -f 530/621/7 538/1096/7 537/943/12 -f 536/620/9 544/1097/9 538/944/7 -f 560/444/26 564/446/26 548/448/101 -f 557/630/102 550/437/102 562/436/32 -f 558/433/32 562/436/32 563/449/12 -f 559/441/12 563/449/12 564/446/26 -f 18/945/31 602/970/31 601/946/3 -f 20/948/25 604/959/25 603/949/10 -f 22/951/32 606/974/32 605/952/6 -f 17/947/3 601/946/3 616/954/28 -f 26/956/29 610/977/29 609/957/7 -f 21/953/6 605/952/6 604/959/25 -f 24/960/26 608/969/26 607/961/12 -f 30/963/30 614/967/30 613/964/8 -f 31/966/11 615/976/11 614/967/30 -f 25/968/7 609/1098/7 608/969/26 -f 19/950/10 603/949/10 602/970/31 -f 28/971/27 612/975/27 611/972/9 -f 23/962/12 607/961/12 606/974/32 -f 29/965/8 613/964/8 612/975/27 -f 32/955/28 616/954/28 615/976/11 -f 27/973/9 611/972/9 610/977/29 -f 395/836/32 619/989/32 620/978/6 -f 397/844/25 621/985/25 622/979/10 -f 400/839/3 624/1099/3 625/980/28 -f 403/846/30 627/983/30 628/981/8 -f 405/841/27 629/991/27 630/982/9 -f 402/832/11 626/990/11 627/983/30 -f 393/822/26 617/987/26 618/984/12 -f 396/837/6 620/978/6 621/985/25 -f 399/825/31 623/993/31 624/986/3 -f 408/834/7 632/992/7 617/987/26 -f 406/829/9 630/982/9 631/988/29 -f 394/823/12 618/984/12 619/989/32 -f 401/831/28 625/980/28 626/990/11 -f 404/847/8 628/981/8 629/991/27 -f 407/827/29 631/988/29 632/992/7 -f 398/842/10 622/979/10 623/993/31 -f 623/993/103 639/1019/122 640/994/104 -f 631/988/106 647/1021/133 648/995/107 -f 627/983/109 626/990/120 642/996/110 -f 619/989/112 635/1024/118 636/998/113 -f 617/987/115 632/992/108 648/999/107 -f 619/989/112 618/984/129 634/1001/117 -f 625/980/119 641/1028/123 642/1003/110 -f 623/993/103 622/979/125 638/1004/121 -f 625/980/119 624/1099/105 640/1006/104 -f 621/985/124 637/1032/130 638/1008/121 -f 629/991/126 645/1034/132 646/1009/127 -f 617/987/115 633/1036/116 634/1010/117 -f 620/978/114 636/1038/113 637/1011/130 -f 628/981/131 644/1016/134 645/1012/132 -f 631/988/106 630/982/128 646/1013/127 -f 627/983/109 643/1040/111 644/1015/134 -f 569/466/26 565/468/26 581/470/101 -f 572/634/102 579/440/102 567/439/32 -f 571/453/32 567/439/32 566/471/12 -f 570/463/12 566/471/12 565/468/26 +f 317/858/172 334/582/158 318/540/158 +f 325/560/173 342/568/157 326/563/157 +f 318/540/158 335/584/174 319/859/174 +f 326/563/157 343/567/175 327/857/175 +f 319/859/174 336/586/176 320/545/176 +f 327/857/175 344/570/177 328/523/177 +f 320/545/176 337/588/178 321/860/178 +f 328/523/177 345/572/179 329/526/179 +f 321/860/178 338/590/156 322/550/156 +f 314/530/161 331/576/180 315/533/180 +f 329/526/179 330/574/161 314/530/161 +f 322/861/156 339/592/181 323/553/181 +f 315/533/180 332/578/182 316/536/182 +f 323/553/181 340/595/183 324/557/183 +f 316/536/182 333/580/172 317/858/172 +f 324/557/183 341/597/173 325/560/173 +f 354/963/161 371/613/180 355/964/180 +f 347/965/181 364/600/183 348/966/183 +f 355/964/180 372/612/182 356/967/182 +f 348/966/183 365/622/173 349/968/173 +f 356/967/182 373/610/172 357/969/172 +f 349/968/173 366/621/157 350/970/157 +f 357/969/172 374/609/158 358/971/158 +f 350/970/157 367/619/175 351/972/175 +f 358/971/158 375/607/174 359/973/174 +f 351/972/175 368/618/177 352/974/177 +f 359/973/174 376/606/176 360/975/176 +f 352/974/177 369/616/179 353/976/179 +f 360/975/176 377/602/178 361/977/178 +f 353/976/179 370/615/161 354/978/161 +f 346/979/156 363/601/181 347/965/181 +f 361/977/178 362/604/156 346/979/156 +f 435/980/184 444/981/185 443/982/186 +f 440/983/168 449/984/187 448/985/188 +f 439/986/189 446/987/190 438/988/154 +f 437/989/191 444/981/185 436/990/169 +f 434/991/155 443/982/186 442/992/192 +f 434/991/155 449/984/187 441/993/193 +f 439/986/189 448/985/188 447/994/194 +f 438/995/154 445/996/195 437/989/191 +f 447/994/194 454/997/196 446/987/190 +f 444/981/185 453/998/197 452/999/198 +f 442/992/192 451/1000/199 450/1001/200 +f 442/992/192 457/1002/201 449/984/187 +f 448/985/188 455/1003/202 447/994/194 +f 445/996/195 454/1004/196 453/998/197 +f 443/982/186 452/999/198 451/1000/199 +f 449/984/187 456/1005/203 448/985/188 +f 456/1005/203 465/1006/193 464/1007/168 +f 454/997/196 463/1008/189 462/1009/154 +f 452/999/198 461/696/191 460/1010/169 +f 450/1001/200 459/1011/184 458/1012/155 +f 450/1001/200 465/1006/193 457/1002/201 +f 455/1003/202 464/1007/168 463/1008/189 +f 454/1004/196 461/696/191 453/998/197 +f 452/999/198 459/1011/184 451/1000/199 +f 467/701/184 474/1013/155 466/710/155 +f 466/710/155 481/1014/193 473/703/193 +f 472/694/168 479/1015/189 471/695/189 +f 470/697/154 477/1016/191 469/698/191 +f 467/701/184 476/1017/169 475/1018/184 +f 472/694/168 481/1014/193 480/1019/168 +f 470/705/154 479/1015/189 478/1020/154 +f 469/698/191 476/1017/169 468/700/169 +f 547/811/161 548/1021/177 546/1022/161 +f 549/813/177 550/1023/157 548/1021/177 +f 551/804/157 552/1024/183 550/1023/157 +f 553/815/183 554/1025/156 552/1024/183 +f 555/946/156 556/1026/176 554/1027/156 +f 557/807/176 558/1028/158 556/1026/176 +f 559/817/158 560/1029/182 558/1028/158 +f 561/795/182 546/1022/161 560/1029/182 +f 562/1030/161 577/1031/177 569/1032/177 +f 568/1033/157 575/1034/183 567/1035/183 +f 566/1036/156 573/1037/176 565/1038/176 +f 564/1039/158 571/1040/182 563/1041/182 +f 569/1032/177 576/1042/157 568/1033/157 +f 567/1035/183 574/1043/156 566/1044/156 +f 565/1038/176 572/1045/158 564/1039/158 +f 563/1041/182 570/1046/161 562/1030/161 +f 583/950/176 592/1047/158 584/816/158 +f 581/951/183 590/1048/156 582/818/156 +f 578/805/177 588/1049/157 580/806/157 +f 584/796/158 593/1050/182 585/797/182 +f 582/808/156 591/1051/176 583/809/176 +f 580/949/157 589/1052/183 581/814/183 +f 579/948/161 586/1053/177 578/812/177 +f 585/947/182 587/1054/161 579/810/161 +f 609/835/179 597/839/204 594/960/204 +f 606/957/205 611/827/175 607/824/175 +f 607/824/175 612/840/177 608/832/177 +f 608/832/177 613/837/179 609/835/179 +f 299/1055/181 634/1056/156 298/1057/156 +f 301/1058/173 636/1059/183 300/1060/183 +f 303/1061/175 638/1062/157 302/1063/157 +f 298/1057/156 649/1064/178 313/1065/178 +f 307/1066/180 642/1067/161 306/1068/161 +f 302/1063/157 637/1069/173 301/1058/173 +f 305/1070/179 640/1071/177 304/1072/177 +f 311/1073/174 646/1074/158 310/1075/158 +f 312/1076/176 647/1077/174 311/1073/174 +f 306/1078/161 641/1079/179 305/1070/179 +f 300/1060/183 635/1080/181 299/1055/181 +f 309/1081/172 644/1082/182 308/1083/182 +f 304/1072/177 639/1084/175 303/1061/175 +f 310/1075/158 645/1085/172 309/1081/172 +f 313/1065/178 648/1086/176 312/1076/176 +f 308/1083/182 643/1087/180 307/1066/180 +f 618/849/179 630/853/204 633/962/204 +f 621/961/205 616/830/175 620/844/175 +f 620/844/175 615/854/177 619/846/177 +f 619/846/177 614/851/179 618/849/179 +f 317/858/172 333/580/172 334/582/158 +f 325/560/173 341/597/173 342/568/157 +f 318/540/158 334/582/158 335/584/174 +f 326/563/157 342/568/157 343/567/175 +f 319/859/174 335/584/174 336/586/176 +f 327/857/175 343/567/175 344/570/177 +f 320/545/176 336/586/176 337/588/178 +f 328/523/177 344/570/177 345/572/179 +f 321/860/178 337/588/178 338/590/156 +f 314/530/161 330/574/161 331/576/180 +f 329/526/179 345/572/179 330/574/161 +f 322/861/156 338/593/156 339/592/181 +f 315/533/180 331/576/180 332/578/182 +f 323/553/181 339/592/181 340/595/183 +f 316/536/182 332/578/182 333/580/172 +f 324/557/183 340/595/183 341/597/173 +f 354/963/161 370/623/161 371/613/180 +f 347/965/181 363/601/181 364/600/183 +f 355/964/180 371/613/180 372/612/182 +f 348/966/183 364/600/183 365/622/173 +f 356/967/182 372/612/182 373/610/172 +f 349/968/173 365/622/173 366/621/157 +f 357/969/172 373/610/172 374/609/158 +f 350/970/157 366/621/157 367/619/175 +f 358/971/158 374/609/158 375/607/174 +f 351/972/175 367/619/175 368/618/177 +f 359/973/174 375/607/174 376/606/176 +f 352/974/177 368/618/177 369/616/179 +f 360/975/176 376/606/176 377/602/178 +f 353/976/179 369/616/179 370/615/161 +f 346/979/156 362/604/156 363/601/181 +f 361/977/178 377/602/178 362/604/156 +f 435/980/184 436/990/169 444/981/185 +f 440/983/168 441/993/193 449/984/187 +f 439/986/189 447/994/194 446/987/190 +f 437/989/191 445/996/195 444/981/185 +f 434/991/155 435/980/184 443/982/186 +f 434/991/155 442/992/192 449/984/187 +f 439/986/189 440/983/168 448/985/188 +f 438/995/154 446/1088/190 445/996/195 +f 447/994/194 455/1003/202 454/997/196 +f 444/981/185 445/996/195 453/998/197 +f 442/992/192 443/982/186 451/1000/199 +f 442/992/192 450/1001/200 457/1002/201 +f 448/985/188 456/1005/203 455/1003/202 +f 445/996/195 446/1088/190 454/1004/196 +f 443/982/186 444/981/185 452/999/198 +f 449/984/187 457/1002/201 456/1005/203 +f 456/1005/203 457/1002/201 465/1006/193 +f 454/997/196 455/1003/202 463/1008/189 +f 452/999/198 453/998/197 461/696/191 +f 450/1001/200 451/1000/199 459/1011/184 +f 450/1001/200 458/1012/155 465/1006/193 +f 455/1003/202 456/1005/203 464/1007/168 +f 454/1004/196 462/910/154 461/696/191 +f 452/999/198 460/1010/169 459/1011/184 +f 467/701/184 475/1018/184 474/1013/155 +f 466/710/155 474/1013/155 481/1014/193 +f 472/694/168 480/1019/168 479/1015/189 +f 470/697/154 478/1089/154 477/1016/191 +f 467/701/184 468/700/169 476/1017/169 +f 472/694/168 473/703/193 481/1014/193 +f 470/705/154 471/695/189 479/1015/189 +f 469/698/191 477/1016/191 476/1017/169 +f 547/811/161 549/813/177 548/1021/177 +f 549/813/177 551/804/157 550/1023/157 +f 551/804/157 553/815/183 552/1024/183 +f 553/815/183 555/819/156 554/1025/156 +f 555/946/156 557/807/176 556/1026/176 +f 557/807/176 559/817/158 558/1028/158 +f 559/817/158 561/795/182 560/1029/182 +f 561/795/182 547/811/161 546/1022/161 +f 562/1030/161 570/1046/161 577/1031/177 +f 568/1033/157 576/1042/157 575/1034/183 +f 566/1036/156 574/1090/156 573/1037/176 +f 564/1039/158 572/1045/158 571/1040/182 +f 569/1032/177 577/1031/177 576/1042/157 +f 567/1035/183 575/1034/183 574/1043/156 +f 565/1038/176 573/1037/176 572/1045/158 +f 563/1041/182 571/1040/182 570/1046/161 +f 583/950/176 591/1091/176 592/1047/158 +f 581/951/183 589/1092/183 590/1048/156 +f 578/805/177 586/1093/177 588/1049/157 +f 584/796/158 592/1094/158 593/1050/182 +f 582/808/156 590/1095/156 591/1051/176 +f 580/949/157 588/1096/157 589/1052/183 +f 579/948/161 587/1097/161 586/1053/177 +f 585/947/182 593/1098/182 587/1054/161 +f 609/835/179 613/837/179 597/839/204 +f 606/957/205 599/828/205 611/827/175 +f 607/824/175 611/827/175 612/840/177 +f 608/832/177 612/840/177 613/837/179 +f 299/1055/181 635/1080/181 634/1056/156 +f 301/1058/173 637/1069/173 636/1059/183 +f 303/1061/175 639/1084/175 638/1062/157 +f 298/1057/156 634/1056/156 649/1064/178 +f 307/1066/180 643/1087/180 642/1067/161 +f 302/1063/157 638/1062/157 637/1069/173 +f 305/1070/179 641/1079/179 640/1071/177 +f 311/1073/174 647/1077/174 646/1074/158 +f 312/1076/176 648/1086/176 647/1077/174 +f 306/1078/161 642/1099/161 641/1079/179 +f 300/1060/183 636/1059/183 635/1080/181 +f 309/1081/172 645/1085/172 644/1082/182 +f 304/1072/177 640/1071/177 639/1084/175 +f 310/1075/158 646/1074/158 645/1085/172 +f 313/1065/178 649/1064/178 648/1086/176 +f 308/1083/182 644/1082/182 643/1087/180 +f 618/849/179 614/851/179 630/853/204 +f 621/961/205 628/831/205 616/830/175 +f 620/844/175 616/830/175 615/854/177 +f 619/846/177 615/854/177 614/851/179 diff --git a/src/main/resources/assets/hbm/models/weapons/hangman.obj b/src/main/resources/assets/hbm/models/weapons/hangman.obj new file mode 100644 index 000000000..8ab6f66f8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/hangman.obj @@ -0,0 +1,5413 @@ +# Blender v2.79 (sub 0) OBJ File: 'hangman.blend' +# www.blender.org +o Bullets +v 0.176776 0.176778 -2.231359 +v 0.000000 0.250001 -2.231359 +v 0.000000 -0.249999 -2.231359 +v 1.500000 -1.249999 -2.231359 +v 1.250000 -1.499999 -2.231359 +v 1.500000 -1.749999 -2.231359 +v 1.237437 -2.383882 -2.231359 +v 0.883884 -2.383882 -2.231359 +v 0.883884 -2.737436 -2.231360 +v 0.250000 -2.999999 -2.231360 +v 0.000000 -2.749999 -2.231360 +v -0.250000 -2.999999 -2.231360 +v -0.883883 -2.383882 -2.231359 +v -1.237436 -2.383883 -2.231359 +v -1.237437 -2.737436 -2.231360 +v -1.500000 -1.249999 -2.231359 +v -1.676777 -1.323223 -2.231359 +v -1.750000 -1.499999 -2.231359 +v 0.883884 -0.262562 -2.231359 +v 0.883884 -0.616115 -2.231359 +v 1.237437 -0.616115 -2.231359 +v -0.883884 -0.616116 -2.231359 +v -0.883884 -0.262562 -2.231359 +v -1.237437 -0.262562 -2.231359 +v -0.176777 0.176778 -2.231359 +v -0.250000 0.000001 -2.231359 +v -0.176777 -0.176776 -2.231359 +v 0.176776 -0.176776 -2.231359 +v 0.250000 0.000001 -2.231359 +v 1.750000 -1.499999 -2.231359 +v 1.676777 -1.323222 -2.231359 +v 1.323224 -1.323222 -2.231359 +v 1.323223 -1.676775 -2.231359 +v 1.676777 -1.676775 -2.231359 +v 1.237437 -2.737436 -2.231360 +v 1.310661 -2.560659 -2.231359 +v 1.060660 -2.310659 -2.231359 +v 0.810660 -2.560659 -2.231359 +v 1.060660 -2.810659 -2.231360 +v 0.000000 -3.249999 -2.231360 +v 0.176777 -3.176776 -2.231360 +v 0.176777 -2.823222 -2.231360 +v -0.176776 -2.823222 -2.231360 +v -0.176776 -3.176776 -2.231360 +v -1.060660 -2.810659 -2.231360 +v -0.883883 -2.737436 -2.231360 +v -0.810660 -2.560659 -2.231359 +v -1.060660 -2.310659 -2.231359 +v -1.310660 -2.560659 -2.231359 +v -1.676777 -1.676776 -2.231359 +v -1.500000 -1.749999 -2.231359 +v -1.323223 -1.676776 -2.231359 +v -1.250000 -1.499999 -2.231359 +v -1.323223 -1.323223 -2.231359 +v 1.237437 -0.262562 -2.231359 +v 1.060660 -0.189338 -2.231359 +v 0.810660 -0.439338 -2.231359 +v 1.060660 -0.689339 -2.231359 +v 1.310660 -0.439339 -2.231359 +v -1.310660 -0.439339 -2.231359 +v -1.237437 -0.616116 -2.231359 +v -1.060660 -0.689339 -2.231359 +v -0.810660 -0.439339 -2.231359 +v -1.060660 -0.189339 -2.231359 +v 1.435660 -0.439338 -2.668859 +v -0.265166 0.265166 -2.668859 +v 0.000000 0.375001 -2.668859 +v 0.265165 0.265166 -2.668859 +v 0.375000 0.000001 -2.668859 +v 0.265165 -0.265164 -2.668859 +v 0.000000 -0.374999 -2.668859 +v -0.265166 -0.265164 -2.668859 +v -0.375000 0.000001 -2.668859 +v 1.765166 -1.234834 -2.668859 +v 1.875001 -1.499999 -2.668859 +v 1.060660 -0.064338 -2.668859 +v 1.325826 -0.174173 -2.668859 +v 1.500000 -1.124999 -2.668859 +v 1.234835 -1.765164 -2.668859 +v 1.125000 -1.499999 -2.668859 +v 0.685660 -0.439339 -2.668859 +v 0.795495 -0.174173 -2.668859 +v 1.500000 -1.874999 -2.668859 +v 1.234835 -1.234834 -2.668859 +v 1.765165 -1.765164 -2.668859 +v 1.060660 -2.185659 -2.668859 +v 1.325826 -2.295494 -2.668859 +v 1.060661 -2.935659 -2.668860 +v 0.685660 -2.560659 -2.668859 +v 0.795496 -2.825824 -2.668860 +v 0.795495 -2.295494 -2.668859 +v 1.435661 -2.560659 -2.668859 +v 1.325826 -2.825825 -2.668860 +v 0.795495 -0.704504 -2.668859 +v 0.375000 -2.999999 -2.668860 +v 0.265165 -3.265164 -2.668860 +v 0.000000 -3.374999 -2.668860 +v -0.265165 -2.734834 -2.668860 +v 0.000000 -2.624999 -2.668859 +v -0.375000 -2.999999 -2.668860 +v 0.265165 -2.734834 -2.668860 +v -0.265165 -3.265164 -2.668860 +v 1.325825 -0.704504 -2.668859 +v -0.685660 -2.560659 -2.668859 +v -0.795495 -2.825825 -2.668860 +v 1.060660 -0.814339 -2.668859 +v -1.435660 -2.560660 -2.668859 +v -0.795495 -2.295494 -2.668859 +v -1.060660 -2.185659 -2.668859 +v -1.325825 -2.295495 -2.668859 +v -1.060660 -2.935660 -2.668860 +v -1.325825 -2.825825 -2.668860 +v -1.500000 -1.124999 -2.668859 +v -1.234835 -1.234834 -2.668859 +v -1.765165 -1.765164 -2.668859 +v -1.875000 -1.499999 -2.668859 +v -1.500000 -1.874999 -2.668859 +v -1.125000 -1.499999 -2.668859 +v -1.234835 -1.765164 -2.668859 +v -1.765165 -1.234834 -2.668859 +v -1.060661 -0.064339 -2.668859 +v -1.060660 -0.814339 -2.668859 +v -0.685660 -0.439339 -2.668859 +v -0.795495 -0.704504 -2.668859 +v -1.325826 -0.704504 -2.668859 +v -0.795496 -0.174174 -2.668859 +v -1.435661 -0.439339 -2.668859 +v -1.325826 -0.174174 -2.668859 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.834008 0.557621 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.572491 +vt 0.842105 0.565056 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.842105 0.565056 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.825911 0.565056 +vt 0.834008 0.557621 +vt 0.842105 0.565056 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.834008 0.557621 +vt 0.840081 0.559480 +vt 0.834008 0.572491 +vt 0.827935 0.570632 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.827935 0.570632 +vt 0.825911 0.565056 +vt 0.827935 0.559480 +vt 0.840081 0.559480 +vt 0.840081 0.570632 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.565056 +vt 0.825911 0.557621 +vt 0.825911 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.825911 0.527881 +vt 0.809717 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.550186 +vt 0.825911 0.550186 +vt 0.809717 0.557621 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.557621 +vt 0.825911 0.565056 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.527881 +vt 0.825911 0.520446 +vt 0.825911 0.527881 +vt 0.825911 0.550186 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.513011 +vt 0.809717 0.520446 +vt 0.825911 0.535316 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.535316 +vt 0.825911 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.527881 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.825911 0.550186 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.542751 +vt 0.825911 0.550186 +vt 0.809717 0.557621 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.535316 +vt 0.825911 0.527881 +vt 0.825911 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.527881 +vt 0.825911 0.520446 +vt 0.825911 0.550186 +vt 0.809717 0.550186 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.557621 +vt 0.809717 0.527881 +vt 0.825911 0.527881 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.542751 +vt 0.825911 0.550186 +vt 0.809717 0.535316 +vt 0.825911 0.542751 +vt 0.825911 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.527881 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.825911 0.565056 +vt 0.809717 0.527881 +vt 0.825911 0.535316 +vt 0.809717 0.535316 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.557621 +vt 0.825911 0.565056 +vt 0.825911 0.520446 +vt 0.825911 0.527881 +vt 0.825911 0.542751 +vt 0.809717 0.542751 +vt 0.809717 0.550186 +vt 0.825911 0.557621 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.550186 +vt 0.809717 0.520446 +vt 0.825911 0.513011 +vt 0.825911 0.520446 +vt 0.809717 0.550186 +vt 0.825911 0.542751 +vt 0.825911 0.550186 +vt 0.809717 0.535316 +vt 0.809717 0.542751 +vt 0.825911 0.557621 +vt 0.809717 0.557621 +vt 0.809717 0.527881 +vt 0.825911 0.535316 +vt 0.825911 0.527881 +vt 0.825911 0.565056 +vt 0.809717 0.565056 +vt 0.825911 0.572491 +vt 0.809717 0.572491 +vt 0.825911 0.535316 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.825911 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vt 0.809717 0.513011 +vn 0.0000 0.0000 1.0000 +vn 0.9615 -0.0000 0.2747 +vn 0.6799 0.6799 0.2747 +vn -0.6799 0.6799 0.2747 +vn -0.9615 0.0000 0.2747 +vn 0.0000 0.9615 0.2747 +vn 0.6799 -0.6799 0.2747 +vn 0.0000 -0.9615 0.2747 +vn -0.6799 -0.6799 0.2747 +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/1 5/5/1 6/6/1 +f 7/7/1 8/8/1 9/9/1 +f 10/10/1 11/11/1 12/12/1 +f 13/13/1 14/14/1 15/15/1 +f 16/16/1 17/17/1 18/18/1 +f 19/19/1 20/20/1 21/21/1 +f 22/22/1 23/23/1 24/24/1 +f 2/2/1 25/25/1 3/3/1 +f 25/25/1 26/26/1 3/3/1 +f 26/26/1 27/27/1 3/3/1 +f 3/3/1 28/28/1 29/29/1 +f 29/29/1 1/1/1 3/3/1 +f 30/30/1 31/31/1 4/4/1 +f 4/4/1 32/32/1 5/5/1 +f 5/5/1 33/33/1 6/6/1 +f 6/6/1 34/34/1 30/30/1 +f 30/30/1 4/4/1 6/6/1 +f 35/35/1 36/36/1 7/7/1 +f 7/7/1 37/37/1 8/8/1 +f 8/8/1 38/38/1 9/9/1 +f 9/9/1 39/39/1 35/35/1 +f 35/35/1 7/7/1 9/9/1 +f 40/40/1 41/41/1 10/10/1 +f 10/10/1 42/42/1 11/11/1 +f 11/11/1 43/43/1 12/12/1 +f 12/12/1 44/44/1 40/40/1 +f 40/40/1 10/10/1 12/12/1 +f 15/15/1 45/45/1 46/46/1 +f 46/46/1 47/47/1 15/15/1 +f 47/47/1 13/13/1 15/15/1 +f 13/13/1 48/48/1 14/14/1 +f 14/14/1 49/49/1 15/15/1 +f 18/18/1 50/50/1 51/51/1 +f 51/51/1 52/52/1 18/18/1 +f 52/52/1 53/53/1 18/18/1 +f 53/53/1 54/54/1 18/18/1 +f 54/54/1 16/16/1 18/18/1 +f 55/55/1 56/56/1 19/19/1 +f 19/19/1 57/57/1 20/20/1 +f 20/20/1 58/58/1 21/21/1 +f 21/21/1 59/59/1 55/55/1 +f 55/55/1 19/19/1 21/21/1 +f 24/24/1 60/60/1 61/61/1 +f 61/61/1 62/62/1 24/24/1 +f 62/62/1 22/22/1 24/24/1 +f 22/22/1 63/63/1 23/23/1 +f 23/23/1 64/64/1 24/24/1 +s 1 +f 65/65/2 55/66/3 59/67/2 +f 66/68/4 26/69/5 25/70/4 +f 66/68/4 2/71/6 67/72/6 +f 68/73/3 2/74/6 1/75/3 +f 68/73/3 29/76/2 69/77/2 +f 69/77/2 28/78/7 70/79/7 +f 70/79/7 3/80/8 71/81/8 +f 72/82/9 3/80/8 27/83/9 +f 72/82/9 26/69/5 73/84/5 +f 74/85/3 30/86/2 75/87/2 +f 76/88/6 55/89/3 77/90/3 +f 78/91/6 31/92/3 74/85/3 +f 79/93/9 5/94/5 80/95/5 +f 81/96/5 19/97/4 82/98/4 +f 83/99/8 34/100/7 6/101/8 +f 80/95/5 32/102/4 84/103/4 +f 84/103/4 4/104/6 78/91/6 +f 75/105/2 34/100/7 85/106/7 +f 83/99/8 33/107/9 79/93/9 +f 86/108/6 7/109/3 87/110/3 +f 88/111/8 35/112/7 39/113/8 +f 89/114/5 9/115/9 38/116/5 +f 90/117/9 39/113/8 9/115/9 +f 89/114/5 8/118/4 91/119/4 +f 91/119/4 37/120/6 86/108/6 +f 87/110/3 36/121/2 92/122/2 +f 92/122/2 35/123/7 93/124/7 +f 94/125/9 57/126/5 81/96/5 +f 95/127/2 41/128/7 96/129/7 +f 96/129/7 40/130/8 97/131/8 +f 98/132/4 12/133/5 43/134/4 +f 98/132/4 11/135/6 99/136/6 +f 100/137/5 44/138/9 12/133/5 +f 99/136/6 42/139/3 101/140/3 +f 102/141/9 40/142/8 44/138/9 +f 101/140/3 10/143/2 95/127/2 +f 103/144/7 59/67/2 21/145/7 +f 104/146/2 46/147/7 105/148/7 +f 106/149/8 20/150/9 94/125/9 +f 107/151/5 15/152/9 49/153/5 +f 108/154/3 47/155/2 104/146/2 +f 109/156/6 13/157/3 108/154/3 +f 109/156/6 14/158/4 48/159/6 +f 110/160/4 49/153/5 14/158/4 +f 105/148/7 45/161/8 111/162/8 +f 111/162/8 15/163/9 112/164/9 +f 82/98/4 56/165/6 76/88/6 +f 113/166/6 54/167/3 114/168/3 +f 115/169/9 18/170/5 116/171/5 +f 117/172/8 50/173/9 115/169/9 +f 113/166/6 17/174/4 16/175/6 +f 114/168/3 53/176/2 118/177/2 +f 119/178/7 51/179/8 117/172/8 +f 120/180/4 18/181/5 17/174/4 +f 118/177/2 52/182/7 119/178/7 +f 121/183/6 24/184/4 64/185/6 +f 122/186/8 22/187/7 62/188/8 +f 123/189/2 22/187/7 124/190/7 +f 122/186/8 61/191/9 125/192/9 +f 126/193/3 63/194/2 123/189/2 +f 121/183/6 23/195/3 126/193/3 +f 125/192/9 60/196/5 127/197/5 +f 127/197/5 24/198/4 128/199/4 +f 103/144/7 58/200/8 106/149/8 +f 65/65/2 77/201/3 55/66/3 +f 66/68/4 73/84/5 26/69/5 +f 66/68/4 25/70/4 2/71/6 +f 68/73/3 67/202/6 2/74/6 +f 68/73/3 1/75/3 29/76/2 +f 69/77/2 29/76/2 28/78/7 +f 70/79/7 28/78/7 3/80/8 +f 72/82/9 71/81/8 3/80/8 +f 72/82/9 27/83/9 26/69/5 +f 74/85/3 31/92/3 30/86/2 +f 76/88/6 56/165/6 55/89/3 +f 78/91/6 4/104/6 31/92/3 +f 79/93/9 33/107/9 5/94/5 +f 81/96/5 57/126/5 19/97/4 +f 83/99/8 85/106/7 34/100/7 +f 80/95/5 5/94/5 32/102/4 +f 84/103/4 32/102/4 4/104/6 +f 75/105/2 30/203/2 34/100/7 +f 83/99/8 6/101/8 33/107/9 +f 86/108/6 37/120/6 7/109/3 +f 88/111/8 93/204/7 35/112/7 +f 89/114/5 90/117/9 9/115/9 +f 90/117/9 88/111/8 39/113/8 +f 89/114/5 38/116/5 8/118/4 +f 91/119/4 8/118/4 37/120/6 +f 87/110/3 7/109/3 36/121/2 +f 92/122/2 36/121/2 35/123/7 +f 94/125/9 20/150/9 57/126/5 +f 95/127/2 10/143/2 41/128/7 +f 96/129/7 41/128/7 40/130/8 +f 98/132/4 100/137/5 12/133/5 +f 98/132/4 43/134/4 11/135/6 +f 100/137/5 102/141/9 44/138/9 +f 99/136/6 11/135/6 42/139/3 +f 102/141/9 97/205/8 40/142/8 +f 101/140/3 42/139/3 10/143/2 +f 103/144/7 65/65/2 59/67/2 +f 104/146/2 47/155/2 46/147/7 +f 106/149/8 58/200/8 20/150/9 +f 107/151/5 112/206/9 15/152/9 +f 108/154/3 13/157/3 47/155/2 +f 109/156/6 48/159/6 13/157/3 +f 109/156/6 110/160/4 14/158/4 +f 110/160/4 107/151/5 49/153/5 +f 105/148/7 46/147/7 45/161/8 +f 111/162/8 45/161/8 15/163/9 +f 82/98/4 19/97/4 56/165/6 +f 113/166/6 16/175/6 54/167/3 +f 115/169/9 50/173/9 18/170/5 +f 117/172/8 51/179/8 50/173/9 +f 113/166/6 120/180/4 17/174/4 +f 114/168/3 54/167/3 53/176/2 +f 119/178/7 52/182/7 51/179/8 +f 120/180/4 116/207/5 18/181/5 +f 118/177/2 53/176/2 52/182/7 +f 121/183/6 128/208/4 24/184/4 +f 122/186/8 124/190/7 22/187/7 +f 123/189/2 63/194/2 22/187/7 +f 122/186/8 62/188/8 61/191/9 +f 126/193/3 23/195/3 63/194/2 +f 121/183/6 64/185/6 23/195/3 +f 125/192/9 61/191/9 60/196/5 +f 127/197/5 60/196/5 24/198/4 +f 103/144/7 21/145/7 58/200/8 +o Internals +v 0.845185 -2.945537 -1.149113 +v -0.845185 -2.945537 -1.149113 +v -1.690370 -1.489653 -1.302134 +v 0.000000 -4.104991 -5.024233 +v 1.882162 -3.025072 -5.145136 +v 1.882162 -0.865233 -5.386944 +v 1.931852 -1.478220 -1.193358 +v 2.173334 -1.945152 -5.266041 +v 2.414815 -1.956912 -5.377924 +v -1.086666 -0.074677 -5.475451 +v 0.845186 -0.033769 -1.455153 +v -0.845185 -0.033769 -1.455153 +v -1.931851 -1.478220 -1.193358 +v -2.173333 -1.945153 -5.266041 +v -1.463903 -0.649098 -1.390478 +v 1.463904 -0.649098 -1.390478 +v 1.690370 -1.489653 -1.302134 +v 1.463904 -2.330208 -1.213787 +v 0.000000 -3.170763 -1.125441 +v -1.463903 -2.330208 -1.213787 +v 1.086667 -0.074677 -5.475451 +v -1.882161 -0.865233 -5.386944 +v -1.882161 -3.025072 -5.145136 +v -1.086666 -3.815628 -5.056629 +v 1.086667 -3.815628 -5.056629 +v -2.414814 -1.956912 -5.377924 +v 0.000000 -4.356733 -5.109249 +v 1.207407 -4.035218 -5.145245 +v -2.091290 -3.156821 -5.243586 +v 2.091291 -3.156821 -5.243586 +v -1.207407 -4.035218 -5.145245 +v -1.673032 -2.438855 -1.092390 +v 0.965926 -3.142087 -1.018477 +v 1.673033 -2.438854 -1.092390 +v -0.965925 -3.142087 -1.018477 +v 0.000000 -3.399489 -0.991423 +vt 0.331984 0.304833 +vt 0.384615 0.304833 +vt 0.412955 0.347584 +vt 0.224696 0.319703 +vt 0.295547 0.355019 +vt 0.295547 0.429368 +vt 0.008097 0.234201 +vt 0.141700 0.241636 +vt 0.145749 0.234201 +vt 0.008097 0.375465 +vt 0.137652 0.315985 +vt 0.137652 0.368030 +vt 0.145749 0.449814 +vt 0.012146 0.442379 +vt 0.141700 0.442379 +vt 0.404858 0.371747 +vt 0.384615 0.390335 +vt 0.331984 0.390335 +vt 0.311741 0.371747 +vt 0.303644 0.347584 +vt 0.311741 0.323420 +vt 0.358300 0.297398 +vt 0.404858 0.323420 +vt 0.265182 0.449814 +vt 0.184211 0.449814 +vt 0.153846 0.429368 +vt 0.145749 0.392193 +vt 0.153846 0.355019 +vt 0.184211 0.327138 +vt 0.265182 0.327138 +vt 0.303644 0.392193 +vt 0.012146 0.241636 +vt 0.008097 0.308550 +vt 0.008097 0.449814 +vt 0.008097 0.382900 +vt -0.000000 0.345725 +vt 0.000000 0.382900 +vt -0.000000 0.271375 +vt 0.008097 0.234201 +vt -0.000000 0.234201 +vt 0.008097 0.420074 +vt 0.000000 0.420074 +vt -0.000000 0.308550 +vt 0.008097 0.271375 +vt 0.008097 0.457249 +vt -0.000000 0.457249 +vt 0.008097 0.308550 +vt 0.137652 0.241636 +vt 0.145749 0.275093 +vt 0.145749 0.241636 +vt 0.145749 0.375465 +vt 0.137652 0.408922 +vt 0.145749 0.408922 +vt 0.137652 0.308550 +vt 0.145749 0.308550 +vt 0.137652 0.241636 +vt 0.008097 0.275093 +vt 0.008097 0.241636 +vt 0.137652 0.278810 +vt 0.145749 0.442379 +vt 0.145749 0.342007 +vt 0.137652 0.405204 +vt 0.008097 0.408922 +vt 0.137652 0.442379 +vt 0.008097 0.442379 +vt 0.137652 0.375465 +vt 0.008097 0.345725 +vt 0.137652 0.275093 +vt 0.137652 0.271375 +vt 0.137652 0.304833 +vt 0.137652 0.442379 +vt 0.137652 0.342007 +vt 0.137652 0.379182 +vt 0.137652 0.412639 +vn 0.0000 -0.1045 -0.9945 +vn -0.0000 0.1113 0.9938 +vn 0.0045 -0.9935 0.1142 +vn 0.0000 -0.9999 0.0102 +vn 0.0042 -0.9935 0.1137 +vn -0.0042 -0.9935 0.1137 +vn -0.0045 -0.9935 0.1142 +vn 0.2115 -0.2635 0.9412 +vn -0.0000 -0.3200 0.9474 +vn 0.2117 -0.2634 0.9412 +vn -0.3663 -0.1092 0.9241 +vn -0.4199 -0.0116 0.9075 +vn 0.3661 -0.1095 0.9241 +vn 0.3663 -0.1092 0.9241 +vn -0.2117 -0.2634 0.9412 +vn -0.3661 -0.1095 0.9241 +vn 0.4199 -0.0116 0.9075 +vn -0.2115 -0.2635 0.9412 +vn -0.4101 -0.2039 -0.8890 +vn -0.3573 -0.3004 -0.8844 +vn 0.2063 -0.4506 -0.8686 +vn 0.3573 -0.3004 -0.8844 +vn -0.2063 -0.4506 -0.8686 +vn -0.9597 -0.2677 -0.0860 +vn -0.8601 -0.5062 -0.0627 +vn -0.9595 -0.2683 -0.0861 +vn -0.8595 -0.5072 -0.0625 +vn -0.7026 -0.7108 -0.0351 +vn 0.4101 -0.2039 -0.8890 +vn -0.0000 -0.5055 -0.8628 +vn 0.7026 -0.7108 -0.0351 +vn 0.8595 -0.5072 -0.0625 +vn 0.8601 -0.5062 -0.0627 +vn 0.9597 -0.2677 -0.0860 +vn 0.9595 -0.2683 -0.0861 +vn -0.7029 -0.7104 -0.0350 +vn 0.7029 -0.7104 -0.0350 +s off +f 129/209/10 130/210/10 131/211/10 +f 132/212/11 133/213/11 134/214/11 +f 135/215/12 136/216/12 137/217/12 +f 138/218/13 139/219/13 140/220/13 +f 141/221/14 142/222/14 131/223/14 +f 143/224/10 140/225/10 139/226/10 +f 139/226/10 144/227/10 145/228/10 +f 145/228/10 146/229/10 129/209/10 +f 129/209/10 147/230/10 130/210/10 +f 130/210/10 148/231/10 131/211/10 +f 131/211/10 143/224/10 129/209/10 +f 143/224/10 139/226/10 129/209/10 +f 139/226/10 145/228/10 129/209/10 +f 149/232/11 138/233/11 150/234/11 +f 150/234/11 142/235/11 151/236/11 +f 151/236/11 152/237/11 150/234/11 +f 152/237/11 132/212/11 150/234/11 +f 132/212/11 153/238/11 133/213/11 +f 133/213/11 136/239/11 134/214/11 +f 134/214/11 149/232/11 132/212/11 +f 149/232/11 150/234/11 132/212/11 +f 135/215/15 145/240/15 136/216/15 +f 138/218/13 149/241/13 139/219/13 +f 141/221/16 154/242/16 142/222/16 +s 1 +f 153/243/17 155/244/18 156/245/19 +f 157/246/20 142/247/21 154/248/21 +f 133/249/22 156/245/19 158/250/23 +f 159/251/24 151/252/25 157/246/20 +f 136/253/26 158/250/23 137/254/26 +f 155/244/18 152/255/27 159/251/24 +f 131/256/28 160/257/29 141/258/28 +f 161/259/30 146/260/31 162/261/31 +f 160/257/29 130/262/32 163/263/32 +f 145/264/33 134/265/34 136/266/35 +f 144/267/36 149/241/37 134/265/34 +f 146/260/31 135/268/38 162/261/31 +f 130/262/32 164/269/39 163/263/32 +f 138/218/40 143/270/41 150/271/42 +f 150/271/42 131/272/43 142/273/44 +f 164/269/39 129/274/30 161/259/30 +f 153/243/17 132/275/18 155/244/18 +f 157/246/20 151/252/25 142/247/21 +f 133/249/22 153/243/17 156/245/19 +f 159/251/24 152/255/27 151/252/25 +f 136/253/26 133/249/22 158/250/23 +f 155/244/18 132/275/18 152/255/27 +f 131/256/28 148/276/29 160/257/29 +f 161/259/30 129/274/30 146/260/31 +f 160/257/29 148/276/29 130/262/32 +f 145/264/33 144/277/36 134/265/34 +f 144/267/36 139/278/45 149/241/37 +f 146/260/31 145/279/38 135/268/38 +f 130/262/32 147/280/39 164/269/39 +f 138/218/40 140/281/46 143/270/41 +f 150/271/42 143/282/41 131/272/43 +f 164/269/39 147/280/39 129/274/30 +o Magazine +v -0.437500 0.000001 -4.543859 +v 0.000000 -0.437499 -4.543859 +v 0.437500 0.000001 -4.543859 +v 1.498160 -0.439339 -4.543859 +v 1.370019 -0.129979 -4.543859 +v 0.751300 -0.748698 -4.543859 +v -0.751302 -0.129979 -4.606359 +v -0.751302 -0.748698 -4.606359 +v -1.370020 -0.748698 -4.606359 +v 0.437500 0.000001 -4.606359 +v 0.000000 -0.437499 -4.606359 +v -0.437500 0.000001 -4.606359 +v -1.500001 -1.062499 -4.606359 +v -1.062501 -1.499999 -4.606359 +v -1.500001 -1.937499 -4.606359 +v -1.937501 -1.500000 -4.543859 +v -1.500001 -1.937499 -4.543859 +v -1.062501 -1.499999 -4.543859 +v -1.370020 -2.251300 -4.606359 +v -0.751301 -2.251300 -4.606359 +v -0.751301 -2.870018 -4.606359 +v -1.498160 -2.560660 -4.543859 +v -1.370020 -2.870018 -4.543859 +v -0.751301 -2.251300 -4.543859 +v -0.309359 -3.309359 -4.543859 +v 0.000000 -3.437499 -4.543859 +v 0.000000 -2.562499 -4.543859 +v -0.437500 -2.999999 -4.606359 +v 0.000000 -2.562499 -4.606359 +v 0.437500 -2.999999 -4.606359 +v 1.060660 -2.998158 -4.543859 +v 1.370019 -2.870018 -4.543859 +v 0.751301 -2.251300 -4.543859 +v 0.751301 -2.870018 -4.606359 +v 0.751301 -2.251300 -4.606359 +v 1.370019 -2.251300 -4.606359 +v 1.500000 -1.937499 -4.606359 +v 1.062500 -1.499999 -4.606359 +v 1.500000 -1.062499 -4.606359 +v 1.370019 -0.748698 -4.606359 +v 0.751300 -0.748698 -4.606359 +v 0.751300 -0.129980 -4.606359 +v 1.809359 -1.809358 -4.543859 +v 1.937500 -1.499999 -4.543859 +v 1.062500 -1.499999 -4.543859 +v 0.000000 -2.249999 -1.981360 +v 0.750000 -1.499999 -1.981360 +v 0.000000 -0.749999 -1.981359 +v 0.000000 -1.687499 -1.731360 +v 0.187500 -1.499999 -1.731360 +v 0.000000 -1.312499 -1.731359 +v -1.370021 -0.129980 -4.543859 +v -1.370020 -0.748698 -4.543859 +v -0.751302 -0.748698 -4.543859 +v -1.060660 -2.185658 -4.543859 +v -1.325825 -2.295494 -4.543859 +v -1.234835 -1.765164 -4.543859 +v -0.265165 -2.734833 -4.543859 +v -0.375000 -2.999999 -4.543859 +v -0.685660 -2.560658 -4.543859 +v 0.685660 -2.560658 -4.543859 +v 0.795495 -2.825824 -4.543859 +v 0.265165 -2.734833 -4.543859 +v 1.060660 -2.185658 -4.543859 +v 1.125000 -1.499999 -4.543859 +v 1.234835 -1.765164 -4.543859 +v 1.234835 -1.234834 -4.543859 +v 0.795495 -0.704504 -4.543859 +v 1.060660 -0.814339 -4.543859 +v 0.265165 -0.265164 -4.543859 +v 0.375000 0.000001 -4.543859 +v 0.685660 -0.439339 -4.543859 +v -0.795495 -0.174174 -4.543859 +v -0.645778 0.059048 -4.543859 +v -0.375000 0.000001 -4.543859 +v -1.234835 -1.234834 -4.543859 +v -1.500000 -1.124999 -4.543859 +v -1.060660 -0.814339 -4.543859 +v 0.000000 -2.624999 -4.543859 +v -1.125000 -1.499999 -4.543859 +v -1.325825 -2.295494 -2.481359 +v -1.500000 -1.874999 -2.481359 +v -1.559047 -2.145777 -2.481359 +v -0.795495 -2.825824 -2.481360 +v -0.645778 -3.059046 -2.481360 +v -0.375000 -2.999999 -2.481360 +v 0.795495 -2.825824 -2.481360 +v 0.375000 -2.999999 -2.481360 +v 0.645778 -3.059046 -2.481360 +v 1.325825 -2.295494 -2.481359 +v 1.559047 -2.145778 -2.481359 +v 1.500000 -1.874999 -2.481359 +v 1.500000 -1.124999 -2.481359 +v 1.559047 -0.854220 -2.481359 +v 1.325825 -0.704504 -2.481359 +v 0.795495 -0.174173 -2.481359 +v 0.645778 0.059048 -2.481359 +v 0.375000 0.000001 -2.481359 +v -0.685660 -0.439339 -2.481359 +v 0.000000 -0.374999 -2.481359 +v -0.265166 -0.265164 -2.481359 +v -1.500000 -1.124999 -2.481359 +v -1.325825 -0.704504 -2.481359 +v -1.559047 -0.854221 -2.481359 +v -0.795495 -0.704504 -2.481359 +v -0.795495 -2.295494 -2.481359 +v 0.795495 -2.295494 -2.481359 +v 0.000000 0.437501 -4.543859 +v -0.309360 0.309360 -4.543859 +v -0.309360 -0.309358 -4.543859 +v 0.309359 -0.309358 -4.543859 +v 0.309359 0.309360 -4.543859 +v 1.060660 -0.001839 -4.543859 +v 0.751300 -0.129980 -4.543859 +v 0.623160 -0.439339 -4.543859 +v 1.060660 -0.876839 -4.543859 +v 1.370019 -0.748698 -4.543859 +v -1.498161 -0.439339 -4.606359 +v -1.370021 -0.129980 -4.606359 +v -1.060661 -0.001839 -4.606359 +v -0.623161 -0.439339 -4.606359 +v -1.060661 -0.876839 -4.606359 +v -0.309360 0.309360 -4.606359 +v 0.000000 0.437501 -4.606359 +v 0.309359 0.309360 -4.606359 +v 0.309359 -0.309358 -4.606359 +v -0.309360 -0.309358 -4.606359 +v -1.809360 -1.809359 -4.606359 +v -1.937501 -1.500000 -4.606359 +v -1.809360 -1.190640 -4.606359 +v -1.190641 -1.190640 -4.606359 +v -1.190641 -1.809359 -4.606359 +v -1.809360 -1.809359 -4.543859 +v -1.190641 -1.809359 -4.543859 +v -1.190641 -1.190640 -4.543859 +v -1.500001 -1.062499 -4.543859 +v -1.809360 -1.190640 -4.543859 +v -1.060660 -2.998160 -4.606359 +v -1.370020 -2.870018 -4.606359 +v -1.498160 -2.560660 -4.606359 +v -1.060660 -2.123158 -4.606359 +v -0.623160 -2.560658 -4.606359 +v -1.060660 -2.998160 -4.543859 +v -0.751301 -2.870018 -4.543859 +v -0.623160 -2.560658 -4.543859 +v -1.060660 -2.123158 -4.543859 +v -1.370020 -2.251300 -4.543859 +v 0.309359 -3.309358 -4.543859 +v 0.437500 -2.999999 -4.543859 +v 0.309359 -2.690639 -4.543859 +v -0.309360 -2.690639 -4.543859 +v -0.437500 -2.999999 -4.543859 +v 0.309359 -3.309358 -4.606359 +v 0.000000 -3.437499 -4.606359 +v -0.309359 -3.309359 -4.606359 +v -0.309360 -2.690639 -4.606359 +v 0.309359 -2.690639 -4.606359 +v 1.498160 -2.560658 -4.543859 +v 1.370019 -2.251300 -4.543859 +v 1.060660 -2.123158 -4.543859 +v 0.623160 -2.560658 -4.543859 +v 0.751301 -2.870018 -4.543859 +v 1.498160 -2.560658 -4.606359 +v 1.370019 -2.870018 -4.606359 +v 1.060660 -2.998158 -4.606359 +v 0.623160 -2.560658 -4.606359 +v 1.060660 -2.123158 -4.606359 +v 1.809359 -1.190639 -4.606359 +v 1.937500 -1.499999 -4.606359 +v 1.809359 -1.809358 -4.606359 +v 1.190640 -1.809358 -4.606359 +v 1.190640 -1.190639 -4.606359 +v 1.060660 -0.001839 -4.606359 +v 1.370019 -0.129979 -4.606359 +v 1.498160 -0.439339 -4.606359 +v 1.060660 -0.876839 -4.606359 +v 0.623160 -0.439339 -4.606359 +v 1.809359 -1.190639 -4.543859 +v 1.500000 -1.062499 -4.543859 +v 1.190640 -1.190639 -4.543859 +v 1.190640 -1.809358 -4.543859 +v 1.500000 -1.937499 -4.543859 +v -0.530331 -0.969669 -1.981359 +v -0.750000 -1.499999 -1.981360 +v -0.530331 -2.030329 -1.981360 +v 0.530330 -2.030329 -1.981360 +v 0.530330 -0.969669 -1.981359 +v -0.132583 -1.367416 -1.731360 +v -0.187500 -1.499999 -1.731360 +v -0.132583 -1.632581 -1.731360 +v 0.132582 -1.632581 -1.731360 +v 0.132582 -1.367416 -1.731360 +v -1.498161 -0.439339 -4.543859 +v -1.060661 -0.876839 -4.543859 +v -0.623161 -0.439339 -4.543859 +v -0.751302 -0.129979 -4.543859 +v -1.060661 -0.001839 -4.543859 +v -1.376792 -2.418540 -4.543859 +v -1.559047 -2.145777 -4.543859 +v -1.623046 -1.824032 -4.543859 +v -1.500000 -1.874999 -4.543859 +v -0.795495 -2.295494 -4.543859 +v -0.324033 -3.123044 -4.543859 +v -0.645778 -3.059046 -4.543859 +v -0.918541 -2.876791 -4.543859 +v -0.795495 -2.825824 -4.543859 +v 0.918541 -2.876791 -4.543859 +v 0.645778 -3.059046 -4.543859 +v 0.324033 -3.123044 -4.543859 +v 0.375000 -2.999999 -4.543859 +v 0.795495 -2.295494 -4.543859 +v 1.500000 -1.874999 -4.543859 +v 1.623046 -1.824032 -4.543859 +v 1.559047 -2.145777 -4.543859 +v 1.376793 -2.418540 -4.543859 +v 1.325825 -2.295494 -4.543859 +v 1.325825 -0.704504 -4.543859 +v 1.376793 -0.581458 -4.543859 +v 1.559047 -0.854220 -4.543859 +v 1.623046 -1.175966 -4.543859 +v 1.500000 -1.124999 -4.543859 +v 0.324032 0.123047 -4.543859 +v 0.645778 0.059048 -4.543859 +v 0.918541 -0.123206 -4.543859 +v 0.795495 -0.174173 -4.543859 +v 0.000000 -0.374999 -4.543859 +v -0.265166 -0.265164 -4.543859 +v -0.685660 -0.439339 -4.543859 +v -0.795495 -0.704504 -4.543859 +v -0.324033 0.123047 -4.543859 +v -0.918541 -0.123207 -4.543859 +v -1.623046 -1.175966 -4.543859 +v -1.559047 -0.854221 -4.543859 +v -1.376793 -0.581458 -4.543859 +v -1.325825 -0.704504 -4.543859 +v -1.060660 -2.185659 -2.481359 +v -1.125000 -1.499999 -2.481359 +v -1.234835 -1.765164 -2.481359 +v -1.376792 -2.418540 -2.481359 +v -1.623046 -1.824032 -2.481359 +v -0.265165 -2.734834 -2.481360 +v 0.000000 -2.624999 -2.481359 +v -0.685660 -2.560659 -2.481359 +v -0.324033 -3.123045 -2.481360 +v -0.918541 -2.876792 -2.481360 +v 0.685660 -2.560659 -2.481359 +v 0.265165 -2.734834 -2.481360 +v 0.918541 -2.876791 -2.481360 +v 0.324033 -3.123045 -2.481360 +v 1.234835 -1.765164 -2.481359 +v 1.125000 -1.499999 -2.481359 +v 1.060660 -2.185659 -2.481359 +v 1.623046 -1.824032 -2.481359 +v 1.376793 -2.418540 -2.481359 +v 1.060660 -0.814339 -2.481359 +v 0.795495 -0.704504 -2.481359 +v 1.234835 -1.234834 -2.481359 +v 1.376793 -0.581458 -2.481359 +v 1.623046 -1.175966 -2.481359 +v 0.265165 -0.265164 -2.481359 +v 0.685660 -0.439339 -2.481359 +v 0.324032 0.123047 -2.481359 +v 0.918541 -0.123206 -2.481359 +v -0.375000 0.000001 -2.481359 +v -0.324033 0.123047 -2.481359 +v -0.645778 0.059048 -2.481359 +v -0.918541 -0.123207 -2.481359 +v -0.795495 -0.174174 -2.481359 +v -1.234835 -1.234834 -2.481359 +v -1.060660 -0.814339 -2.481359 +v -1.623046 -1.175966 -2.481359 +v -1.376793 -0.581458 -2.481359 +v -0.265166 0.265166 -2.668859 +v 0.000000 0.375001 -4.543859 +v -0.265166 0.265166 -4.543859 +v 0.000000 0.375001 -2.668859 +v 0.265165 0.265166 -4.543859 +v 0.375000 0.000001 -4.543859 +v 0.265165 0.265166 -2.668859 +v 0.375000 0.000001 -2.668859 +v -0.375000 0.000001 -2.668859 +v -0.375000 0.000001 -4.543859 +v 0.000000 -0.499999 -2.481359 +v 0.707106 -0.792892 -2.481359 +v -0.707107 -0.792892 -2.481359 +v -1.000000 -1.499999 -2.481359 +v 0.000000 -2.499999 -2.481359 +v -0.707107 -2.207106 -2.481359 +v 0.707106 -2.207106 -2.481359 +v 1.000000 -1.499999 -2.481359 +v 0.187500 -1.499999 -1.981360 +v 0.132582 -1.367416 -1.981360 +v 0.000000 -1.687499 -1.981360 +v 0.132582 -1.632581 -1.981360 +v -0.187500 -1.499999 -1.981360 +v -0.132583 -1.632581 -1.981360 +v 0.000000 -1.312499 -1.981359 +v -0.132583 -1.367416 -1.981360 +v -0.265165 -0.265164 -2.668859 +v 0.265166 -0.265164 -2.668859 +v 1.060660 -0.064339 -2.668859 +v 1.325825 -0.174174 -4.543859 +v 1.060660 -0.064339 -4.543859 +v 1.325825 -0.174174 -2.668859 +v 1.435660 -0.439339 -4.543859 +v 1.325825 -0.704504 -4.543859 +v 1.435660 -0.439339 -2.668859 +v 1.325825 -0.704504 -2.668859 +v 0.795495 -0.174174 -4.543859 +v 0.795495 -0.174174 -2.668859 +v 0.685660 -0.439339 -2.668859 +v 1.060660 -0.814340 -2.668859 +v 1.765165 -1.234834 -2.668859 +v 1.875000 -1.499999 -4.543859 +v 1.765165 -1.234834 -4.543859 +v 1.875000 -1.499999 -2.668859 +v 1.765165 -1.765164 -4.543859 +v 1.500000 -1.874999 -4.543859 +v 1.765165 -1.765164 -2.668859 +v 1.500000 -1.874999 -2.668859 +v 1.500000 -1.124999 -4.543859 +v 1.500000 -1.124999 -2.668859 +v 1.234834 -1.234835 -2.668859 +v 1.234834 -1.765165 -2.668859 +v 1.435660 -2.560659 -2.668859 +v 1.325825 -2.825824 -4.543859 +v 1.435660 -2.560658 -4.543859 +v 1.325825 -2.825824 -2.668860 +v 1.060660 -2.935658 -4.543859 +v 0.795495 -2.825824 -4.543859 +v 1.060660 -2.935659 -2.668860 +v 0.795495 -2.825824 -2.668860 +v 1.325825 -2.295494 -4.543859 +v 1.325825 -2.295494 -2.668859 +v 1.060659 -2.185660 -2.668859 +v 0.685659 -2.560659 -2.668859 +v 0.265165 -3.265164 -2.668860 +v 0.000000 -3.374999 -4.543859 +v 0.265165 -3.265164 -4.543859 +v 0.000000 -3.374999 -2.668860 +v -0.265165 -3.265165 -4.543859 +v -0.375000 -2.999999 -4.543859 +v -0.265165 -3.265164 -2.668860 +v -0.375000 -2.999999 -2.668860 +v 0.375000 -2.999999 -4.543859 +v 0.375000 -2.999999 -2.668860 +v 0.265164 -2.734834 -2.668860 +v -0.265166 -2.734834 -2.668860 +v -1.060660 -2.935659 -2.668860 +v -1.325826 -2.825824 -4.543859 +v -1.060660 -2.935660 -4.543859 +v -1.325826 -2.825824 -2.668860 +v -1.435661 -2.560660 -4.543859 +v -1.325826 -2.295495 -4.543859 +v -1.435660 -2.560659 -2.668859 +v -1.325826 -2.295495 -2.668859 +v -0.795495 -2.825824 -4.543859 +v -0.795495 -2.825824 -2.668860 +v -0.685661 -2.560658 -2.668859 +v -1.060661 -2.185658 -2.668859 +v -1.765166 -1.765164 -2.668859 +v -1.875001 -1.499999 -4.543859 +v -1.765166 -1.765165 -4.543859 +v -1.875001 -1.499999 -2.668859 +v -1.765166 -1.234834 -4.543859 +v -1.500001 -1.124999 -4.543859 +v -1.765166 -1.234834 -2.668859 +v -1.500001 -1.124999 -2.668859 +v -1.500001 -1.874999 -4.543859 +v -1.500000 -1.874999 -2.668859 +v -1.234835 -1.765163 -2.668859 +v -1.234835 -1.234833 -2.668859 +v -1.435661 -0.439339 -2.668859 +v -1.325826 -0.174174 -4.543859 +v -1.435661 -0.439339 -4.543859 +v -1.060661 -0.064339 -2.668859 +v -1.060661 -0.064339 -4.543859 +v -0.795496 -0.174174 -4.543859 +v -0.795496 -0.174174 -2.668859 +v -1.325826 -0.704504 -4.543859 +v -1.325826 -0.704504 -2.668859 +v -1.060660 -0.814338 -2.668859 +v -0.685660 -0.439338 -2.668859 +v 0.000001 -0.374999 -2.668859 +v 0.795495 -0.704505 -2.668859 +v 1.124999 -1.500000 -2.668859 +v 0.795494 -2.295495 -2.668859 +v -0.000001 -2.624999 -2.668859 +v -0.795496 -2.295494 -2.668859 +v -1.125000 -1.499998 -2.668859 +v -1.325826 -0.174174 -2.668859 +v -0.795495 -0.704503 -2.668859 +vt 0.805668 0.585502 +vt 0.819838 0.572491 +vt 0.834008 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.819838 0.598513 +vt 0.805668 0.585502 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.777328 0.585502 +vt 0.791498 0.572491 +vt 0.805668 0.585502 +vt 0.829960 0.594796 +vt 0.819838 0.598513 +vt 0.819838 0.572491 +vt 0.684211 0.442379 +vt 0.708502 0.464684 +vt 0.684211 0.486989 +vt 0.714575 0.475836 +vt 0.720648 0.481413 +vt 0.714575 0.486989 +vt 0.819838 0.598513 +vt 0.805668 0.585502 +vt 0.819838 0.572491 +vt 0.754950 0.529825 +vt 0.763525 0.526563 +vt 0.760583 0.542312 +vt 0.729223 0.513517 +vt 0.732775 0.505643 +vt 0.742822 0.518689 +vt 0.698473 0.518689 +vt 0.694921 0.510815 +vt 0.712072 0.513517 +vt 0.686346 0.529825 +vt 0.684265 0.550186 +vt 0.680713 0.542312 +vt 0.680713 0.558060 +vt 0.694921 0.573808 +vt 0.686346 0.570547 +vt 0.712072 0.586855 +vt 0.708520 0.594729 +vt 0.698473 0.581683 +vt 0.746374 0.589557 +vt 0.741532 0.596482 +vt 0.732775 0.594729 +vt 0.760583 0.558060 +vt 0.769158 0.561322 +vt 0.754950 0.570547 +vt 0.720648 0.516778 +vt 0.757031 0.550186 +vt 0.572507 0.526563 +vt 0.566874 0.539050 +vt 0.564964 0.531009 +vt 0.589658 0.510815 +vt 0.594500 0.503889 +vt 0.603257 0.505643 +vt 0.641111 0.510815 +vt 0.627512 0.505643 +vt 0.636269 0.503889 +vt 0.658262 0.526563 +vt 0.665805 0.531009 +vt 0.663895 0.539050 +vt 0.663895 0.561322 +vt 0.665805 0.569363 +vt 0.658262 0.573808 +vt 0.641111 0.589557 +vt 0.636269 0.596482 +vt 0.627512 0.594729 +vt 0.593210 0.581683 +vt 0.615385 0.583593 +vt 0.606809 0.586855 +vt 0.566874 0.561322 +vt 0.572507 0.573808 +vt 0.564964 0.569363 +vt 0.589658 0.573808 +vt 0.589658 0.526563 +vt 0.641111 0.526563 +vt 0.819838 0.598513 +vt 0.809717 0.594796 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.829960 0.594796 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.829960 0.594796 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.801619 0.594796 +vt 0.791498 0.598513 +vt 0.781377 0.594796 +vt 0.781377 0.576208 +vt 0.801619 0.576208 +vt 0.809717 0.594796 +vt 0.805668 0.585502 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.665992 0.481413 +vt 0.659919 0.464684 +vt 0.665992 0.447955 +vt 0.702429 0.447955 +vt 0.702429 0.481413 +vt 0.710526 0.485130 +vt 0.708502 0.481413 +vt 0.710526 0.477695 +vt 0.718623 0.477695 +vt 0.718623 0.485130 +vt 0.809717 0.594796 +vt 0.809717 0.576208 +vt 0.829960 0.576208 +vt 0.834008 0.585502 +vt 0.829960 0.594796 +vt 0.765174 0.522909 +vt 0.771068 0.531009 +vt 0.773138 0.540564 +vt 0.769158 0.539050 +vt 0.746374 0.526563 +vt 0.731127 0.501989 +vt 0.741532 0.503889 +vt 0.750354 0.509301 +vt 0.746374 0.510815 +vt 0.690942 0.509301 +vt 0.699763 0.503889 +vt 0.710168 0.501989 +vt 0.708520 0.505643 +vt 0.694921 0.526563 +vt 0.672137 0.539050 +vt 0.668158 0.540564 +vt 0.670228 0.531009 +vt 0.676122 0.522909 +vt 0.677770 0.526563 +vt 0.677770 0.573808 +vt 0.676122 0.577462 +vt 0.670228 0.569363 +vt 0.668158 0.559808 +vt 0.672137 0.561322 +vt 0.710168 0.598383 +vt 0.699763 0.596482 +vt 0.690942 0.591070 +vt 0.694921 0.589557 +vt 0.720648 0.583593 +vt 0.729223 0.586855 +vt 0.742822 0.581683 +vt 0.746374 0.573808 +vt 0.731127 0.598383 +vt 0.750354 0.591070 +vt 0.773138 0.559808 +vt 0.771068 0.569363 +vt 0.765174 0.577462 +vt 0.763525 0.573808 +vt 0.581082 0.529825 +vt 0.579002 0.550186 +vt 0.575450 0.542312 +vt 0.570859 0.522909 +vt 0.562895 0.540564 +vt 0.606809 0.513517 +vt 0.615385 0.516778 +vt 0.593210 0.518689 +vt 0.604905 0.501989 +vt 0.585679 0.509301 +vt 0.637559 0.518689 +vt 0.623960 0.513517 +vt 0.645091 0.509301 +vt 0.625864 0.501989 +vt 0.655320 0.542312 +vt 0.651767 0.550186 +vt 0.649687 0.529825 +vt 0.667875 0.540564 +vt 0.659911 0.522909 +vt 0.649687 0.570547 +vt 0.641111 0.573808 +vt 0.655320 0.558060 +vt 0.659911 0.577462 +vt 0.667875 0.559808 +vt 0.623960 0.586855 +vt 0.637559 0.581683 +vt 0.625864 0.598383 +vt 0.645091 0.591070 +vt 0.603257 0.594729 +vt 0.604905 0.598383 +vt 0.594500 0.596482 +vt 0.585679 0.591070 +vt 0.589658 0.589557 +vt 0.575450 0.558060 +vt 0.581082 0.570547 +vt 0.562895 0.559808 +vt 0.570859 0.577462 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.603239 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.501859 +vt 0.595142 0.501859 +vt 0.603239 0.442379 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.639676 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.501859 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.562753 0.501859 +vt 0.578947 0.442379 +vt 0.578947 0.501859 +vt 0.615385 0.501859 +vt 0.627530 0.442379 +vt 0.595142 0.442379 +vt 0.615385 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.595142 0.442379 +vt 0.595142 0.501859 +vt 0.615385 0.442379 +vt 0.595142 0.501859 +vt 0.595142 0.442379 +vt 0.615385 0.442379 +vt 0.595142 0.442379 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.595142 0.442379 +vt 0.651822 0.501859 +vt 0.651822 0.442379 +vt 0.595142 0.442379 +vt 0.639676 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.501859 +vt 0.595142 0.442379 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.595142 0.442379 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.615385 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.627530 0.442379 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.651822 0.501859 +vt 0.639676 0.442379 +vt 0.651822 0.442379 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.603239 0.501859 +vt 0.615385 0.442379 +vt 0.659919 0.501859 +vt 0.659919 0.442379 +vt 0.639676 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.651822 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.651822 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.615385 0.442379 +vt 0.615385 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.651822 0.501859 +vt 0.659919 0.442379 +vt 0.659919 0.501859 +vt 0.651822 0.442379 +vt 0.651822 0.442379 +vt 0.603239 0.442379 +vt 0.627530 0.442379 +vt 0.627530 0.501859 +vt 0.639676 0.442379 +vt 0.639676 0.501859 +vt 0.603239 0.442379 +vt 0.651822 0.442379 +vt 0.627530 0.442379 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.773279 0.542751 +vt 0.777328 0.553903 +vt 0.777328 0.531599 +vt 0.773279 0.531599 +vt 0.777328 0.509294 +vt 0.773279 0.520446 +vt 0.773279 0.509294 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.773279 0.531599 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.520446 +vt 0.773279 0.520446 +vt 0.777328 0.509294 +vt 0.773279 0.520446 +vt 0.773279 0.509294 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.773279 0.553903 +vt 0.777328 0.520446 +vt 0.773279 0.576208 +vt 0.777328 0.587361 +vt 0.773279 0.587361 +vt 0.773279 0.598513 +vt 0.777328 0.520446 +vt 0.773279 0.531599 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.777328 0.565056 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.773279 0.542751 +vt 0.777328 0.531599 +vt 0.773279 0.531599 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.777328 0.542751 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.520446 +vt 0.773279 0.520446 +vt 0.777328 0.509294 +vt 0.773279 0.520446 +vt 0.773279 0.509294 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.773279 0.542751 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.531599 +vt 0.773279 0.531599 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.520446 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.773279 0.553903 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.773279 0.531599 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.553903 +vt 0.777328 0.520446 +vt 0.773279 0.520446 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.542751 +vt 0.773279 0.576208 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.773279 0.565056 +vt 0.777328 0.520446 +vt 0.773279 0.531599 +vt 0.773279 0.520446 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.777328 0.553903 +vt 0.773279 0.553903 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.587361 +vt 0.773279 0.598513 +vt 0.773279 0.587361 +vt 0.777328 0.531599 +vt 0.773279 0.542751 +vt 0.777328 0.542751 +vt 0.777328 0.565056 +vt 0.773279 0.576208 +vt 0.777328 0.587361 +vt 0.773279 0.587361 +vt 0.777328 0.553903 +vt 0.773279 0.565056 +vt 0.773279 0.553903 +vt 0.777328 0.542751 +vt 0.773279 0.542751 +vt 0.777328 0.520446 +vt 0.773279 0.531599 +vt 0.773279 0.520446 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.531599 +vt 0.773279 0.598513 +vt 0.777328 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.509294 +vt 0.773279 0.509294 +vt 0.777328 0.565056 +vt 0.659919 0.501859 +vt 0.680162 0.486989 +vt 0.684211 0.501859 +vt 0.854251 0.501859 +vt 0.834008 0.486989 +vt 0.850202 0.486989 +vt 0.829960 0.501859 +vt 0.809717 0.486989 +vt 0.825911 0.486989 +vt 0.805668 0.501859 +vt 0.785425 0.486989 +vt 0.801619 0.486989 +vt 0.757085 0.501859 +vt 0.777328 0.486989 +vt 0.781377 0.501859 +vt 0.732794 0.501859 +vt 0.753036 0.486989 +vt 0.708502 0.501859 +vt 0.728745 0.486989 +vt 0.688259 0.486989 +vt 0.704453 0.486989 +vt 0.748988 0.486989 +vt 0.744939 0.479554 +vt 0.748988 0.479554 +vt 0.740891 0.486989 +vt 0.736842 0.479554 +vt 0.740891 0.479554 +vt 0.732794 0.486989 +vt 0.728745 0.479554 +vt 0.732794 0.479554 +vt 0.724696 0.486989 +vt 0.720648 0.479554 +vt 0.724696 0.479554 +vt 0.753036 0.486989 +vt 0.753036 0.479554 +vt 0.744939 0.486989 +vt 0.736842 0.486989 +vt 0.728745 0.486989 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.777328 0.542751 +vt 0.773279 0.553903 +vt 0.777328 0.553903 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.793522 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.801619 0.516729 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.785425 0.516729 +vt 0.793522 0.572491 +vt 0.785425 0.572491 +vt 0.801619 0.516729 +vt 0.801619 0.572491 +vt 0.809717 0.572491 +vt 0.809717 0.516729 +vt 0.777328 0.572491 +vt 0.777328 0.516729 +vt 0.838057 0.579926 +vt 0.854251 0.579926 +vt 0.854251 0.594796 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.562753 0.442379 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.777328 0.576208 +vt 0.777328 0.598513 +vt 0.663968 0.486989 +vt 0.761134 0.486989 +vt 0.736842 0.486989 +vt 0.712551 0.486989 +vt 0.720648 0.486989 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vt 0.793522 0.516729 +vt 0.838057 0.594796 +vt 0.834008 0.587361 +vt 0.846154 0.576208 +vt 0.858300 0.587361 +vt 0.846154 0.598513 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9239 0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.5556 0.8315 0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.9808 0.1951 0.0000 +vn -0.9239 0.3827 0.0001 +vn 1.0000 0.0000 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn -0.8315 -0.5556 -0.0000 +vn -0.9239 -0.3827 -0.0001 +vn -0.9239 -0.3827 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.1951 -0.9808 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.5556 -0.8315 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9808 -0.1951 -0.0000 +vn 0.8315 0.5556 0.0000 +vn 0.9239 0.3827 -0.0001 +vn 0.1951 0.9808 0.0000 +vn 0.3827 0.9239 -0.0000 +vn 0.9808 0.1951 0.0000 +vn -0.5556 -0.8315 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn -0.8315 0.5556 0.0000 +vn 0.1951 -0.9808 -0.0000 +vn -0.1951 0.9808 0.0000 +vn 0.8315 -0.5556 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.5556 0.8315 0.0000 +vn -0.7071 0.7071 0.0001 +vn 0.0000 0.8944 0.4472 +vn 0.6325 0.6325 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.6325 -0.6325 0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.6325 -0.6325 0.4472 +vn 0.8944 -0.0000 0.4472 +s off +f 165/283/47 166/284/47 167/285/47 +f 168/286/47 169/287/47 170/288/47 +f 171/289/48 172/290/48 173/291/48 +f 174/292/48 175/293/48 176/294/48 +f 177/295/48 178/296/48 179/297/48 +f 180/298/47 181/299/47 182/300/47 +f 183/301/48 184/302/48 185/303/48 +f 186/304/47 187/305/47 188/306/47 +f 189/307/47 190/308/47 191/309/47 +f 192/310/48 193/311/48 194/312/48 +f 195/313/47 196/314/47 197/315/47 +f 198/316/48 199/317/48 200/318/48 +f 201/319/48 202/320/48 203/321/48 +f 204/322/48 205/323/48 206/324/48 +f 207/325/47 208/326/47 209/327/47 +f 210/328/47 211/329/47 212/330/47 +f 213/331/47 214/332/47 215/333/47 +f 216/334/47 217/335/47 218/336/47 +f 219/337/48 220/338/48 221/339/48 +f 222/340/48 223/341/48 224/342/48 +f 225/343/48 226/344/48 227/345/48 +f 228/346/48 229/347/48 230/348/48 +f 231/349/48 232/350/48 233/351/48 +f 234/352/48 235/353/48 236/354/48 +f 237/355/48 238/356/48 239/357/48 +f 240/358/48 241/359/48 242/360/48 +f 229/347/48 243/361/48 244/362/48 +f 245/363/47 246/364/47 247/365/47 +f 248/366/47 249/367/47 250/368/47 +f 251/369/47 252/370/47 253/371/47 +f 254/372/47 255/373/47 256/374/47 +f 257/375/47 258/376/47 259/377/47 +f 260/378/47 261/379/47 262/380/47 +f 263/381/47 264/382/47 265/383/47 +f 266/384/47 267/385/47 268/386/47 +f 269/387/47 270/388/47 271/389/47 +f 272/390/47 273/391/47 165/283/47 +f 165/283/47 274/392/47 166/284/47 +f 166/284/47 275/393/47 167/285/47 +f 167/285/47 276/394/47 272/390/47 +f 272/390/47 165/283/47 167/285/47 +f 169/287/47 277/395/47 170/288/47 +f 277/395/47 278/396/47 170/288/47 +f 278/396/47 279/397/47 170/288/47 +f 170/288/47 280/398/47 281/399/47 +f 281/399/47 168/286/47 170/288/47 +f 173/291/48 282/400/48 283/401/48 +f 283/401/48 284/402/48 173/291/48 +f 284/402/48 171/289/48 173/291/48 +f 171/289/48 285/403/48 172/290/48 +f 172/290/48 286/404/48 173/291/48 +f 176/294/48 287/405/48 288/406/48 +f 288/406/48 289/407/48 174/292/48 +f 174/292/48 290/408/48 175/293/48 +f 175/293/48 291/409/48 176/294/48 +f 176/294/48 288/406/48 174/292/48 +f 179/297/48 292/410/48 293/411/48 +f 293/411/48 294/412/48 179/297/48 +f 294/412/48 177/295/48 179/297/48 +f 177/295/48 295/413/48 178/296/48 +f 178/296/48 296/414/48 179/297/48 +f 180/298/47 297/415/47 181/299/47 +f 181/299/47 298/416/47 182/300/47 +f 182/300/47 299/417/47 300/418/47 +f 300/418/47 301/419/47 182/300/47 +f 301/419/47 180/298/47 182/300/47 +f 185/303/48 302/420/48 303/421/48 +f 303/421/48 304/422/48 185/303/48 +f 304/422/48 183/301/48 185/303/48 +f 183/301/48 305/423/48 184/302/48 +f 184/302/48 306/424/48 185/303/48 +f 187/305/47 307/425/47 188/306/47 +f 307/425/47 308/426/47 188/306/47 +f 308/426/47 309/427/47 188/306/47 +f 188/306/47 310/428/47 311/429/47 +f 311/429/47 186/304/47 188/306/47 +f 190/308/47 312/430/47 191/309/47 +f 312/430/47 313/431/47 191/309/47 +f 313/431/47 314/432/47 191/309/47 +f 191/309/47 315/433/47 316/434/47 +f 316/434/47 189/307/47 191/309/47 +f 194/312/48 317/435/48 318/436/48 +f 318/436/48 319/437/48 194/312/48 +f 319/437/48 192/310/48 194/312/48 +f 192/310/48 320/438/48 193/311/48 +f 193/311/48 321/439/48 194/312/48 +f 196/314/47 322/440/47 197/315/47 +f 322/440/47 323/441/47 197/315/47 +f 323/441/47 324/442/47 197/315/47 +f 197/315/47 325/443/47 326/444/47 +f 326/444/47 195/313/47 197/315/47 +f 200/318/48 327/445/48 328/446/48 +f 328/446/48 329/447/48 200/318/48 +f 329/447/48 198/316/48 200/318/48 +f 198/316/48 330/448/48 199/317/48 +f 199/317/48 331/449/48 200/318/48 +f 203/321/48 332/450/48 333/451/48 +f 333/451/48 334/452/48 203/321/48 +f 334/452/48 201/319/48 203/321/48 +f 201/319/48 335/453/48 202/320/48 +f 202/320/48 336/454/48 203/321/48 +f 206/324/48 337/455/48 338/456/48 +f 338/456/48 339/457/48 206/324/48 +f 339/457/48 204/322/48 206/324/48 +f 204/322/48 340/458/48 205/323/48 +f 205/323/48 341/459/48 206/324/48 +f 208/326/47 342/460/47 209/327/47 +f 342/460/47 343/461/47 209/327/47 +f 343/461/47 344/462/47 209/327/47 +f 209/327/47 345/463/47 346/464/47 +f 346/464/47 207/325/47 209/327/47 +f 212/330/47 347/465/47 210/328/47 +f 347/465/47 348/466/47 210/328/47 +f 348/466/47 349/467/47 210/328/47 +f 210/328/47 350/468/47 211/329/47 +f 211/329/47 351/469/47 212/330/47 +f 215/333/47 352/470/47 353/471/47 +f 353/471/47 354/472/47 213/331/47 +f 213/331/47 355/473/47 214/332/47 +f 214/332/47 356/474/47 215/333/47 +f 215/333/47 353/471/47 213/331/47 +f 216/334/47 357/475/47 217/335/47 +f 217/335/47 358/476/47 218/336/47 +f 218/336/47 359/477/47 360/478/47 +f 360/478/47 361/479/47 218/336/47 +f 361/479/47 216/334/47 218/336/47 +f 220/338/48 362/480/48 363/481/48 +f 363/481/48 364/482/48 365/483/48 +f 221/339/48 244/362/48 219/337/48 +f 244/362/48 366/484/48 219/337/48 +f 363/481/48 365/483/48 220/338/48 +f 365/483/48 221/339/48 220/338/48 +f 223/341/48 367/485/48 368/486/48 +f 368/486/48 369/487/48 370/488/48 +f 224/342/48 366/484/48 222/340/48 +f 366/484/48 243/361/48 222/340/48 +f 368/486/48 370/488/48 223/341/48 +f 370/488/48 224/342/48 223/341/48 +f 226/344/48 371/489/48 372/490/48 +f 372/490/48 373/491/48 374/492/48 +f 227/345/48 243/361/48 225/343/48 +f 243/361/48 375/493/48 225/343/48 +f 372/490/48 374/492/48 226/344/48 +f 374/492/48 227/345/48 226/344/48 +f 376/494/48 377/495/48 378/496/48 +f 378/496/48 379/497/48 380/498/48 +f 228/346/48 375/493/48 229/347/48 +f 378/496/48 380/498/48 376/494/48 +f 380/498/48 228/346/48 376/494/48 +f 230/348/48 376/494/48 228/346/48 +f 381/499/48 382/500/48 383/501/48 +f 383/501/48 384/502/48 385/503/48 +f 231/349/48 229/347/48 232/350/48 +f 383/501/48 385/503/48 381/499/48 +f 385/503/48 231/349/48 381/499/48 +f 233/351/48 381/499/48 231/349/48 +f 235/353/48 386/504/48 387/505/48 +f 387/505/48 388/506/48 389/507/48 +f 236/354/48 232/350/48 234/352/48 +f 232/350/48 390/508/48 234/352/48 +f 387/505/48 389/507/48 235/353/48 +f 389/507/48 236/354/48 235/353/48 +f 391/509/48 390/508/48 392/510/48 +f 390/508/48 393/511/48 392/510/48 +f 238/356/48 394/512/48 239/357/48 +f 239/357/48 391/509/48 237/355/48 +f 391/509/48 392/510/48 237/355/48 +f 237/355/48 395/513/48 238/356/48 +f 241/359/48 396/514/48 397/515/48 +f 397/515/48 398/516/48 399/517/48 +f 242/360/48 393/511/48 240/358/48 +f 393/511/48 244/362/48 240/358/48 +f 397/515/48 399/517/48 241/359/48 +f 399/517/48 242/360/48 241/359/48 +f 244/362/48 393/511/48 390/508/48 +f 390/508/48 232/350/48 229/347/48 +f 229/347/48 375/493/48 243/361/48 +f 243/361/48 366/484/48 244/362/48 +f 244/362/48 390/508/48 229/347/48 +f 400/518/47 270/388/47 401/519/47 +f 400/518/47 401/519/47 402/520/47 +f 247/365/47 403/521/47 245/363/47 +f 245/363/47 400/518/47 402/520/47 +f 246/364/47 404/522/47 247/365/47 +f 245/363/47 402/520/47 246/364/47 +f 405/523/47 406/524/47 270/388/47 +f 405/523/47 270/388/47 407/525/47 +f 249/367/47 408/526/47 250/368/47 +f 250/368/47 405/523/47 407/525/47 +f 248/366/47 409/527/47 249/367/47 +f 250/368/47 407/525/47 248/366/47 +f 410/528/47 271/389/47 406/524/47 +f 410/528/47 406/524/47 411/529/47 +f 253/371/47 412/530/47 251/369/47 +f 251/369/47 410/528/47 411/529/47 +f 252/370/47 413/531/47 253/371/47 +f 251/369/47 411/529/47 252/370/47 +f 414/532/47 415/533/47 271/389/47 +f 414/532/47 271/389/47 416/534/47 +f 255/373/47 417/535/47 256/374/47 +f 256/374/47 414/532/47 416/534/47 +f 254/372/47 418/536/47 255/373/47 +f 256/374/47 416/534/47 254/372/47 +f 419/537/47 420/538/47 415/533/47 +f 419/537/47 415/533/47 421/539/47 +f 258/376/47 422/540/47 259/377/47 +f 259/377/47 419/537/47 421/539/47 +f 257/375/47 423/541/47 258/376/47 +f 259/377/47 421/539/47 257/375/47 +f 424/542/47 264/382/47 420/538/47 +f 424/542/47 420/538/47 425/543/47 +f 261/379/47 426/544/47 262/380/47 +f 262/380/47 424/542/47 425/543/47 +f 260/378/47 427/545/47 261/379/47 +f 262/380/47 425/543/47 260/378/47 +f 428/546/47 429/547/47 430/548/47 +f 430/548/47 431/549/47 432/550/47 +f 263/381/47 269/387/47 264/382/47 +f 430/548/47 432/550/47 428/546/47 +f 432/550/47 263/381/47 265/383/47 +f 265/383/47 428/546/47 432/550/47 +f 433/551/47 401/519/47 269/387/47 +f 433/551/47 269/387/47 434/552/47 +f 268/386/47 435/553/47 266/384/47 +f 266/384/47 433/551/47 434/552/47 +f 267/385/47 436/554/47 268/386/47 +f 266/384/47 434/552/47 267/385/47 +f 269/387/47 401/519/47 270/388/47 +f 270/388/47 406/524/47 271/389/47 +f 271/389/47 415/533/47 420/538/47 +f 420/538/47 264/382/47 271/389/47 +f 264/382/47 269/387/47 271/389/47 +s 1 +f 398/555/49 267/556/50 399/557/50 +f 395/558/51 430/559/52 238/560/52 +f 385/561/53 421/562/54 231/563/54 +f 373/564/55 252/565/56 374/566/56 +f 396/567/57 268/568/55 397/569/58 +f 389/570/54 425/571/59 236/572/59 +f 394/573/60 428/574/59 239/575/59 +f 362/576/61 247/577/62 363/578/63 +f 231/563/54 415/579/59 229/580/59 +f 379/581/63 254/582/64 380/583/64 +f 367/584/65 249/585/66 368/586/66 +f 229/580/59 414/587/50 230/588/50 +f 388/589/67 260/590/54 389/570/54 +f 371/591/68 253/592/67 372/593/67 +f 230/588/50 256/594/69 376/595/69 +f 384/596/66 257/597/53 385/561/53 +f 377/598/70 255/599/60 378/600/60 +f 225/601/59 251/602/50 226/603/50 +f 382/604/71 258/605/72 383/606/49 +f 375/607/54 410/608/59 225/601/59 +f 386/609/73 261/610/74 387/611/74 +f 228/612/53 271/613/54 375/607/54 +f 384/596/75 258/605/72 423/614/75 +f 227/615/64 406/616/53 243/617/53 +f 368/586/66 409/618/76 369/619/76 +f 380/583/64 416/620/53 228/612/53 +f 364/621/77 247/577/62 404/622/77 +f 374/566/56 411/623/64 227/615/64 +f 397/569/55 436/624/78 398/555/78 +f 243/617/53 405/625/54 222/626/54 +f 372/593/67 413/627/79 373/564/79 +f 223/628/59 405/625/54 250/629/59 +f 238/560/52 429/630/80 394/573/80 +f 219/631/53 245/632/54 220/633/54 +f 378/600/60 418/634/81 379/581/81 +f 370/635/82 407/636/56 224/637/56 +f 387/611/74 427/638/83 388/589/83 +f 366/639/64 400/640/53 219/631/53 +f 376/595/69 417/641/52 377/642/52 +f 221/643/82 401/644/56 244/645/56 +f 226/603/50 412/646/74 371/647/74 +f 224/637/56 270/648/64 366/639/64 +f 223/628/59 408/649/49 367/650/49 +f 241/651/53 433/652/64 266/653/53 +f 220/633/54 403/654/60 362/655/60 +f 365/656/69 402/657/82 221/643/82 +f 396/658/67 266/653/53 435/659/67 +f 244/645/56 433/652/64 240/660/64 +f 239/575/59 265/661/50 391/662/50 +f 237/663/64 431/664/66 395/665/66 +f 393/666/82 263/667/56 392/668/56 +f 391/662/50 264/669/69 390/670/69 +f 235/671/56 426/672/63 386/673/63 +f 399/557/50 434/674/69 242/675/69 +f 390/670/69 424/676/82 234/677/82 +f 381/678/82 422/679/55 382/680/55 +f 392/668/56 432/681/64 237/663/64 +f 234/677/82 262/682/56 235/671/56 +f 370/635/82 409/618/52 248/683/82 +f 242/675/69 269/684/82 393/666/82 +f 232/685/50 419/686/69 233/687/69 +f 364/621/74 246/688/69 365/656/69 +f 233/687/69 259/689/82 381/678/82 +f 236/572/59 420/690/50 232/685/50 +f 290/691/54 167/692/59 275/693/54 +f 291/694/64 166/695/53 274/696/64 +f 175/697/53 275/693/54 166/695/53 +f 176/698/56 274/696/64 165/699/56 +f 288/700/69 273/701/82 272/702/69 +f 289/703/50 272/704/69 276/705/50 +f 284/706/69 216/707/82 361/708/69 +f 173/709/64 358/710/53 217/711/64 +f 285/712/59 360/713/50 359/714/59 +f 360/713/50 284/706/69 361/708/69 +f 282/715/56 217/711/64 357/716/56 +f 293/717/56 297/718/64 180/719/56 +f 178/720/59 299/721/50 182/722/59 +f 287/723/82 165/699/56 273/701/82 +f 167/692/59 289/703/50 276/705/50 +f 300/724/69 294/725/82 301/726/82 +f 294/725/82 180/727/56 301/726/82 +f 292/728/64 181/729/53 297/718/64 +f 179/730/53 298/731/54 181/729/53 +f 295/732/50 300/724/69 299/721/50 +f 283/733/82 357/716/56 216/734/82 +f 306/735/59 188/736/50 309/737/59 +f 185/738/54 309/737/59 308/739/54 +f 184/740/50 310/741/69 188/736/50 +f 305/742/69 311/743/82 310/741/69 +f 296/744/54 182/722/59 298/731/54 +f 304/745/56 187/746/64 186/747/56 +f 311/743/82 304/745/56 186/747/56 +f 302/748/53 308/739/54 307/749/53 +f 318/750/53 312/751/54 190/752/53 +f 320/753/82 316/754/56 315/755/82 +f 321/756/50 191/757/69 314/758/50 +f 319/759/64 190/760/53 189/761/64 +f 194/762/59 314/758/50 313/763/59 +f 303/764/64 307/749/53 187/765/64 +f 316/754/56 319/759/64 189/761/64 +f 317/766/54 313/763/59 312/751/54 +f 199/767/82 325/768/56 197/769/82 +f 200/770/50 324/771/69 323/772/50 +f 329/773/53 196/774/54 195/775/53 +f 193/776/69 315/755/82 191/757/69 +f 327/777/59 323/772/50 322/778/59 +f 328/779/54 322/778/59 196/780/54 +f 331/781/69 197/769/82 324/771/69 +f 326/782/64 329/773/53 195/775/53 +f 335/783/64 346/784/53 345/785/64 +f 332/786/50 343/787/69 342/788/50 +f 437/789/82 438/790/69 439/791/82 +f 440/792/69 441/793/50 438/790/69 +f 202/794/56 345/785/64 209/795/56 +f 333/796/59 342/788/50 208/797/59 +f 334/798/54 208/799/59 207/800/54 +f 346/784/53 334/798/54 207/800/54 +f 203/801/69 344/802/82 343/787/69 +f 336/803/82 209/795/56 344/802/82 +f 330/804/56 326/782/64 325/768/56 +f 281/805/54 339/806/59 168/807/59 +f 205/808/64 280/809/53 170/810/64 +f 341/811/56 170/810/64 279/812/56 +f 337/813/69 278/814/82 277/815/69 +f 442/816/49 443/817/50 444/818/49 +f 206/819/82 279/812/56 278/814/82 +f 339/806/59 169/820/50 168/807/59 +f 445/821/55 439/791/84 446/822/55 +f 338/823/50 277/815/69 169/824/50 +f 340/825/53 281/805/54 280/809/53 +f 447/826/85 351/827/86 448/828/86 +f 447/829/85 347/830/87 212/831/85 +f 449/832/87 348/833/88 347/834/87 +f 450/835/88 349/836/89 348/837/88 +f 451/838/90 349/839/89 452/840/89 +f 453/841/91 210/842/90 451/838/90 +f 454/843/92 350/844/91 453/841/91 +f 454/843/92 351/845/86 211/846/92 +f 356/847/50 455/848/59 456/849/50 +f 355/850/54 457/851/53 458/852/54 +f 354/853/64 459/854/56 460/855/64 +f 352/856/82 461/857/69 462/858/82 +f 215/859/69 456/849/50 461/860/69 +f 214/861/59 458/852/54 455/848/59 +f 213/862/53 460/855/64 457/851/53 +f 353/863/56 462/858/82 459/854/56 +f 463/864/47 464/865/47 443/866/47 +f 286/867/53 218/868/54 358/710/53 +f 172/869/54 359/714/59 218/868/54 +f 465/870/69 466/871/50 467/872/69 +f 468/873/50 469/874/59 466/871/50 +f 470/875/60 471/876/59 472/877/60 +f 465/870/69 473/878/52 474/879/52 +f 475/880/47 476/881/47 471/882/47 +f 477/883/50 478/884/59 479/885/50 +f 480/886/59 481/887/54 478/884/59 +f 482/888/67 483/889/54 484/890/67 +f 477/883/50 485/891/74 486/892/74 +f 487/893/47 488/894/47 483/895/47 +f 489/896/59 490/897/54 491/898/59 +f 492/899/54 493/900/53 490/897/54 +f 494/901/66 495/902/53 496/903/66 +f 489/896/59 497/904/49 498/905/49 +f 499/906/47 500/907/47 495/908/47 +f 501/909/54 502/910/53 503/911/54 +f 504/912/53 505/913/64 502/910/53 +f 506/914/63 507/915/64 508/916/63 +f 501/909/54 509/917/60 510/918/60 +f 511/919/47 512/920/47 507/921/47 +f 513/922/53 514/923/64 515/924/53 +f 516/925/64 517/926/56 514/923/64 +f 518/927/55 519/928/56 520/929/55 +f 513/922/53 521/930/67 522/931/67 +f 523/932/47 524/933/47 519/934/47 +f 525/935/64 526/936/56 527/937/64 +f 528/938/56 529/939/82 526/936/56 +f 530/940/52 531/941/82 532/942/52 +f 525/935/64 533/943/66 534/944/66 +f 535/945/47 536/946/47 531/947/47 +f 537/948/56 538/949/82 539/950/56 +f 538/949/82 540/951/69 541/952/69 +f 542/953/74 540/951/69 543/954/74 +f 537/948/56 544/955/63 545/956/63 +f 546/957/47 547/958/47 540/959/47 +f 398/555/49 436/624/49 267/556/50 +f 395/558/51 431/960/51 430/559/52 +f 385/561/53 257/597/53 421/562/54 +f 373/564/55 413/627/55 252/565/56 +f 396/567/57 435/961/57 268/568/55 +f 389/570/54 260/590/54 425/571/59 +f 394/573/60 429/630/60 428/574/59 +f 362/576/61 403/962/61 247/577/63 +f 231/563/54 421/562/54 415/579/59 +f 379/581/63 418/634/63 254/582/64 +f 367/584/65 408/963/65 249/585/66 +f 229/580/59 415/579/59 414/587/50 +f 388/589/67 427/638/67 260/590/54 +f 371/591/68 412/964/68 253/592/67 +f 230/588/50 414/587/50 256/594/69 +f 384/596/66 423/614/66 257/597/53 +f 377/598/70 417/965/70 255/599/60 +f 225/601/59 410/608/59 251/602/50 +f 382/604/71 422/966/71 258/605/49 +f 375/607/54 271/613/54 410/608/59 +f 386/609/73 426/967/73 261/610/74 +f 228/612/53 416/620/53 271/613/54 +f 384/596/75 383/606/49 258/605/72 +f 227/615/64 411/623/64 406/616/53 +f 368/586/66 249/585/66 409/618/76 +f 380/583/64 254/582/64 416/620/53 +f 364/621/77 363/578/63 247/577/62 +f 374/566/56 252/565/56 411/623/64 +f 397/569/58 268/568/55 436/624/78 +f 243/617/53 406/616/53 405/625/54 +f 372/593/67 253/592/67 413/627/79 +f 223/628/59 222/626/54 405/625/54 +f 238/560/52 430/559/52 429/630/80 +f 219/631/53 400/640/53 245/632/54 +f 378/600/60 255/599/60 418/634/81 +f 370/635/82 248/683/82 407/636/56 +f 387/611/74 261/610/74 427/638/83 +f 366/639/64 270/648/64 400/640/53 +f 376/595/69 256/594/69 417/641/52 +f 221/643/82 402/657/82 401/644/56 +f 226/603/50 251/602/50 412/646/74 +f 224/637/56 407/636/56 270/648/64 +f 223/628/59 250/629/59 408/649/49 +f 241/651/53 240/660/64 433/652/64 +f 220/633/54 245/632/54 403/654/60 +f 365/656/69 246/688/69 402/657/82 +f 396/658/67 241/651/53 266/653/53 +f 244/645/56 401/644/56 433/652/64 +f 239/575/59 428/574/59 265/661/50 +f 237/663/64 432/681/64 431/664/66 +f 393/666/82 269/684/82 263/667/56 +f 391/662/50 265/661/50 264/669/69 +f 235/671/56 262/682/56 426/672/63 +f 399/557/50 267/556/50 434/674/69 +f 390/670/69 264/669/69 424/676/82 +f 381/678/82 259/689/82 422/679/55 +f 392/668/56 263/667/56 432/681/64 +f 234/677/82 424/676/82 262/682/56 +f 370/635/82 369/619/52 409/618/52 +f 242/675/69 434/674/69 269/684/82 +f 232/685/50 420/690/50 419/686/69 +f 364/621/74 404/622/74 246/688/69 +f 233/687/69 419/686/69 259/689/82 +f 236/572/59 425/571/59 420/690/50 +f 290/691/54 174/968/59 167/692/59 +f 291/694/64 175/697/53 166/695/53 +f 175/697/53 290/691/54 275/693/54 +f 176/698/56 291/694/64 274/696/64 +f 288/700/69 287/723/82 273/701/82 +f 289/703/50 288/969/69 272/704/69 +f 284/706/69 283/970/82 216/707/82 +f 173/709/64 286/867/53 358/710/53 +f 285/712/59 171/971/50 360/713/50 +f 360/713/50 171/971/50 284/706/69 +f 282/715/56 173/709/64 217/711/64 +f 293/717/56 292/728/64 297/718/64 +f 178/720/59 295/732/50 299/721/50 +f 287/723/82 176/698/56 165/699/56 +f 167/692/59 174/968/59 289/703/50 +f 300/724/69 177/972/69 294/725/82 +f 294/725/82 293/973/56 180/727/56 +f 292/728/64 179/730/53 181/729/53 +f 179/730/53 296/744/54 298/731/54 +f 295/732/50 177/972/69 300/724/69 +f 283/733/82 282/715/56 357/716/56 +f 306/735/59 184/740/50 188/736/50 +f 185/738/54 306/735/59 309/737/59 +f 184/740/50 305/742/69 310/741/69 +f 305/742/69 183/974/82 311/743/82 +f 296/744/54 178/720/59 182/722/59 +f 304/745/56 303/975/64 187/746/64 +f 311/743/82 183/974/82 304/745/56 +f 302/748/53 185/738/54 308/739/54 +f 318/750/53 317/766/54 312/751/54 +f 320/753/82 192/976/56 316/754/56 +f 321/756/50 193/776/69 191/757/69 +f 319/759/64 318/977/53 190/760/53 +f 194/762/59 321/756/50 314/758/50 +f 303/764/64 302/748/53 307/749/53 +f 316/754/56 192/976/56 319/759/64 +f 317/766/54 194/762/59 313/763/59 +f 199/767/82 330/804/56 325/768/56 +f 200/770/50 331/781/69 324/771/69 +f 329/773/53 328/978/54 196/774/54 +f 193/776/69 320/753/82 315/755/82 +f 327/777/59 200/770/50 323/772/50 +f 328/779/54 327/777/59 322/778/59 +f 331/781/69 199/767/82 197/769/82 +f 326/782/64 198/979/64 329/773/53 +f 335/783/64 201/980/53 346/784/53 +f 332/786/50 203/801/69 343/787/69 +f 437/789/82 440/792/69 438/790/69 +f 440/792/69 443/817/50 441/793/50 +f 202/794/56 335/783/64 345/785/64 +f 333/796/59 332/786/50 342/788/50 +f 334/798/54 333/981/59 208/799/59 +f 346/784/53 201/980/53 334/798/54 +f 203/801/69 336/803/82 344/802/82 +f 336/803/82 202/794/56 209/795/56 +f 330/804/56 198/979/64 326/782/64 +f 281/805/54 204/982/54 339/806/59 +f 205/808/64 340/825/53 280/809/53 +f 341/811/56 205/808/64 170/810/64 +f 337/813/69 206/819/82 278/814/82 +f 442/816/49 441/793/50 443/817/50 +f 206/819/82 341/811/56 279/812/56 +f 339/806/59 338/983/50 169/820/50 +f 445/821/55 437/789/82 439/791/82 +f 338/823/50 337/813/69 277/815/69 +f 340/825/53 204/982/54 281/805/54 +f 447/826/85 212/984/85 351/827/86 +f 447/829/85 449/832/87 347/830/87 +f 449/832/87 450/835/88 348/833/88 +f 450/835/88 452/840/89 349/836/89 +f 451/838/90 210/985/90 349/839/89 +f 453/841/91 350/986/91 210/842/90 +f 454/843/92 211/987/92 350/844/91 +f 454/843/92 448/828/86 351/845/86 +f 356/847/50 214/861/59 455/848/59 +f 355/850/54 213/862/53 457/851/53 +f 354/853/64 353/863/56 459/854/56 +f 352/856/82 215/988/69 461/857/69 +f 215/859/69 356/847/50 456/849/50 +f 214/861/59 355/850/54 458/852/54 +f 213/862/53 354/853/64 460/855/64 +f 353/863/56 352/856/82 462/858/82 +f 437/989/47 445/990/47 463/864/47 +f 463/864/47 548/991/47 464/865/47 +f 464/865/47 444/992/47 443/866/47 +f 443/866/47 440/993/47 437/989/47 +f 437/989/47 463/864/47 443/866/47 +f 286/867/53 172/869/54 218/868/54 +f 172/869/54 285/712/59 359/714/59 +f 465/870/69 468/873/50 466/871/50 +f 468/873/50 471/876/59 469/874/59 +f 470/875/60 469/874/59 471/876/59 +f 465/870/69 467/872/69 473/878/52 +f 465/994/47 474/995/47 475/880/47 +f 475/880/47 549/996/47 476/881/47 +f 476/881/47 472/997/47 471/882/47 +f 471/882/47 468/998/47 465/994/47 +f 465/994/47 475/880/47 471/882/47 +f 477/883/50 480/886/59 478/884/59 +f 480/886/59 483/889/54 481/887/54 +f 482/888/67 481/887/54 483/889/54 +f 477/883/50 479/885/50 485/891/74 +f 477/999/47 486/1000/47 487/893/47 +f 487/893/47 550/1001/47 488/894/47 +f 488/894/47 484/1002/47 483/895/47 +f 483/895/47 480/1003/47 477/999/47 +f 477/999/47 487/893/47 483/895/47 +f 489/896/59 492/899/54 490/897/54 +f 492/899/54 495/902/53 493/900/53 +f 494/901/66 493/900/53 495/902/53 +f 489/896/59 491/898/59 497/904/49 +f 489/1004/47 498/1005/47 499/906/47 +f 499/906/47 551/1006/47 500/907/47 +f 500/907/47 496/1007/47 495/908/47 +f 495/908/47 492/1008/47 489/1004/47 +f 489/1004/47 499/906/47 495/908/47 +f 501/909/54 504/912/53 502/910/53 +f 504/912/53 507/915/64 505/913/64 +f 506/914/63 505/913/64 507/915/64 +f 501/909/54 503/911/54 509/917/60 +f 501/1009/47 510/1010/47 511/919/47 +f 511/919/47 552/1011/47 512/920/47 +f 512/920/47 508/1012/47 507/921/47 +f 507/921/47 504/1013/47 501/1009/47 +f 501/1009/47 511/919/47 507/921/47 +f 513/922/53 516/925/64 514/923/64 +f 516/925/64 519/928/56 517/926/56 +f 518/927/55 517/926/56 519/928/56 +f 513/922/53 515/924/53 521/930/67 +f 513/1014/47 522/1015/47 523/932/47 +f 523/932/47 553/1016/47 524/933/47 +f 524/933/47 520/1017/47 519/934/47 +f 519/934/47 516/1018/47 513/1014/47 +f 513/1014/47 523/932/47 519/934/47 +f 525/935/64 528/938/56 526/936/56 +f 528/938/56 531/941/82 529/939/82 +f 530/940/52 529/939/82 531/941/82 +f 525/935/64 527/937/64 533/943/66 +f 525/1019/47 534/1020/47 535/945/47 +f 535/945/47 554/1021/47 536/946/47 +f 536/946/47 532/1022/47 531/947/47 +f 531/947/47 528/1023/47 525/1019/47 +f 525/1019/47 535/945/47 531/947/47 +f 537/948/56 555/1024/82 538/949/82 +f 538/949/82 555/1024/82 540/951/69 +f 542/953/74 541/952/69 540/951/69 +f 537/948/56 539/950/56 544/955/63 +f 537/1025/47 545/1026/47 546/957/47 +f 546/957/47 556/1027/47 547/958/47 +f 547/958/47 543/1028/47 540/959/47 +f 540/959/47 555/1029/47 537/1025/47 +f 537/1025/47 546/957/47 540/959/47 +o Lid +v -1.931852 -1.478220 -1.193358 +v -2.173333 -1.945152 -5.266041 +v -2.414814 -1.956912 -5.377924 +v 1.931852 -1.478220 -1.193358 +v 2.173333 -1.945152 -5.266041 +v 1.690370 -1.489652 -1.302134 +v -1.690370 -1.489653 -1.302134 +v 2.414815 -1.956911 -5.377924 +v 1.673033 -2.438854 -1.092390 +v 2.091291 -3.156821 -5.243586 +v 0.965926 -3.142087 -1.018477 +v 1.207408 -4.035218 -5.145245 +v 0.000000 -3.399489 -0.991423 +v 0.000000 -4.356733 -5.109249 +v -1.207407 -4.035218 -5.145245 +v -0.965926 -3.142087 -1.018477 +v -2.091291 -3.156821 -5.243586 +v -1.673032 -2.438854 -1.092390 +v 1.882161 -3.025071 -5.145136 +v 1.086666 -3.815628 -5.056629 +v -1.086666 -3.815628 -5.056629 +v 0.000000 -4.104991 -5.024233 +v -1.882162 -3.025072 -5.145136 +v 1.463903 -2.330207 -1.213787 +v 0.845185 -2.945537 -1.149113 +v 0.000000 -3.170763 -1.125441 +v -0.845185 -2.945536 -1.149113 +v -1.463903 -2.330208 -1.213787 +vt 0.562753 0.382900 +vt 0.437247 0.390335 +vt 0.433198 0.382900 +vt 0.562753 0.598513 +vt 0.437247 0.591078 +vt 0.558704 0.591078 +vt 0.558704 0.390335 +vt 0.433198 0.598513 +vt 0.433198 0.732342 +vt 0.469636 0.605948 +vt 0.473684 0.732342 +vt 0.510121 0.605948 +vt 0.514170 0.732342 +vt 0.550607 0.605948 +vt 0.554656 0.732342 +vt 0.595142 0.732342 +vt 0.558704 0.605948 +vt 0.591093 0.605948 +vt 0.635628 0.732342 +vt 0.599190 0.605948 +vt 0.631579 0.605948 +vt 0.676113 0.732342 +vt 0.639676 0.605948 +vt 0.676113 0.605948 +vt 0.435223 0.739777 +vt 0.471660 0.739777 +vt 0.475708 0.739777 +vt 0.516194 0.739777 +vt 0.593117 0.739777 +vt 0.556680 0.739777 +vt 0.633603 0.739777 +vt 0.597166 0.739777 +vt 0.674089 0.739777 +vt 0.467611 0.598513 +vt 0.437247 0.605948 +vt 0.439271 0.598513 +vt 0.479757 0.598513 +vt 0.508097 0.598513 +vt 0.520243 0.598513 +vt 0.548583 0.598513 +vt 0.560729 0.598513 +vt 0.589069 0.598513 +vt 0.601215 0.598513 +vt 0.629555 0.598513 +vt 0.672065 0.605948 +vt 0.641700 0.598513 +vt 0.670040 0.598513 +vt 0.433198 0.390335 +vt 0.562753 0.420074 +vt 0.433198 0.423792 +vt 0.562753 0.453532 +vt 0.433198 0.457249 +vt 0.562753 0.486989 +vt 0.433198 0.490706 +vt 0.562753 0.494424 +vt 0.433198 0.524164 +vt 0.562753 0.527881 +vt 0.433198 0.557621 +vt 0.562753 0.561338 +vt 0.433198 0.591078 +vt 0.433198 0.605948 +vt 0.477733 0.605948 +vt 0.518219 0.605948 +vt 0.512146 0.739777 +vt 0.552631 0.739777 +vt 0.637652 0.739777 +vt 0.562753 0.394052 +vt 0.562753 0.427509 +vt 0.562753 0.460967 +vt 0.562753 0.520446 +vt 0.562753 0.553903 +vt 0.562753 0.587361 +vn 0.0045 0.9935 -0.1142 +vn 0.0042 0.9935 -0.1137 +vn -0.0042 0.9935 -0.1137 +vn -0.0045 0.9935 -0.1142 +vn 0.9599 -0.2434 0.1388 +vn 0.8606 -0.4802 0.1697 +vn 0.8601 -0.4811 0.1699 +vn 0.4970 -0.8417 0.2112 +vn 0.4964 -0.8420 0.2113 +vn -0.0000 -0.9740 0.2264 +vn -0.4964 -0.8420 0.2113 +vn -0.4970 -0.8417 0.2112 +vn -0.8601 -0.4811 0.1699 +vn -0.8606 -0.4802 0.1697 +vn -0.9599 -0.2436 0.1388 +vn -0.9598 -0.2440 0.1387 +vn -0.4199 0.0116 -0.9075 +vn -0.3663 0.1092 -0.9241 +vn -0.3661 0.1095 -0.9241 +vn -0.2117 0.2634 -0.9412 +vn 0.0000 0.3200 -0.9474 +vn -0.2115 0.2635 -0.9412 +vn 0.2115 0.2635 -0.9412 +vn 0.2117 0.2634 -0.9412 +vn 0.3661 0.1095 -0.9241 +vn 0.4199 0.0116 -0.9075 +vn 0.3662 0.1092 -0.9241 +vn -0.3573 0.3004 0.8844 +vn -0.4101 0.2039 0.8890 +vn -0.2063 0.4506 0.8686 +vn 0.0000 0.5055 0.8628 +vn 0.2063 0.4506 0.8686 +vn 0.3573 0.3004 0.8844 +vn 0.4101 0.2039 0.8890 +vn 0.9593 0.2425 -0.1449 +vn 0.8600 0.4790 -0.1761 +vn 0.8594 0.4800 -0.1763 +vn 0.4966 0.8402 -0.2177 +vn 0.4960 0.8406 -0.2178 +vn 0.0000 0.9725 -0.2330 +vn -0.4960 0.8406 -0.2178 +vn -0.4966 0.8402 -0.2177 +vn -0.8594 0.4800 -0.1763 +vn -0.8600 0.4790 -0.1761 +vn -0.9593 0.2424 -0.1449 +vn 0.9598 -0.2440 0.1387 +vn -0.9600 -0.2433 0.1388 +vn 0.9591 0.2432 -0.1448 +vn -0.9591 0.2432 -0.1448 +s off +f 557/1030/93 558/1031/93 559/1032/93 +f 560/1033/94 561/1034/94 562/1035/94 +f 557/1030/95 563/1036/95 558/1031/95 +f 560/1033/96 564/1037/96 561/1034/96 +s 1 +f 564/1038/97 565/1039/98 566/1040/99 +f 566/1040/99 567/1041/100 568/1042/101 +f 568/1042/101 569/1043/102 570/1044/102 +f 571/1045/103 569/1046/102 572/1047/104 +f 573/1048/105 572/1049/104 574/1050/106 +f 559/1051/107 574/1052/106 557/1053/108 +f 561/1054/109 566/1040/110 575/1055/111 +f 568/1042/112 575/1056/111 566/1040/110 +f 570/1044/113 576/1057/114 568/1042/112 +f 570/1044/113 577/1058/115 578/1059/113 +f 571/1045/116 579/1060/117 577/1061/115 +f 558/1062/118 573/1048/119 559/1051/118 +f 580/1063/120 560/1064/121 562/1065/121 +f 567/1041/122 580/1066/120 581/1067/122 +f 569/1043/123 581/1068/122 582/1069/123 +f 572/1047/124 582/1070/123 583/1071/124 +f 574/1050/125 583/1072/124 584/1073/125 +f 557/1074/126 584/1075/125 563/1076/126 +f 558/1077/127 584/1078/128 579/1079/129 +f 579/1079/129 583/1080/130 577/1081/131 +f 577/1081/131 582/1082/132 578/1083/132 +f 582/1084/132 576/1085/133 578/1083/132 +f 581/1086/134 575/1087/135 576/1085/133 +f 580/1088/136 561/1089/137 575/1087/135 +f 564/1038/97 560/1090/138 565/1039/98 +f 566/1040/99 565/1091/98 567/1041/100 +f 568/1042/101 567/1092/100 569/1043/102 +f 571/1045/103 570/1044/102 569/1046/102 +f 573/1048/105 571/1045/103 572/1049/104 +f 559/1051/139 573/1048/105 574/1052/106 +f 561/1054/109 564/1038/109 566/1040/110 +f 568/1042/112 576/1093/114 575/1056/111 +f 570/1044/113 578/1094/113 576/1057/114 +f 570/1044/113 571/1045/116 577/1058/115 +f 571/1045/116 573/1048/119 579/1060/117 +f 558/1062/118 579/1095/117 573/1048/119 +f 580/1063/120 565/1039/120 560/1064/121 +f 567/1041/122 565/1091/120 580/1066/120 +f 569/1043/123 567/1092/122 581/1068/122 +f 572/1047/124 569/1046/123 582/1070/123 +f 574/1050/125 572/1049/124 583/1072/124 +f 557/1074/126 574/1052/125 584/1075/125 +f 558/1077/127 563/1096/140 584/1078/128 +f 579/1079/129 584/1097/128 583/1080/130 +f 577/1081/131 583/1098/130 582/1082/132 +f 582/1084/132 581/1099/134 576/1085/133 +f 581/1086/134 580/1100/136 575/1087/135 +f 580/1088/136 562/1101/141 561/1089/137 +o Rifle +v -0.250000 0.603553 28.875000 +v 0.187500 0.452665 28.875000 +v 0.250000 0.603553 28.875000 +v -0.250000 -0.603553 28.875000 +v -0.452665 -0.187500 28.875000 +v -0.603553 -0.250000 28.875000 +v 0.250000 -0.603553 28.875000 +v -0.187500 -0.452665 28.875000 +v 0.603553 -0.250000 28.875000 +v 0.187500 -0.452665 28.875000 +v 0.452665 0.187500 28.875000 +v 0.452665 -0.187500 28.875000 +v 0.603553 0.250000 28.875000 +v -0.603553 0.250000 28.875000 +v -0.452665 0.187500 28.875000 +v -0.187500 0.452665 28.875000 +v -0.312500 1.254442 25.750000 +v -0.312500 1.254442 25.250000 +v -0.312500 1.129442 25.250000 +v 0.312500 1.254442 25.250000 +v 0.187500 1.254442 25.750000 +v 0.312500 1.254442 25.750000 +v -0.187500 1.254442 25.250000 +v 0.312500 0.754442 25.000000 +v 0.312500 -0.754442 25.000000 +v -0.312500 -0.754442 25.000000 +v 0.000000 1.129442 25.250000 +v 0.187500 1.254442 25.250000 +v -0.187500 1.254442 25.750000 +v 0.000000 1.129442 25.750000 +v -0.062500 1.129440 25.687500 +v -0.062500 1.254440 25.437500 +v -0.062500 1.129440 25.312500 +v 0.062500 1.254440 25.437500 +v 0.062500 1.129440 25.312500 +v 0.062500 1.129440 25.687500 +v 0.062500 1.254440 25.687500 +v 0.312500 1.129442 25.250000 +v 0.754441 -0.437500 16.250000 +v 0.312500 -1.256835 16.250000 +v -0.312500 -1.256835 16.250000 +v 0.312500 0.754441 16.625000 +v -0.312500 0.754441 16.625000 +v -0.754442 0.312500 16.625000 +v 0.312500 0.754442 25.750000 +v -0.312501 -1.728554 16.250000 +v 0.312500 -1.728554 16.500000 +v -0.312501 -1.728554 16.500000 +v 0.312500 -1.728554 16.250000 +v 0.312500 -1.256835 16.625000 +v 0.250120 -0.603553 1.375000 +v 0.603553 -0.791053 1.375000 +v 0.603553 -0.249999 1.375000 +v -0.250121 -0.603553 1.375000 +v -0.603554 -0.249999 1.375000 +v -0.603554 -0.791053 1.375000 +v 0.250000 0.603554 1.375000 +v 0.000000 0.853704 1.375000 +v -0.250000 0.603554 1.375000 +v 0.724444 0.250001 0.875000 +v 0.724444 -2.250000 -1.112240 +v 0.724444 0.250000 -1.375000 +v -0.724444 0.250001 0.875000 +v -0.724444 -2.250000 -1.112240 +v -0.724444 -2.249999 0.875000 +v -0.724444 0.250000 -5.625000 +v -0.724444 -2.250000 -7.375000 +v -0.724444 -2.250000 -5.345110 +v 0.724444 0.250000 -5.625000 +v 0.724444 -2.250000 -7.375000 +v 0.724444 0.250000 -7.375000 +v 2.091291 -0.757001 -5.512260 +v 2.091291 -3.156821 -5.243586 +v 0.000000 -4.356733 -5.109249 +v -1.673032 -2.438855 -1.092390 +v 1.673033 -2.438854 -1.092390 +v 0.000000 0.443049 -1.395290 +v 0.989610 -0.662817 -0.526995 +v 0.724445 -0.399105 -0.554712 +v 0.724445 -1.647005 -0.423552 +v -1.086666 -1.023055 -0.489132 +v -0.989609 -1.383293 -0.451269 +v -0.724444 -1.647005 -0.423552 +v 0.797917 -0.910582 -5.805677 +v 0.797917 -0.877917 -5.494890 +v 0.797917 -2.029418 -5.688082 +v -0.797916 -1.528797 -6.306297 +v -0.797916 -1.907145 -6.100872 +v -0.797916 -2.029418 -5.688082 +v 0.362222 0.877387 -7.375000 +v -0.627386 0.612222 -7.375000 +v -0.249999 2.500002 -11.843750 +v -0.124999 2.312502 -11.843750 +v -0.062499 2.375002 -11.843750 +v 0.250000 0.875002 -11.906250 +v 0.250002 2.500002 -11.843750 +v 0.250000 0.875002 -11.843750 +v -0.250000 0.875002 -11.843750 +v 0.250002 2.500002 -11.906250 +v 0.125001 2.312502 -11.906250 +v 0.062502 2.375002 -11.906250 +v -0.249999 2.500002 -11.906250 +v -0.250000 0.875002 -11.906250 +v 0.062502 2.375002 -11.843750 +v -0.124999 2.312502 -11.906250 +v -0.125000 0.875001 -11.843750 +v -0.125000 0.875001 -11.906250 +v -0.062499 2.375002 -11.906250 +v 0.125001 2.312502 -11.843750 +v 0.125000 0.875002 -11.843750 +v 0.125000 0.875002 -11.906250 +v -0.125000 1.250002 -11.968750 +v -0.187500 1.250002 -11.906250 +v -0.125000 1.250002 -11.906250 +v 0.125000 1.250002 -11.968750 +v 0.000000 1.125002 -11.906250 +v 0.125000 1.250002 -11.906250 +v 0.187500 1.250002 -11.906250 +v -0.375000 1.062502 -11.968750 +v 0.187500 1.062502 -11.906250 +v -0.187500 1.062502 -11.906250 +v -0.375000 1.250002 -11.781250 +v -0.375000 1.250002 -11.968750 +v 0.375000 1.250002 -11.968750 +v 0.375000 1.062502 -11.781250 +v 0.375000 1.062502 -11.968750 +v 0.187500 1.250001 -11.781250 +v 0.187500 1.062502 -11.781250 +v -0.375000 1.062502 -11.781250 +v -0.187500 1.250002 -11.781250 +v -0.187500 1.062501 -11.781250 +v 0.375000 1.250002 -11.781250 +v 0.000000 1.125002 -11.968750 +v 0.375000 0.000002 -12.125000 +v 0.250000 0.875002 -12.000000 +v 0.375000 0.875001 -12.000000 +v 0.375000 0.875001 -11.750000 +v 0.375000 0.000002 -10.250000 +v 0.250000 0.625002 -10.375000 +v 0.250000 0.000002 -10.250000 +v 0.250000 0.698225 -11.676777 +v 0.250000 0.000002 -12.125000 +v 0.250000 0.625002 -11.500000 +v 0.375000 0.625002 -10.375000 +v 0.375000 0.625002 -11.500000 +v 0.375000 0.698225 -11.676777 +v -0.375000 0.000002 -12.125000 +v -0.250000 0.875002 -12.000000 +v -0.250000 0.000002 -12.125000 +v -0.375000 0.875001 -12.000000 +v -0.250000 0.875002 -11.750000 +v -0.250000 0.000002 -10.250000 +v -0.375000 0.625002 -10.375000 +v -0.375000 0.000002 -10.250000 +v -0.375000 0.698225 -11.676777 +v -0.375000 0.625002 -11.500000 +v -0.250000 0.625002 -10.375000 +v -0.250000 0.625002 -11.500000 +v -0.250000 0.698225 -11.676777 +v 0.250001 -2.828398 -11.714233 +v 0.250001 -2.758817 -12.340927 +v 0.250000 -2.499998 -11.375000 +v 0.250000 -3.116043 -9.912266 +v 0.250000 -3.478265 -10.384323 +v 0.250000 -2.990160 -11.110531 +v 0.250000 -3.900858 -10.271091 +v 0.250000 -3.478265 -10.009323 +v 0.250000 -3.840487 -9.912266 +v 0.250000 -4.117364 -10.146091 +v 0.250000 -4.105652 -9.647102 +v 0.250001 -4.230652 -9.772102 +v 0.250001 -4.230652 -7.772102 +v 0.250000 -4.105652 -7.772102 +v 0.250000 -4.078906 -7.359745 +v 0.250000 -3.970653 -7.422245 +v 0.250000 -3.763735 -7.085442 +v 0.250000 -3.683386 -7.181198 +v 0.250000 -3.228038 -7.085442 +v 0.250000 -3.308386 -7.181198 +v 0.250000 -2.940555 -7.265007 +v 0.250000 -2.989361 -7.378296 +v 0.250000 -2.874999 -7.375000 +v 0.250001 -2.499999 -7.375000 +v 0.250000 -2.874999 -7.600048 +v 0.250000 -2.874998 -9.625000 +v 0.250001 -2.954977 -12.680687 +v 0.250001 -3.022512 -12.438679 +v -0.250000 -3.116043 -9.912266 +v -0.250000 -3.478265 -10.384300 +v -0.250000 -3.478265 -10.009323 +v -0.250000 -2.758817 -12.340927 +v -0.250000 -2.954977 -12.680687 +v -0.250000 -3.022512 -12.438679 +v -0.250000 -3.900858 -10.271091 +v -0.250000 -3.840487 -9.912266 +v -0.250000 -4.117364 -10.146091 +v -0.250000 -4.105652 -9.647102 +v -0.250000 -4.230652 -9.772102 +v -0.249999 -4.230652 -7.772102 +v -0.250000 -4.105652 -7.772102 +v -0.249999 -4.078906 -7.359745 +v -0.250000 -3.970653 -7.422245 +v -0.250000 -3.763735 -7.085442 +v -0.250000 -3.683386 -7.181198 +v -0.249999 -3.228038 -7.085442 +v -0.250000 -3.308386 -7.181198 +v -0.250000 -2.940555 -7.265007 +v -0.250000 -2.989361 -7.378296 +v -0.250000 -2.874999 -7.375000 +v -0.250000 -2.874999 -7.600048 +v -0.250000 -2.499999 -7.375000 +v -0.250000 -2.874998 -9.625000 +v -0.250000 -2.499998 -11.375000 +v 0.125000 -2.999998 -9.187500 +v 0.125000 -3.374998 -9.125000 +v 0.125000 -3.374998 -9.250000 +v 0.125000 -3.687498 -9.187500 +v 0.125000 -3.687498 -9.062500 +v 0.125000 -3.937498 -9.000000 +v -0.125000 -2.999998 -9.187500 +v -0.125000 -3.374998 -9.125000 +v -0.125000 -2.999998 -9.062500 +v -0.125000 -3.687498 -9.187500 +v -0.125000 -3.374998 -9.250000 +v -0.125000 -3.937498 -9.000000 +v -0.125000 -3.687498 -9.062500 +v 0.125000 -2.874998 -9.375000 +v -0.125000 -3.937498 -8.875000 +v 0.125000 -3.937498 -8.875000 +v -0.125000 -2.874998 -9.000000 +v -0.125000 -2.874998 -9.375000 +v 0.125000 -2.874998 -9.000000 +v 0.125000 -2.999998 -9.062500 +v -0.754442 -0.312500 25.750000 +v -0.312500 -0.754442 25.750000 +v 0.312500 -0.754442 25.750000 +v 0.362222 0.877387 0.875000 +v -0.362222 0.877387 0.875000 +v 0.627387 -2.612221 0.875000 +v 0.724444 -2.249999 0.875000 +v -0.362222 -2.877386 0.875000 +v -0.250000 -2.828398 -11.714233 +v -0.250000 -2.990160 -11.110531 +v -0.724444 0.250000 -7.375000 +v 0.000000 -2.974444 -7.375000 +v -0.627386 -2.612221 -7.375000 +v -0.312500 0.754442 25.000000 +v -0.312500 0.754442 25.750000 +v -0.754442 -0.312500 25.000000 +v -0.754442 0.312500 25.000000 +v 0.754442 0.312500 25.000000 +v 0.754442 -0.312500 25.000000 +v 0.408300 -0.930195 25.000000 +v 0.288712 -1.218907 25.000000 +v -0.288713 -1.218907 25.000000 +v -0.408301 -0.930195 25.000000 +v 0.000000 -1.338495 25.000000 +v -0.062500 1.254440 25.687500 +v -0.754442 -0.437500 16.250000 +v -0.754442 0.312500 16.250000 +v -0.312500 0.754441 16.250000 +v 0.312500 0.754441 16.250000 +v 0.754441 0.312500 16.250000 +v -0.754442 -0.437501 16.625000 +v 0.754441 -0.437500 16.625000 +v -0.312500 -1.256835 16.625000 +v 0.754441 0.312500 16.625000 +v 0.603553 0.250001 1.375000 +v 0.522822 0.551852 1.375000 +v 0.301852 0.772823 1.375000 +v -0.301852 0.772823 1.375000 +v -0.522823 0.551853 1.375000 +v -0.603554 0.250001 1.375000 +v -0.724444 0.250000 -1.375000 +v 0.724444 -2.250000 -5.345110 +v -2.091290 -0.757001 -5.512260 +v -1.207407 0.121395 -5.610601 +v 0.000000 0.442909 -5.646597 +v 1.207408 0.121394 -5.610601 +v 2.414815 -1.956912 -5.377924 +v 1.207407 -4.035218 -5.145245 +v -1.207407 -4.035218 -5.145245 +v -2.091290 -3.156821 -5.243586 +v -2.414814 -1.956912 -5.377924 +v -0.965925 0.185647 -1.368237 +v -1.673032 -0.517586 -1.294323 +v -1.931851 -1.478220 -1.193358 +v -0.965925 -3.142087 -1.018477 +v 0.000000 -3.399489 -0.991423 +v 0.965926 -3.142087 -1.018477 +v 1.931852 -1.478220 -1.193358 +v 1.673033 -0.517586 -1.294323 +v 0.965926 0.185647 -1.368237 +v 0.989610 -1.383293 -0.451269 +v 1.086667 -1.023055 -0.489132 +v -0.724444 -0.399105 -0.554712 +v -0.989609 -0.662817 -0.526995 +v 0.797917 -1.996754 -5.377295 +v 0.797917 -1.907145 -6.100872 +v 0.797917 -1.528797 -6.306297 +v 0.797917 -1.116008 -6.184023 +v -0.797916 -1.996753 -5.377295 +v -0.797916 -0.877916 -5.494890 +v -0.797916 -0.910581 -5.805677 +v -0.797916 -1.116007 -6.184023 +v -0.362222 0.877387 -7.375000 +v 0.000000 0.974444 -7.375000 +v 0.627387 0.612222 -7.375000 +v 0.250000 0.875002 -11.750000 +v -0.375000 0.875001 -11.750000 +v -0.408301 -0.930195 25.750000 +v -0.288713 -1.218907 25.750000 +v 0.000000 -1.338495 25.750000 +v 0.288712 -1.218907 25.750000 +v 0.408300 -0.930195 25.750000 +v 0.754442 -0.312500 25.750000 +v 0.754442 0.312500 25.750000 +v -0.754442 0.312500 25.750000 +v 0.000000 0.974445 0.875000 +v -0.627387 0.612222 0.875000 +v 0.627386 0.612222 0.875000 +v -0.627387 -2.612221 0.875000 +v 0.000000 -2.974443 0.875000 +v 0.362222 -2.877387 0.875000 +v -0.362222 -2.877387 -7.375000 +v 0.627387 -2.612221 -7.375000 +v 0.362222 -2.877387 -7.375000 +v 0.603553 0.250000 25.750000 +v 0.250000 0.603553 25.750000 +v 0.603553 -0.250000 25.750000 +v 0.250000 -0.603553 25.750000 +v -0.250000 -0.603553 25.750000 +v -0.603553 -0.250000 25.750000 +v -0.603553 0.250000 25.750000 +v -0.250000 0.603553 25.750000 +v -0.187500 -0.452665 25.750000 +v -0.452665 -0.187500 25.750000 +v -0.452665 0.187500 25.750000 +v -0.187500 0.452665 25.750000 +v 0.187500 0.452665 25.750000 +v 0.452665 0.187500 25.750000 +v 0.452665 -0.187500 25.750000 +v 0.187500 -0.452665 25.750000 +v 0.250000 -0.603553 25.000000 +v 0.603553 -0.250001 16.625000 +v 0.603553 -0.250000 25.000000 +v 0.603553 0.250000 25.000000 +v 0.250000 0.603553 16.625000 +v 0.250000 0.603553 25.000000 +v -0.250000 0.603553 25.000000 +v -0.603554 0.250000 16.625000 +v -0.603553 0.250000 25.000000 +v -0.250000 -0.603553 25.000000 +v -0.603554 -0.250000 16.625000 +v -0.250000 -0.603554 16.625000 +v 0.250000 -0.603554 16.625000 +v 0.603553 0.250000 16.625000 +v -0.250000 0.603553 16.625000 +v -0.603553 -0.250000 25.000000 +v -0.250241 -2.353553 0.875000 +v 0.250240 -2.353552 1.375000 +v -0.250243 -2.353552 1.375000 +v 0.250238 -0.603553 5.125000 +v 0.603551 -0.791053 5.125000 +v -0.603554 -2.166052 1.375000 +v -0.575003 -0.791053 5.125000 +v -0.250243 -0.603553 5.125000 +v 0.603551 -2.166052 5.125000 +v 0.603553 -2.166052 1.375000 +v -0.404007 -0.728554 16.125000 +v -0.187500 -0.603554 16.250000 +v 0.404006 -0.728554 16.125000 +v 0.187500 -0.603554 16.250000 +v -0.250243 -2.353552 5.125000 +v -0.187500 -1.728554 16.250000 +v -0.575003 -2.166052 5.125000 +v -0.404007 -1.603554 16.125000 +v 0.250238 -2.353552 5.125000 +v 0.187500 -1.728554 16.250000 +v 0.404006 -1.603554 16.125000 +v -0.250000 0.603553 16.250000 +v -0.603554 0.250000 16.250000 +v 0.603553 -0.250000 16.250000 +v 0.603553 0.250000 16.250000 +v -0.603554 -0.250000 16.250000 +v 0.250000 0.603553 16.250000 +v 0.000000 -0.603554 25.000000 +v 0.230969 -0.699225 16.625000 +v 0.000000 -0.603554 16.625000 +v 0.326640 -0.930195 25.000000 +v 0.230969 -1.161165 16.625000 +v 0.326640 -0.930195 16.625000 +v 0.000000 -1.256835 25.000000 +v -0.230970 -1.161165 16.625000 +v 0.000000 -1.256835 16.625000 +v -0.326641 -0.930195 25.000000 +v -0.230970 -0.699225 16.625000 +v -0.326641 -0.930195 16.625000 +v 0.230969 -0.699225 25.000000 +v 0.230969 -1.161165 25.000000 +v -0.230970 -1.161165 25.000000 +v -0.230970 -0.699225 25.000000 +v 0.250120 -0.603555 16.250000 +v -0.250121 -0.603554 16.250000 +v 0.301852 0.772823 0.875000 +v -0.603554 -2.166052 0.875000 +v 0.000000 0.853704 0.875000 +v -0.301852 0.772823 0.875000 +v 0.522822 0.551852 0.875000 +v -0.522823 0.551853 0.875000 +v -0.603554 0.250001 0.875000 +v 0.603553 0.250001 0.875000 +v 0.603553 -2.166052 0.875000 +v 0.000001 -2.974444 -1.036097 +v 0.362222 -2.877387 -1.046301 +v 0.627387 -2.612221 -1.074171 +v -0.627386 -2.612222 -1.074171 +v -0.362222 -2.877387 -1.046301 +v 0.362222 -2.877387 -5.274868 +v -0.627386 -2.612221 -5.304556 +v -0.362222 -2.877387 -5.274868 +v 0.627387 -2.612221 -5.304556 +v 0.000000 -2.974444 -5.264000 +v 0.989610 -0.741213 -1.272886 +v 1.086667 -1.101451 -1.235023 +v 0.989610 -1.461689 -1.197161 +v 0.724445 -1.725402 -1.169443 +v 0.724445 -0.477501 -1.300604 +v -0.989609 -0.741213 -1.272886 +v -0.724444 -0.477501 -1.300604 +v -0.989609 -1.461689 -1.197161 +v -0.724444 -1.725401 -1.169443 +v -1.086666 -1.101451 -1.235023 +v 0.724444 -0.810009 -5.816248 +v 0.724444 -0.777343 -5.505461 +v 0.724444 -2.097327 -5.366724 +v 0.724444 -2.129992 -5.677511 +v 0.724444 -1.985734 -6.164513 +v 0.724444 -1.052368 -6.262613 +v 0.724444 -1.539368 -6.406870 +v -0.724443 -2.097327 -5.366724 +v -0.724443 -2.129992 -5.677511 +v -0.724443 -0.810009 -5.816248 +v -0.724443 -1.052367 -6.262613 +v -0.724443 -1.985733 -6.164513 +v -0.724443 -1.539368 -6.406870 +v -0.375000 -2.499998 -11.375000 +v 0.375000 -2.499999 -7.375000 +v -0.375001 -2.499999 -7.375000 +v -0.375000 -1.792115 -27.624638 +v 0.375000 -0.733765 -17.555103 +v 0.375000 -1.792115 -27.624638 +v -0.375000 -5.103412 -16.649258 +v 0.375000 -5.588698 -14.838146 +v -0.375000 -5.588697 -14.838146 +v -0.375000 -7.594545 -26.979065 +v 0.375000 -7.219544 -27.628586 +v 0.375000 -7.594545 -26.979065 +v -0.375000 -5.103412 -17.682030 +v 0.375000 -5.103411 -16.649258 +v -0.375000 -7.219544 -27.628601 +v 0.375000 -5.140982 -28.070396 +v 0.375000 -5.103411 -17.682030 +v 0.375000 -3.368846 -28.017761 +v -0.375000 -3.368846 -28.017761 +v -0.375000 -5.140982 -28.070400 +v 0.375000 -0.513028 -14.034538 +v -0.375000 -1.588484 -15.570450 +v -0.375000 -0.513028 -14.034538 +v -0.375000 -3.446317 -13.531712 +v 0.375000 -2.758817 -12.340927 +v -0.375000 -2.758817 -12.340927 +v 0.375000 -1.588484 -15.570450 +v -0.375000 -1.588484 -15.820450 +v -0.375001 -4.418590 -14.503983 +v 0.374999 -3.446317 -13.531712 +v 0.375000 -2.499998 -11.375000 +v 0.374999 -4.418590 -14.503983 +v -0.375000 -0.733765 -17.555103 +v 0.375000 -1.588484 -15.820450 +v -0.375000 0.000002 -12.625000 +v 0.375000 0.000002 -12.625000 +v -0.375000 0.000001 -7.375000 +v -0.625000 -0.983720 -17.805099 +v -0.625000 -2.508772 -12.590923 +v -0.625000 -7.344500 -26.979061 +v -0.625000 -4.168545 -14.753979 +v -0.625000 -6.969501 -27.378582 +v -0.625000 -5.338654 -14.838142 +v -0.625000 -2.042071 -27.374634 +v -0.625000 -0.762984 -13.784534 +v -0.625000 -0.249954 -12.374996 +v -0.625000 -5.140938 -27.820393 +v -0.625000 -1.838439 -15.320446 +v -0.625000 -4.853367 -16.649254 +v -0.625000 -1.838439 -16.070446 +v -0.625000 -2.249954 -7.374996 +v -0.625000 -4.853367 -17.932026 +v -0.625000 -2.249953 -11.624996 +v 0.625000 -0.249955 -7.374996 +v 0.625000 -2.249953 -11.624996 +v 0.625000 -0.249954 -12.374996 +v 0.375000 0.000001 -7.375000 +v 0.625000 -0.762984 -13.784534 +v 0.625000 -1.838439 -15.320446 +v 0.625000 -1.838439 -16.070446 +v 0.625000 -0.983720 -17.805099 +v 0.625000 -2.042071 -27.374634 +v 0.625000 -3.368801 -27.767757 +v 0.625000 -5.140937 -27.820393 +v 0.625000 -6.969500 -27.378582 +v 0.625000 -7.344500 -26.979061 +v 0.625000 -4.853367 -17.932026 +v 0.625000 -4.853367 -16.649254 +v 0.625000 -5.338654 -14.838142 +v 0.625000 -4.168545 -14.753979 +v 0.625000 -2.508773 -12.590923 +v 0.625000 -2.249954 -7.374996 +v -0.625000 -0.249955 -7.374996 +v -0.625000 -3.196272 -13.781708 +v -0.625000 -3.368801 -27.767757 +v 0.625000 -3.196272 -13.781708 +v 0.250000 0.000002 -12.375000 +v 0.250000 0.500000 -7.375000 +v 0.250000 0.000000 -7.375000 +v -0.250000 0.500002 -12.375000 +v -0.250000 0.000000 -7.375000 +v -0.250000 0.500000 -7.375000 +v 0.173228 0.673228 -7.375000 +v 0.000000 0.744982 -12.375000 +v 0.000000 0.744981 -7.375000 +v -0.173227 0.673229 -12.375000 +v -0.173227 0.673228 -7.375000 +v 0.173228 0.673229 -12.375000 +v 0.250000 0.500001 -12.375000 +v 0.173227 0.500002 -12.548225 +v 0.122492 0.673229 -12.497490 +v 0.000000 0.673229 -12.548229 +v 0.000000 0.500002 -12.619980 +v -0.122491 0.673229 -12.497490 +v -0.173226 0.500002 -12.548225 +v -0.173226 0.000002 -12.548225 +v -0.250000 0.000002 -12.375000 +v 0.000000 0.000002 -12.619980 +v 0.173227 0.000002 -12.548225 +v 0.250000 0.856696 -11.830807 +v -0.250000 0.812502 -11.812500 +v 0.250000 0.812501 -11.812500 +v 0.250000 0.750001 -11.875000 +v -0.250000 0.768307 -11.919193 +v 0.250000 0.768307 -11.919193 +v -0.250000 0.768307 -11.830807 +v 0.250000 0.768307 -11.830807 +v 0.250000 0.856696 -11.919193 +v -0.250000 0.812502 -11.937500 +v -0.250000 0.856696 -11.919193 +v 0.250000 0.812501 -11.937500 +v -0.250000 0.750001 -11.875000 +v -0.250000 0.856696 -11.830807 +v 0.250240 -2.353552 0.875000 +v -0.724443 -0.777343 -5.505461 +vt 0.959514 0.921933 +vt 0.955466 0.910781 +vt 0.959514 0.910781 +vt 0.959514 0.955390 +vt 0.955466 0.944238 +vt 0.959514 0.944238 +vt 0.959514 0.966543 +vt 0.955466 0.955390 +vt 0.959514 0.977695 +vt 0.955466 0.966543 +vt 0.955466 0.988848 +vt 0.955466 0.977695 +vt 0.959514 0.988848 +vt 0.955466 1.000000 +vt 0.959514 0.933086 +vt 0.955466 0.933086 +vt 0.955466 0.921933 +vt 0.809717 0.802974 +vt 0.825911 0.802974 +vt 0.825911 0.806691 +vt 0.874494 0.828996 +vt 0.858300 0.832714 +vt 0.858300 0.828996 +vt 0.858300 0.851301 +vt 0.874494 0.847584 +vt 0.874494 0.851301 +vt 0.844130 0.881041 +vt 0.844130 0.836431 +vt 0.823887 0.836431 +vt 0.874494 0.840149 +vt 0.874494 0.832714 +vt 0.858300 0.847584 +vt 0.858300 0.840149 +vt 0.874494 0.825279 +vt 0.870445 0.814126 +vt 0.874494 0.814126 +vt 0.870445 0.810409 +vt 0.874494 0.810409 +vt 0.874494 0.799257 +vt 0.870445 0.828996 +vt 0.874494 0.828996 +vt 0.870445 0.817844 +vt 0.866397 0.825279 +vt 0.866397 0.817844 +vt 0.773279 0.806691 +vt 0.773279 0.802974 +vt 0.789474 0.802974 +vt 0.955466 0.875465 +vt 0.941296 0.851301 +vt 0.921053 0.851301 +vt 0.892712 0.910781 +vt 0.872470 0.910781 +vt 0.858300 0.897770 +vt 0.789474 0.817844 +vt 0.793522 0.802974 +vt 0.799595 0.806691 +vt 0.983806 0.881041 +vt 0.971660 0.899628 +vt 0.971660 0.881041 +vt 1.000000 0.881041 +vt 0.983806 0.899628 +vt 0.955466 0.899628 +vt 0.591093 0.795539 +vt 0.595142 0.806691 +vt 0.578947 0.806691 +vt 0.736842 0.795539 +vt 0.748988 0.806691 +vt 0.732794 0.806691 +vt 0.518153 0.799263 +vt 0.510121 0.806642 +vt 0.502090 0.799263 +vt 0.000000 0.672862 +vt 0.064777 0.598513 +vt 0.072874 0.672862 +vt 0.000000 0.457249 +vt 0.064777 0.531599 +vt 0.000000 0.531599 +vt 0.129555 0.672862 +vt 0.072874 0.598513 +vt 0.137652 0.598513 +vt 0.129555 0.457249 +vt 0.072874 0.531599 +vt 0.072874 0.457249 +vt 0.287111 0.613660 +vt 0.287111 0.542474 +vt 0.354251 0.506881 +vt 0.316093 0.419142 +vt 0.424798 0.419142 +vt 0.370445 0.505576 +vt 0.939852 0.768664 +vt 0.949169 0.776952 +vt 0.905082 0.776952 +vt 0.975708 0.765799 +vt 0.988435 0.768664 +vt 0.997752 0.776952 +vt 0.943320 0.756505 +vt 0.943320 0.765799 +vt 0.906883 0.756505 +vt 0.969636 0.739777 +vt 0.982516 0.744678 +vt 0.987854 0.756505 +vt 0.306899 0.661712 +vt 0.327935 0.650558 +vt 0.315789 0.692176 +vt 0.716599 0.743494 +vt 0.724696 0.732342 +vt 0.728745 0.736059 +vt 0.680162 0.646840 +vt 0.676113 0.743494 +vt 0.676113 0.646840 +vt 0.716599 0.646840 +vt 0.680162 0.743494 +vt 0.688259 0.732342 +vt 0.692308 0.736059 +vt 0.712551 0.743494 +vt 0.712551 0.646840 +vt 0.736842 0.736059 +vt 0.765182 0.747212 +vt 0.672065 0.750929 +vt 0.672065 0.747212 +vt 0.777328 0.750929 +vt 0.769231 0.747212 +vt 0.777328 0.747212 +vt 0.704453 0.732342 +vt 0.704453 0.646840 +vt 0.748988 0.646840 +vt 0.740891 0.732342 +vt 0.740891 0.646840 +vt 0.781377 0.747212 +vt 0.769231 0.750929 +vt 0.748988 0.743494 +vt 0.712551 0.747212 +vt 0.680162 0.747212 +vt 0.781377 0.750929 +vt 0.874494 0.747212 +vt 0.874494 0.750929 +vt 0.700405 0.736059 +vt 0.728745 0.635688 +vt 0.736842 0.639405 +vt 0.728745 0.639405 +vt 0.720648 0.635688 +vt 0.724696 0.639405 +vt 0.720648 0.639405 +vt 0.712551 0.639405 +vt 0.748988 0.624535 +vt 0.712551 0.620818 +vt 0.736842 0.620818 +vt 0.761134 0.635688 +vt 0.748988 0.635688 +vt 0.700405 0.635688 +vt 0.688259 0.624535 +vt 0.700405 0.624535 +vt 0.676113 0.635688 +vt 0.676113 0.624535 +vt 0.761134 0.624535 +vt 0.773279 0.635688 +vt 0.805668 0.624535 +vt 0.813765 0.635688 +vt 0.805668 0.635688 +vt 0.781377 0.635688 +vt 0.773279 0.624535 +vt 0.781377 0.624535 +vt 0.700405 0.646840 +vt 0.748988 0.646840 +vt 0.748988 0.613383 +vt 0.700405 0.613383 +vt 0.724696 0.628253 +vt 0.793522 0.628253 +vt 0.748988 0.721190 +vt 0.777328 0.717472 +vt 0.777328 0.721190 +vt 0.785425 0.721190 +vt 0.858300 0.721190 +vt 0.838057 0.717472 +vt 0.858300 0.717472 +vt 0.855926 0.726448 +vt 0.866397 0.721190 +vt 0.870445 0.747212 +vt 0.850201 0.728625 +vt 0.813769 0.728625 +vt 0.809717 0.747212 +vt 0.805664 0.728625 +vt 0.809717 0.747212 +vt 0.769232 0.728625 +vt 0.748988 0.747212 +vt 0.753036 0.721190 +vt 0.763507 0.726448 +vt 0.748988 0.717472 +vt 0.777328 0.721190 +vt 0.748988 0.721190 +vt 0.777328 0.717472 +vt 0.785425 0.721190 +vt 0.858300 0.721190 +vt 0.838057 0.717472 +vt 0.858300 0.717472 +vt 0.763507 0.726448 +vt 0.753036 0.721190 +vt 0.748988 0.747212 +vt 0.769232 0.728625 +vt 0.805664 0.728625 +vt 0.809717 0.747212 +vt 0.813769 0.728625 +vt 0.809717 0.747212 +vt 0.850201 0.728625 +vt 0.870445 0.747212 +vt 0.866397 0.721190 +vt 0.855926 0.726448 +vt 0.773279 0.654275 +vt 0.757085 0.650558 +vt 0.773279 0.650558 +vt 0.595142 0.420074 +vt 0.574899 0.431227 +vt 0.607287 0.434944 +vt 0.635628 0.438662 +vt 0.643725 0.420074 +vt 0.615385 0.420074 +vt 0.659919 0.420074 +vt 0.643725 0.431227 +vt 0.659919 0.431227 +vt 0.668016 0.420074 +vt 0.668016 0.434944 +vt 0.680162 0.420074 +vt 0.676113 0.427509 +vt 0.744939 0.420074 +vt 0.684211 0.423792 +vt 0.744939 0.423792 +vt 0.761134 0.420074 +vt 0.761134 0.423792 +vt 0.773279 0.420074 +vt 0.773279 0.423792 +vt 0.789474 0.420074 +vt 0.777328 0.423792 +vt 0.785425 0.423792 +vt 0.801619 0.420074 +vt 0.789474 0.423792 +vt 0.801619 0.423792 +vt 0.805668 0.420074 +vt 0.659919 0.379182 +vt 0.659919 0.364312 +vt 0.651822 0.364312 +vt 0.587045 0.364312 +vt 0.530364 0.379182 +vt 0.805668 0.364312 +vt 0.817814 0.420074 +vt 0.817814 0.364312 +vt 0.562753 0.420074 +vt 0.570850 0.431227 +vt 0.570850 0.420074 +vt 0.635628 0.382900 +vt 0.643725 0.401487 +vt 0.643725 0.390335 +vt 0.570850 0.390335 +vt 0.562753 0.401487 +vt 0.570850 0.401487 +vt 0.659919 0.401487 +vt 0.659919 0.390335 +vt 0.668016 0.401487 +vt 0.668016 0.386617 +vt 0.680162 0.401487 +vt 0.676113 0.394052 +vt 0.684211 0.397770 +vt 0.744939 0.401487 +vt 0.744939 0.397770 +vt 0.761134 0.401487 +vt 0.761134 0.397770 +vt 0.773279 0.401487 +vt 0.773279 0.397770 +vt 0.777328 0.397770 +vt 0.789474 0.401487 +vt 0.785425 0.397770 +vt 0.789474 0.397770 +vt 0.801619 0.401487 +vt 0.801619 0.397770 +vt 0.805668 0.401487 +vt 0.805668 0.397770 +vt 0.659919 0.334572 +vt 0.651822 0.349442 +vt 0.659919 0.349442 +vt 0.587045 0.349442 +vt 0.817814 0.297398 +vt 0.805668 0.349442 +vt 0.817814 0.349442 +vt 0.417004 0.375465 +vt 0.429150 0.371747 +vt 0.429150 0.375465 +vt 0.441296 0.375465 +vt 0.441296 0.371747 +vt 0.453441 0.375465 +vt 0.417004 0.356877 +vt 0.429150 0.360595 +vt 0.417004 0.360595 +vt 0.441296 0.356877 +vt 0.429150 0.356877 +vt 0.453441 0.356877 +vt 0.441296 0.360595 +vt 0.493927 0.360595 +vt 0.502024 0.371747 +vt 0.493927 0.371747 +vt 0.453441 0.360595 +vt 0.457490 0.371747 +vt 0.453441 0.371747 +vt 0.412955 0.360595 +vt 0.412955 0.349442 +vt 0.412955 0.371747 +vt 0.417004 0.371747 +vt 0.761134 0.849442 +vt 0.775304 0.836431 +vt 0.795547 0.836431 +vt 0.306899 0.728623 +vt 0.306899 0.706321 +vt 0.327935 0.695167 +vt 0.421053 0.736786 +vt 0.408907 0.739777 +vt 0.429943 0.706321 +vt 0.327935 0.739777 +vt 0.408907 0.695167 +vt 0.574899 0.390335 +vt 0.595142 0.401487 +vt 0.607287 0.386617 +vt 0.615385 0.401487 +vt 0.327935 0.695167 +vt 0.408907 0.650558 +vt 0.408907 0.695167 +vt 0.433198 0.672862 +vt 0.421053 0.692176 +vt 0.959514 1.000000 +vt 0.834008 0.817844 +vt 0.809717 0.817844 +vt 0.809717 0.849442 +vt 0.809717 0.868030 +vt 0.823887 0.881041 +vt 0.858300 0.868030 +vt 0.858300 0.849442 +vt 0.846154 0.828996 +vt 0.842105 0.821561 +vt 0.825911 0.821561 +vt 0.821862 0.828996 +vt 0.834008 0.817844 +vt 0.870445 0.825279 +vt 0.870445 0.799257 +vt 0.765182 0.817844 +vt 0.906883 0.875465 +vt 0.906883 0.897770 +vt 0.921053 0.910781 +vt 0.941296 0.910781 +vt 0.955466 0.897770 +vt 0.858300 0.875465 +vt 0.906883 0.875465 +vt 0.872470 0.851301 +vt 0.892712 0.851301 +vt 0.906883 0.897770 +vt 0.805668 0.802974 +vt 1.000000 0.899628 +vt 0.955466 0.881041 +vt 0.529511 0.788833 +vt 0.526918 0.797738 +vt 0.519819 0.804256 +vt 0.500424 0.804256 +vt 0.493325 0.797738 +vt 0.490732 0.788833 +vt 0.000000 0.598513 +vt 0.072874 0.457249 +vt 0.072874 0.672862 +vt 0.137652 0.531599 +vt 0.421390 0.613660 +vt 0.393014 0.639715 +vt 0.354251 0.649253 +vt 0.315488 0.639715 +vt 0.276725 0.578067 +vt 0.315488 0.516418 +vt 0.393014 0.516418 +vt 0.421390 0.542474 +vt 0.431777 0.578067 +vt 0.339065 0.497862 +vt 0.316093 0.476769 +vt 0.307692 0.447955 +vt 0.339065 0.398048 +vt 0.370445 0.390335 +vt 0.401826 0.398048 +vt 0.433198 0.447955 +vt 0.424798 0.476769 +vt 0.401826 0.497862 +vt 0.914399 0.768664 +vt 0.927126 0.765799 +vt 0.953665 0.776952 +vt 0.962982 0.768664 +vt 0.906883 0.765799 +vt 0.912221 0.744678 +vt 0.925101 0.739777 +vt 0.937982 0.744678 +vt 0.987854 0.765799 +vt 0.951417 0.765799 +vt 0.951417 0.756505 +vt 0.956756 0.744678 +vt 0.306899 0.684013 +vt 0.303644 0.672862 +vt 0.315789 0.653549 +vt 0.724696 0.646840 +vt 0.688259 0.646840 +vt 0.765182 0.750929 +vt 0.724696 0.635688 +vt 0.688259 0.635688 +vt 0.813765 0.624535 +vt 0.712551 0.646840 +vt 0.736842 0.646840 +vt 0.736842 0.613383 +vt 0.712551 0.613383 +vt 0.789474 0.635688 +vt 0.797571 0.635688 +vt 0.748988 0.717472 +vt 0.785425 0.717472 +vt 0.838057 0.721190 +vt 0.858300 0.721190 +vt 0.761134 0.721190 +vt 0.785425 0.717472 +vt 0.838057 0.721190 +vt 0.761134 0.721190 +vt 0.858300 0.721190 +vt 0.757085 0.654275 +vt 0.805668 0.423792 +vt 0.805668 0.405204 +vt 0.530364 0.334572 +vt 0.805668 0.315985 +vt 0.502024 0.360595 +vt 0.457490 0.360595 +vt 0.412955 0.382900 +vt 0.773279 0.828996 +vt 0.777328 0.821561 +vt 0.785425 0.817844 +vt 0.793522 0.821561 +vt 0.797571 0.828996 +vt 0.809717 0.849442 +vt 0.775304 0.881041 +vt 0.809717 0.868030 +vt 0.795547 0.881041 +vt 0.761134 0.868030 +vt 0.303644 0.717472 +vt 0.315789 0.698158 +vt 0.315789 0.736786 +vt 0.421053 0.698158 +vt 0.433198 0.717472 +vt 0.429943 0.728623 +vt 0.429943 0.684013 +vt 0.421053 0.653549 +vt 0.429943 0.661712 +vt -0.000000 1.000000 +vt 0.101215 0.985130 +vt 0.101215 1.000000 +vt -0.000000 0.985130 +vt 0.101215 0.970260 +vt 0.000000 0.970260 +vt 0.101215 0.955390 +vt 0.000000 0.955390 +vt 0.101215 0.940520 +vt 0.000000 0.940520 +vt 0.101215 0.925651 +vt 0.000000 0.925651 +vt 0.101215 0.910781 +vt 0.000000 0.910781 +vt 0.101215 0.895911 +vt 0.000000 0.895911 +vt 0.101215 0.881041 +vt 0.854251 0.955390 +vt 0.854251 0.944238 +vt 0.854251 0.933086 +vt 0.854251 0.921933 +vt 0.854251 1.000000 +vt 0.854251 0.988848 +vt 0.854251 0.977695 +vt 0.854251 0.966543 +vt 0.854251 0.910781 +vt 0.874494 0.814126 +vt 0.898785 0.832714 +vt 0.874494 0.832714 +vt 0.874494 0.713755 +vt 0.898785 0.732342 +vt 0.874494 0.732342 +vt 0.874494 0.795539 +vt 0.898785 0.814126 +vt 0.874494 0.851301 +vt 0.898785 0.851301 +vt 0.874494 0.695167 +vt 0.898785 0.713755 +vt 0.898785 0.750929 +vt 0.874494 0.750929 +vt 0.874494 0.788104 +vt 0.898785 0.780669 +vt 0.898785 0.788104 +vt 0.834008 0.806691 +vt 0.844130 0.806691 +vt 0.838057 0.802974 +vt 0.854251 0.806691 +vt 0.850202 0.802974 +vt 0.854251 0.802974 +vt 0.101215 0.955390 +vt 0.372470 0.970260 +vt 0.101215 0.970260 +vt 0.101215 0.985130 +vt 0.372470 1.000000 +vt 0.101215 1.000000 +vt 0.101215 0.895911 +vt 0.372470 0.910781 +vt 0.101215 0.910781 +vt 0.101215 0.940520 +vt 0.372470 0.925651 +vt 0.372470 0.940520 +vt 0.372470 0.955390 +vt 0.372470 0.985130 +vt 0.101215 0.881041 +vt 0.372470 0.895911 +vt 0.101215 0.925651 +vt 0.983806 0.914498 +vt 0.971660 0.940520 +vt 0.971660 0.914498 +vt 0.983806 0.962825 +vt 0.971660 0.981413 +vt 0.971660 0.962825 +vt 0.983806 0.799257 +vt 0.971660 0.817844 +vt 0.971660 0.799257 +vt 0.983806 0.840149 +vt 0.971660 0.866171 +vt 0.971660 0.840149 +vt 0.983806 0.940520 +vt 0.983806 0.981413 +vt 0.971660 1.000000 +vt 0.983806 0.817844 +vt 0.672065 0.821561 +vt 0.655870 0.806691 +vt 0.672065 0.806691 +vt 0.000000 0.750929 +vt 0.121457 0.739777 +vt 0.121457 0.750929 +vt 0.000000 0.828996 +vt 0.121457 0.869888 +vt 0.000000 0.869888 +vt 0.000000 0.881041 +vt 0.121457 0.881041 +vt 0.121457 0.791822 +vt -0.000000 0.791822 +vt 0.481781 0.869888 +vt 0.481781 0.881041 +vt 0.481781 0.750929 +vt 0.481781 0.739777 +vt 0.121457 0.817844 +vt 0.481781 0.815985 +vt 0.121457 0.828996 +vt 0.477733 0.825279 +vt 0.121457 0.802974 +vt 0.481781 0.804833 +vt 0.477733 0.795539 +vt 0.481781 0.776952 +vt 0.481781 0.843866 +vt 0.489879 0.780669 +vt 0.489879 0.747212 +vt 0.489879 0.840149 +vt 0.372470 0.895911 +vt 0.854251 0.910781 +vt 0.372470 0.910781 +vt 0.372470 0.970260 +vt 0.854251 0.985130 +vt 0.372470 0.985130 +vt 0.854251 0.925651 +vt 0.372470 0.925651 +vt 0.372470 0.881041 +vt 0.854251 0.895911 +vt 0.372470 1.000000 +vt 0.854251 1.000000 +vt 0.489879 0.881041 +vt 0.761134 0.873606 +vt 0.761134 0.881041 +vt 0.489879 0.866171 +vt 0.761134 0.858736 +vt 0.761134 0.866171 +vt 0.489879 0.851301 +vt 0.761134 0.843866 +vt 0.761134 0.851301 +vt 0.489879 0.836431 +vt 0.761134 0.828996 +vt 0.761134 0.836431 +vt 0.489879 0.873606 +vt 0.489879 0.858736 +vt 0.489879 0.843866 +vt 0.489879 0.828996 +vt 0.761134 0.821561 +vt 0.898785 0.795539 +vt 0.874494 0.765799 +vt 0.898785 0.758364 +vt 0.898785 0.765799 +vt 0.874494 0.773234 +vt 0.898785 0.773234 +vt 0.874494 0.780669 +vt 0.874494 0.758364 +vt 0.983806 0.866171 +vt 0.372470 0.955390 +vt 0.854251 0.970260 +vt 0.854251 0.940520 +vt 0.372470 0.940520 +vt 0.854251 0.955390 +vt 0.550607 0.806691 +vt 0.538462 0.821561 +vt 0.538462 0.806691 +vt 0.684211 0.821561 +vt 0.526316 0.821561 +vt 0.526316 0.806691 +vt 0.514170 0.821561 +vt 0.514170 0.806691 +vt 0.562753 0.806691 +vt 0.550607 0.821561 +vt 0.502024 0.821561 +vt 0.502024 0.806691 +vt 0.489879 0.821561 +vt 0.489879 0.806691 +vt 0.562753 0.821561 +vt 0.765182 0.821561 +vt 0.643725 0.821561 +vt 0.643725 0.806691 +vt 0.000000 0.802974 +vt 0.000000 0.817844 +vt 0.000000 0.576208 +vt 0.064777 0.565056 +vt 0.064777 0.576208 +vt 0.000000 0.587361 +vt 0.064777 0.587361 +vt 0.064777 0.542751 +vt 0.000000 0.542751 +vt 0.064777 0.553903 +vt 0.000000 0.553903 +vt 0.267206 0.684015 +vt -0.000000 0.695167 +vt -0.000000 0.684015 +vt 0.000000 0.565056 +vt 0.267206 0.706320 +vt 0.000000 0.717472 +vt -0.000000 0.706320 +vt 0.267206 0.717472 +vt -0.000000 0.728625 +vt 0.267206 0.695167 +vt 0.210526 0.672862 +vt 0.267206 0.672862 +vt 0.072874 0.739777 +vt 0.267206 0.728625 +vt 0.210526 0.739777 +vt 0.137652 0.553903 +vt 0.072874 0.565056 +vt 0.072874 0.553903 +vt 0.137652 0.587361 +vt 0.072874 0.576208 +vt 0.137652 0.576208 +vt 0.137652 0.542751 +vt 0.072874 0.542751 +vt 0.137652 0.565056 +vt 0.072874 0.587361 +vt 0.137652 0.598513 +vt 0.275304 0.631970 +vt 0.137652 0.635688 +vt 0.275304 0.672862 +vt 0.137652 0.672862 +vt 0.137652 0.486989 +vt 0.275304 0.449814 +vt 0.275304 0.483271 +vt 0.137652 0.524164 +vt 0.275304 0.490706 +vt 0.275304 0.520446 +vt 0.137652 0.561338 +vt 0.275304 0.527881 +vt 0.275304 0.557621 +vt 0.275304 0.594796 +vt 0.914980 0.799257 +vt 0.927126 0.776952 +vt 0.927126 0.799257 +vt 0.939271 0.799257 +vt 0.951417 0.776952 +vt 0.951417 0.799257 +vt 0.902834 0.776952 +vt 0.902834 0.799257 +vt 0.939271 0.776952 +vt 0.963563 0.776952 +vt 0.951417 0.799257 +vt 0.951417 0.776952 +vt 1.000000 0.799257 +vt 0.987854 0.776952 +vt 1.000000 0.776952 +vt 0.975708 0.776952 +vt 0.963563 0.799257 +vt 0.987854 0.799257 +vt 0.947368 0.754647 +vt 0.947368 0.765799 +vt 0.902834 0.765799 +vt 0.906883 0.754647 +vt 0.902834 0.754647 +vt 0.906883 0.739777 +vt 0.902834 0.739777 +vt 0.906883 0.724907 +vt 0.947368 0.739777 +vt 0.943320 0.724907 +vt 0.947368 0.724907 +vt 0.943320 0.754647 +vt 0.991903 0.765799 +vt 0.987854 0.754647 +vt 0.991903 0.754647 +vt 0.947368 0.754647 +vt 0.951417 0.754647 +vt 0.947368 0.739777 +vt 0.951417 0.739777 +vt 0.951417 0.724907 +vt 0.991903 0.739777 +vt 0.987854 0.724907 +vt 0.991903 0.724907 +vt 0.566802 0.037175 +vt 0.692308 0.014870 +vt 0.692308 0.037175 +vt 0.668016 0.089219 +vt 0.340081 0.066914 +vt 0.668016 0.066914 +vt 0.344130 0.037175 +vt 0.404858 0.014870 +vt 0.404858 0.037175 +vt 0.202429 0.141264 +vt 0.178138 0.118959 +vt 0.202429 0.118959 +vt 0.311741 0.037175 +vt 0.344130 0.014870 +vt 0.178138 0.141264 +vt 0.109312 0.118959 +vt -0.000000 0.037175 +vt 0.311741 0.014870 +vt 0.000000 0.141264 +vt 0.052632 0.118959 +vt 0.052632 0.141264 +vt 0.109312 0.141264 +vt 0.210526 0.066914 +vt 0.271255 0.089219 +vt 0.210526 0.089219 +vt 0.489879 0.037175 +vt 0.534413 0.014870 +vt 0.534413 0.037175 +vt 0.271255 0.066914 +vt 0.279352 0.089219 +vt 0.445344 0.037175 +vt 0.489879 0.014870 +vt 0.566802 0.014870 +vt 0.445344 0.014870 +vt 0.340081 0.089219 +vt 0.279352 0.066914 +vt 0.161943 0.089219 +vt 0.161943 0.066914 +vt -0.000000 0.089219 +vt 0.340081 0.104089 +vt 0.534413 0.052045 +vt 0.198381 0.152416 +vt 0.445344 0.052045 +vt 0.178138 0.156134 +vt 0.404858 0.048327 +vt 0.000000 0.156134 +vt 0.210526 0.104089 +vt 0.161943 0.104089 +vt 0.109312 0.152416 +vt 0.271255 0.104089 +vt 0.344130 0.048327 +vt 0.279352 0.104089 +vt 0.692308 0.048327 +vt 0.311741 0.052045 +vt 0.566802 0.052045 +vt 0.145749 0.297398 +vt 0.283401 0.237918 +vt 0.307692 0.297398 +vt -0.000000 0.066914 +vt 0.161943 0.052045 +vt 0.210526 0.052045 +vt 0.271255 0.052045 +vt 0.279352 0.052045 +vt 0.340081 0.052045 +vt 0.659919 0.052045 +vt 0.000000 0.104089 +vt 0.052632 0.107807 +vt 0.109312 0.107807 +vt 0.178138 0.104089 +vt 0.198381 0.107807 +vt -0.000000 0.014870 +vt 0.311741 0.000000 +vt 0.344130 0.003717 +vt 0.404858 0.003717 +vt 0.445344 0.000000 +vt 0.534413 0.000000 +vt 0.566802 0.000000 +vt 0.692308 0.003717 +vt 0.145749 0.297398 +vt 0.283401 0.237918 +vt 0.145749 0.237918 +vt 0.311741 0.230483 +vt 0.307692 0.297398 +vt 0.352227 0.282528 +vt 0.348178 0.211896 +vt 0.396761 0.252788 +vt 0.376518 0.185874 +vt 0.425101 0.252788 +vt 0.441296 0.159851 +vt 0.477733 0.159851 +vt 0.789474 0.245353 +vt 0.773279 0.089219 +vt 0.785425 0.100372 +vt 0.801619 0.152416 +vt 0.801619 0.204461 +vt 0.311741 0.230483 +vt 0.352227 0.282528 +vt 0.348178 0.211896 +vt 0.376518 0.182156 +vt 0.396761 0.252788 +vt 0.441296 0.159851 +vt 0.376518 0.144981 +vt 0.425101 0.252788 +vt 0.477733 0.159851 +vt 0.789474 0.245353 +vt 0.773279 0.089219 +vt 0.785425 0.100372 +vt 0.801619 0.152416 +vt 0.801619 0.204461 +vt 0.700405 0.788104 +vt 0.862348 0.773234 +vt 0.862348 0.788104 +vt 0.651822 0.773234 +vt 0.489879 0.788104 +vt 0.489879 0.773234 +vt 0.862348 0.762082 +vt 0.700405 0.750929 +vt 0.862348 0.750929 +vt 0.489879 0.750929 +vt 0.651822 0.762082 +vt 0.489879 0.762082 +vt 0.700405 0.762082 +vt 0.700405 0.773234 +vt 0.688259 0.773234 +vt 0.688259 0.762082 +vt 0.694332 0.750929 +vt 0.676113 0.762082 +vt 0.682186 0.750929 +vt 0.676113 0.773234 +vt 0.663968 0.762082 +vt 0.670040 0.750929 +vt 0.663968 0.773234 +vt 0.657895 0.750929 +vt 0.663968 0.788104 +vt 0.651822 0.788104 +vt 0.676113 0.788104 +vt 0.688259 0.788104 +vt 0.801619 0.717472 +vt 0.793522 0.721190 +vt 0.793522 0.717472 +vt 0.801619 0.721190 +vt 0.801619 0.717472 +vt 0.793522 0.721190 +vt 0.793522 0.717472 +vt 0.801619 0.721190 +vt 0.748988 0.657993 +vt 0.781377 0.661710 +vt 0.748988 0.661710 +vt 0.748988 0.669145 +vt 0.781377 0.672862 +vt 0.748988 0.672862 +vt 0.781377 0.665428 +vt 0.748988 0.665428 +vt 0.748988 0.680297 +vt 0.781377 0.676580 +vt 0.781377 0.680297 +vt 0.748988 0.676580 +vt 0.781377 0.669145 +vt 0.773279 0.684015 +vt 0.757085 0.684015 +vt 0.781377 0.657993 +vt 0.696356 0.364312 +vt 0.684211 0.349442 +vt 0.684211 0.364312 +vt 0.672065 0.364312 +vt 0.672065 0.349442 +vt 0.659919 0.364312 +vt 0.793522 0.349442 +vt 0.793522 0.364312 +vt 0.781377 0.349442 +vt 0.781377 0.364312 +vt 0.769231 0.364312 +vt 0.769231 0.349442 +vt 0.708502 0.364312 +vt 0.708502 0.349442 +vt 0.481781 0.360595 +vt 0.481781 0.371747 +vt 0.469636 0.371747 +vt 0.469636 0.360595 +vt 0.000000 0.881041 +vt 0.898785 0.695167 +vt 0.854251 0.817844 +vt 0.834008 0.802974 +vt 0.372470 0.881041 +vt 0.983806 1.000000 +vt 0.655870 0.821561 +vt 0.000000 0.739777 +vt 0.489879 0.873606 +vt 0.854251 0.881041 +vt 0.489879 0.821561 +vt 0.684211 0.806691 +vt 0.765182 0.806691 +vt -0.000000 0.739777 +vt 0.267206 0.739777 +vt 0.275304 0.602230 +vt 0.275304 0.639405 +vt 0.137652 0.449814 +vt 0.275304 0.565056 +vt 0.914980 0.776952 +vt 0.975708 0.799257 +vt 0.902834 0.724907 +vt 0.943320 0.739777 +vt 0.947368 0.765799 +vt 0.947368 0.724907 +vt 0.987854 0.739777 +vt 0.000000 0.118959 +vt 0.659919 0.104089 +vt 0.489879 0.052045 +vt 0.052632 0.152416 +vt -0.000000 0.100372 +vt 0.004049 0.048327 +vt 0.145749 0.237918 +vt -0.000000 0.055762 +vt 0.004049 0.003717 +vt 0.489879 0.000000 +vt 0.376518 0.144981 +vt 0.477733 0.275093 +vt 0.477733 0.275093 +vt 0.651822 0.750929 +vt 0.748988 0.684015 +vt 0.781377 0.684015 +vt 0.781377 0.654275 +vt 0.748988 0.654275 +vt 0.696356 0.349442 +vt 0.659919 0.349442 +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.5547 0.8321 0.0000 +vn 0.5547 0.8321 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.2561 0.9666 +vn 0.0000 -0.1113 -0.9938 +vn -0.0000 0.1045 0.9945 +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.1414 -0.9899 +vn 0.0000 0.1961 0.9806 +vn 0.0000 -0.8321 -0.5547 +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.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9898 -0.1427 -0.0000 +vn -0.9898 -0.1427 -0.0000 +vn 0.9986 0.0532 0.0000 +vn 0.0000 0.5547 -0.8321 +vn 0.0000 0.2898 -0.9571 +vn 0.0000 0.4178 -0.9086 +vn 0.9696 -0.2448 0.0000 +vn 0.9638 -0.2667 0.0000 +vn -0.9696 -0.2448 -0.0000 +vn -0.9638 -0.2667 -0.0000 +vn -0.2415 -0.9704 0.0000 +vn 0.2415 -0.9704 0.0000 +vn -0.2421 -0.9703 0.0009 +vn 0.8569 0.5154 -0.0000 +vn 0.4688 0.8833 0.0013 +vn 0.8582 0.5133 0.0061 +vn -0.8576 -0.5143 0.0065 +vn -0.8664 0.4993 0.0076 +vn -0.8576 0.5143 0.0066 +vn -0.4707 0.8823 0.0033 +vn -0.5000 0.8660 0.0014 +vn 0.8540 -0.5198 0.0206 +vn 0.8570 -0.5154 0.0000 +vn -0.8198 0.4030 0.4069 +vn -0.6324 0.5454 0.5501 +vn 0.8193 0.4028 0.4080 +vn 0.6319 0.5454 0.5507 +vn -0.2580 -0.9657 0.0277 +vn -0.3816 -0.8474 0.3692 +vn -0.8624 -0.5058 0.0217 +vn -0.8221 -0.3833 0.4210 +vn 0.2409 -0.9702 0.0278 +vn 0.3813 -0.8473 0.3697 +vn 0.8216 -0.3831 0.4221 +vn 0.9239 -0.3826 -0.0000 +vn -0.9239 -0.3826 -0.0000 +vn -0.3827 0.9239 -0.0001 +vn -0.9986 0.0532 0.0000 +vn 0.3828 -0.9238 0.0000 +vn -0.3828 -0.9238 -0.0000 +vn 0.8661 0.4998 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8570 -0.5154 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.9915 0.1303 -0.0000 +vn -0.8661 0.4998 0.0000 +vn -0.9915 0.1303 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.5074 -0.8617 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8733 -0.4871 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -0.9659 -0.2588 -0.0000 +vn -0.8733 -0.4871 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.5074 -0.8617 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.9659 0.2588 0.0000 +vn -0.9659 0.2588 -0.0000 +vn 0.4919 -0.8707 0.0000 +vn -0.8579 -0.5139 0.0000 +vn -0.4919 -0.8707 0.0000 +vn 0.8579 -0.5139 0.0000 +vn 0.4971 0.8676 0.0152 +vn 0.8602 0.5069 0.0565 +vn 0.8607 0.5059 0.0567 +vn 0.9603 0.2673 0.0801 +vn 0.9601 0.2678 0.0802 +vn -0.8607 0.5059 0.0567 +vn -0.9603 0.2673 0.0801 +vn -0.8602 0.5069 0.0565 +vn -0.4971 0.8676 0.0152 +vn -0.4965 0.8679 0.0151 +vn 0.4965 0.8679 0.0151 +vn 0.8660 0.4973 -0.0523 +vn 0.8660 -0.4973 0.0523 +vn 0.7071 -0.7032 0.0739 +vn 0.7071 0.7032 -0.0739 +vn -0.8660 0.4973 -0.0523 +vn -0.7071 0.7032 -0.0739 +vn -0.7071 -0.7032 0.0739 +vn -0.8660 -0.4973 0.0523 +vn 0.8090 0.5846 -0.0614 +vn 0.8045 0.5702 -0.1664 +vn 0.8090 -0.5846 0.0614 +vn 0.8022 -0.5932 -0.0683 +vn 0.8045 -0.5923 -0.0442 +vn 0.8090 -0.4568 -0.3699 +vn 0.8090 -0.0614 -0.5846 +vn 0.8090 0.3699 -0.4568 +vn 0.8022 0.5660 -0.1902 +vn -0.8090 -0.5846 0.0614 +vn -0.8022 -0.5932 -0.0683 +vn -0.8045 -0.5923 -0.0442 +vn -0.8090 0.5846 -0.0614 +vn -0.8045 0.5702 -0.1664 +vn -0.8022 0.5660 -0.1902 +vn -0.8090 0.3699 -0.4568 +vn -0.8090 -0.0614 -0.5846 +vn -0.8090 -0.4568 -0.3699 +vn -0.4133 -0.9050 0.1009 +vn -0.4015 0.6881 -0.6044 +vn 0.4005 0.8976 0.1842 +vn 0.4015 0.6881 -0.6044 +vn -0.3921 -0.9116 -0.1234 +vn 0.3513 -0.9044 -0.2423 +vn -0.3513 -0.9044 -0.2423 +vn -0.3527 -0.9287 -0.1148 +vn 0.3977 -0.5316 -0.7479 +vn 0.3527 -0.9287 -0.1148 +vn 0.3921 -0.9116 -0.1234 +vn -0.3976 -0.5316 -0.7479 +vn 0.3745 -0.0856 -0.9233 +vn 0.4133 -0.9050 0.1009 +vn 0.3756 0.1302 -0.9176 +vn -0.3756 0.1302 -0.9176 +vn -0.3745 -0.0856 -0.9233 +vn 0.4365 0.7953 -0.4208 +vn -0.4568 0.8586 -0.2328 +vn -0.4365 0.7953 -0.4208 +vn -0.4739 -0.7007 0.5334 +vn 0.4553 -0.8264 0.3312 +vn -0.4553 -0.8264 0.3312 +vn 0.4568 0.8586 -0.2328 +vn -0.4373 0.8820 0.1754 +vn -0.4489 -0.3977 0.8002 +vn 0.4739 -0.7007 0.5334 +vn 0.4489 -0.3977 0.8002 +vn -0.0918 -0.2734 0.9575 +vn 0.0918 -0.2734 0.9575 +vn -0.4005 0.8976 0.1842 +vn 0.4373 0.8820 0.1754 +vn -0.4066 0.8968 -0.1747 +vn 0.4066 0.8968 -0.1747 +vn -0.3826 0.9239 0.0000 +vn -0.9067 0.4207 0.0298 +vn -0.7970 -0.5523 0.2445 +vn -0.8887 -0.4503 -0.0866 +vn -0.8033 -0.2749 0.5283 +vn -0.9298 -0.1635 -0.3296 +vn -0.3431 -0.2369 0.9089 +vn -0.9154 0.3131 -0.2530 +vn -0.9409 0.3038 -0.1495 +vn -0.9195 0.3905 -0.0445 +vn -0.9116 -0.0453 -0.4087 +vn -0.6948 -0.6947 -0.1861 +vn -0.9642 0.2475 -0.0950 +vn -0.7044 -0.7043 -0.0877 +vn -0.9575 0.2768 0.0809 +vn -0.7072 -0.7070 -0.0000 +vn -0.7551 -0.6460 0.1114 +vn -0.7561 -0.6449 0.1111 +vn 0.9195 0.3905 -0.0445 +vn 0.3826 0.9239 0.0000 +vn 0.9409 0.3038 -0.1495 +vn 0.9642 0.2475 -0.0950 +vn 0.9575 0.2768 0.0809 +vn 0.9067 0.4207 0.0298 +vn 0.9154 0.3131 -0.2530 +vn 0.9110 0.0693 -0.4065 +vn 0.9116 -0.0453 -0.4087 +vn 0.9298 -0.1635 -0.3296 +vn 0.8887 -0.4503 -0.0866 +vn 0.7551 -0.6460 0.1114 +vn 0.7044 -0.7043 -0.0877 +vn 0.6948 -0.6947 -0.1861 +vn 0.3431 -0.2369 0.9089 +vn 0.8033 -0.2749 0.5283 +vn 0.7970 -0.5523 0.2445 +vn 0.7561 -0.6449 0.1111 +vn 0.7072 -0.7070 -0.0000 +vn -0.9110 0.0693 -0.4065 +vn 0.9783 0.0000 -0.2071 +vn -0.9783 0.0000 -0.2071 +vn 0.6984 0.7157 0.0000 +vn -0.0000 0.9904 -0.1381 +vn -0.7124 0.6861 -0.1475 +vn -0.6984 0.7157 0.0000 +vn 0.7124 0.6861 -0.1475 +vn 0.9142 0.4052 0.0000 +vn 0.8992 0.3985 -0.1807 +vn -0.8992 0.3985 -0.1807 +vn -0.9142 0.4052 0.0000 +vn 0.6472 0.3875 -0.6565 +vn 0.5294 0.6630 -0.5293 +vn -0.0000 0.6630 -0.7486 +vn -0.0000 0.3827 -0.9239 +vn -0.5294 0.6630 -0.5293 +vn -0.6472 0.3875 -0.6565 +vn -0.6984 0.0000 -0.7157 +vn 0.6984 0.0000 -0.7157 +vn 0.0000 0.9808 0.1951 +vn -0.0000 0.7071 0.7071 +vn -0.0000 0.3827 0.9239 +vn -0.0000 0.4830 0.8756 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.0000 0.4830 -0.8756 +vn 0.0000 0.5773 -0.8165 +vn 0.0000 0.5773 0.8165 +vn 0.0000 0.5774 0.8165 +vn 0.0000 0.8136 -0.5814 +vn 0.0000 0.3420 -0.9397 +vn 0.0000 -0.3505 0.9366 +vn 0.0000 -0.8233 0.5676 +vn 0.0000 -0.2732 -0.9620 +vn 0.0000 -0.7339 -0.6793 +vn 0.0000 0.2755 0.9613 +vn 0.0000 -0.9718 -0.2358 +vn 0.0000 -0.9397 0.3420 +vn 0.0000 0.7144 0.6997 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 -0.5814 -0.8136 +vn 0.0000 0.8590 0.5120 +vn 0.0000 -0.7834 -0.6215 +vn 0.0000 -0.5373 0.8434 +vn 0.0000 -0.9892 -0.1465 +vn -0.0000 -0.9103 -0.4139 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.9845 0.1754 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -1.0000 -0.0052 +vn 0.0000 0.9831 -0.1831 +vn 0.0000 -0.9632 -0.2688 +vn 0.0000 -0.3092 0.9510 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.0161 -0.9999 +vn 0.0000 0.1644 -0.9864 +vn 0.0000 0.4082 0.9129 +vn 0.0000 0.6000 0.8000 +vn 0.0000 0.0161 0.9999 +vn 0.0000 -0.6000 -0.8000 +vn 0.0000 -0.4082 -0.9129 +vn 0.4686 0.8834 -0.0000 +vn -0.8576 0.5143 0.0065 +vn -0.9601 0.2678 0.0802 +vn -0.8145 -0.4575 0.3569 +vn 0.8145 -0.4575 0.3569 +s off +f 585/1102/142 586/1103/142 587/1104/142 +f 588/1105/142 589/1106/142 590/1107/142 +f 591/1108/142 592/1109/142 588/1105/142 +f 593/1110/142 594/1111/142 591/1108/142 +f 593/1110/142 595/1112/142 596/1113/142 +f 597/1114/142 586/1115/142 595/1112/142 +f 598/1116/142 589/1106/142 599/1117/142 +f 585/1102/142 599/1117/142 600/1118/142 +f 601/1119/143 602/1120/143 603/1121/143 +f 604/1122/144 605/1123/144 606/1124/144 +f 601/1125/144 607/1126/144 602/1127/144 +f 608/1128/145 609/1129/145 610/1130/145 +f 611/1131/146 605/1123/146 612/1132/146 +f 611/1131/147 613/1133/147 614/1134/147 +f 615/1135/143 616/1136/143 617/1137/143 +f 617/1137/148 618/1138/148 619/1139/148 +f 618/1138/149 620/1140/149 619/1139/149 +f 621/1141/142 615/1135/142 620/1142/142 +f 616/1143/144 621/1144/144 618/1145/144 +f 622/1146/149 604/1147/149 606/1148/149 +f 623/1149/145 624/1150/145 625/1151/145 +f 626/1152/142 627/1153/142 628/1154/142 +f 629/1155/142 605/1156/142 614/1157/142 +f 630/1158/150 631/1159/150 632/1160/150 +f 625/1161/145 633/1162/145 630/1158/145 +f 634/1163/151 632/1160/151 631/1159/151 +f 635/1164/142 636/1165/142 637/1166/142 +f 638/1167/142 639/1168/142 640/1169/142 +f 641/1170/142 642/1171/142 643/1172/142 +f 644/1173/149 645/1174/149 646/1175/149 +f 647/1176/143 648/1177/143 649/1178/143 +f 650/1179/143 651/1180/143 652/1181/143 +f 653/1182/149 654/1183/149 655/1184/149 +f 656/1185/152 657/1186/152 658/1187/152 +f 659/1188/153 660/1189/153 661/1190/153 +f 662/1191/153 663/1192/153 664/1193/153 +f 665/1194/153 666/1195/153 667/1196/153 +f 668/1197/149 669/1198/149 670/1199/149 +f 671/1200/143 672/1201/143 673/1202/143 +f 674/1203/145 655/1204/145 675/1205/145 +f 676/1206/142 677/1207/142 678/1208/142 +f 679/1209/149 680/1210/149 681/1211/149 +f 682/1212/142 677/1207/142 676/1206/142 +f 683/1213/145 684/1214/145 685/1215/145 +f 679/1209/145 684/1214/145 683/1213/145 +f 682/1212/143 686/1216/143 687/1217/143 +f 688/1218/142 676/1206/142 678/1208/142 +f 689/1219/149 690/1220/149 691/1221/149 +f 688/1222/150 692/1223/150 685/1224/150 +f 685/1215/145 686/1216/145 683/1213/145 +f 687/1217/145 689/1225/145 691/1226/145 +f 681/1227/142 693/1228/142 694/1229/142 +f 684/1230/154 688/1222/154 685/1224/154 +f 678/1231/155 689/1219/155 692/1223/155 +f 693/1228/142 680/1232/142 688/1218/142 +f 683/1213/144 676/1233/144 680/1234/144 +f 693/1235/143 695/1236/143 694/1237/143 +f 689/1225/145 686/1216/145 692/1238/145 +f 696/1239/144 697/1240/144 698/1241/144 +f 699/1242/156 700/1243/156 701/1244/156 +f 702/1245/144 699/1242/144 701/1244/144 +f 703/1246/150 704/1247/150 705/1248/150 +f 700/1243/157 696/1239/157 698/1241/157 +f 703/1246/143 706/1249/143 707/1250/143 +f 708/1251/149 709/1252/149 710/1253/149 +f 709/1252/142 711/1254/142 712/1255/142 +f 713/1256/142 714/1257/142 706/1249/142 +f 704/1258/143 711/1259/143 702/1260/143 +f 697/1261/149 715/1262/149 705/1263/149 +f 702/1245/144 716/1264/144 708/1251/144 +f 706/1265/144 697/1240/144 707/1250/144 +f 705/1248/150 713/1266/150 703/1246/150 +f 709/1267/150 704/1247/150 710/1253/150 +f 717/1268/145 710/1253/145 703/1246/145 +f 705/1263/142 704/1258/142 700/1269/142 +f 718/1270/158 719/1271/158 720/1272/158 +f 719/1271/144 721/1273/144 720/1272/144 +f 722/1274/159 723/1275/159 724/1276/159 +f 725/1277/143 719/1278/143 726/1279/143 +f 726/1279/143 727/1280/143 725/1277/143 +f 723/1281/143 727/1280/143 724/1282/143 +f 728/1283/149 722/1284/149 729/1285/149 +f 718/1286/149 729/1285/149 722/1284/149 +f 720/1287/149 730/1288/149 718/1286/149 +f 731/1289/158 732/1290/158 733/1291/158 +f 734/1292/144 735/1293/144 732/1290/144 +f 736/1294/159 737/1295/159 738/1296/159 +f 739/1297/143 734/1298/143 731/1299/143 +f 731/1299/143 740/1300/143 739/1297/143 +f 737/1301/143 740/1300/143 738/1302/143 +f 741/1303/149 736/1304/149 742/1305/149 +f 733/1306/149 742/1305/149 736/1304/149 +f 732/1307/149 743/1308/149 733/1306/149 +f 690/1309/144 695/1310/144 691/1311/144 +f 744/1312/149 745/1313/149 746/1314/149 +f 747/1315/149 748/1316/149 749/1317/149 +f 744/1312/149 746/1314/149 749/1317/149 +f 750/1318/149 751/1319/149 752/1320/149 +f 753/1321/149 752/1320/149 754/1322/149 +f 755/1323/149 753/1321/149 754/1324/149 +f 756/1325/149 754/1326/149 757/1327/149 +f 758/1328/149 757/1327/149 759/1329/149 +f 760/1330/149 759/1329/149 761/1331/149 +f 762/1332/149 761/1333/149 763/1334/149 +f 764/1335/149 763/1336/149 765/1337/149 +f 765/1337/149 766/1338/149 764/1335/149 +f 767/1339/149 766/1340/149 768/1341/149 +f 767/1339/149 769/1342/149 746/1343/149 +f 747/1344/149 746/1345/149 769/1346/149 +f 770/1347/149 745/1348/149 771/1349/149 +f 772/1350/143 773/1351/143 774/1352/143 +f 775/1353/143 776/1354/143 777/1355/143 +f 774/1352/143 778/1356/143 779/1357/143 +f 779/1357/143 780/1358/143 781/1359/143 +f 782/1360/143 781/1361/143 780/1358/143 +f 781/1362/143 783/1363/143 784/1364/143 +f 784/1364/143 785/1365/143 786/1366/143 +f 786/1366/143 787/1367/143 788/1368/143 +f 788/1369/143 789/1370/143 790/1371/143 +f 790/1372/143 791/1373/143 792/1374/143 +f 792/1374/143 793/1375/143 794/1376/143 +f 795/1377/143 794/1378/143 793/1379/143 +f 795/1377/143 796/1380/143 794/1378/143 +f 797/1381/143 772/1382/143 796/1383/143 +f 798/1384/149 799/1385/149 800/1386/149 +f 799/1385/149 801/1387/149 800/1386/149 +f 802/1388/149 803/1389/149 801/1387/149 +f 804/1390/143 805/1391/143 806/1392/143 +f 807/1393/143 805/1391/143 808/1394/143 +f 809/1395/143 810/1396/143 807/1393/143 +f 804/1397/160 811/1398/160 798/1399/160 +f 812/1400/150 803/1401/150 813/1402/150 +f 804/1390/143 814/1403/143 815/1404/143 +f 798/1384/149 816/1405/149 817/1406/149 +f 818/1407/142 819/1408/142 820/1409/142 +f 821/1410/142 822/1411/142 647/1412/142 +f 823/1413/142 824/1414/142 825/1415/142 +f 644/1416/142 649/1417/142 824/1414/142 +f 775/1418/143 826/1419/143 797/1420/143 +f 826/1419/143 827/1421/143 797/1420/143 +f 828/1422/145 654/1423/145 651/1424/145 +f 829/1425/145 830/1426/145 654/1423/145 +f 585/1102/142 600/1118/142 586/1103/142 +f 588/1105/142 592/1109/142 589/1106/142 +f 591/1108/142 594/1111/142 592/1109/142 +f 593/1110/142 596/1113/142 594/1111/142 +f 593/1110/142 597/1114/142 595/1112/142 +f 597/1114/142 587/1427/142 586/1115/142 +f 598/1116/142 590/1107/142 589/1106/142 +f 585/1102/142 598/1116/142 599/1117/142 +f 831/1428/143 832/1429/143 603/1121/143 +f 832/1429/143 601/1119/143 603/1121/143 +f 604/1122/144 612/1132/144 605/1123/144 +f 601/1125/144 613/1133/144 607/1126/144 +f 610/1130/145 833/1430/145 834/1431/145 +f 834/1431/145 831/1432/145 608/1128/145 +f 608/1128/145 835/1433/145 836/1434/145 +f 609/1129/145 837/1435/145 838/1436/145 +f 608/1128/145 836/1434/145 609/1129/145 +f 610/1130/145 834/1431/145 608/1128/145 +f 839/1437/145 840/1438/145 610/1130/145 +f 838/1436/145 841/1439/145 609/1129/145 +f 841/1439/145 839/1437/145 610/1130/145 +f 609/1129/145 841/1439/145 610/1130/145 +f 611/1131/146 614/1134/146 605/1123/146 +f 611/1131/147 607/1126/147 613/1133/147 +f 615/1135/143 842/1440/143 616/1136/143 +f 617/1137/148 616/1136/148 618/1138/148 +f 618/1138/149 621/1441/149 620/1140/149 +f 621/1141/142 842/1440/142 615/1135/142 +f 616/1143/144 842/1440/144 621/1144/144 +f 606/1148/149 629/1155/149 622/1146/149 +f 629/1155/149 608/1442/149 622/1146/149 +f 625/1151/145 843/1443/145 623/1149/145 +f 843/1443/145 844/1444/145 623/1149/145 +f 844/1444/145 845/1445/145 846/1446/145 +f 846/1446/145 847/1447/145 844/1444/145 +f 847/1447/145 623/1149/145 844/1444/145 +f 628/1154/142 848/1448/142 849/1449/142 +f 848/1448/142 850/1450/142 849/1449/142 +f 850/1450/142 634/1451/142 849/1449/142 +f 849/1449/142 851/1452/142 628/1154/142 +f 851/1452/142 626/1152/142 628/1154/142 +f 601/1119/142 832/1429/142 613/1453/142 +f 832/1429/142 629/1155/142 614/1157/142 +f 629/1155/142 606/1148/142 605/1156/142 +f 614/1157/142 613/1453/142 832/1429/142 +f 630/1158/150 633/1162/150 631/1159/150 +f 625/1161/145 624/1454/145 633/1162/145 +f 634/1163/151 850/1455/151 632/1160/151 +f 641/1170/142 852/1456/142 853/1457/142 +f 853/1457/142 854/1458/142 641/1170/142 +f 854/1458/142 642/1171/142 641/1170/142 +f 642/1171/142 855/1459/142 643/1172/142 +f 855/1459/142 856/1460/142 643/1172/142 +f 856/1460/142 857/1461/142 643/1172/142 +f 644/1173/149 824/1462/149 645/1174/149 +f 647/1176/143 858/1463/143 648/1177/143 +f 650/1179/143 828/1464/143 651/1180/143 +f 653/1182/149 859/1465/149 654/1183/149 +f 860/1466/152 861/1467/152 862/1468/152 +f 862/1468/152 863/1469/152 656/1185/152 +f 656/1185/152 864/1470/152 657/1186/152 +f 657/1186/152 865/1471/152 658/1187/152 +f 658/1187/152 866/1472/152 867/1473/152 +f 867/1473/152 868/1474/152 658/1187/152 +f 868/1474/152 860/1466/152 658/1187/152 +f 860/1466/152 862/1468/152 658/1187/152 +f 862/1468/152 656/1185/152 658/1187/152 +f 661/1190/153 869/1475/153 870/1476/153 +f 870/1476/153 871/1477/153 659/1188/153 +f 659/1188/153 872/1478/153 660/1189/153 +f 872/1478/153 873/1479/153 660/1189/153 +f 873/1479/153 874/1480/153 660/1189/153 +f 660/1189/153 875/1481/153 661/1190/153 +f 875/1481/153 876/1482/153 661/1190/153 +f 876/1482/153 877/1483/153 661/1190/153 +f 661/1190/153 870/1476/153 659/1188/153 +f 664/1193/153 878/1484/153 879/1485/153 +f 879/1485/153 662/1191/153 664/1193/153 +f 880/1486/153 881/1487/153 667/1196/153 +f 881/1487/153 665/1194/153 667/1196/153 +f 669/1198/149 882/1488/149 670/1199/149 +f 670/1199/149 883/1489/149 884/1490/149 +f 884/1490/149 885/1491/149 670/1199/149 +f 885/1491/149 668/1197/149 670/1199/149 +f 886/1492/143 887/1493/143 673/1202/143 +f 887/1493/143 888/1494/143 673/1202/143 +f 888/1494/143 889/1495/143 673/1202/143 +f 889/1495/143 671/1200/143 673/1202/143 +f 890/1496/145 891/1497/145 674/1203/145 +f 674/1203/145 892/1498/145 655/1204/145 +f 655/1204/145 828/1422/145 675/1205/145 +f 675/1205/145 890/1496/145 674/1203/145 +f 679/1209/149 683/1213/149 680/1210/149 +f 682/1212/142 690/1499/142 677/1207/142 +f 679/1209/145 695/1500/145 684/1214/145 +f 682/1212/143 676/1206/143 686/1216/143 +f 688/1218/142 680/1232/142 676/1206/142 +f 689/1219/149 677/1501/149 690/1220/149 +f 688/1222/150 678/1231/150 692/1223/150 +f 685/1215/145 692/1238/145 686/1216/145 +f 687/1217/145 686/1216/145 689/1225/145 +f 681/1227/142 680/1232/142 693/1228/142 +f 684/1230/154 693/1235/154 688/1222/154 +f 678/1231/155 677/1501/155 689/1219/155 +f 683/1213/144 686/1216/144 676/1233/144 +f 693/1235/143 684/1230/143 695/1236/143 +f 696/1239/144 707/1250/144 697/1240/144 +f 699/1242/156 717/1502/156 700/1243/156 +f 702/1245/144 708/1251/144 699/1242/144 +f 703/1246/150 710/1253/150 704/1247/150 +f 700/1243/157 717/1502/157 696/1239/157 +f 703/1246/143 713/1256/143 706/1249/143 +f 708/1251/149 716/1503/149 709/1252/149 +f 709/1252/142 716/1503/142 711/1254/142 +f 713/1256/142 715/1262/142 714/1257/142 +f 704/1258/143 712/1504/143 711/1259/143 +f 697/1261/149 714/1257/149 715/1262/149 +f 702/1245/144 711/1505/144 716/1264/144 +f 706/1265/144 714/1506/144 697/1240/144 +f 705/1248/150 715/1507/150 713/1266/150 +f 709/1267/150 712/1508/150 704/1247/150 +f 703/1246/145 707/1250/145 696/1239/145 +f 717/1268/145 699/1242/145 710/1253/145 +f 699/1242/145 708/1251/145 710/1253/145 +f 703/1246/145 696/1239/145 717/1268/145 +f 698/1509/142 697/1261/142 705/1263/142 +f 704/1258/142 702/1260/142 701/1510/142 +f 700/1269/142 698/1509/142 705/1263/142 +f 704/1258/142 701/1510/142 700/1269/142 +f 718/1270/158 726/1511/158 719/1271/158 +f 719/1271/144 893/1512/144 721/1273/144 +f 722/1274/159 728/1513/159 723/1275/159 +f 725/1277/143 893/1514/143 719/1278/143 +f 726/1279/143 724/1282/143 727/1280/143 +f 718/1286/149 730/1288/149 729/1285/149 +f 720/1287/149 721/1515/149 730/1288/149 +f 731/1289/158 734/1292/158 732/1290/158 +f 734/1292/144 894/1516/144 735/1293/144 +f 736/1294/159 741/1517/159 737/1295/159 +f 739/1297/143 894/1518/143 734/1298/143 +f 731/1299/143 738/1302/143 740/1300/143 +f 733/1306/149 743/1308/149 742/1305/149 +f 732/1307/149 735/1519/149 743/1308/149 +f 690/1309/144 694/1520/144 695/1310/144 +f 744/1312/149 771/1349/149 745/1313/149 +f 747/1315/149 751/1319/149 748/1316/149 +f 750/1318/149 748/1316/149 751/1319/149 +f 753/1321/149 750/1318/149 752/1320/149 +f 756/1325/149 755/1323/149 754/1326/149 +f 758/1328/149 756/1325/149 757/1327/149 +f 760/1330/149 758/1328/149 759/1329/149 +f 762/1332/149 760/1330/149 761/1333/149 +f 764/1335/149 762/1332/149 763/1336/149 +f 765/1337/149 768/1521/149 766/1338/149 +f 767/1339/149 768/1341/149 769/1342/149 +f 747/1344/149 749/1522/149 746/1345/149 +f 772/1350/143 827/1421/143 773/1351/143 +f 774/1352/143 773/1351/143 778/1356/143 +f 779/1357/143 778/1356/143 780/1358/143 +f 781/1362/143 782/1360/143 783/1363/143 +f 784/1364/143 783/1363/143 785/1365/143 +f 786/1366/143 785/1365/143 787/1367/143 +f 788/1369/143 787/1367/143 789/1370/143 +f 790/1372/143 789/1370/143 791/1373/143 +f 792/1374/143 791/1373/143 793/1375/143 +f 795/1377/143 797/1523/143 796/1380/143 +f 797/1381/143 827/1524/143 772/1382/143 +f 798/1384/149 817/1406/149 799/1385/149 +f 799/1385/149 802/1388/149 801/1387/149 +f 802/1388/149 813/1402/149 803/1389/149 +f 804/1390/143 808/1394/143 805/1391/143 +f 807/1393/143 810/1396/143 805/1391/143 +f 809/1395/143 812/1400/143 810/1396/143 +f 804/1397/160 815/1525/160 811/1398/160 +f 812/1400/150 809/1526/150 803/1401/150 +f 804/1390/143 806/1392/143 814/1403/143 +f 798/1384/149 811/1527/149 816/1405/149 +f 819/1408/142 895/1528/142 896/1529/142 +f 896/1529/142 897/1530/142 819/1408/142 +f 897/1530/142 898/1531/142 820/1409/142 +f 819/1408/142 897/1530/142 820/1409/142 +f 898/1531/142 899/1532/142 820/1409/142 +f 820/1409/142 900/1533/142 832/1534/142 +f 900/1533/142 901/1535/142 832/1534/142 +f 901/1535/142 629/1536/142 832/1534/142 +f 832/1534/142 902/1537/142 818/1407/142 +f 832/1534/142 818/1407/142 820/1409/142 +f 821/1410/142 903/1538/142 822/1411/142 +f 822/1411/142 904/1539/142 647/1412/142 +f 647/1412/142 644/1416/142 905/1540/142 +f 905/1540/142 821/1410/142 647/1412/142 +f 649/1417/142 906/1541/142 824/1414/142 +f 906/1541/142 825/1415/142 824/1414/142 +f 825/1415/142 907/1542/142 908/1543/142 +f 908/1543/142 823/1413/142 825/1415/142 +f 644/1416/142 647/1412/142 649/1417/142 +f 775/1418/143 777/1355/143 826/1419/143 +f 828/1422/145 655/1204/145 654/1423/145 +f 829/1425/145 909/1544/145 830/1426/145 +f 830/1426/145 651/1424/145 654/1423/145 +f 654/1423/145 910/1545/145 911/1546/145 +f 911/1546/145 829/1425/145 654/1423/145 +s 1 +f 587/1547/161 912/1548/162 913/1549/161 +f 597/1550/162 914/1551/163 912/1548/162 +f 593/1552/163 915/1553/164 914/1551/163 +f 591/1554/164 916/1555/165 915/1553/164 +f 588/1556/165 917/1557/166 916/1555/165 +f 590/1558/166 918/1559/167 917/1557/166 +f 598/1560/167 919/1561/168 918/1559/167 +f 585/1562/168 913/1563/161 919/1561/168 +f 594/1111/168 920/1564/161 592/1109/161 +f 592/1109/161 921/1565/162 589/1106/162 +f 589/1106/162 922/1566/163 599/1117/163 +f 599/1117/163 923/1567/164 600/1118/164 +f 595/1112/166 924/1568/165 925/1569/166 +f 595/1112/166 926/1570/167 596/1113/167 +f 596/1113/167 927/1571/168 594/1111/168 +f 600/1118/164 924/1572/165 586/1103/165 +f 900/1573/163 835/1574/162 901/1575/162 +f 902/1576/167 833/1577/166 818/1578/166 +f 820/1579/169 836/1580/163 900/1573/163 +f 629/1581/157 835/1574/162 608/1582/157 +f 832/1583/156 834/1584/167 902/1576/167 +f 818/1578/166 610/1585/170 819/1586/170 +f 899/1587/171 838/1588/155 837/1589/171 +f 831/1428/172 603/1590/173 611/1591/174 +f 603/1590/173 607/1592/145 611/1591/174 +f 622/1593/173 612/1594/145 604/1595/145 +f 928/1596/164 929/1597/163 930/1598/163 +f 931/1599/162 932/1600/161 933/1601/161 +f 934/1602/168 935/1603/167 936/1604/167 +f 937/1605/165 938/1606/166 939/1607/165 +f 937/1605/165 940/1608/164 928/1596/164 +f 930/1598/163 941/1609/162 931/1599/162 +f 933/1610/161 942/1611/168 934/1602/168 +f 936/1604/167 938/1606/166 943/1612/166 +f 624/1613/175 849/1614/175 634/1615/176 +f 847/1616/162 626/1617/161 851/1618/162 +f 845/1619/168 628/1620/167 627/1621/168 +f 843/1622/177 850/1623/178 848/1624/177 +f 624/1613/175 631/1159/149 633/1162/149 +f 623/1625/175 851/1618/162 849/1614/175 +f 846/1626/161 627/1627/168 626/1617/161 +f 844/1628/167 848/1624/177 628/1620/167 +f 944/1629/179 945/1630/180 946/1631/181 +f 636/1632/182 947/1633/183 948/1634/184 +f 949/1635/185 950/1636/186 640/1637/187 +f 638/1638/188 950/1636/186 951/1639/189 +f 636/1632/182 952/1640/190 953/1641/191 +f 954/1642/192 955/1643/193 950/1636/186 +f 951/1639/189 950/1636/186 955/1643/193 +f 956/1644/194 948/1634/184 957/1645/195 +f 947/1633/183 957/1645/195 948/1634/184 +f 958/1646/196 959/1647/197 960/1648/198 +f 959/1647/197 961/1649/199 960/1648/198 +f 962/1650/200 952/1640/190 963/1651/201 +f 963/1651/201 952/1640/190 964/1652/202 +f 963/1651/201 958/1646/196 962/1650/200 +f 952/1640/190 948/1634/184 956/1644/194 +f 956/1644/194 964/1653/202 952/1640/190 +f 960/1648/198 954/1642/192 950/1636/186 +f 954/1642/192 960/1648/198 961/1654/199 +f 963/1655/201 956/1644/194 957/1656/195 +f 959/1657/197 954/1642/192 961/1654/199 +f 965/1658/168 857/1659/167 966/1660/167 +f 967/1661/203 852/1662/162 968/1663/162 +f 966/1660/167 639/1664/204 969/1665/204 +f 970/1666/161 643/1667/168 965/1658/205 +f 970/1668/161 852/1662/162 641/1669/161 +f 971/1670/144 972/1671/157 973/1672/144 +f 974/1673/149 975/1674/155 976/1675/149 +f 977/1676/150 978/1677/154 979/1678/150 +f 980/1679/143 981/1680/156 982/1681/143 +f 983/1682/157 976/1675/149 972/1671/157 +f 984/1683/155 979/1678/150 975/1674/155 +f 985/1684/154 982/1681/143 978/1677/154 +f 986/1685/156 973/1686/144 981/1680/156 +f 820/1579/169 837/1589/171 609/1687/169 +f 896/1688/154 840/1689/206 839/1690/154 +f 897/1691/150 839/1690/154 841/1692/150 +f 898/1693/155 841/1692/150 838/1588/155 +f 819/1586/170 840/1689/206 895/1694/206 +f 625/1695/177 632/1160/143 850/1623/178 +f 987/1696/207 637/1697/203 967/1661/203 +f 969/1665/204 638/1698/208 988/1699/208 +f 635/1700/207 988/1699/208 638/1698/208 +f 853/1701/209 989/1702/210 854/1703/210 +f 946/1631/181 990/1704/211 944/1629/179 +f 854/1703/210 991/1705/144 642/1706/144 +f 642/1706/144 992/1707/212 855/1708/212 +f 852/1709/213 993/1710/209 853/1701/209 +f 855/1708/212 994/1711/214 856/1712/214 +f 856/1712/214 995/1713/215 857/1714/215 +f 996/1715/213 852/1709/213 637/1166/149 +f 640/1169/143 639/1168/143 995/1716/215 +f 945/1630/180 997/1717/191 953/1718/191 +f 945/1719/180 952/1640/190 962/1650/200 +f 960/1648/198 946/1720/181 958/1646/196 +f 958/1646/196 945/1719/180 962/1650/200 +f 908/1721/216 998/1722/150 999/1723/217 +f 823/1724/218 999/1723/217 1000/1725/219 +f 824/1462/220 1000/1725/219 645/1174/220 +f 649/1178/221 1001/1726/222 906/1727/223 +f 906/1727/223 1002/1728/224 825/1729/225 +f 892/1730/226 821/1731/210 905/1732/226 +f 825/1729/225 998/1722/150 907/1733/150 +f 891/1734/144 822/1735/212 903/1736/144 +f 890/1737/212 904/1738/227 822/1735/212 +f 674/1739/210 903/1736/144 821/1731/210 +f 653/1740/228 655/1741/228 892/1730/226 +f 858/1742/229 675/1743/227 650/1744/229 +f 1003/1745/230 829/1746/150 911/1747/216 +f 1004/1748/231 909/1749/225 1005/1750/232 +f 1006/1751/233 911/1747/216 910/1752/218 +f 1005/1750/232 829/1746/150 1007/1753/150 +f 859/1465/220 910/1752/218 654/1183/220 +f 652/1181/221 830/1754/223 1004/1748/231 +f 863/1755/234 876/1756/235 656/1757/236 +f 656/1757/236 875/1758/237 864/1759/238 +f 860/1760/239 871/1761/240 870/1762/241 +f 861/1763/242 870/1764/241 869/1765/243 +f 862/1766/144 869/1767/243 661/1768/144 +f 862/1766/144 877/1769/244 863/1755/234 +f 1008/1770/245 879/1771/149 1009/1772/149 +f 1010/1773/246 664/1774/247 1011/1775/247 +f 663/1776/248 1008/1770/245 1012/1777/248 +f 1009/1772/149 878/1778/246 1010/1773/246 +f 1013/1779/249 880/1780/250 1014/1781/250 +f 667/1782/251 1015/1783/252 1016/1784/251 +f 1017/1785/143 881/1786/249 1013/1779/249 +f 666/1787/252 1017/1785/143 1015/1783/252 +f 669/1198/253 1018/1788/254 1019/1789/253 +f 1020/1790/255 670/1791/256 882/1488/255 +f 1021/1792/257 883/1793/258 670/1791/256 +f 1022/1794/258 884/1795/259 883/1793/258 +f 1023/1796/260 884/1797/259 1024/1798/259 +f 668/1799/261 1023/1796/260 1018/1788/254 +f 1025/1800/262 673/1801/263 1026/1802/264 +f 887/1493/265 1027/1803/266 888/1804/267 +f 888/1804/267 1028/1805/268 889/1806/268 +f 1028/1805/268 671/1807/269 889/1806/268 +f 1029/1808/270 671/1809/269 1030/1810/269 +f 673/1801/263 1029/1808/270 1026/1802/264 +f 1031/1811/271 1032/1812/164 1033/1813/165 +f 1034/1814/272 1035/1815/273 1036/1816/274 +f 1037/1817/275 1038/1818/276 1039/1819/277 +f 1040/1820/278 1041/1821/279 1042/1822/280 +f 1043/1823/271 1044/1824/281 1037/1817/275 +f 1045/1825/282 1046/1826/283 1041/1821/279 +f 1040/1827/278 1047/1828/284 1043/1823/271 +f 1034/1829/272 1048/1830/285 1049/1831/286 +f 1049/1831/286 1046/1826/283 1050/1832/287 +f 1051/1833/288 1052/1834/289 1053/1835/290 +f 1054/1836/291 1055/1837/292 1056/1838/293 +f 1057/1839/294 1058/1840/295 1052/1834/289 +f 1059/1841/296 1060/1842/297 1054/1836/291 +f 1056/1838/293 1061/1843/284 1031/1811/271 +f 1062/1844/298 1039/1819/299 1038/1818/300 +f 1063/1845/301 1064/1846/302 1035/1815/273 +f 1051/1833/288 1065/1847/303 1066/1848/304 +f 1067/1849/305 1066/1848/304 1065/1847/303 +f 1034/1814/272 1068/1850/306 1063/1845/301 +f 1069/1851/307 1054/1836/291 1056/1838/293 +f 1070/1852/308 1045/1825/282 1040/1820/278 +f 1054/1836/291 1071/1853/309 1059/1841/296 +f 1072/1854/310 1050/1832/287 1045/1825/282 +f 1059/1841/296 1073/1855/311 1039/1819/299 +f 1049/1831/286 1074/1856/312 1034/1829/272 +f 1075/1857/313 1065/1847/303 1053/1835/290 +f 1076/1858/314 1067/1849/305 1065/1847/303 +f 1077/1859/315 1049/1831/286 1050/1832/287 +f 1073/1855/316 1037/1817/275 1039/1819/277 +f 1078/1860/317 1053/1835/290 1052/1834/289 +f 1079/1861/318 1043/1823/271 1037/1817/275 +f 1080/1862/319 1052/1834/289 1058/1840/295 +f 1081/1863/320 1031/1811/271 1033/1813/165 +f 1082/1864/321 1040/1827/278 1043/1823/271 +f 1063/1845/301 1080/1862/319 1058/1840/295 +f 1083/1865/322 1056/1838/293 1031/1811/271 +f 1084/1866/162 1085/1867/149 1086/1868/323 +f 1087/1869/324 1086/1870/323 1066/1848/304 +f 1066/1848/304 1088/1871/325 1051/1833/288 +f 1051/1833/288 1089/1872/326 1057/1839/294 +f 1057/1839/294 1090/1873/327 1064/1846/302 +f 1090/1873/327 1035/1815/273 1064/1846/302 +f 1036/1816/274 1091/1874/328 1092/1875/329 +f 1048/1830/285 1092/1876/329 1093/1877/330 +f 1048/1830/285 1094/1878/331 1046/1826/283 +f 1046/1826/283 1095/1879/332 1041/1821/279 +f 1041/1821/279 1096/1880/333 1042/1822/280 +f 1042/1881/280 1097/1882/334 1047/1828/284 +f 1047/1828/284 1098/1883/335 1044/1824/281 +f 1044/1824/281 1099/1884/336 1038/1818/276 +f 1062/1844/298 1099/1884/337 1100/1885/338 +f 1100/1885/338 1060/1842/297 1062/1844/298 +f 1060/1842/297 1101/1886/339 1055/1837/292 +f 1055/1837/292 1085/1887/340 1061/1843/284 +f 1061/1843/284 1102/1888/341 1032/1812/164 +f 1103/1889/167 1083/1890/143 1081/1891/143 +f 1069/1892/143 1076/1893/314 1075/1894/313 +f 1104/1895/143 1075/1894/313 1078/1896/317 +f 1071/1897/143 1104/1895/143 1078/1896/317 +f 1080/1898/319 1079/1899/143 1078/1896/317 +f 1079/1899/143 1071/1897/143 1078/1896/317 +f 1080/1898/319 1082/1900/143 1079/1899/143 +f 1082/1900/143 1074/1901/312 1070/1902/308 +f 1072/1903/310 1070/1902/308 1077/1904/315 +f 1105/1905/342 1077/1904/315 1074/1901/312 +f 1074/1901/312 1077/1904/315 1070/1902/308 +f 1086/1868/323 1101/1906/149 1088/1907/325 +f 1106/1908/149 1088/1907/325 1101/1906/149 +f 1100/1909/149 1089/1910/326 1106/1908/149 +f 1098/1911/149 1100/1909/149 1099/1912/149 +f 1089/1910/326 1098/1911/149 1090/1913/327 +f 1097/1914/149 1090/1913/327 1098/1911/149 +f 1092/1915/329 1097/1914/149 1096/1916/333 +f 1095/1917/332 1094/1918/331 1096/1916/333 +f 1093/1919/330 1092/1915/329 1094/1918/331 +f 1092/1915/329 1096/1916/333 1094/1918/331 +f 1107/1920/343 1108/1921/149 1109/1922/149 +f 1110/1923/344 1111/1924/143 1112/1925/143 +f 1113/1926/345 1114/1927/346 1115/1928/144 +f 1115/1929/144 1116/1930/347 1117/1931/348 +f 1118/1932/349 1108/1921/350 1119/1933/351 +f 1117/1931/348 1110/1923/352 1112/1925/353 +f 1120/1934/354 1118/1932/349 1119/1933/351 +f 1118/1932/349 1121/1935/355 1114/1936/346 +f 1122/1937/356 1114/1938/346 1121/1935/355 +f 1122/1937/356 1120/1934/354 1123/1939/357 +f 1122/1937/356 1124/1940/358 1114/1941/346 +f 1125/1942/359 1122/1937/356 1123/1939/357 +f 1116/1930/347 1125/1942/359 1110/1923/352 +f 1114/1943/346 1124/1940/358 1116/1930/347 +f 1110/1923/344 1126/1944/360 1127/1945/344 +f 1126/1944/360 1123/1939/145 1128/1946/145 +f 1123/1939/145 1129/1947/361 1128/1946/145 +f 1129/1947/361 1119/1933/343 1107/1920/343 +f 728/1513/144 727/1948/362 723/1275/144 +f 730/1949/363 893/1512/364 725/1950/363 +f 729/1951/362 725/1950/363 727/1948/362 +f 741/1517/144 740/1952/362 737/1295/144 +f 743/1953/363 894/1516/364 739/1954/363 +f 743/1953/363 740/1952/362 742/1955/362 +f 1130/1956/365 1131/1957/142 1132/1958/142 +f 1133/1959/150 1134/1960/366 1135/1961/366 +f 1132/1958/142 1136/1962/367 1137/1963/367 +f 1138/1964/368 1139/1965/145 1140/1966/368 +f 1135/1961/366 1139/1965/145 1141/1967/145 +f 1137/1963/367 1142/1968/150 1133/1959/150 +f 691/1969/369 695/1970/369 1138/1964/368 +f 694/1520/370 690/1309/371 1143/1971/365 +f 759/1972/372 788/1973/373 761/1974/373 +f 760/1330/374 785/1365/375 758/1328/375 +f 788/1973/373 763/1975/376 761/1974/373 +f 790/1976/376 765/1977/377 763/1975/376 +f 789/1370/378 760/1330/374 762/1332/378 +f 765/1977/377 794/1378/379 768/1341/379 +f 794/1378/379 769/1342/380 768/1341/379 +f 764/1335/381 789/1370/378 762/1332/378 +f 750/1318/382 773/1351/383 748/1316/383 +f 793/1375/384 764/1335/381 766/1338/384 +f 780/1358/385 750/1318/382 753/1321/385 +f 769/1346/380 772/1382/386 747/1344/386 +f 782/1360/387 753/1321/385 755/1323/387 +f 747/1344/386 774/1978/142 751/1979/142 +f 748/1316/383 827/1421/388 749/1317/388 +f 751/1979/142 779/1980/389 752/1981/389 +f 749/1317/388 826/1419/150 744/1312/150 +f 783/1363/390 755/1323/387 756/1325/390 +f 779/1980/389 754/1982/391 752/1981/389 +f 744/1312/150 777/1355/392 771/1349/392 +f 781/1983/391 757/1984/393 754/1982/391 +f 777/1355/392 770/1347/394 771/1349/392 +f 758/1328/375 783/1363/390 756/1325/390 +f 784/1985/393 759/1972/372 757/1984/393 +f 806/1392/395 816/1405/396 814/1403/396 +f 808/1986/397 798/1399/398 800/1987/397 +f 810/1396/399 813/1402/400 802/1388/399 +f 799/1385/401 810/1396/399 802/1388/399 +f 806/1392/395 799/1385/401 817/1406/395 +f 809/1526/402 801/1988/403 803/1401/402 +f 807/1989/403 800/1987/397 801/1988/403 +f 587/1547/161 597/1550/162 912/1548/162 +f 597/1550/162 593/1552/163 914/1551/163 +f 593/1552/163 591/1554/164 915/1553/164 +f 591/1554/164 588/1556/165 916/1555/165 +f 588/1556/165 590/1558/166 917/1557/166 +f 590/1558/166 598/1560/167 918/1559/167 +f 598/1560/167 585/1562/168 919/1561/168 +f 585/1562/168 587/1990/161 913/1563/161 +f 594/1111/168 927/1571/168 920/1564/161 +f 592/1109/161 920/1564/161 921/1565/162 +f 589/1106/162 921/1565/162 922/1566/163 +f 599/1117/163 922/1566/163 923/1567/164 +f 595/1112/166 586/1115/165 924/1568/165 +f 595/1112/166 925/1569/166 926/1570/167 +f 596/1113/167 926/1570/167 927/1571/168 +f 600/1118/164 923/1567/164 924/1572/165 +f 900/1573/163 836/1580/163 835/1574/162 +f 902/1576/167 834/1584/167 833/1577/166 +f 820/1579/169 609/1687/169 836/1580/163 +f 629/1581/157 901/1575/162 835/1574/162 +f 832/1583/156 831/1991/156 834/1584/167 +f 818/1578/166 833/1577/166 610/1585/170 +f 899/1587/171 898/1693/155 838/1588/155 +f 622/1593/173 608/1992/172 611/1591/174 +f 608/1992/172 831/1428/172 611/1591/174 +f 603/1590/173 602/1993/145 607/1592/145 +f 622/1593/173 611/1591/174 612/1594/145 +f 928/1596/164 940/1608/164 929/1597/163 +f 931/1599/162 941/1609/162 932/1600/161 +f 934/1602/168 942/1611/168 935/1603/167 +f 937/1605/165 943/1612/166 938/1606/166 +f 937/1605/165 939/1607/165 940/1608/164 +f 930/1598/163 929/1597/163 941/1609/162 +f 933/1610/161 932/1994/161 942/1611/168 +f 936/1604/167 935/1603/167 938/1606/166 +f 624/1613/175 623/1625/175 849/1614/175 +f 847/1616/162 846/1626/161 626/1617/161 +f 845/1619/168 844/1628/167 628/1620/167 +f 843/1622/177 625/1695/177 850/1623/178 +f 624/1613/175 634/1615/176 631/1159/149 +f 623/1625/175 847/1616/162 851/1618/162 +f 846/1626/161 845/1995/168 627/1627/168 +f 844/1628/167 843/1622/177 848/1624/177 +f 944/1629/179 1144/1996/180 945/1630/180 +f 636/1632/182 635/1997/404 947/1633/183 +f 949/1635/185 960/1648/198 950/1636/186 +f 638/1638/188 640/1637/405 950/1636/186 +f 636/1632/182 948/1634/184 952/1640/190 +f 963/1651/201 959/1647/197 958/1646/196 +f 963/1655/201 964/1653/202 956/1644/194 +f 959/1657/197 955/1998/193 954/1642/192 +f 965/1658/205 643/1667/168 857/1659/167 +f 967/1661/203 637/1697/203 852/1662/162 +f 966/1660/167 857/1659/167 639/1664/204 +f 970/1666/161 641/1999/161 643/1667/168 +f 970/1668/161 968/1663/162 852/1662/162 +f 971/1670/144 983/1682/157 972/1671/157 +f 974/1673/149 984/1683/155 975/1674/155 +f 977/1676/150 985/1684/154 978/1677/154 +f 980/1679/143 986/1685/156 981/1680/156 +f 983/1682/157 974/1673/149 976/1675/149 +f 984/1683/155 977/1676/150 979/1678/150 +f 985/1684/154 980/1679/143 982/1681/143 +f 986/1685/156 971/2000/144 973/1686/144 +f 820/1579/169 899/1587/171 837/1589/171 +f 896/1688/154 895/1694/206 840/1689/206 +f 897/1691/150 896/1688/154 839/1690/154 +f 898/1693/155 897/1691/150 841/1692/150 +f 819/1586/170 610/1585/170 840/1689/206 +f 625/1695/177 630/1158/143 632/1160/143 +f 987/1696/207 635/1700/207 637/1697/203 +f 969/1665/204 639/1664/204 638/1698/208 +f 635/1700/207 987/1696/207 988/1699/208 +f 853/1701/209 993/1710/209 989/1702/210 +f 946/1631/181 949/2001/185 990/1704/211 +f 854/1703/210 989/1702/210 991/1705/144 +f 642/1706/144 991/1705/144 992/1707/212 +f 852/1709/213 996/1715/213 993/1710/209 +f 855/1708/212 992/1707/212 994/1711/214 +f 856/1712/214 994/1711/214 995/1713/215 +f 637/1166/149 636/1165/149 996/1715/213 +f 636/1165/149 953/1718/191 997/1717/191 +f 996/1715/213 636/1165/149 997/1717/191 +f 990/1704/211 949/2001/185 640/1169/143 +f 639/1168/143 857/2002/215 995/1716/215 +f 990/1704/211 640/1169/143 995/1716/215 +f 945/1630/180 1144/1996/180 997/1717/191 +f 945/1719/180 953/1641/191 952/1640/190 +f 960/1648/198 949/1635/185 946/1720/181 +f 958/1646/196 946/1720/181 945/1719/180 +f 908/1721/216 907/1733/150 998/1722/150 +f 823/1724/218 908/1721/216 999/1723/217 +f 824/1462/220 823/1724/218 1000/1725/219 +f 649/1178/221 648/1177/221 1001/1726/222 +f 906/1727/223 1001/1726/222 1002/1728/224 +f 892/1730/226 674/1739/210 821/1731/210 +f 825/1729/225 1002/1728/224 998/1722/150 +f 891/1734/144 890/1737/212 822/1735/212 +f 890/1737/212 675/1743/227 904/1738/227 +f 674/1739/210 891/1734/144 903/1736/144 +f 644/1173/228 646/1175/228 905/1732/226 +f 646/1175/228 653/1740/228 892/1730/226 +f 905/1732/226 646/1175/228 892/1730/226 +f 858/1742/229 647/2003/229 904/1738/227 +f 904/1738/227 675/1743/227 858/1742/229 +f 675/1743/227 828/2004/229 650/1744/229 +f 1003/1745/230 1007/1753/150 829/1746/150 +f 1004/1748/231 830/1754/223 909/1749/225 +f 1006/1751/233 1003/1745/230 911/1747/216 +f 1005/1750/232 909/1749/225 829/1746/150 +f 859/1465/220 1006/1751/233 910/1752/218 +f 652/1181/221 651/1180/221 830/1754/223 +f 863/1755/234 877/2005/244 876/1756/235 +f 656/1757/236 876/2006/235 875/1758/237 +f 860/1760/239 868/2007/406 871/1761/240 +f 861/1763/242 860/1760/239 870/1764/241 +f 862/1766/144 861/1763/242 869/1767/243 +f 862/1766/144 661/2008/144 877/1769/244 +f 1008/1770/245 662/2009/245 879/1771/149 +f 1010/1773/246 878/1778/246 664/1774/247 +f 663/1776/248 662/2009/245 1008/1770/245 +f 1009/1772/149 879/1771/149 878/1778/246 +f 1013/1779/249 881/1786/249 880/1780/250 +f 667/1782/251 666/1787/252 1015/1783/252 +f 1017/1785/143 665/2010/143 881/1786/249 +f 666/1787/252 665/2010/143 1017/1785/143 +f 669/1198/253 668/1799/261 1018/1788/254 +f 1020/1790/255 1021/1792/257 670/1791/256 +f 1021/1792/257 1022/1794/258 883/1793/258 +f 1022/1794/258 1024/2011/259 884/1795/259 +f 1023/1796/260 885/2012/260 884/1797/259 +f 668/1799/261 885/2012/260 1023/1796/260 +f 1025/1800/262 886/1492/262 673/1801/263 +f 887/1493/265 1145/2013/265 1027/1803/266 +f 888/1804/267 1027/1803/266 1028/1805/268 +f 1028/1805/268 1030/2014/269 671/1807/269 +f 1029/1808/270 672/2015/270 671/1809/269 +f 673/1801/263 672/2015/270 1029/1808/270 +f 1031/1811/271 1061/1843/284 1032/1812/164 +f 1034/1814/272 1063/1845/301 1035/1815/273 +f 1037/1817/275 1044/1824/281 1038/1818/276 +f 1040/1820/278 1045/1825/282 1041/1821/279 +f 1043/1823/271 1047/1828/284 1044/1824/281 +f 1045/1825/282 1050/1832/287 1046/1826/283 +f 1040/1827/278 1042/1881/280 1047/1828/284 +f 1034/1829/272 1036/2016/274 1048/1830/285 +f 1049/1831/286 1048/1830/285 1046/1826/283 +f 1051/1833/288 1057/1839/294 1052/1834/289 +f 1054/1836/291 1060/1842/297 1055/1837/292 +f 1057/1839/294 1064/1846/302 1058/1840/295 +f 1059/1841/296 1062/1844/298 1060/1842/297 +f 1056/1838/293 1055/1837/292 1061/1843/284 +f 1062/1844/298 1059/1841/296 1039/1819/299 +f 1063/1845/301 1058/1840/295 1064/1846/302 +f 1051/1833/288 1053/1835/290 1065/1847/303 +f 1067/1849/305 1087/1869/324 1066/1848/304 +f 1034/1814/272 1074/2017/312 1068/1850/306 +f 1069/1851/307 1104/2018/407 1054/1836/291 +f 1070/1852/308 1072/1854/310 1045/1825/282 +f 1054/1836/291 1104/2018/407 1071/1853/309 +f 1072/1854/310 1077/1859/315 1050/1832/287 +f 1059/1841/296 1071/1853/309 1073/1855/311 +f 1049/1831/286 1105/2019/342 1074/1856/312 +f 1075/1857/313 1076/1858/314 1065/1847/303 +f 1076/1858/314 1103/2020/167 1067/1849/305 +f 1077/1859/315 1105/2019/342 1049/1831/286 +f 1073/1855/316 1079/1861/318 1037/1817/275 +f 1078/1860/317 1075/1857/313 1053/1835/290 +f 1079/1861/318 1082/1864/321 1043/1823/271 +f 1080/1862/319 1078/1860/317 1052/1834/289 +f 1081/1863/320 1083/1865/322 1031/1811/271 +f 1082/1864/321 1070/2021/308 1040/1827/278 +f 1063/1845/301 1068/1850/306 1080/1862/319 +f 1083/1865/322 1069/1851/307 1056/1838/293 +f 1084/1866/162 1102/2022/149 1085/1867/149 +f 1087/1869/324 1084/2023/162 1086/1870/323 +f 1066/1848/304 1086/1870/323 1088/1871/325 +f 1051/1833/288 1088/1871/325 1089/1872/326 +f 1057/1839/294 1089/1872/326 1090/1873/327 +f 1090/1873/327 1091/1874/328 1035/1815/273 +f 1036/1816/274 1035/1815/273 1091/1874/328 +f 1048/1830/285 1036/2016/274 1092/1876/329 +f 1048/1830/285 1093/1877/330 1094/1878/331 +f 1046/1826/283 1094/1878/331 1095/1879/332 +f 1041/1821/279 1095/1879/332 1096/1880/333 +f 1042/1881/280 1096/2024/333 1097/1882/334 +f 1047/1828/284 1097/1882/334 1098/1883/335 +f 1044/1824/281 1098/1883/335 1099/1884/336 +f 1062/1844/298 1038/1818/300 1099/1884/337 +f 1100/1885/338 1106/2025/408 1060/1842/297 +f 1060/1842/297 1106/2025/408 1101/1886/339 +f 1055/1837/292 1101/1886/339 1085/1887/340 +f 1061/1843/284 1085/1887/340 1102/1888/341 +f 1103/1889/167 1076/1893/314 1083/1890/143 +f 1069/1892/143 1083/1890/143 1076/1893/314 +f 1104/1895/143 1069/1892/143 1075/1894/313 +f 1079/1899/143 1073/2026/143 1071/1897/143 +f 1080/1898/319 1068/2027/306 1082/1900/143 +f 1082/1900/143 1068/2027/306 1074/1901/312 +f 1086/1868/323 1085/1867/149 1101/1906/149 +f 1106/1908/149 1089/1910/326 1088/1907/325 +f 1098/1911/149 1089/1910/326 1100/1909/149 +f 1097/1914/149 1091/2028/328 1090/1913/327 +f 1092/1915/329 1091/2028/328 1097/1914/149 +f 1107/1920/343 1119/1933/343 1108/1921/149 +f 1110/1923/344 1127/1945/344 1111/1924/143 +f 1113/1926/345 1118/1932/349 1114/1927/346 +f 1115/1929/144 1114/2029/346 1116/1930/347 +f 1118/1932/349 1113/1926/345 1108/1921/350 +f 1117/1931/348 1116/1930/347 1110/1923/352 +f 1120/1934/354 1121/1935/355 1118/1932/349 +f 1122/1937/356 1121/1935/355 1120/1934/354 +f 1125/1942/359 1124/1940/358 1122/1937/356 +f 1116/1930/347 1124/1940/358 1125/1942/359 +f 1110/1923/344 1125/1942/360 1126/1944/360 +f 1126/1944/360 1125/1942/360 1123/1939/145 +f 1123/1939/145 1120/1934/361 1129/1947/361 +f 1129/1947/361 1120/1934/361 1119/1933/343 +f 728/1513/144 729/1951/362 727/1948/362 +f 730/1949/363 721/1273/364 893/1512/364 +f 729/1951/362 730/1949/363 725/1950/363 +f 741/1517/144 742/1955/362 740/1952/362 +f 743/1953/363 735/1293/364 894/1516/364 +f 743/1953/363 739/1954/363 740/1952/362 +f 1130/1956/365 1143/1971/365 1131/1957/142 +f 1133/1959/150 1142/1968/150 1134/1960/366 +f 1132/1958/142 1131/1957/142 1136/1962/367 +f 1138/1964/368 1141/1967/145 1139/1965/145 +f 1135/1961/366 1134/1960/366 1139/1965/145 +f 1137/1963/367 1136/1962/367 1142/1968/150 +f 695/1970/369 679/2030/369 1138/1964/368 +f 1138/1964/368 1140/1966/368 691/1969/369 +f 1140/1966/368 687/2031/369 691/1969/369 +f 690/1309/371 682/2032/370 1143/1971/365 +f 1143/1971/365 1130/1956/365 694/1520/370 +f 1130/1956/365 681/2033/370 694/1520/370 +f 759/1972/372 786/2034/372 788/1973/373 +f 760/1330/374 787/1367/374 785/1365/375 +f 788/1973/373 790/1976/376 763/1975/376 +f 790/1976/376 792/2035/377 765/1977/377 +f 789/1370/378 787/1367/374 760/1330/374 +f 765/1977/377 792/2035/377 794/1378/379 +f 794/1378/379 796/1380/380 769/1342/380 +f 764/1335/381 791/1373/381 789/1370/378 +f 750/1318/382 778/1356/382 773/1351/383 +f 793/1375/384 791/1373/381 764/1335/381 +f 780/1358/385 778/1356/382 750/1318/382 +f 769/1346/380 796/1383/380 772/1382/386 +f 782/1360/387 780/1358/385 753/1321/385 +f 747/1344/386 772/1382/386 774/1978/142 +f 748/1316/383 773/1351/383 827/1421/388 +f 751/1979/142 774/1978/142 779/1980/389 +f 749/1317/388 827/1421/388 826/1419/150 +f 783/1363/390 782/1360/387 755/1323/387 +f 779/1980/389 781/1983/391 754/1982/391 +f 744/1312/150 826/1419/150 777/1355/392 +f 781/1983/391 784/1985/393 757/1984/393 +f 777/1355/392 776/1354/394 770/1347/394 +f 758/1328/375 785/1365/375 783/1363/390 +f 784/1985/393 786/2034/372 759/1972/372 +f 806/1392/395 817/1406/395 816/1405/396 +f 808/1986/397 804/1397/398 798/1399/398 +f 810/1396/399 812/1400/400 813/1402/400 +f 799/1385/401 805/1391/401 810/1396/399 +f 806/1392/395 805/1391/401 799/1385/401 +f 809/1526/402 807/1989/403 801/1988/403 +f 807/1989/403 808/1986/397 800/1987/397 +l 1111 1109 diff --git a/src/main/resources/assets/hbm/models/weapons/lasrifle.obj b/src/main/resources/assets/hbm/models/weapons/lasrifle.obj index e6cf75634..5cb099694 100644 --- a/src/main/resources/assets/hbm/models/weapons/lasrifle.obj +++ b/src/main/resources/assets/hbm/models/weapons/lasrifle.obj @@ -1,416 +1,6 @@ # Blender v2.79 (sub 0) OBJ File: 'lasrifle.blend' # www.blender.org -o Plane -v -0.562500 -1.000000 3.000000 -v 0.562500 -1.000000 3.000000 -v -0.562500 -1.000000 -2.000000 -v 0.562500 -1.000000 -2.000000 -v -0.562500 2.000000 -2.000000 -v -0.562500 2.000000 2.000000 -v 0.562500 2.000000 2.000000 -v 0.562500 2.000000 -2.000000 -v 0.000000 1.875000 4.000000 -v -0.250000 1.808013 4.000000 -v -0.433012 1.625000 4.000000 -v -0.500000 1.375000 4.000000 -v -0.433012 1.125000 4.000000 -v -0.250000 0.941987 4.000000 -v 0.000000 0.875000 4.000000 -v 0.250000 0.941987 4.000000 -v 0.433012 1.125000 4.000000 -v 0.500000 1.375000 4.000000 -v 0.433013 1.625000 4.000000 -v 0.250000 1.808012 4.000000 -v 0.000000 1.875000 11.500000 -v -0.250000 1.808013 11.500000 -v -0.433012 1.625000 11.500000 -v -0.500000 1.375000 11.500000 -v -0.433012 1.125000 11.500000 -v -0.250000 0.941987 11.500000 -v 0.000000 0.875000 11.500000 -v 0.250000 0.941987 11.500000 -v 0.433012 1.125000 11.500000 -v 0.500000 1.375000 11.500000 -v 0.433013 1.625000 11.500000 -v 0.250000 1.808012 11.500000 -v 0.562500 0.750000 3.000000 -v -0.562500 0.750000 3.000000 -v 0.000000 1.812500 12.000000 -v -0.218750 1.753886 12.000000 -v -0.378886 1.593750 12.000000 -v -0.437500 1.375000 12.000000 -v -0.378886 1.156250 12.000000 -v -0.218750 0.996114 12.000000 -v 0.000000 0.937500 12.000000 -v 0.218750 0.996114 12.000000 -v 0.378886 1.156250 12.000000 -v 0.437500 1.375000 12.000000 -v 0.378886 1.593750 12.000000 -v 0.218750 1.753886 12.000000 -v -0.218750 1.753892 4.500000 -v 0.000000 1.812506 4.500000 -v -0.378886 1.593756 4.500000 -v -0.437500 1.375006 4.500000 -v -0.378886 1.156256 4.500000 -v -0.218750 0.996120 4.500000 -v 0.000000 0.937506 4.500000 -v 0.218750 0.996120 4.500000 -v 0.378886 1.156256 4.500000 -v 0.437500 1.375006 4.500000 -v 0.378886 1.593756 4.500000 -v 0.218750 1.753892 4.500000 -v -0.500000 0.187500 -2.000000 -v 0.500000 0.187500 -2.000000 -v -0.500000 1.937500 -2.000000 -v 0.500000 1.937500 -2.000000 -v -0.500000 1.937500 -4.000000 -v -0.250000 -0.062500 -2.500000 -v -0.250000 -0.062500 -2.000000 -v 0.500000 1.937500 -4.000000 -v -0.500000 1.437500 -4.750000 -v 0.500000 1.437500 -4.750000 -v -0.250000 -0.812500 -2.500000 -v 0.250000 -0.812500 -2.500000 -v 0.250000 -0.812500 -2.000000 -v -0.250000 -0.812500 -2.000000 -v 0.250000 -0.062500 -2.500000 -v 0.250000 -0.062500 -2.000000 -v -0.500000 0.437500 -4.750000 -v -0.500000 0.187500 -4.500000 -v 0.500000 0.187500 -4.500000 -v 0.500000 0.437500 -4.750000 -v -0.500000 1.187500 -9.750000 -v -0.250000 1.437500 -9.750000 -v -0.250000 1.437500 -4.750000 -v -0.500000 1.187500 -4.750000 -v 0.500000 1.187500 -4.750000 -v 0.250000 1.437500 -4.750000 -v 0.250000 1.437500 -9.750000 -v 0.500000 1.187500 -9.750000 -v -0.250000 -1.062500 -9.750000 -v -0.500000 -0.812500 -9.750000 -v 0.500000 0.687500 -4.750000 -v -0.250000 0.437500 -4.750000 -v 0.250000 0.437500 -4.750000 -v -0.500000 0.687500 -4.750000 -v 0.500000 -0.812500 -9.750000 -v 0.250000 -1.062500 -9.750000 -v -0.500000 -0.802500 -8.250000 -v -0.250000 -1.062500 -8.250000 -v 0.250000 -1.062500 -8.250000 -v 0.500000 -0.812500 -8.250000 -v -0.500000 0.687500 -9.500000 -v 0.125000 0.187500 -3.500000 -v -0.500000 -0.312500 -9.500000 -v 0.500000 0.687500 -9.500000 -v -0.125000 0.187500 -3.500000 -v 0.500000 -0.312500 -9.500000 -v 0.125000 -0.437500 -3.500000 -v -0.125000 -0.437500 -3.500000 -v 0.125000 -1.937500 -4.250000 -v -0.125000 -1.937500 -4.250000 -v 0.125000 -1.937500 -5.250000 -v -0.137500 -1.937500 -5.250000 -v 0.125000 -1.562500 -5.250000 -v -0.137500 -1.562500 -5.250000 -v 0.125000 0.187500 -4.500000 -v -0.137500 0.187500 -4.500000 -v 0.125000 -0.062500 -4.500000 -v -0.137500 -0.062500 -4.500000 -v 0.375000 -0.437500 -3.750000 -v 0.375000 0.187500 -3.750000 -v 0.375000 -1.937500 -4.500000 -v 0.375000 -1.937500 -5.000000 -v 0.375000 -1.562500 -5.000000 -v 0.375000 -0.062500 -4.250000 -v 0.375000 0.187500 -4.250000 -v -0.375000 0.187500 -3.750000 -v -0.375000 -0.437500 -3.750000 -v -0.375000 -1.937500 -4.500000 -v -0.375000 -1.937500 -5.000000 -v -0.375000 -1.562500 -5.000000 -v -0.375000 0.187500 -4.250000 -v -0.375000 -0.062500 -4.250000 -v -0.250000 -0.812500 -2.500000 -v 0.250000 -0.812500 -2.500000 -v -0.250000 -0.812500 -3.750000 -v 0.250000 -0.812500 -3.750000 -v -0.250000 -0.687500 -2.500000 -v 0.250000 -0.687500 -2.500000 -v -0.250000 -0.687500 -3.750000 -v 0.250000 -0.687500 -3.750000 -v -0.562500 -1.000000 -1.500000 -v 0.562500 -1.000000 -1.500000 -v -0.562500 -1.000000 2.000000 -v 0.562500 -1.000000 2.000000 -v -0.562500 -0.750000 -1.500000 -v 0.562500 -0.750000 -1.500000 -v -0.562500 -0.750000 2.000000 -v 0.562500 -0.750000 2.000000 -v -0.562500 -1.000000 -1.500000 -v 0.562500 -1.000000 -1.500000 -v -0.562500 -1.000000 2.000000 -v 0.562500 -1.000000 2.000000 -v 0.437500 -0.750000 -1.375000 -v -0.437500 -0.750000 -1.375000 -v -0.437500 -0.750000 1.875000 -v 0.437500 -0.750000 1.875000 -v 0.562500 -0.750000 -1.500000 -v -0.562500 -0.750000 -1.500000 -v -0.562500 -0.750000 2.000000 -v 0.562500 -0.750000 2.000000 -v 0.437500 0.750000 -1.375000 -v -0.437500 0.750000 -1.375000 -v -0.437500 0.750000 1.875000 -v 0.437500 0.750000 1.875000 -v 0.062500 0.750000 -1.000000 -v 0.312500 0.750000 -1.000000 -v 0.062500 0.750000 -1.250000 -v 0.312500 0.750000 -1.250000 -v -0.312500 0.750000 -1.000000 -v -0.062500 0.750000 -1.000000 -v -0.312500 0.750000 -1.250000 -v -0.062500 0.750000 -1.250000 -v 0.062500 0.875000 -1.250000 -v 0.062500 0.875000 -1.000000 -v 0.312500 0.875000 -1.000000 -v 0.312500 0.875000 -1.250000 -v -0.312500 0.875000 -1.250000 -v -0.312500 0.875000 -1.000000 -v -0.062500 0.875000 -1.000000 -v -0.062500 0.875000 -1.250000 -v 0.000000 1.875000 4.000000 -v -0.250000 1.808013 4.000000 -v -0.433012 1.625000 4.000000 -v -0.500000 1.375000 4.000000 -v -0.433012 1.125000 4.000000 -v -0.250000 0.941987 4.000000 -v 0.000000 0.875000 4.000000 -v 0.250000 0.941987 4.000000 -v 0.433012 1.125000 4.000000 -v 0.500000 1.375000 4.000000 -v 0.433013 1.625000 4.000000 -v 0.250000 1.808012 4.000000 -v -0.218750 1.753892 4.500000 -v 0.000000 1.812506 4.500000 -v -0.378886 1.593756 4.500000 -v -0.437500 1.375006 4.500000 -v -0.378886 1.156256 4.500000 -v -0.218750 0.996120 4.500000 -v 0.000000 0.937506 4.500000 -v 0.218750 0.996120 4.500000 -v 0.378886 1.156256 4.500000 -v 0.437500 1.375006 4.500000 -v 0.378886 1.593756 4.500000 -v 0.218750 1.753892 4.500000 -v 0.000000 1.875000 2.000000 -v -0.250000 1.808013 2.000000 -v -0.433012 1.625000 2.000000 -v -0.500000 1.375000 2.000000 -v -0.433012 1.125000 2.000000 -v -0.250000 0.941987 2.000000 -v 0.000000 0.875000 2.000000 -v 0.250000 0.941987 2.000000 -v 0.433012 1.125000 2.000000 -v 0.500000 1.375000 2.000000 -v 0.433013 1.625000 2.000000 -v 0.250000 1.808012 2.000000 -v -0.218750 1.753892 2.000000 -v 0.000000 1.812506 2.000000 -v -0.378886 1.593756 2.000000 -v -0.437500 1.375006 2.000000 -v -0.378886 1.156256 2.000000 -v -0.218750 0.996120 2.000000 -v 0.000000 0.937506 2.000000 -v 0.218750 0.996120 2.000000 -v 0.378886 1.156256 2.000000 -v 0.437500 1.375006 2.000000 -v 0.378886 1.593756 2.000000 -v 0.218750 1.753892 2.000000 -v 0.000000 0.562500 3.000000 -v -0.218750 0.503886 3.000000 -v -0.378886 0.343750 3.000000 -v -0.437500 0.125000 3.000000 -v -0.378886 -0.093750 3.000000 -v -0.218750 -0.253886 3.000000 -v 0.000000 -0.312500 3.000000 -v 0.218750 -0.253886 3.000000 -v 0.378886 -0.093750 3.000000 -v 0.437500 0.125000 3.000000 -v 0.378886 0.343750 3.000000 -v 0.218750 0.503886 3.000000 -v 0.000000 0.562500 3.250000 -v -0.218750 0.503886 3.250000 -v -0.378886 0.343750 3.250000 -v -0.437500 0.125000 3.250000 -v -0.378886 -0.093750 3.250000 -v -0.218750 -0.253886 3.250000 -v 0.000000 -0.312500 3.250000 -v 0.218750 -0.253886 3.250000 -v 0.378886 -0.093750 3.250000 -v 0.437500 0.125000 3.250000 -v 0.378886 0.343750 3.250000 -v 0.218750 0.503886 3.250000 -v 0.562500 -0.375000 2.000000 -v 0.562500 -0.109835 2.109835 -v 0.562500 0.000000 2.375000 -v 0.562500 -0.109835 2.640165 -v 0.562500 -0.375000 2.750000 -v 0.562500 -0.640165 2.640165 -v 0.562500 -0.750000 2.375000 -v 0.562500 -0.640165 2.109835 -v 1.062500 -0.375000 2.000000 -v 1.062500 -0.109835 2.109835 -v 1.062500 0.000000 2.375000 -v 1.062500 -0.109835 2.640165 -v 1.062500 -0.375000 2.750000 -v 1.062500 -0.640165 2.640165 -v 1.062500 -0.750000 2.375000 -v 1.062500 -0.640165 2.109835 -v 0.812500 -0.625000 2.250000 -v 0.724112 -0.625000 2.286612 -v 0.687500 -0.625000 2.375000 -v 0.724112 -0.625000 2.463388 -v 0.812500 -0.625000 2.500000 -v 0.900888 -0.625000 2.463388 -v 0.937500 -0.625000 2.375000 -v 0.900888 -0.625000 2.286612 -v 0.812500 -1.125000 2.250000 -v 0.724112 -1.125000 2.286612 -v 0.687500 -1.125000 2.375000 -v 0.724112 -1.125000 2.463388 -v 0.812500 -1.125000 2.500000 -v 0.900888 -1.125000 2.463388 -v 0.937500 -1.125000 2.375000 -v 0.900888 -1.125000 2.286612 -v 0.724112 -1.150888 2.275888 -v 0.687500 -1.213388 2.338388 -v 0.724112 -1.275888 2.400888 -v 0.812500 -1.301777 2.426777 -v 0.900888 -1.275888 2.400888 -v 0.937500 -1.213388 2.338388 -v 0.900888 -1.150888 2.275888 -v 0.724112 -1.161612 2.250000 -v 0.687500 -1.250000 2.250000 -v 0.724112 -1.338388 2.250000 -v 0.812500 -1.375000 2.250000 -v 0.900888 -1.338388 2.250000 -v 0.937500 -1.250000 2.250000 -v 0.900888 -1.161612 2.250000 -v 0.812500 -1.125000 -0.750000 -v 0.724112 -1.161612 -0.750000 -v 0.687500 -1.250000 -0.750000 -v 0.724112 -1.338388 -0.750000 -v 0.812500 -1.375000 -0.750000 -v 0.900888 -1.338388 -0.750000 -v 0.937500 -1.250000 -0.750000 -v 0.900888 -1.161612 -0.750000 -v -0.812500 -0.625000 2.250000 -v -0.900888 -0.625000 2.286612 -v -0.937500 -0.625000 2.375000 -v -0.900888 -0.625000 2.463388 -v -0.812500 -0.625000 2.500000 -v -0.724112 -0.625000 2.463388 -v -0.687500 -0.625000 2.375000 -v -0.724112 -0.625000 2.286612 -v -0.812500 -1.125000 2.250000 -v -0.900888 -1.125000 2.286612 -v -0.937500 -1.125000 2.375000 -v -0.900888 -1.125000 2.463388 -v -0.812500 -1.125000 2.500000 -v -0.724112 -1.125000 2.463388 -v -0.687500 -1.125000 2.375000 -v -0.724112 -1.125000 2.286612 -v -0.900888 -1.150888 2.275888 -v -0.937500 -1.213388 2.338388 -v -0.900888 -1.275888 2.400888 -v -0.812500 -1.301777 2.426777 -v -0.724112 -1.275888 2.400888 -v -0.687500 -1.213388 2.338388 -v -0.724112 -1.150888 2.275888 -v -0.900888 -1.161612 2.250000 -v -0.937500 -1.250000 2.250000 -v -0.900888 -1.338388 2.250000 -v -0.812500 -1.375000 2.250000 -v -0.724112 -1.338388 2.250000 -v -0.687500 -1.250000 2.250000 -v -0.724112 -1.161612 2.250000 -v -0.812500 -1.125000 -0.750000 -v -0.900888 -1.161612 -0.750000 -v -0.937500 -1.250000 -0.750000 -v -0.900888 -1.338388 -0.750000 -v -0.812500 -1.375000 -0.750000 -v -0.724112 -1.338388 -0.750000 -v -0.687500 -1.250000 -0.750000 -v -0.724112 -1.161612 -0.750000 -v 0.775888 -1.125000 -0.838388 -v 0.713388 -1.161612 -0.775888 -v 0.713388 -1.338388 -0.775888 -v 0.775888 -1.375000 -0.838388 -v 0.838388 -1.338388 -0.900888 -v 0.864277 -1.250000 -0.926777 -v 0.838388 -1.161612 -0.900888 -v 0.687500 -1.125000 -0.875000 -v 0.687500 -1.161612 -0.786612 -v 0.687500 -1.338388 -0.786612 -v 0.687500 -1.375000 -0.875000 -v 0.687500 -1.338388 -0.963388 -v 0.687500 -1.250000 -1.000000 -v 0.687500 -1.161612 -0.963388 -v -0.775888 -1.125000 -0.838388 -v -0.838388 -1.161612 -0.900888 -v -0.864277 -1.250000 -0.926777 -v -0.838388 -1.338388 -0.900888 -v -0.775888 -1.375000 -0.838388 -v -0.713388 -1.338388 -0.775888 -v -0.713388 -1.161612 -0.775888 -v -0.687500 -1.125000 -0.875000 -v -0.687500 -1.161612 -0.963388 -v -0.687500 -1.250000 -1.000000 -v -0.687500 -1.338388 -0.963388 -v -0.687500 -1.375000 -0.875000 -v -0.687500 -1.338388 -0.786612 -v -0.687500 -1.161612 -0.786612 -v -0.500000 0.187500 -2.500000 -v -0.500000 0.187500 -2.000000 -v 0.500000 0.187500 -2.500000 -v 0.500000 0.187500 -2.000000 -v 0.500000 0.500000 -2.750000 -v 0.500000 1.125000 -2.750000 -v 0.500000 1.125000 -2.625000 -v 0.500000 0.500000 -2.625000 -v 1.062500 0.687500 -2.750000 -v 0.875000 0.500000 -2.750000 -v 0.875000 1.125000 -2.750000 -v 1.062500 0.937500 -2.750000 -v 1.062500 0.937500 -2.625000 -v 0.875000 1.125000 -2.625000 -v 0.875000 0.500000 -2.625000 -v 1.062500 0.687500 -2.625000 -v -0.750000 1.062500 -3.250000 -v -0.750000 1.062500 -1.250000 -v -0.926777 0.989277 -3.250000 -v -0.926777 0.989277 -1.250000 -v -1.000000 0.812500 -3.250000 -v -1.000000 0.812500 -1.250000 -v -0.926777 0.635723 -3.250000 -v -0.926777 0.635723 -1.250000 -v -0.750000 0.562500 -3.250000 -v -0.750000 0.562500 -1.250000 -v -0.573223 0.635723 -3.250000 -v -0.573223 0.635723 -1.250000 -v -0.500000 0.812500 -3.250000 -v -0.500000 0.812500 -1.250000 -v -0.573223 0.989277 -3.250000 -v -0.573223 0.989277 -1.250000 -v 0.125000 0.187500 -3.250000 -v -0.125000 0.187500 -3.250000 -v 0.125000 -0.437500 -3.125000 -v -0.125000 -0.437500 -3.125000 -v 0.125000 0.187500 -3.500000 -v -0.125000 0.187500 -3.500000 -v 0.125000 -0.437500 -3.500000 -v -0.125000 -0.437500 -3.500000 +o Scope v -0.750000 2.437500 -1.500000 v 0.750000 2.437500 -1.500000 v -0.750000 2.437500 -4.500000 @@ -819,239 +409,6 @@ v -0.250000 2.312500 -3.750000 v -0.250000 2.312500 -3.000000 v -0.375000 2.312500 -3.750000 v -0.375000 2.312500 -3.000000 -v -0.500000 0.500000 -2.750000 -v -0.500000 1.125000 -2.750000 -v -0.500000 1.125000 -2.625000 -v -0.500000 0.500000 -2.625000 -v -1.062500 0.687500 -2.750000 -v -0.875000 0.500000 -2.750000 -v -0.875000 1.125000 -2.750000 -v -1.062500 0.937500 -2.750000 -v -1.062500 0.937500 -2.625000 -v -0.875000 1.125000 -2.625000 -v -0.875000 0.500000 -2.625000 -v -1.062500 0.687500 -2.625000 -v 0.500000 0.500000 -1.875000 -v 0.500000 1.125000 -1.875000 -v 0.500000 1.125000 -1.750000 -v 0.500000 0.500000 -1.750000 -v 1.062500 0.687500 -1.875000 -v 0.875000 0.500000 -1.875000 -v 0.875000 1.125000 -1.875000 -v 1.062500 0.937500 -1.875000 -v 1.062500 0.937500 -1.750000 -v 0.875000 1.125000 -1.750000 -v 0.875000 0.500000 -1.750000 -v 1.062500 0.687500 -1.750000 -v -0.500000 0.500000 -1.875000 -v -0.500000 1.125000 -1.875000 -v -0.500000 1.125000 -1.750000 -v -0.500000 0.500000 -1.750000 -v -1.062500 0.687500 -1.875000 -v -0.875000 0.500000 -1.875000 -v -0.875000 1.125000 -1.875000 -v -1.062500 0.937500 -1.875000 -v -1.062500 0.937500 -1.750000 -v -0.875000 1.125000 -1.750000 -v -0.875000 0.500000 -1.750000 -v -1.062500 0.687500 -1.750000 -v 0.750000 1.062500 -3.250000 -v 0.750000 1.062500 -1.250000 -v 0.573223 0.989277 -3.250000 -v 0.573223 0.989277 -1.250000 -v 0.500000 0.812500 -3.250000 -v 0.500000 0.812500 -1.250000 -v 0.573223 0.635723 -3.250000 -v 0.573223 0.635723 -1.250000 -v 0.750000 0.562500 -3.250000 -v 0.750000 0.562500 -1.250000 -v 0.926777 0.635723 -3.250000 -v 0.926777 0.635723 -1.250000 -v 1.000000 0.812500 -3.250000 -v 1.000000 0.812500 -1.250000 -v 0.926777 0.989277 -3.250000 -v 0.926777 0.989277 -1.250000 -v -0.562500 -0.375000 2.000000 -v -0.562500 -0.109835 2.109835 -v -0.562500 0.000000 2.375000 -v -0.562500 -0.109835 2.640165 -v -0.562500 -0.375000 2.750000 -v -0.562500 -0.640165 2.640165 -v -0.562500 -0.750000 2.375000 -v -0.562500 -0.640165 2.109835 -v -1.062500 -0.375000 2.000000 -v -1.062500 -0.109835 2.109835 -v -1.062500 0.000000 2.375000 -v -1.062500 -0.109835 2.640165 -v -1.062500 -0.375000 2.750000 -v -1.062500 -0.640165 2.640165 -v -1.062500 -0.750000 2.375000 -v -1.062500 -0.640165 2.109835 -vt 0.465385 -0.000000 -vt 0.496154 0.084906 -vt 0.465385 0.084906 -vt 0.496154 0.311321 -vt 0.619231 0.396226 -vt 0.496154 0.396226 -vt 0.653846 0.084906 -vt 0.619231 0.311321 -vt 0.619231 0.084906 -vt 0.465385 0.216981 -vt 0.430769 0.311321 -vt 0.430769 0.216981 -vt 0.603846 0.000000 -vt 0.619231 0.000000 -vt 0.496154 0.000000 -vt 0.503846 0.084906 -vt 0.002103 0.018927 -vt 0.015385 0.000117 -vt 0.028667 0.018927 -vt 0.430769 0.084906 -vt 0.017308 0.226425 -vt 0.028962 0.242929 -vt 0.017308 0.292443 -vt 0.346154 0.566038 -vt 0.369231 0.603774 -vt 0.346154 0.603774 -vt 0.330769 0.660377 -vt 0.330769 0.603774 -vt 0.738462 0.169811 -vt 0.715385 0.207547 -vt 0.730769 0.075472 -vt 0.653846 0.207547 -vt 0.715385 0.283019 -vt 0.653846 0.283019 -vt 0.307692 0.566038 -vt 0.330769 0.566038 -vt 0.738462 0.283019 -vt 0.730769 -0.000000 -vt 0.653846 0.075472 -vt 0.653846 -0.000000 -vt 0.769231 0.094340 -vt 0.769231 0.169811 -vt 0.738462 0.075472 -vt 0.738462 0.000000 -vt 0.730769 0.415094 -vt 0.653846 0.415094 -vt 0.796154 0.462264 -vt 0.811538 0.462264 -vt 0.811538 0.518868 -vt 0.411538 0.622642 -vt 0.419231 0.575472 -vt 0.419231 0.622642 -vt 0.415385 0.452830 -vt 0.453846 0.490566 -vt 0.415385 0.490566 -vt 0.415385 0.547170 -vt 0.453846 0.537736 -vt 0.453846 0.547170 -vt 0.415385 0.500000 -vt 0.453846 0.500000 -vt 0.603846 0.084906 -vt 0.596154 0.000000 -vt 0.388462 0.915094 -vt 0.496154 0.830189 -vt 0.496154 0.915094 -vt 0.465385 0.490566 -vt 0.496154 0.603774 -vt 0.603846 0.103774 -vt 0.115385 0.556604 -vt 0.007692 0.471698 -vt 0.115385 0.471698 -vt 0.376923 0.452830 -vt 0.276923 0.566038 -vt 0.276923 0.452830 -vt 0.007692 0.575472 -vt 0.007692 0.556604 -vt 0.123077 0.556604 -vt 0.115385 0.452830 -vt -0.000000 0.471698 -vt 0.111538 0.584906 -vt 0.115385 0.660377 -vt 0.111538 0.650943 -vt 0.011538 0.650943 -vt 0.011538 0.584906 -vt 0.115385 0.575472 -vt 0.007692 0.660377 -vt 0.150000 0.632075 -vt 0.250000 0.566038 -vt 0.250000 0.632075 -vt 0.150000 0.452830 -vt 0.123077 0.566038 -vt 0.123077 0.452830 -vt 0.250000 0.452830 -vt 0.150000 0.566038 -vt 0.138462 0.575472 -vt 0.146154 0.594340 -vt 0.138462 0.594340 -vt 0.123077 0.575472 -vt 0.130769 0.594340 -vt 0.123077 0.594340 -vt 0.146154 0.566038 -vt 0.138462 0.566038 -vt 0.138462 0.603774 -vt 0.146154 0.603774 -vt 0.134615 0.594340 -vt 0.130769 0.575472 -vt 0.134615 0.575472 -vt 0.119231 0.575472 -vt 0.119231 0.594340 -vt 0.150000 0.594340 -vt 0.146154 0.575472 -vt 0.150000 0.575472 -vt 0.134615 0.575472 -vt 0.134615 0.594340 -vt 0.130769 0.566038 -vt 0.123077 0.566038 -vt 0.123077 0.603774 -vt 0.130769 0.603774 -vt 0.017308 0.226425 -vt 0.028962 0.242929 -vt 0.017308 0.292443 -vt 0.002103 0.018927 -vt 0.015385 0.000117 -vt 0.028667 0.018927 -vt 0.028944 0.209875 -vt 0.017308 0.226354 -vt 0.005671 0.176917 -vt 0.392282 0.481132 -vt 0.403846 0.452768 -vt 0.415410 0.481132 -vt 0.369231 0.566038 -vt 0.376923 0.603774 -vt 0.307692 0.603774 -vt 0.300000 0.566038 -vt 0.346154 0.660377 -vt 0.323077 0.679245 -vt 0.721154 0.462264 -vt 0.709615 0.471698 -vt 0.709615 0.462264 -vt 0.721154 0.471698 -vt 0.709615 0.518868 -vt 0.703846 0.462264 -vt 0.696154 0.471698 -vt 0.696154 0.462264 -vt 0.709615 0.528302 -vt 0.721154 0.518868 -vt 0.721154 0.528302 -vt 0.703846 0.471698 -vt 0.703846 0.518868 -vt 0.703846 0.528302 -vt 0.703846 0.448113 -vt 0.703846 0.429245 -vt 0.709615 0.415094 -vt 0.688461 0.453302 -vt 0.695961 0.471698 -vt 0.688461 0.490094 -vt 0.695961 0.433962 -vt 0.693765 0.446970 -vt 0.683158 0.420954 -vt 0.392308 0.566038 -vt 0.411538 0.547170 -vt 0.411538 0.575472 -vt 0.438462 0.566038 -vt 0.419231 0.547170 -vt 0.438462 0.547170 vt 0.588462 0.886792 vt 0.496154 1.000000 vt 0.496154 0.886792 @@ -1241,157 +598,6 @@ vt 0.453846 0.650943 vt 0.465385 0.650943 vt 0.461538 0.688679 vt 0.453846 0.660377 -vt 0.709615 0.471698 -vt 0.721154 0.462264 -vt 0.709615 0.462264 -vt 0.703846 0.485849 -vt 0.703846 0.504717 -vt 0.709615 0.518868 -vt 0.696154 0.471698 -vt 0.703846 0.462264 -vt 0.696154 0.462264 -vt 0.721154 0.518868 -vt 0.709615 0.528302 -vt 0.721154 0.528302 -vt 0.703846 0.471698 -vt 0.703846 0.518868 -vt 0.703846 0.528302 -vt 0.709615 0.415094 -vt 0.721154 0.462264 -vt 0.709615 0.471698 -vt 0.709615 0.462264 -vt 0.721154 0.471698 -vt 0.709615 0.518868 -vt 0.703846 0.462264 -vt 0.696154 0.471698 -vt 0.696154 0.462264 -vt 0.709615 0.528302 -vt 0.721154 0.518868 -vt 0.721154 0.528302 -vt 0.703846 0.471698 -vt 0.703846 0.518868 -vt 0.703846 0.528302 -vt 0.703846 0.448113 -vt 0.703846 0.429245 -vt 0.709615 0.415094 -vt 0.709615 0.471698 -vt 0.721154 0.462264 -vt 0.709615 0.462264 -vt 0.703846 0.485849 -vt 0.703846 0.504717 -vt 0.709615 0.518868 -vt 0.696154 0.471698 -vt 0.703846 0.462264 -vt 0.696154 0.462264 -vt 0.721154 0.518868 -vt 0.709615 0.528302 -vt 0.721154 0.528302 -vt 0.703846 0.471698 -vt 0.703846 0.518868 -vt 0.703846 0.528302 -vt 0.709615 0.415094 -vt 0.688461 0.453302 -vt 0.695961 0.471698 -vt 0.688461 0.490094 -vt 0.695961 0.433962 -vt 0.693765 0.446970 -vt 0.683158 0.420954 -vt 0.403846 0.452768 -vt 0.392282 0.481132 -vt 0.403846 0.509497 -vt 0.653846 0.311321 -vt 0.465385 0.311321 -vt 0.503846 -0.000000 -vt 0.015385 0.075355 -vt 0.007716 0.070315 -vt 0.002103 0.056545 -vt 0.000048 0.037736 -vt 0.007716 0.005157 -vt 0.023053 0.005157 -vt 0.030721 0.037736 -vt 0.028667 0.056545 -vt 0.023053 0.070315 -vt 0.010579 0.288021 -vt 0.005653 0.275939 -vt 0.003850 0.259434 -vt 0.005653 0.242929 -vt 0.010579 0.230847 -vt 0.024036 0.230847 -vt 0.030765 0.259434 -vt 0.028962 0.275939 -vt 0.024036 0.288021 -vt 0.738462 0.094340 -vt 0.738462 0.207547 -vt 0.738462 0.320755 -vt 0.738462 0.396226 -vt 0.819231 0.481132 -vt 0.819231 0.500000 -vt 0.796154 0.518868 -vt 0.788462 0.500000 -vt 0.788462 0.481132 -vt 0.453846 0.452830 -vt 0.415385 0.537736 -vt 0.596154 0.084906 -vt 0.388462 0.830189 -vt 0.619231 0.622642 -vt 0.603846 0.622642 -vt 0.603846 0.603774 -vt 0.496154 0.622642 -vt 0.465385 0.622642 -vt 0.496154 0.103774 -vt 0.376923 0.566038 -vt 0.123077 0.471698 -vt 0.007692 0.452830 -vt -0.000000 0.556604 -vt 0.010579 0.288021 -vt 0.005653 0.275939 -vt 0.003850 0.259434 -vt 0.005653 0.242929 -vt 0.010579 0.230847 -vt 0.024036 0.230847 -vt 0.030765 0.259434 -vt 0.028962 0.275939 -vt 0.024036 0.288021 -vt 0.015385 0.075355 -vt 0.007716 0.070315 -vt 0.002103 0.056545 -vt 0.000048 0.037736 -vt 0.007716 0.005157 -vt 0.023053 0.005157 -vt 0.030721 0.037736 -vt 0.028667 0.056545 -vt 0.023053 0.070315 -vt 0.010589 0.221938 -vt 0.005671 0.209875 -vt 0.003871 0.193396 -vt 0.010589 0.164854 -vt 0.017308 0.160439 -vt 0.024026 0.164854 -vt 0.028944 0.176917 -vt 0.030744 0.193396 -vt 0.024026 0.221938 -vt 0.412023 0.501189 -vt 0.403846 0.509497 -vt 0.395669 0.501189 -vt 0.395669 0.461075 -vt 0.412023 0.461075 -vt 0.376923 0.566038 -vt 0.300000 0.603774 -vt 0.353846 0.679245 -vt 0.703846 0.504717 -vt 0.703846 0.485849 -vt 0.721154 0.415094 -vt 0.683158 0.484706 -vt 0.680962 0.471698 -vt 0.683158 0.458690 -vt 0.693765 0.458690 -vt 0.693765 0.484706 -vt 0.688461 0.452358 -vt 0.683158 0.446970 -vt 0.680962 0.433962 -vt 0.688462 0.415566 -vt 0.693765 0.420954 -vt 0.392308 0.547170 vt 0.588462 1.000000 vt 0.596154 0.830189 vt 0.588462 0.698113 @@ -1429,408 +635,6 @@ vt 0.142677 0.829236 vt 0.142677 0.783263 vt 0.152048 0.773742 vt 0.407692 0.688679 -vt 0.721154 0.471698 -vt 0.721154 0.415094 -vt 0.703846 0.429245 -vt 0.703846 0.448113 -vt 0.703846 0.504717 -vt 0.703846 0.485849 -vt 0.721154 0.415094 -vt 0.721154 0.471698 -vt 0.721154 0.415094 -vt 0.703846 0.429245 -vt 0.703846 0.448113 -vt 0.683158 0.484706 -vt 0.680962 0.471698 -vt 0.683158 0.458690 -vt 0.693765 0.458690 -vt 0.693765 0.484706 -vt 0.688461 0.452358 -vt 0.683158 0.446970 -vt 0.680962 0.433962 -vt 0.688462 0.415566 -vt 0.693765 0.420954 -vt 0.412023 0.501189 -vt 0.415410 0.481132 -vt 0.412023 0.461075 -vt 0.395669 0.461075 -vt 0.395669 0.501189 -vt 0.338462 0.169811 -vt 0.030769 0.150943 -vt 0.338462 0.150943 -vt 0.338462 0.075472 -vt 0.030769 0.056604 -vt 0.338462 0.056604 -vt 0.338462 0.018868 -vt 0.030769 -0.000000 -vt 0.338462 -0.000000 -vt 0.338462 0.188679 -vt 0.030769 0.169811 -vt 0.338462 0.094340 -vt 0.030769 0.075472 -vt 0.338462 0.132075 -vt 0.030769 0.113208 -vt 0.338462 0.113208 -vt 0.338462 0.037736 -vt 0.030769 0.018868 -vt 0.338462 0.207547 -vt 0.030769 0.188679 -vt 0.030769 0.094340 -vt 0.030769 0.132075 -vt 0.030769 0.037736 -vt 0.338462 0.226415 -vt 0.030769 0.207547 -vt 0.030769 0.415094 -vt 0.338462 0.433962 -vt 0.030769 0.433962 -vt 0.030769 0.320755 -vt 0.338462 0.339623 -vt 0.030769 0.339623 -vt 0.030769 0.358491 -vt 0.338462 0.377358 -vt 0.030769 0.377358 -vt 0.030769 0.264151 -vt 0.338462 0.283019 -vt 0.030769 0.283019 -vt 0.338462 0.452830 -vt 0.030769 0.452830 -vt 0.338462 0.396226 -vt 0.030769 0.396226 -vt 0.338462 0.301887 -vt 0.030769 0.301887 -vt 0.030769 0.226415 -vt 0.338462 0.245283 -vt 0.030769 0.245283 -vt 0.338462 0.415094 -vt 0.338462 0.320755 -vt 0.338462 0.358491 -vt 0.338462 0.264151 -vt 0.769231 0.018868 -vt 0.876923 0.056604 -vt 0.769231 0.056604 -vt 0.992308 0.301887 -vt 1.000000 0.245283 -vt 1.000000 0.283019 -vt 0.923077 0.000000 -vt 0.876923 0.018868 -vt 0.876923 0.000000 -vt 0.923077 0.283019 -vt 0.769231 0.301887 -vt 0.769231 0.283019 -vt 0.923077 0.226415 -vt 0.769231 0.245283 -vt 0.769231 0.226415 -vt 0.876923 0.075472 -vt 0.769231 0.075472 -vt 0.915385 0.113208 -vt 0.923077 0.075472 -vt 0.923077 0.056604 -vt 0.930769 0.301887 -vt 0.923077 0.245283 -vt 0.930769 0.226415 -vt 0.946154 0.301887 -vt 0.946154 0.226415 -vt 0.976923 0.226415 -vt 0.992308 0.226415 -vt 0.742308 0.481132 -vt 0.742308 0.500000 -vt 0.723077 0.481132 -vt 0.723077 0.500000 -vt 0.976923 0.301887 -vt 0.830769 0.500000 -vt 0.876923 0.500000 -vt 0.884615 0.481132 -vt 0.884615 0.500000 -vt 0.796154 0.660377 -vt 0.811538 0.547170 -vt 0.819231 0.547170 -vt 0.796154 0.679245 -vt 0.788462 0.660377 -vt 0.773077 0.679245 -vt 0.788462 0.679245 -vt 0.819231 0.518868 -vt 0.796154 0.660377 -vt 0.811538 0.547170 -vt 0.788462 0.660377 -vt 0.788462 0.518868 -vt 0.773077 0.632075 -vt 0.765385 0.632075 -vt 0.765385 0.679245 -vt 0.773077 0.632075 -vt 0.796154 0.518868 -vt 0.773077 0.679245 -vt 0.788462 0.679245 -vt 0.796154 0.679245 -vt 0.765385 0.679245 -vt 0.765385 0.632075 -vt 0.819231 0.518868 -vt 0.819231 0.547170 -vt 0.788462 0.518868 -vt 0.830769 0.481132 -vt 0.430769 0.339623 -vt 0.338462 0.358491 -vt 0.338462 0.339623 -vt 0.400000 0.207547 -vt 0.338462 0.226415 -vt 0.338462 0.207547 -vt 0.430769 0.264151 -vt 0.338462 0.283019 -vt 0.338462 0.264151 -vt 0.430769 0.358491 -vt 0.338462 0.377358 -vt 0.400000 0.000000 -vt 0.338462 0.018868 -vt 0.338462 0.000000 -vt 0.430769 0.283019 -vt 0.338462 0.301887 -vt 0.430769 0.377358 -vt 0.338462 0.396226 -vt 0.400000 0.018868 -vt 0.338462 0.037736 -vt 0.430769 0.301887 -vt 0.338462 0.320755 -vt 0.400000 0.113208 -vt 0.338462 0.132075 -vt 0.338462 0.113208 -vt 0.430769 0.396226 -vt 0.338462 0.415094 -vt 0.400000 0.037736 -vt 0.338462 0.056604 -vt 0.430769 0.320755 -vt 0.400000 0.132075 -vt 0.338462 0.150943 -vt 0.430769 0.415094 -vt 0.338462 0.433962 -vt 0.400000 0.056604 -vt 0.338462 0.075472 -vt 0.400000 0.150943 -vt 0.338462 0.169811 -vt 0.430769 0.433962 -vt 0.338462 0.452830 -vt 0.400000 0.075472 -vt 0.338462 0.094340 -vt 0.400000 0.169811 -vt 0.338462 0.188679 -vt 0.430769 0.226415 -vt 0.338462 0.245283 -vt 0.338462 0.226415 -vt 0.400000 0.094340 -vt 0.400000 0.188679 -vt 0.430769 0.245283 -vt 0.407692 0.226415 -vt 0.400000 0.207547 -vt 0.407692 0.207547 -vt 0.407692 0.169811 -vt 0.400000 0.150943 -vt 0.407692 0.150943 -vt 0.407692 0.075472 -vt 0.400000 0.056604 -vt 0.407692 0.056604 -vt 0.407692 0.018868 -vt 0.400000 -0.000000 -vt 0.407692 -0.000000 -vt 0.407692 0.188679 -vt 0.400000 0.169811 -vt 0.407692 0.094340 -vt 0.400000 0.075472 -vt 0.407692 0.132075 -vt 0.400000 0.113208 -vt 0.407692 0.113208 -vt 0.407692 0.037736 -vt 0.400000 0.018868 -vt 0.400000 0.188679 -vt 0.400000 0.094340 -vt 0.400000 0.132075 -vt 0.400000 0.037736 -vt 0.376923 0.509434 -vt 0.392308 0.528302 -vt 0.376923 0.528302 -vt 0.376923 0.547170 -vt 0.392308 0.566038 -vt 0.376923 0.566038 -vt 0.392308 0.584906 -vt 0.376923 0.584906 -vt 0.376923 0.452830 -vt 0.392308 0.471698 -vt 0.376923 0.471698 -vt 0.376923 0.490566 -vt 0.392308 0.509434 -vt 0.392308 0.547170 -vt 0.392308 0.603774 -vt 0.376923 0.603774 -vt 0.392308 0.490566 -vt 0.303846 0.688679 -vt 0.319231 0.679245 -vt 0.319231 0.688679 -vt 0.303846 0.707547 -vt 0.319231 0.698113 -vt 0.319231 0.707547 -vt 0.303846 0.726415 -vt 0.319231 0.716981 -vt 0.319231 0.726415 -vt 0.303846 0.669811 -vt 0.319231 0.660377 -vt 0.319231 0.669811 -vt 0.303846 0.698113 -vt 0.303846 0.716981 -vt 0.303846 0.735849 -vt 0.319231 0.735849 -vt 0.303846 0.679245 -vt 0.300000 0.660377 -vt 0.296154 0.669811 -vt 0.296154 0.660377 -vt 0.300000 0.688679 -vt 0.296154 0.698113 -vt 0.296154 0.688679 -vt 0.296154 0.707547 -vt 0.296154 0.735849 -vt 0.296154 0.726415 -vt 0.300000 0.698113 -vt 0.296154 0.716981 -vt 0.292308 0.698113 -vt 0.292308 0.688679 -vt 0.288462 0.707547 -vt 0.292308 0.735849 -vt 0.288462 0.726415 -vt 0.288462 0.716981 -vt 0.292308 0.669811 -vt 0.292308 0.660377 -vt 0.296154 0.679245 -vt 0.300000 0.669811 -vt 0.288462 0.688679 -vt 0.196154 0.679245 -vt 0.288462 0.679245 -vt 0.288462 0.698113 -vt 0.196154 0.688679 -vt 0.196154 0.669811 -vt 0.288462 0.669811 -vt 0.196154 0.707547 -vt 0.288462 0.735849 -vt 0.196154 0.726415 -vt 0.196154 0.698113 -vt 0.196154 0.716981 -vt 0.196154 0.660377 -vt 0.288462 0.660377 -vt 0.015385 0.669811 -vt -0.000000 0.679245 -vt 0.000000 0.669811 -vt 0.015385 0.726415 -vt 0.000000 0.735849 -vt -0.000000 0.726415 -vt 0.015385 0.707547 -vt 0.000000 0.716981 -vt -0.000000 0.707547 -vt 0.015385 0.688679 -vt -0.000000 0.698113 -vt -0.000000 0.688679 -vt 0.015385 0.660377 -vt 0.000000 0.660377 -vt 0.015385 0.716981 -vt 0.015385 0.698113 -vt 0.015385 0.679245 -vt 0.019231 0.698113 -vt 0.023077 0.688679 -vt 0.023077 0.698113 -vt 0.019231 0.669811 -vt 0.023077 0.660377 -vt 0.023077 0.669811 -vt 0.023077 0.716981 -vt 0.023077 0.726415 -vt 0.023077 0.707547 -vt 0.023077 0.735849 -vt 0.019231 0.735849 -vt 0.026923 0.660377 -vt 0.026923 0.669811 -vt 0.030769 0.716981 -vt 0.030769 0.726415 -vt 0.026923 0.698113 -vt 0.030769 0.707547 -vt 0.026923 0.735849 -vt 0.026923 0.688679 -vt 0.023077 0.679245 -vt 0.019231 0.688679 -vt 0.030769 0.669811 -vt 0.123077 0.679245 -vt 0.030769 0.679245 -vt 0.030769 0.660377 -vt 0.123077 0.669811 -vt 0.123077 0.688679 -vt 0.030769 0.688679 -vt 0.123077 0.726415 -vt 0.030769 0.698113 -vt 0.123077 0.707547 -vt 0.123077 0.735849 -vt 0.030769 0.735849 -vt 0.123077 0.716981 -vt 0.123077 0.698113 -vt 0.192308 0.679245 -vt 0.188462 0.669811 -vt 0.192308 0.669811 -vt 0.188462 0.707547 -vt 0.188462 0.698113 -vt 0.192308 0.716981 -vt 0.188462 0.726415 -vt 0.188462 0.716981 -vt 0.188462 0.679245 -vt 0.188462 0.688679 -vt 0.180769 0.707547 -vt 0.184615 0.679245 -vt 0.184615 0.669811 -vt 0.180769 0.698113 -vt 0.184615 0.716981 -vt 0.180769 0.688679 -vt 0.188462 0.660377 -vt 0.188462 0.735849 -vt 0.192308 0.726415 -vt 0.184615 0.726415 -vt 0.130769 0.679245 -vt 0.130769 0.688679 -vt 0.126923 0.716981 -vt 0.130769 0.707547 -vt 0.130769 0.716981 -vt 0.130769 0.698113 -vt 0.126923 0.679245 -vt 0.130769 0.669811 -vt 0.130769 0.726415 -vt 0.126923 0.726415 -vt 0.138462 0.688679 -vt 0.138462 0.707547 -vt 0.134615 0.716981 -vt 0.138462 0.698113 -vt 0.134615 0.679245 -vt 0.134615 0.726415 -vt 0.130769 0.660377 -vt 0.126923 0.669811 -vt 0.134615 0.669811 -vt 0.130769 0.735849 -vt 0.138462 0.679245 -vt 0.180769 0.669811 -vt 0.180769 0.679245 -vt 0.138462 0.660377 -vt 0.180769 0.660377 -vt 0.138462 0.735849 -vt 0.180769 0.726415 -vt 0.180769 0.735849 -vt 0.138462 0.716981 -vt 0.180769 0.716981 -vt 0.680769 0.509434 -vt 0.619231 0.490566 -vt 0.680769 0.490566 -vt 0.680769 0.528302 -vt 0.619231 0.509434 -vt 0.680769 0.547170 -vt 0.619231 0.528302 -vt 0.680769 0.566038 -vt 0.619231 0.547170 -vt 0.680769 0.433962 -vt 0.619231 0.415094 -vt 0.680769 0.415094 -vt 0.680769 0.452830 -vt 0.619231 0.433962 -vt 0.680769 0.471698 -vt 0.619231 0.452830 -vt 0.619231 0.471698 -vt 0.811538 0.518868 vt 0.100000 0.735849 vt 0.092308 0.735849 vt 0.084615 0.735849 @@ -2111,64 +915,6 @@ vt 0.365385 0.801887 vt 0.380769 0.792453 vt 0.380769 0.735849 vt 0.357692 0.811321 -vt 0.915385 0.339623 -vt 0.876923 0.452830 -vt 0.915385 0.188679 -vt 0.915385 0.415094 -vt 0.923077 0.452830 -vt 0.680769 0.509434 -vt 0.619231 0.490566 -vt 0.680769 0.490566 -vt 0.680769 0.528302 -vt 0.619231 0.509434 -vt 0.680769 0.547170 -vt 0.619231 0.528302 -vt 0.680769 0.566038 -vt 0.619231 0.547170 -vt 0.680769 0.433962 -vt 0.619231 0.415094 -vt 0.680769 0.415094 -vt 0.680769 0.452830 -vt 0.619231 0.433962 -vt 0.680769 0.471698 -vt 0.619231 0.452830 -vt 0.619231 0.471698 -vt 0.392308 0.528302 -vt 0.376923 0.509434 -vt 0.376923 0.528302 -vt 0.392308 0.566038 -vt 0.376923 0.547170 -vt 0.376923 0.566038 -vt 0.392308 0.584906 -vt 0.376923 0.584906 -vt 0.392308 0.471698 -vt 0.376923 0.452830 -vt 0.376923 0.471698 -vt 0.392308 0.509434 -vt 0.376923 0.490566 -vt 0.392308 0.547170 -vt 0.392308 0.603774 -vt 0.376923 0.603774 -vt 0.392308 0.490566 -vt 0.030769 0.226415 -vt 0.338462 0.226415 -vt 0.923077 0.018868 -vt 0.923077 0.301887 -vt 0.769231 0.000000 -vt 0.876923 0.481132 -vt 0.400000 0.226415 -vt 0.430769 0.452830 -vt 0.400000 0.226415 -vt 0.392308 0.452830 -vt 0.303846 0.660377 -vt 0.300000 0.735849 -vt 0.196154 0.735849 -vt 0.015385 0.735849 -vt 0.019231 0.660377 -vt 0.123077 0.660377 -vt 0.138462 0.669811 -vt 0.138462 0.726415 -vt 0.619231 0.566038 vt 0.138462 0.773585 vt 0.230769 0.773585 vt 0.380769 0.735849 @@ -2177,145 +923,19 @@ vt 0.238462 0.811321 vt 0.276923 0.811321 vt 0.307692 0.811321 vt 0.380769 0.811321 -vt 0.769231 0.339623 -vt 0.769231 0.188679 -vt 0.619231 0.566038 -vt 0.392308 0.452830 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.6247 0.7809 -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.8321 -0.5547 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 0.1961 0.9806 -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.0000 1.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 vn -0.7071 0.7071 0.0000 vn 0.7190 0.6950 0.0000 vn 0.0000 0.8944 0.4472 vn 0.0000 0.5547 -0.8321 -vn -0.8660 0.5000 0.0000 -vn 0.8660 0.5000 0.0000 -vn 0.5000 -0.8660 0.0000 -vn -0.8660 -0.5000 0.0000 -vn 0.5000 0.8660 0.0000 -vn -0.5000 0.8660 0.0000 -vn 0.8660 -0.5000 0.0000 -vn -0.5000 -0.8660 0.0000 -vn -0.3936 -0.8453 0.3612 -vn 0.3627 -0.9141 0.1815 -vn 0.3929 -0.8452 0.3622 -vn 0.0000 0.3054 -0.9522 -vn -0.8941 -0.4478 0.0004 -vn -0.3703 -0.9109 0.1819 -vn -0.9078 -0.4085 0.0944 -vn -0.3827 0.9239 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.8941 0.4478 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9032 -0.4186 0.0951 -vn 0.9487 -0.2905 0.1245 -vn 0.8941 -0.4478 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.0000 -0.3054 -0.9522 -vn 0.0000 -0.2298 -0.9732 -vn 0.0000 0.2298 -0.9732 -vn -0.3595 -0.2070 0.9099 -vn 0.3897 -0.4119 0.8237 -vn 0.3595 -0.2070 0.9099 -vn -0.3827 0.0000 0.9239 -vn 0.3827 0.0000 0.9239 -vn -0.3945 0.0000 -0.9189 -vn 0.3595 0.2070 -0.9099 -vn 0.3827 0.0000 -0.9239 -vn 0.3954 0.2222 -0.8912 -vn 0.8994 0.1123 -0.4225 -vn 0.9414 0.0706 -0.3297 -vn 0.9239 0.0000 0.3827 -vn 0.9239 0.0000 -0.3827 -vn -0.4084 0.2210 -0.8856 -vn -0.9054 0.1095 -0.4102 -vn -0.9452 0.0682 -0.3193 -vn 0.8994 -0.1123 0.4225 -vn -0.8994 -0.1123 0.4225 -vn -0.9511 -0.1381 0.2762 -vn -0.9239 0.0000 0.3827 -vn -0.9287 0.0000 -0.3708 -vn -0.3703 0.2060 -0.9058 -vn -0.3897 -0.4119 0.8237 -vn 0.0000 0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.7263 0.1363 -0.6737 -vn 0.7071 0.0000 -0.7071 -vn 0.6794 -0.1448 0.7194 -vn 0.7071 0.0000 0.7071 -vn -0.6794 -0.1448 0.7194 -vn -0.7071 0.0000 0.7071 -vn -0.7263 0.1363 -0.6737 -vn -0.7071 0.0000 -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.7574 0.4617 -0.4617 -vn -0.9955 -0.0671 0.0671 -vn 0.9955 -0.0671 0.0671 -vn 0.7574 0.4617 -0.4617 -vn 0.6630 -0.5294 0.5294 -vn -0.6630 -0.5294 0.5294 -vn 0.9987 -0.0473 0.0196 -vn 0.7263 0.6737 -0.1363 -vn 0.6794 -0.7194 0.1448 -vn -0.9987 -0.0473 0.0196 -vn -0.6794 -0.7194 0.1448 -vn -0.0000 -0.9824 0.1866 -vn -0.7263 0.6737 -0.1363 -vn 0.0473 0.9987 -0.0196 -vn 0.7194 0.6794 -0.1448 -vn -0.6737 0.7263 0.1363 -vn 0.7194 -0.6794 -0.1448 -vn -0.6737 -0.7263 0.1363 -vn 0.9824 -0.0000 -0.1866 -vn 0.0473 -0.9987 -0.0196 -vn -0.0473 0.9987 -0.0196 -vn 0.6737 0.7263 0.1363 -vn -0.7194 0.6794 -0.1448 -vn 0.6737 -0.7263 0.1363 -vn -0.7194 -0.6794 -0.1448 -vn -0.0473 -0.9987 -0.0196 -vn -0.9824 0.0000 -0.1866 -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.5294 0.6630 -0.5294 -vn 0.1448 -0.6794 -0.7194 -vn 0.0196 0.9987 -0.0473 -vn -0.1363 0.7263 0.6737 -vn 0.1866 -0.0000 -0.9824 -vn 0.0196 -0.9987 -0.0473 -vn 0.1448 0.6794 -0.7194 -vn -0.1363 -0.7263 0.6737 -vn -0.0671 0.9955 -0.0671 -vn -0.5294 0.6630 -0.5294 -vn -0.5294 -0.6630 -0.5294 -vn -0.0671 -0.9955 -0.0671 -vn 0.4617 0.7574 0.4617 -vn 0.4617 -0.7574 0.4617 -vn -0.1448 0.6794 -0.7194 -vn -0.1448 -0.6794 -0.7194 -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.1363 0.7263 0.6737 -vn 0.9511 -0.1381 0.2762 vn 0.0000 -0.9803 -0.1973 vn 0.7046 -0.7095 0.0098 vn 0.7345 -0.6651 -0.1347 @@ -2524,1432 +1144,2864 @@ vn 0.1302 0.4906 0.8616 vn 0.0363 0.9640 0.2636 vn 0.1468 -0.2381 0.9601 vn 0.0000 -0.9999 0.0154 +s off +f 3/1/1 2/2/1 1/3/1 +f 15/4/2 11/5/2 13/6/2 +f 3/7/3 13/8/3 5/9/3 +f 14/10/4 9/11/4 16/12/4 +f 10/13/5 8/14/5 9/11/5 +f 26/15/1 30/16/1 25/17/1 +f 4/18/6 16/12/6 2/19/6 +f 2/20/7 16/21/7 8/14/7 +f 1/3/8 13/6/8 3/1/8 +f 8/14/9 5/9/9 7/22/9 +f 12/23/10 5/9/10 11/5/10 +f 21/24/4 24/25/4 22/26/4 +f 18/27/1 22/26/1 17/28/1 +f 19/29/3 21/24/3 18/30/3 +f 20/31/9 23/32/9 19/33/9 +f 17/34/7 24/25/7 20/35/7 +f 27/36/3 29/37/3 26/15/3 +f 28/38/9 31/39/9 27/36/9 +f 25/17/7 32/40/7 28/38/7 +f 28/38/2 26/15/2 25/17/2 +f 43/41/3 38/42/3 37/43/3 +f 34/44/7 41/45/7 33/46/7 +f 38/47/3 48/48/3 39/49/3 +f 47/50/7 34/51/7 35/52/7 +f 40/53/3 43/41/3 37/54/3 +f 41/45/7 36/55/7 33/56/7 +f 50/57/3 46/58/3 40/59/3 +f 45/60/7 49/61/7 36/62/7 +f 56/63/3 39/64/3 48/48/3 +f 35/65/7 55/66/7 47/50/7 +f 47/50/4 56/63/4 48/48/4 +f 44/67/11 47/50/11 48/48/11 +f 42/68/9 43/41/9 41/45/9 +f 45/60/10 43/41/10 46/58/10 +f 51/69/2 46/58/2 52/70/2 +f 67/71/3 62/72/3 61/73/3 +f 58/74/7 65/75/7 57/76/7 +f 62/77/3 72/78/3 63/79/3 +f 71/80/7 58/81/7 59/82/7 +f 64/83/3 67/71/3 61/84/3 +f 65/75/7 60/85/7 57/86/7 +f 74/87/3 70/88/3 64/89/3 +f 69/90/7 73/91/7 60/92/7 +f 80/93/3 63/94/3 72/78/3 +f 59/95/7 79/96/7 71/80/7 +f 71/80/4 80/93/4 72/78/4 +f 68/97/11 71/80/11 72/78/11 +f 66/98/9 67/71/9 65/75/9 +f 69/90/10 67/71/10 70/88/10 +f 75/99/2 70/88/2 76/100/2 +f 87/101/3 86/102/3 83/103/3 +f 85/104/3 89/105/3 84/106/3 +f 82/107/3 91/108/3 81/109/3 +f 84/110/3 92/111/3 82/112/3 +f 91/108/3 83/113/3 81/114/3 +f 98/115/7 99/116/7 95/117/7 +f 101/118/7 97/119/7 96/120/7 +f 103/121/7 94/122/7 93/123/7 +f 104/124/7 96/125/7 94/126/7 +f 95/127/7 103/121/7 93/128/7 +f 92/111/1 103/121/1 91/108/1 +f 89/105/6 104/124/6 92/111/6 +f 90/129/4 101/118/4 89/105/4 +f 103/121/8 87/101/8 91/108/8 +f 99/116/2 88/130/2 87/101/2 +f 105/131/12 112/132/12 107/133/12 +f 106/134/4 110/135/4 105/136/4 +f 108/137/13 109/138/13 106/139/13 +f 108/140/2 112/132/2 111/141/2 +f 135/142/7 128/143/7 127/144/7 +f 136/145/7 121/146/7 128/143/7 +f 121/146/7 130/147/7 122/148/7 +f 122/148/7 131/149/7 123/150/7 +f 131/149/7 124/151/7 123/150/7 +f 132/152/7 125/153/7 124/151/7 +f 125/154/7 134/155/7 126/156/7 +f 126/156/7 135/142/7 127/144/7 +f 141/157/7 143/158/7 138/159/7 +f 158/160/3 167/161/3 159/162/3 +f 159/162/3 168/163/3 160/164/3 +f 160/164/3 161/165/3 153/166/3 +f 161/165/3 154/167/3 153/166/3 +f 162/168/3 155/169/3 154/167/3 +f 163/170/3 156/171/3 155/169/3 +f 164/172/3 157/173/3 156/171/3 +f 157/174/3 166/175/3 158/160/3 +f 172/176/3 171/177/3 175/178/3 +f 401/179/12 408/180/12 403/181/12 +f 402/182/4 406/183/4 401/184/4 +f 404/185/13 405/186/13 402/187/13 +f 404/188/2 408/180/2 407/189/2 +f 3/1/1 4/190/1 2/2/1 +f 15/4/2 12/23/2 11/5/2 +f 13/8/3 11/191/3 5/9/3 +f 5/9/3 6/192/3 4/193/3 +f 6/192/3 10/194/3 4/193/3 +f 10/194/3 14/195/3 4/193/3 +f 4/193/3 3/7/3 5/9/3 +f 14/10/4 10/13/4 9/11/4 +f 10/13/5 6/192/5 8/14/5 +f 26/15/1 29/196/1 30/16/1 +f 4/18/6 14/10/6 16/12/6 +f 16/21/7 9/197/7 8/14/7 +f 8/14/7 7/22/7 1/198/7 +f 7/22/7 12/199/7 1/198/7 +f 12/199/7 15/200/7 1/198/7 +f 1/198/7 2/20/7 8/14/7 +f 1/3/8 15/4/8 13/6/8 +f 8/14/9 6/192/9 5/9/9 +f 12/23/10 7/22/10 5/9/10 +f 21/24/4 23/32/4 24/25/4 +f 18/27/1 21/24/1 22/26/1 +f 19/29/3 23/32/3 21/24/3 +f 20/31/9 24/25/9 23/32/9 +f 17/34/7 22/26/7 24/25/7 +f 27/36/3 31/201/3 29/37/3 +f 28/38/9 32/202/9 31/39/9 +f 25/17/7 30/203/7 32/40/7 +f 28/38/2 27/36/2 26/15/2 +f 43/41/3 44/67/3 38/42/3 +f 34/44/7 42/68/7 41/45/7 +f 38/47/3 44/67/3 48/48/3 +f 47/50/7 42/68/7 34/51/7 +f 40/53/3 46/58/3 43/41/3 +f 41/45/7 45/60/7 36/55/7 +f 50/57/3 52/70/3 46/58/3 +f 45/60/7 51/69/7 49/61/7 +f 56/63/3 54/204/3 39/64/3 +f 35/65/7 53/205/7 55/66/7 +f 47/50/4 55/66/4 56/63/4 +f 44/67/11 42/68/11 47/50/11 +f 42/68/9 44/67/9 43/41/9 +f 45/60/10 41/45/10 43/41/10 +f 51/69/2 45/60/2 46/58/2 +f 67/71/3 68/97/3 62/72/3 +f 58/74/7 66/98/7 65/75/7 +f 62/77/3 68/97/3 72/78/3 +f 71/80/7 66/98/7 58/81/7 +f 64/83/3 70/88/3 67/71/3 +f 65/75/7 69/90/7 60/85/7 +f 74/87/3 76/100/3 70/88/3 +f 69/90/7 75/99/7 73/91/7 +f 80/93/3 78/206/3 63/94/3 +f 59/95/7 77/207/7 79/96/7 +f 71/80/4 79/96/4 80/93/4 +f 68/97/11 66/98/11 71/80/11 +f 66/98/9 68/97/9 67/71/9 +f 69/90/10 65/75/10 67/71/10 +f 75/99/2 69/90/2 70/88/2 +f 87/101/3 88/130/3 86/102/3 +f 85/104/3 90/129/3 89/105/3 +f 82/107/3 92/111/3 91/108/3 +f 84/110/3 89/105/3 92/111/3 +f 91/108/3 87/101/3 83/113/3 +f 98/115/7 100/208/7 99/116/7 +f 101/118/7 102/209/7 97/119/7 +f 103/121/7 104/124/7 94/122/7 +f 104/124/7 101/118/7 96/125/7 +f 95/127/7 99/116/7 103/121/7 +f 92/111/1 104/124/1 103/121/1 +f 89/105/6 101/118/6 104/124/6 +f 90/129/4 102/209/4 101/118/4 +f 103/121/8 99/116/8 87/101/8 +f 99/116/2 100/208/2 88/130/2 +f 105/131/12 110/135/12 112/132/12 +f 106/134/4 109/138/4 110/135/4 +f 108/137/13 111/141/13 109/138/13 +f 108/140/2 107/210/2 112/132/2 +f 135/142/7 136/145/7 128/143/7 +f 136/145/7 129/211/7 121/146/7 +f 121/146/7 129/211/7 130/147/7 +f 122/148/7 130/147/7 131/149/7 +f 131/149/7 132/152/7 124/151/7 +f 132/152/7 133/212/7 125/153/7 +f 125/154/7 133/213/7 134/155/7 +f 126/156/7 134/155/7 135/142/7 +f 138/159/7 137/214/7 139/215/7 +f 139/215/7 140/216/7 141/157/7 +f 141/157/7 142/217/7 143/158/7 +f 143/158/7 144/218/7 138/159/7 +f 138/159/7 139/215/7 141/157/7 +f 158/160/3 166/175/3 167/161/3 +f 159/162/3 167/161/3 168/163/3 +f 160/164/3 168/163/3 161/165/3 +f 161/165/3 162/168/3 154/167/3 +f 162/168/3 163/170/3 155/169/3 +f 163/170/3 164/172/3 156/171/3 +f 164/172/3 165/219/3 157/173/3 +f 157/174/3 165/220/3 166/175/3 +f 171/177/3 169/221/3 170/222/3 +f 170/222/3 176/223/3 171/177/3 +f 176/223/3 175/178/3 171/177/3 +f 175/178/3 174/224/3 173/225/3 +f 173/225/3 172/176/3 175/178/3 +f 401/179/12 406/183/12 408/180/12 +f 402/182/4 405/186/4 406/183/4 +f 404/185/13 407/189/13 405/186/13 +f 404/188/2 403/226/2 408/180/2 +s 1 +f 120/227/5 135/142/4 119/228/4 +f 118/229/6 133/213/1 117/230/1 +f 116/231/8 131/149/2 115/232/2 +f 114/233/10 129/211/9 113/234/9 +f 113/234/9 136/145/5 120/227/5 +f 119/228/4 134/155/6 118/229/6 +f 117/235/1 132/152/8 116/231/8 +f 115/232/2 130/147/10 114/233/10 +f 122/148/6 138/236/1 121/146/1 +f 121/146/1 144/237/8 128/143/8 +f 127/144/2 142/238/10 126/156/10 +f 125/153/9 140/239/5 124/151/5 +f 123/150/4 137/240/6 122/148/6 +f 128/143/8 143/241/2 127/144/2 +f 126/156/10 141/242/9 125/154/9 +f 124/151/5 139/243/4 123/150/4 +f 160/164/5 145/244/9 152/245/5 +f 158/160/6 151/246/4 150/247/6 +f 156/171/8 149/248/1 148/249/8 +f 154/167/10 147/250/2 146/251/10 +f 159/162/4 152/245/5 151/246/4 +f 157/174/1 150/247/6 149/252/1 +f 155/169/2 148/249/8 147/250/2 +f 153/166/9 146/251/10 145/244/9 +f 166/175/10 175/253/2 167/161/2 +f 164/172/5 173/254/9 165/219/9 +f 162/168/6 171/255/4 163/170/4 +f 167/161/2 176/256/8 168/163/8 +f 165/220/9 174/257/10 166/175/10 +f 163/170/4 172/258/5 164/172/5 +f 161/165/1 169/259/6 162/168/6 +f 168/163/8 170/260/1 161/165/1 +f 181/261/14 237/262/15 241/263/16 +f 246/264/17 181/265/14 185/266/18 +f 186/267/19 242/268/20 246/264/17 +f 178/269/21 242/268/20 182/270/22 +f 238/271/23 181/265/14 242/268/20 +f 247/272/24 182/270/22 186/267/19 +f 187/273/25 243/274/26 247/272/24 +f 179/275/27 243/274/26 183/276/28 +f 239/277/29 182/270/22 243/274/26 +f 187/273/25 244/278/30 183/276/28 +f 184/279/31 248/280/32 188/281/33 +f 184/279/31 240/282/34 244/278/30 +f 244/278/30 179/275/27 183/276/28 +f 188/281/33 241/263/16 184/279/31 +f 185/283/18 249/284/35 189/285/36 +f 181/261/14 245/286/37 185/283/18 +f 180/287/38 241/263/16 237/262/15 +f 189/288/36 246/264/17 185/266/18 +f 190/289/39 246/264/17 250/290/40 +f 251/291/41 186/267/19 190/289/39 +f 191/292/42 247/272/24 251/291/41 +f 252/293/43 187/273/25 191/292/42 +f 192/294/44 248/280/32 252/293/43 +f 192/294/44 245/286/37 188/281/33 +f 189/285/36 253/295/45 193/296/46 +f 193/297/46 250/290/40 189/288/36 +f 190/289/39 254/298/47 194/299/48 +f 194/299/48 251/291/41 190/289/39 +f 195/300/49 251/291/41 255/301/50 +f 256/302/51 191/292/42 195/300/49 +f 196/303/52 252/293/43 256/302/51 +f 253/295/45 192/294/44 196/303/52 +f 346/304/53 193/297/46 257/305/54 +f 258/306/55 254/298/47 346/304/53 +f 347/307/56 194/299/48 258/306/55 +f 195/300/49 347/307/56 259/308/57 +f 256/302/51 259/308/57 348/309/58 +f 196/303/52 348/309/58 260/310/59 +f 253/295/45 260/310/59 345/311/60 +f 257/312/54 253/295/45 345/311/60 +f 257/312/54 349/313/61 261/314/62 +f 262/315/63 346/304/53 350/316/64 +f 259/308/57 351/317/65 263/318/66 +f 350/316/64 257/305/54 261/319/62 +f 260/310/59 352/320/67 264/321/68 +f 351/317/65 258/306/55 262/315/63 +f 200/322/69 282/323/70 268/324/71 +f 348/309/58 263/318/66 352/320/67 +f 345/311/60 264/321/68 349/313/61 +f 356/325/72 199/326/73 371/327/74 +f 212/328/75 268/324/71 288/329/76 +f 353/330/77 197/331/78 209/332/79 +f 197/331/78 282/323/70 209/332/79 +f 210/333/80 265/334/81 197/331/78 +f 354/335/82 198/336/83 210/333/80 +f 200/322/69 353/330/77 209/332/79 +f 198/336/83 284/337/84 210/333/80 +f 211/338/85 266/339/86 198/336/83 +f 371/327/74 211/338/85 355/340/87 +f 369/341/88 210/333/80 197/331/78 +f 261/314/62 273/342/89 201/343/90 +f 199/326/73 288/344/76 267/345/91 +f 372/346/92 212/328/75 356/347/72 +f 370/348/93 211/338/85 198/336/83 +f 205/349/94 275/350/95 201/351/90 +f 202/352/96 283/353/97 206/354/98 +f 202/352/96 350/316/64 275/350/95 +f 350/316/64 201/351/90 275/350/95 +f 206/354/98 277/355/99 202/352/96 +f 203/356/100 285/357/101 207/358/102 +f 203/356/100 351/317/65 277/355/99 +f 277/355/99 262/315/63 202/352/96 +f 287/359/103 203/356/100 207/358/102 +f 208/360/104 279/361/105 287/359/103 +f 264/321/68 279/361/105 204/362/106 +f 352/320/67 203/356/100 279/361/105 +f 281/363/107 204/362/106 208/360/104 +f 295/364/108 271/365/109 375/366/110 +f 205/367/94 273/342/89 281/363/107 +f 349/313/61 204/362/106 273/342/89 +f 358/368/111 205/349/94 290/369/112 +f 292/370/113 283/353/97 358/368/111 +f 268/324/71 289/371/114 376/372/115 +f 288/329/76 376/372/115 295/373/108 +f 359/374/116 206/354/98 292/370/113 +f 294/375/117 285/357/101 359/374/116 +f 211/338/85 267/345/91 286/376/118 +f 284/337/84 373/377/119 265/334/81 +f 287/359/103 294/375/117 360/378/120 +f 208/360/104 360/378/120 296/379/121 +f 282/323/70 373/377/119 289/371/114 +f 286/376/118 374/380/122 266/339/86 +f 281/363/107 296/379/121 357/381/123 +f 358/368/111 298/382/124 386/383/125 +f 266/339/86 291/384/126 284/337/84 +f 267/345/91 295/364/108 375/366/110 +f 269/385/127 229/386/128 381/387/129 +f 272/388/130 232/389/131 384/390/132 +f 289/371/114 269/385/127 381/387/129 +f 267/345/91 293/391/133 286/376/118 +f 382/392/134 214/393/135 230/394/136 +f 216/395/137 381/387/129 229/386/128 +f 374/380/122 382/392/134 291/384/126 +f 376/372/115 381/387/129 272/388/130 +f 383/396/138 215/397/139 231/398/140 +f 382/392/134 213/399/141 269/385/127 +f 375/366/110 383/396/138 293/391/133 +f 373/377/119 382/392/134 269/385/127 +f 205/367/94 357/381/123 290/400/112 +f 270/401/142 231/398/140 214/393/135 +f 295/373/108 272/388/130 384/390/132 +f 293/391/133 270/401/142 374/380/122 +f 359/374/116 300/402/143 387/403/144 +f 298/404/124 357/381/123 385/405/145 +f 271/365/109 232/406/131 215/397/139 +f 380/407/146 321/408/147 217/409/148 +f 388/410/149 294/375/117 302/411/150 +f 292/370/113 386/383/125 300/402/143 +f 232/389/131 303/412/151 324/413/152 +f 321/408/147 216/395/137 229/386/128 +f 296/379/121 385/405/145 357/381/123 +f 294/375/117 387/403/144 302/411/150 +f 322/414/153 377/415/154 297/416/155 +f 297/416/155 217/409/148 321/408/147 +f 300/402/143 362/417/156 316/418/157 +f 304/419/158 360/378/120 388/410/149 +f 229/386/128 297/416/155 321/408/147 +f 322/414/153 213/399/141 230/394/136 +f 302/411/150 363/420/159 318/421/160 +f 362/417/156 298/382/124 314/422/161 +f 299/423/162 219/424/163 378/425/164 +f 322/414/153 378/425/164 218/426/165 +f 320/427/166 388/410/149 364/428/167 +f 387/403/144 316/418/157 363/420/159 +f 214/393/135 322/414/153 230/394/136 +f 231/398/140 299/423/162 214/393/135 +f 332/429/168 362/417/156 366/430/169 +f 388/410/149 318/421/160 364/428/167 +f 324/431/152 379/432/170 301/433/171 +f 323/434/172 379/432/170 219/424/163 +f 224/435/173 308/436/174 328/437/175 +f 304/419/158 361/438/176 385/405/145 +f 215/397/139 323/434/172 231/398/140 +f 232/406/131 301/433/171 215/397/139 +f 274/439/177 325/440/178 221/441/179 +f 380/407/146 224/435/173 220/442/180 +f 303/412/151 220/442/180 324/413/152 +f 280/443/181 217/409/148 221/441/179 +f 276/444/182 326/445/183 222/446/184 +f 308/436/174 221/441/179 325/440/178 +f 218/426/165 274/439/177 377/415/154 +f 378/425/164 223/447/185 276/444/182 +f 223/447/185 307/448/186 327/449/187 +f 222/446/184 305/450/188 274/439/177 +f 377/415/154 221/441/179 217/409/148 +f 379/432/170 224/451/173 278/452/189 +f 314/453/161 385/405/145 361/438/176 +f 276/444/182 327/449/187 306/454/190 +f 378/425/164 222/446/184 218/426/165 +f 219/424/163 278/452/189 223/447/185 +f 318/421/160 367/455/191 334/456/192 +f 366/430/169 314/422/161 330/457/193 +f 278/452/189 328/458/175 307/448/186 +f 329/459/194 308/436/174 325/440/178 +f 320/427/166 368/460/195 336/461/196 +f 363/420/159 332/429/168 367/455/191 +f 325/440/178 309/462/197 329/459/194 +f 331/463/198 305/450/188 326/445/183 +f 366/430/169 338/464/199 398/465/200 +f 364/428/167 334/456/192 368/460/195 +f 326/445/183 310/466/201 331/463/198 +f 327/449/187 310/466/201 306/454/190 +f 319/467/202 236/468/14 396/469/203 +f 320/427/166 365/470/204 361/438/176 +f 307/448/186 333/471/205 327/449/187 +f 328/458/175 311/472/206 307/448/186 +f 393/473/207 392/474/20 319/467/202 +f 392/474/20 337/475/21 228/476/23 +f 308/436/174 335/477/208 328/437/175 +f 329/459/194 319/467/202 312/478/209 +f 233/479/22 225/480/29 337/475/21 +f 312/478/209 396/469/203 335/477/208 +f 329/459/194 313/481/210 393/473/207 +f 394/482/211 309/462/197 331/463/198 +f 394/482/211 389/483/26 313/481/210 +f 389/483/26 339/484/27 225/480/29 +f 331/463/198 315/485/212 394/482/211 +f 395/486/213 310/466/201 333/471/205 +f 330/487/193 361/438/176 365/470/204 +f 313/481/210 233/479/22 393/473/207 +f 333/471/205 317/488/214 395/486/213 +f 335/489/208 317/488/214 311/472/206 +f 399/490/215 332/429/168 340/491/216 +f 330/487/193 397/492/217 338/493/199 +f 235/494/31 226/495/34 390/496/30 +f 390/496/30 339/484/27 234/497/28 +f 400/498/218 334/456/192 342/499/219 +f 332/429/168 398/465/200 340/491/216 +f 394/482/211 390/496/30 234/497/28 +f 235/494/31 315/485/212 395/486/213 +f 365/470/204 344/500/220 397/492/217 +f 342/499/219 367/455/191 399/490/215 +f 236/501/14 227/502/15 391/503/16 +f 391/503/16 341/504/38 235/494/31 +f 236/468/14 228/476/23 343/505/221 +f 344/500/220 368/460/195 400/498/218 +f 395/486/213 391/503/16 235/494/31 +f 236/501/14 317/488/214 396/506/203 +f 120/227/5 136/145/5 135/142/4 +f 118/229/6 134/155/6 133/213/1 +f 116/231/8 132/152/8 131/149/2 +f 114/233/10 130/147/10 129/211/9 +f 113/234/9 129/211/9 136/145/5 +f 119/228/4 135/142/4 134/155/6 +f 117/235/1 133/212/1 132/152/8 +f 115/232/2 131/149/2 130/147/10 +f 122/148/6 137/240/6 138/236/1 +f 121/146/1 138/236/1 144/237/8 +f 127/144/2 143/241/2 142/238/10 +f 125/153/9 141/507/9 140/239/5 +f 123/150/4 139/243/4 137/240/6 +f 128/143/8 144/237/8 143/241/2 +f 126/156/10 142/238/10 141/242/9 +f 124/151/5 140/239/5 139/243/4 +f 160/164/5 153/166/9 145/244/9 +f 158/160/6 159/162/4 151/246/4 +f 156/171/8 157/173/1 149/248/1 +f 154/167/10 155/169/2 147/250/2 +f 159/162/4 160/164/5 152/245/5 +f 157/174/1 158/160/6 150/247/6 +f 155/169/2 156/171/8 148/249/8 +f 153/166/9 154/167/10 146/251/10 +f 166/175/10 174/257/10 175/253/2 +f 164/172/5 172/258/5 173/254/9 +f 162/168/6 169/259/6 171/255/4 +f 167/161/2 175/253/2 176/256/8 +f 165/220/9 173/508/9 174/257/10 +f 163/170/4 171/255/4 172/258/5 +f 161/165/1 170/260/1 169/259/6 +f 168/163/8 176/256/8 170/260/1 +f 181/261/14 177/509/221 237/262/15 +f 246/264/17 242/268/20 181/265/14 +f 186/267/19 182/270/22 242/268/20 +f 178/269/21 238/271/23 242/268/20 +f 238/271/23 177/510/221 181/265/14 +f 247/272/24 243/274/26 182/270/22 +f 187/273/25 183/276/28 243/274/26 +f 179/275/27 239/277/29 243/274/26 +f 239/277/29 178/269/21 182/270/22 +f 187/273/25 248/280/32 244/278/30 +f 184/279/31 244/278/30 248/280/32 +f 184/279/31 180/287/38 240/282/34 +f 244/278/30 240/282/34 179/275/27 +f 188/281/33 245/286/37 241/263/16 +f 185/283/18 245/286/37 249/284/35 +f 181/261/14 241/263/16 245/286/37 +f 180/287/38 184/279/31 241/263/16 +f 189/288/36 250/290/40 246/264/17 +f 190/289/39 186/267/19 246/264/17 +f 251/291/41 247/272/24 186/267/19 +f 191/292/42 187/273/25 247/272/24 +f 252/293/43 248/280/32 187/273/25 +f 192/294/44 188/281/33 248/280/32 +f 192/294/44 249/284/35 245/286/37 +f 189/285/36 249/284/35 253/295/45 +f 193/297/46 254/298/47 250/290/40 +f 190/289/39 250/290/40 254/298/47 +f 194/299/48 255/301/50 251/291/41 +f 195/300/49 191/292/42 251/291/41 +f 256/302/51 252/293/43 191/292/42 +f 196/303/52 192/294/44 252/293/43 +f 253/295/45 249/284/35 192/294/44 +f 346/304/53 254/298/47 193/297/46 +f 258/306/55 194/299/48 254/298/47 +f 347/307/56 255/301/50 194/299/48 +f 195/300/49 255/301/50 347/307/56 +f 256/302/51 195/300/49 259/308/57 +f 196/303/52 256/302/51 348/309/58 +f 253/295/45 196/303/52 260/310/59 +f 257/312/54 193/296/46 253/295/45 +f 257/312/54 345/311/60 349/313/61 +f 262/315/63 258/306/55 346/304/53 +f 259/308/57 347/307/56 351/317/65 +f 350/316/64 346/304/53 257/305/54 +f 260/310/59 348/309/58 352/320/67 +f 351/317/65 347/307/56 258/306/55 +f 200/322/69 209/332/79 282/323/70 +f 348/309/58 259/308/57 263/318/66 +f 345/311/60 260/310/59 264/321/68 +f 356/325/72 212/511/75 199/326/73 +f 212/328/75 200/322/69 268/324/71 +f 353/330/77 369/341/88 197/331/78 +f 197/331/78 265/334/81 282/323/70 +f 210/333/80 284/337/84 265/334/81 +f 354/335/82 370/348/93 198/336/83 +f 200/322/69 372/346/92 353/330/77 +f 198/336/83 266/339/86 284/337/84 +f 211/338/85 286/376/118 266/339/86 +f 371/327/74 199/326/73 211/338/85 +f 369/341/88 354/335/82 210/333/80 +f 261/314/62 349/313/61 273/342/89 +f 199/326/73 212/511/75 288/344/76 +f 372/346/92 200/322/69 212/328/75 +f 370/348/93 355/340/87 211/338/85 +f 205/349/94 283/353/97 275/350/95 +f 202/352/96 275/350/95 283/353/97 +f 202/352/96 262/315/63 350/316/64 +f 350/316/64 261/319/62 201/351/90 +f 206/354/98 285/357/101 277/355/99 +f 203/356/100 277/355/99 285/357/101 +f 203/356/100 263/318/66 351/317/65 +f 277/355/99 351/317/65 262/315/63 +f 287/359/103 279/361/105 203/356/100 +f 208/360/104 204/362/106 279/361/105 +f 264/321/68 352/320/67 279/361/105 +f 352/320/67 263/318/66 203/356/100 +f 281/363/107 273/342/89 204/362/106 +f 295/364/108 384/512/132 271/365/109 +f 205/367/94 201/343/90 273/342/89 +f 349/313/61 264/321/68 204/362/106 +f 358/368/111 283/353/97 205/349/94 +f 292/370/113 206/354/98 283/353/97 +f 268/324/71 282/323/70 289/371/114 +f 288/329/76 268/324/71 376/372/115 +f 359/374/116 285/357/101 206/354/98 +f 294/375/117 207/358/102 285/357/101 +f 211/338/85 199/326/73 267/345/91 +f 284/337/84 291/384/126 373/377/119 +f 287/359/103 207/358/102 294/375/117 +f 208/360/104 287/359/103 360/378/120 +f 282/323/70 265/334/81 373/377/119 +f 286/376/118 293/391/133 374/380/122 +f 281/363/107 208/360/104 296/379/121 +f 358/368/111 290/369/112 298/382/124 +f 266/339/86 374/380/122 291/384/126 +f 267/345/91 288/344/76 295/364/108 +f 269/385/127 213/399/141 229/386/128 +f 272/388/130 216/395/137 232/389/131 +f 289/371/114 373/377/119 269/385/127 +f 267/345/91 375/366/110 293/391/133 +f 382/392/134 270/401/142 214/393/135 +f 216/395/137 272/388/130 381/387/129 +f 374/380/122 270/401/142 382/392/134 +f 376/372/115 289/371/114 381/387/129 +f 383/396/138 271/365/109 215/397/139 +f 382/392/134 230/394/136 213/399/141 +f 375/366/110 271/365/109 383/396/138 +f 373/377/119 291/384/126 382/392/134 +f 205/367/94 281/363/107 357/381/123 +f 270/401/142 383/396/138 231/398/140 +f 295/373/108 376/372/115 272/388/130 +f 293/391/133 383/396/138 270/401/142 +f 359/374/116 292/370/113 300/402/143 +f 298/404/124 290/400/112 357/381/123 +f 271/365/109 384/512/132 232/406/131 +f 380/407/146 303/412/151 321/408/147 +f 388/410/149 360/378/120 294/375/117 +f 292/370/113 358/368/111 386/383/125 +f 232/389/131 216/395/137 303/412/151 +f 321/408/147 303/412/151 216/395/137 +f 296/379/121 304/419/158 385/405/145 +f 294/375/117 359/374/116 387/403/144 +f 322/414/153 218/426/165 377/415/154 +f 297/416/155 377/415/154 217/409/148 +f 300/402/143 386/383/125 362/417/156 +f 304/419/158 296/379/121 360/378/120 +f 229/386/128 213/399/141 297/416/155 +f 322/414/153 297/416/155 213/399/141 +f 302/411/150 387/403/144 363/420/159 +f 362/417/156 386/383/125 298/382/124 +f 299/423/162 323/434/172 219/424/163 +f 322/414/153 299/423/162 378/425/164 +f 320/427/166 304/419/158 388/410/149 +f 387/403/144 300/402/143 316/418/157 +f 214/393/135 299/423/162 322/414/153 +f 231/398/140 323/434/172 299/423/162 +f 332/429/168 316/418/157 362/417/156 +f 388/410/149 302/411/150 318/421/160 +f 324/431/152 220/513/180 379/432/170 +f 323/434/172 301/433/171 379/432/170 +f 224/435/173 280/443/181 308/436/174 +f 304/419/158 320/427/166 361/438/176 +f 215/397/139 301/433/171 323/434/172 +f 232/406/131 324/431/152 301/433/171 +f 274/439/177 305/450/188 325/440/178 +f 380/407/146 280/443/181 224/435/173 +f 303/412/151 380/407/146 220/442/180 +f 280/443/181 380/407/146 217/409/148 +f 276/444/182 306/454/190 326/445/183 +f 308/436/174 280/443/181 221/441/179 +f 218/426/165 222/446/184 274/439/177 +f 378/425/164 219/424/163 223/447/185 +f 223/447/185 278/452/189 307/448/186 +f 222/446/184 326/445/183 305/450/188 +f 377/415/154 274/439/177 221/441/179 +f 379/432/170 220/513/180 224/451/173 +f 314/453/161 298/404/124 385/405/145 +f 276/444/182 223/447/185 327/449/187 +f 378/425/164 276/444/182 222/446/184 +f 219/424/163 379/432/170 278/452/189 +f 318/421/160 363/420/159 367/455/191 +f 366/430/169 362/417/156 314/422/161 +f 278/452/189 224/451/173 328/458/175 +f 329/459/194 312/478/209 308/436/174 +f 320/427/166 364/428/167 368/460/195 +f 363/420/159 316/418/157 332/429/168 +f 325/440/178 305/450/188 309/462/197 +f 331/463/198 309/462/197 305/450/188 +f 366/430/169 330/457/193 338/464/199 +f 364/428/167 318/421/160 334/456/192 +f 326/445/183 306/454/190 310/466/201 +f 327/449/187 333/471/205 310/466/201 +f 319/467/202 392/474/20 236/468/14 +f 320/427/166 336/461/196 365/470/204 +f 307/448/186 311/472/206 333/471/205 +f 328/458/175 335/489/208 311/472/206 +f 393/473/207 233/479/22 392/474/20 +f 392/474/20 233/479/22 337/475/21 +f 308/436/174 312/478/209 335/477/208 +f 329/459/194 393/473/207 319/467/202 +f 233/479/22 389/483/26 225/480/29 +f 312/478/209 319/467/202 396/469/203 +f 329/459/194 309/462/197 313/481/210 +f 394/482/211 313/481/210 309/462/197 +f 394/482/211 234/497/28 389/483/26 +f 389/483/26 234/497/28 339/484/27 +f 331/463/198 310/466/201 315/485/212 +f 395/486/213 315/485/212 310/466/201 +f 330/487/193 314/453/161 361/438/176 +f 313/481/210 389/483/26 233/479/22 +f 333/471/205 311/472/206 317/488/214 +f 335/489/208 396/506/203 317/488/214 +f 399/490/215 367/455/191 332/429/168 +f 330/487/193 365/470/204 397/492/217 +f 235/494/31 341/504/38 226/495/34 +f 390/496/30 226/495/34 339/484/27 +f 400/498/218 368/460/195 334/456/192 +f 332/429/168 366/430/169 398/465/200 +f 394/482/211 315/485/212 390/496/30 +f 235/494/31 390/496/30 315/485/212 +f 365/470/204 336/461/196 344/500/220 +f 342/499/219 334/456/192 367/455/191 +f 236/501/14 343/514/221 227/502/15 +f 391/503/16 227/502/15 341/504/38 +f 236/468/14 392/474/20 228/476/23 +f 344/500/220 336/461/196 368/460/195 +f 395/486/213 317/488/214 391/503/16 +f 236/501/14 391/503/16 317/488/214 +o Stock +v -0.500000 1.187500 -9.750000 +v -0.250000 1.437500 -9.750000 +v -0.250000 1.437500 -4.750000 +v -0.500000 1.187500 -4.750000 +v 0.500000 1.187500 -4.750000 +v 0.250000 1.437500 -4.750000 +v 0.250000 1.437500 -9.750000 +v 0.500000 1.187500 -9.750000 +v -0.250000 -1.062500 -9.750000 +v -0.500000 -0.812500 -9.750000 +v 0.500000 0.687500 -4.750000 +v -0.250000 0.437500 -4.750000 +v 0.250000 0.437500 -4.750000 +v -0.500000 0.687500 -4.750000 +v 0.500000 -0.812500 -9.750000 +v 0.250000 -1.062500 -9.750000 +v -0.500000 -0.802500 -8.250000 +v -0.250000 -1.062500 -8.250000 +v 0.250000 -1.062500 -8.250000 +v 0.500000 -0.812500 -8.250000 +v -0.500000 0.687500 -9.500000 +v -0.500000 -0.312500 -9.500000 +v 0.500000 0.687500 -9.500000 +v 0.500000 -0.312500 -9.500000 +vt 0.769231 0.018868 +vt 0.876923 0.056604 +vt 0.769231 0.056604 +vt 0.992308 0.301887 +vt 1.000000 0.245283 +vt 1.000000 0.283019 +vt 0.923077 0.000000 +vt 0.876923 0.018868 +vt 0.876923 0.000000 +vt 0.923077 0.283019 +vt 0.769231 0.301887 +vt 0.769231 0.283019 +vt 0.923077 0.226415 +vt 0.769231 0.245283 +vt 0.769231 0.226415 +vt 0.876923 0.075472 +vt 0.769231 0.075472 +vt 0.915385 0.113208 +vt 0.923077 0.075472 +vt 0.923077 0.056604 +vt 0.930769 0.301887 +vt 0.923077 0.245283 +vt 0.930769 0.226415 +vt 0.946154 0.301887 +vt 0.946154 0.226415 +vt 0.976923 0.226415 +vt 0.992308 0.226415 +vt 0.976923 0.301887 +vt 0.915385 0.339623 +vt 0.876923 0.452830 +vt 0.915385 0.188679 +vt 0.915385 0.415094 +vt 0.923077 0.452830 +vt 0.923077 0.018868 +vt 0.923077 0.301887 +vt 0.769231 0.000000 +vt 0.769231 0.339623 +vt 0.769231 0.188679 +vn -0.3936 -0.8453 0.3612 +vn 0.3627 -0.9141 0.1815 +vn 0.3929 -0.8452 0.3622 +vn 0.0000 0.3054 -0.9522 +vn 0.0000 0.0000 -1.0000 +vn -0.8941 -0.4478 0.0004 +vn -0.3703 -0.9109 0.1819 +vn -0.9078 -0.4085 0.0944 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.8941 0.4478 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9032 -0.4186 0.0951 +vn 0.9487 -0.2905 0.1245 +vn 1.0000 0.0000 0.0000 +vn 0.8941 -0.4478 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.0000 -0.3054 -0.9522 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 0.2298 -0.9732 +vn -1.0000 0.0000 0.0000 vn -0.3827 -0.9239 0.0000 vn -0.8941 0.4478 0.0000 vn -0.9486 -0.2911 0.1239 -s off -f 1/1/1 142/2/1 2/3/1 -f 7/4/2 5/5/2 6/6/2 -f 3/7/3 8/8/3 4/9/3 -f 33/10/4 6/11/4 34/12/4 -f 4/9/1 139/13/1 3/14/1 -f 141/15/3 146/16/3 142/2/3 -f 25/17/5 27/18/5 29/19/5 -f 2/3/5 34/12/5 1/20/5 -f 41/21/5 43/22/5 35/23/5 -f 72/24/6 64/25/6 69/26/6 -f 69/26/3 73/27/3 70/28/3 -f 68/29/7 66/30/7 77/31/7 -f 62/32/2 63/33/2 61/34/2 -f 70/28/7 74/35/7 71/36/7 -f 66/30/8 67/37/8 63/33/8 -f 76/38/1 60/39/1 59/40/1 -f 68/29/3 75/41/3 67/42/3 -f 72/24/1 70/28/1 71/36/1 -f 78/43/9 76/38/9 75/44/9 -f 76/45/6 59/46/6 63/33/6 -f 126/47/1 127/48/1 120/49/1 -f 404/50/10 405/51/10 403/52/10 -f 131/53/1 134/54/1 132/55/1 -f 131/56/6 137/57/6 133/58/6 -f 134/54/7 136/59/7 132/55/7 -f 137/57/2 136/59/2 138/60/2 -f 140/61/5 143/62/5 139/13/5 -f 146/63/1 143/64/1 144/65/1 -f 34/66/6 6/6/6 145/67/6 -f 4/9/7 8/8/7 144/68/7 -f 148/69/1 149/70/1 147/71/1 -f 153/72/6 160/73/6 152/74/6 -f 148/69/7 158/75/7 150/76/7 -f 147/71/3 155/77/3 148/69/3 -f 149/70/6 156/78/6 147/71/6 -f 150/76/5 157/79/5 149/70/5 -f 151/80/2 156/81/2 152/82/2 -f 153/83/2 158/75/2 154/84/2 -f 154/84/2 155/85/2 151/80/2 -f 152/82/2 157/86/2 153/83/2 -f 161/87/2 159/88/2 160/89/2 -f 154/90/5 161/91/5 153/92/5 -f 151/93/7 162/94/7 154/90/7 -f 152/74/3 159/88/3 151/93/3 -f 173/95/2 171/96/2 172/97/2 -f 177/98/2 175/99/2 176/100/2 -f 166/101/7 173/95/7 164/102/7 -f 163/103/6 171/96/6 165/104/6 -f 169/105/3 178/106/3 170/107/3 -f 168/108/5 176/100/5 167/109/5 -f 165/110/3 174/111/3 166/112/3 -f 164/113/5 172/97/5 163/114/5 -f 170/115/7 177/98/7 168/116/7 -f 167/117/6 175/99/6 169/118/6 -f 197/119/5 199/120/5 192/121/5 -f 183/122/5 185/123/5 187/124/5 -f 249/125/5 239/126/5 243/127/5 -f 263/128/7 265/129/7 259/130/7 -f 65/131/11 371/132/11 64/25/11 -f 73/133/12 374/134/12 74/35/12 -f 64/135/3 373/136/3 73/27/3 -f 376/137/2 384/138/2 381/139/2 -f 384/138/5 377/140/5 385/141/5 -f 382/142/7 386/143/7 379/144/7 -f 380/145/1 378/146/1 375/147/1 -f 382/142/13 384/138/13 383/148/13 -f 386/149/12 380/145/12 379/150/12 -f 382/151/3 379/152/3 380/153/3 -f 396/154/5 400/155/5 388/156/5 -f 391/157/3 389/158/3 397/159/3 -f 404/160/6 410/161/6 406/162/6 -f 403/163/7 409/164/7 407/165/7 -f 406/162/1 409/164/1 405/51/1 -f 413/166/1 412/167/1 411/168/1 -f 425/169/6 421/170/6 423/171/6 -f 413/172/3 423/173/3 415/174/3 -f 424/175/7 419/176/7 426/177/7 -f 420/178/13 418/179/13 419/176/13 -f 436/180/1 440/181/1 435/182/1 -f 414/183/12 426/177/12 412/184/12 -f 412/185/5 426/186/5 418/179/5 -f 411/168/11 423/171/11 413/166/11 -f 418/179/2 415/174/2 417/187/2 -f 422/188/14 415/174/14 421/170/14 -f 431/189/7 434/190/7 432/191/7 -f 428/192/1 432/191/1 427/193/1 -f 429/194/3 431/189/3 428/195/3 -f 430/196/2 433/197/2 429/198/2 -f 427/199/5 434/190/5 430/200/5 -f 437/201/3 439/202/3 436/180/3 -f 438/203/2 441/204/2 437/201/2 -f 435/182/5 442/205/5 438/203/5 -f 438/203/6 436/180/6 435/182/6 -f 453/206/3 448/207/3 447/208/3 -f 444/209/5 451/210/5 443/211/5 -f 448/212/3 458/213/3 449/214/3 -f 457/215/5 444/216/5 445/217/5 -f 450/218/3 453/206/3 447/219/3 -f 451/210/5 446/220/5 443/221/5 -f 460/222/3 456/223/3 450/224/3 -f 455/225/5 459/226/5 446/227/5 -f 466/228/3 449/229/3 458/213/3 -f 445/230/5 465/231/5 457/215/5 -f 457/215/7 466/228/7 458/213/7 -f 454/232/15 457/215/15 458/213/15 -f 452/233/2 453/206/2 451/210/2 -f 455/225/14 453/206/14 456/223/14 -f 461/234/6 456/223/6 462/235/6 -f 477/236/3 472/237/3 471/238/3 -f 468/239/5 475/240/5 467/241/5 -f 472/242/3 482/243/3 473/244/3 -f 481/245/5 468/246/5 469/247/5 -f 474/248/3 477/236/3 471/249/3 -f 475/240/5 470/250/5 467/251/5 -f 484/252/3 480/253/3 474/254/3 -f 479/255/5 483/256/5 470/257/5 -f 490/258/3 473/259/3 482/243/3 -f 469/260/5 489/261/5 481/245/5 -f 481/245/7 490/258/7 482/243/7 -f 478/262/15 481/245/15 482/243/15 -f 476/263/2 477/236/2 475/240/2 -f 479/255/14 477/236/14 480/253/14 -f 485/264/6 480/253/6 486/265/6 -f 497/266/3 496/267/3 493/268/3 -f 495/269/3 499/270/3 494/271/3 -f 492/272/3 501/273/3 491/274/3 -f 494/275/3 502/276/3 492/277/3 -f 501/273/3 493/278/3 491/279/3 -f 508/280/5 509/281/5 505/282/5 -f 511/283/5 507/284/5 506/285/5 -f 513/286/5 504/287/5 503/288/5 -f 514/289/5 506/290/5 504/291/5 -f 505/292/5 513/286/5 503/293/5 -f 502/276/1 513/286/1 501/273/1 -f 499/270/12 514/289/12 502/276/12 -f 500/294/7 511/283/7 499/270/7 -f 513/286/11 497/266/11 501/273/11 -f 509/281/6 498/295/6 497/266/6 -f 515/296/16 522/297/16 517/298/16 -f 516/299/7 520/300/7 515/301/7 -f 518/302/17 519/303/17 516/304/17 -f 518/305/6 522/297/6 521/306/6 -f 545/307/5 538/308/5 537/309/5 -f 546/310/5 531/311/5 538/308/5 -f 531/311/5 540/312/5 532/313/5 -f 532/313/5 541/314/5 533/315/5 -f 541/314/5 534/316/5 533/315/5 -f 542/317/5 535/318/5 534/316/5 -f 535/319/5 544/320/5 536/321/5 -f 536/321/5 545/307/5 537/309/5 -f 551/322/5 553/323/5 548/324/5 -f 568/325/3 577/326/3 569/327/3 -f 569/327/3 578/328/3 570/329/3 -f 570/329/3 571/330/3 563/331/3 -f 571/330/3 564/332/3 563/331/3 -f 572/333/3 565/334/3 564/332/3 -f 573/335/3 566/336/3 565/334/3 -f 574/337/3 567/338/3 566/336/3 -f 567/339/3 576/340/3 568/325/3 -f 582/341/3 581/342/3 585/343/3 -f 811/344/16 818/345/16 813/346/16 -f 812/347/7 816/348/7 811/349/7 -f 814/350/17 815/351/17 812/352/17 -f 814/353/6 818/345/6 817/354/6 -f 828/355/2 820/356/2 825/357/2 -f 827/358/5 830/359/5 829/360/5 -f 830/361/6 826/362/6 823/363/6 -f 822/364/1 824/365/1 819/366/1 -f 828/355/14 826/362/14 827/367/14 -f 824/365/11 830/368/11 823/369/11 -f 825/357/3 820/356/3 824/370/3 -f 832/371/2 840/372/2 837/373/2 -f 840/372/5 833/374/5 841/375/5 -f 838/376/7 842/377/7 835/378/7 -f 836/379/1 834/380/1 831/381/1 -f 838/376/13 840/372/13 839/382/13 -f 842/383/12 836/379/12 835/384/12 -f 838/385/3 835/386/3 836/387/3 -f 852/388/2 844/389/2 849/390/2 -f 851/391/5 854/392/5 853/393/5 -f 854/394/6 850/395/6 847/396/6 -f 846/397/1 848/398/1 843/399/1 -f 852/388/14 850/395/14 851/400/14 -f 848/398/11 854/401/11 847/402/11 -f 849/390/3 844/389/3 848/403/3 -f 864/404/5 868/405/5 856/406/5 -f 859/407/3 857/408/3 865/409/3 -f 885/410/6 883/411/6 881/412/6 -f 1/1/1 141/15/1 142/2/1 -f 7/4/2 8/8/2 5/5/2 -f 3/7/3 5/413/3 8/8/3 -f 33/10/4 7/414/4 6/11/4 -f 4/9/1 140/61/1 139/13/1 -f 141/15/3 145/415/3 146/16/3 -f 21/416/5 22/417/5 23/418/5 -f 23/418/5 24/419/5 25/17/5 -f 25/17/5 26/420/5 27/18/5 -f 27/18/5 28/421/5 29/19/5 -f 29/19/5 30/422/5 31/423/5 -f 31/423/5 32/424/5 29/19/5 -f 32/424/5 21/416/5 29/19/5 -f 21/416/5 23/418/5 29/19/5 -f 23/418/5 25/17/5 29/19/5 -f 2/3/5 33/10/5 34/12/5 -f 35/23/5 36/425/5 37/426/5 -f 37/426/5 38/427/5 35/23/5 -f 38/427/5 39/428/5 35/23/5 -f 39/428/5 40/429/5 41/21/5 -f 41/21/5 42/430/5 43/22/5 -f 43/22/5 44/431/5 35/23/5 -f 44/431/5 45/432/5 35/23/5 -f 45/432/5 46/433/5 35/23/5 -f 39/428/5 41/21/5 35/23/5 -f 72/24/6 65/131/6 64/25/6 -f 69/26/3 64/135/3 73/27/3 -f 62/32/7 60/39/7 66/30/7 -f 60/39/7 77/31/7 66/30/7 -f 77/31/7 78/434/7 68/29/7 -f 62/32/2 66/30/2 63/33/2 -f 70/28/7 73/133/7 74/35/7 -f 66/30/8 68/435/8 67/37/8 -f 76/38/1 77/31/1 60/39/1 -f 68/29/3 78/434/3 75/41/3 -f 72/24/1 69/26/1 70/28/1 -f 78/43/9 77/31/9 76/38/9 -f 61/34/6 63/33/6 59/46/6 -f 63/33/6 67/436/6 76/45/6 -f 67/436/6 75/437/6 76/45/6 -f 110/438/1 109/439/1 127/48/1 -f 109/439/1 120/49/1 127/48/1 -f 120/49/1 119/440/1 126/47/1 -f 119/440/1 107/441/1 126/47/1 -f 107/441/1 108/442/1 126/47/1 -f 404/50/10 406/162/10 405/51/10 -f 131/53/1 133/443/1 134/54/1 -f 131/56/6 135/444/6 137/57/6 -f 134/54/7 138/60/7 136/59/7 -f 137/57/2 135/444/2 136/59/2 -f 140/61/5 144/445/5 143/62/5 -f 146/63/1 145/446/1 143/64/1 -f 3/447/6 139/448/6 143/449/6 -f 145/67/6 141/450/6 1/451/6 -f 5/5/6 3/447/6 143/449/6 -f 145/67/6 1/451/6 34/66/6 -f 5/5/6 143/449/6 6/6/6 -f 143/449/6 145/67/6 6/6/6 -f 8/8/7 7/4/7 144/68/7 -f 7/4/7 33/10/7 146/452/7 -f 144/68/7 7/4/7 146/452/7 -f 33/10/7 2/3/7 146/452/7 -f 2/3/7 142/2/7 146/452/7 -f 140/61/7 4/9/7 144/68/7 -f 148/69/1 150/76/1 149/70/1 -f 153/72/6 161/453/6 160/73/6 -f 148/69/7 155/85/7 158/75/7 -f 147/71/3 156/454/3 155/77/3 -f 149/70/6 157/455/6 156/78/6 -f 150/76/5 158/456/5 157/79/5 -f 151/80/2 155/85/2 156/81/2 -f 153/83/2 157/86/2 158/75/2 -f 154/84/2 158/75/2 155/85/2 -f 152/82/2 156/81/2 157/86/2 -f 161/87/2 162/94/2 159/88/2 -f 154/90/5 162/94/5 161/91/5 -f 151/93/7 159/88/7 162/94/7 -f 152/74/3 160/73/3 159/88/3 -f 173/95/2 174/111/2 171/96/2 -f 177/98/2 178/106/2 175/99/2 -f 166/101/7 174/111/7 173/95/7 -f 163/103/6 172/97/6 171/96/6 -f 169/105/3 175/99/3 178/106/3 -f 168/108/5 177/98/5 176/100/5 -f 165/110/3 171/96/3 174/111/3 -f 164/113/5 173/95/5 172/97/5 -f 170/115/7 178/106/7 177/98/7 -f 167/117/6 176/100/6 175/99/6 -f 192/121/5 191/457/5 193/458/5 -f 193/458/5 194/459/5 192/121/5 -f 194/459/5 195/460/5 192/121/5 -f 195/460/5 196/461/5 197/119/5 -f 197/119/5 198/462/5 199/120/5 -f 199/120/5 200/463/5 192/121/5 -f 200/463/5 201/464/5 192/121/5 -f 201/464/5 202/465/5 192/121/5 -f 195/460/5 197/119/5 192/121/5 -f 179/466/5 180/467/5 181/468/5 -f 181/468/5 182/469/5 183/122/5 -f 183/122/5 184/470/5 185/123/5 -f 185/123/5 186/471/5 187/124/5 -f 187/124/5 188/472/5 189/473/5 -f 189/473/5 190/474/5 187/124/5 -f 190/474/5 179/466/5 187/124/5 -f 179/466/5 181/468/5 187/124/5 -f 181/468/5 183/122/5 187/124/5 -f 239/126/5 240/475/5 241/476/5 -f 241/476/5 242/477/5 239/126/5 -f 242/477/5 243/127/5 239/126/5 -f 243/127/5 244/478/5 245/479/5 -f 245/479/5 246/480/5 247/481/5 -f 247/481/5 248/482/5 249/125/5 -f 249/125/5 250/483/5 239/126/5 -f 243/127/5 245/479/5 247/481/5 -f 247/481/5 249/125/5 243/127/5 -f 259/130/7 260/484/7 261/485/7 -f 261/485/7 262/486/7 263/128/7 -f 263/128/7 264/487/7 265/129/7 -f 265/129/7 266/488/7 259/130/7 -f 259/130/7 261/485/7 263/128/7 -f 65/131/11 372/489/11 371/132/11 -f 73/133/12 373/490/12 374/134/12 -f 64/135/3 371/491/3 373/136/3 -f 376/137/2 377/140/2 384/138/2 -f 377/140/5 378/146/5 385/141/5 -f 385/141/5 386/492/5 383/493/5 -f 383/493/5 384/138/5 385/141/5 -f 382/142/7 383/148/7 386/143/7 -f 380/145/1 385/141/1 378/146/1 -f 382/142/13 381/139/13 384/138/13 -f 386/149/12 385/141/12 380/145/12 -f 380/153/3 375/494/3 376/137/3 -f 376/137/3 381/139/3 380/153/3 -f 381/139/3 382/151/3 380/153/3 -f 388/156/5 390/495/5 392/496/5 -f 392/496/5 394/497/5 396/154/5 -f 396/154/5 398/498/5 400/155/5 -f 400/155/5 402/499/5 388/156/5 -f 388/156/5 392/496/5 396/154/5 -f 389/158/3 387/500/3 397/159/3 -f 387/500/3 401/501/3 397/159/3 -f 401/501/3 399/502/3 397/159/3 -f 397/159/3 395/503/3 393/504/3 -f 393/504/3 391/157/3 397/159/3 -f 404/160/6 408/505/6 410/161/6 -f 403/163/7 405/51/7 409/164/7 -f 406/162/1 410/161/1 409/164/1 -f 413/166/1 414/506/1 412/167/1 -f 425/169/6 422/188/6 421/170/6 -f 423/173/3 421/507/3 415/174/3 -f 415/174/3 416/508/3 414/509/3 -f 416/508/3 420/510/3 414/509/3 -f 420/510/3 424/511/3 414/509/3 -f 414/509/3 413/172/3 415/174/3 -f 424/175/7 420/178/7 419/176/7 -f 420/178/13 416/508/13 418/179/13 -f 436/180/1 439/512/1 440/181/1 -f 414/183/12 424/175/12 426/177/12 -f 426/186/5 419/513/5 418/179/5 -f 418/179/5 417/187/5 411/514/5 -f 417/187/5 422/515/5 411/514/5 -f 422/515/5 425/516/5 411/514/5 -f 411/514/5 412/185/5 418/179/5 -f 411/168/11 425/169/11 423/171/11 -f 418/179/2 416/508/2 415/174/2 -f 422/188/14 417/187/14 415/174/14 -f 431/189/7 433/197/7 434/190/7 -f 428/192/1 431/189/1 432/191/1 -f 429/194/3 433/197/3 431/189/3 -f 430/196/2 434/190/2 433/197/2 -f 427/199/5 432/191/5 434/190/5 -f 437/201/3 441/517/3 439/202/3 -f 438/203/2 442/518/2 441/204/2 -f 435/182/5 440/519/5 442/205/5 -f 438/203/6 437/201/6 436/180/6 -f 453/206/3 454/232/3 448/207/3 -f 444/209/5 452/233/5 451/210/5 -f 448/212/3 454/232/3 458/213/3 -f 457/215/5 452/233/5 444/216/5 -f 450/218/3 456/223/3 453/206/3 -f 451/210/5 455/225/5 446/220/5 -f 460/222/3 462/235/3 456/223/3 -f 455/225/5 461/234/5 459/226/5 -f 466/228/3 464/520/3 449/229/3 -f 445/230/5 463/521/5 465/231/5 -f 457/215/7 465/231/7 466/228/7 -f 454/232/15 452/233/15 457/215/15 -f 452/233/2 454/232/2 453/206/2 -f 455/225/14 451/210/14 453/206/14 -f 461/234/6 455/225/6 456/223/6 -f 477/236/3 478/262/3 472/237/3 -f 468/239/5 476/263/5 475/240/5 -f 472/242/3 478/262/3 482/243/3 -f 481/245/5 476/263/5 468/246/5 -f 474/248/3 480/253/3 477/236/3 -f 475/240/5 479/255/5 470/250/5 -f 484/252/3 486/265/3 480/253/3 -f 479/255/5 485/264/5 483/256/5 -f 490/258/3 488/522/3 473/259/3 -f 469/260/5 487/523/5 489/261/5 -f 481/245/7 489/261/7 490/258/7 -f 478/262/15 476/263/15 481/245/15 -f 476/263/2 478/262/2 477/236/2 -f 479/255/14 475/240/14 477/236/14 -f 485/264/6 479/255/6 480/253/6 -f 497/266/3 498/295/3 496/267/3 -f 495/269/3 500/294/3 499/270/3 -f 492/272/3 502/276/3 501/273/3 -f 494/275/3 499/270/3 502/276/3 -f 501/273/3 497/266/3 493/278/3 -f 508/280/5 510/524/5 509/281/5 -f 511/283/5 512/525/5 507/284/5 -f 513/286/5 514/289/5 504/287/5 -f 514/289/5 511/283/5 506/290/5 -f 505/292/5 509/281/5 513/286/5 -f 502/276/1 514/289/1 513/286/1 -f 499/270/12 511/283/12 514/289/12 -f 500/294/7 512/525/7 511/283/7 -f 513/286/11 509/281/11 497/266/11 -f 509/281/6 510/524/6 498/295/6 -f 515/296/16 520/300/16 522/297/16 -f 516/299/7 519/303/7 520/300/7 -f 518/302/17 521/306/17 519/303/17 -f 518/305/6 517/526/6 522/297/6 -f 545/307/5 546/310/5 538/308/5 -f 546/310/5 539/527/5 531/311/5 -f 531/311/5 539/527/5 540/312/5 -f 532/313/5 540/312/5 541/314/5 -f 541/314/5 542/317/5 534/316/5 -f 542/317/5 543/528/5 535/318/5 -f 535/319/5 543/529/5 544/320/5 -f 536/321/5 544/320/5 545/307/5 -f 548/324/5 547/530/5 549/531/5 -f 549/531/5 550/532/5 551/322/5 -f 551/322/5 552/533/5 553/323/5 -f 553/323/5 554/534/5 548/324/5 -f 548/324/5 549/531/5 551/322/5 -f 568/325/3 576/340/3 577/326/3 -f 569/327/3 577/326/3 578/328/3 -f 570/329/3 578/328/3 571/330/3 -f 571/330/3 572/333/3 564/332/3 -f 572/333/3 573/335/3 565/334/3 -f 573/335/3 574/337/3 566/336/3 -f 574/337/3 575/535/3 567/338/3 -f 567/339/3 575/536/3 576/340/3 -f 581/342/3 579/537/3 580/538/3 -f 580/538/3 586/539/3 581/342/3 -f 586/539/3 585/343/3 581/342/3 -f 585/343/3 584/540/3 583/541/3 -f 583/541/3 582/341/3 585/343/3 -f 811/344/16 816/348/16 818/345/16 -f 812/347/7 815/351/7 816/348/7 -f 814/350/17 817/354/17 815/351/17 -f 814/353/6 813/542/6 818/345/6 -f 828/355/2 821/543/2 820/356/2 -f 829/360/5 822/364/5 821/543/5 -f 821/543/5 828/355/5 829/360/5 -f 828/355/5 827/358/5 829/360/5 -f 830/361/6 827/367/6 826/362/6 -f 822/364/1 829/360/1 824/365/1 -f 828/355/14 825/357/14 826/362/14 -f 824/365/11 829/360/11 830/368/11 -f 820/356/3 819/544/3 824/370/3 -f 824/370/3 823/545/3 826/546/3 -f 826/546/3 825/357/3 824/370/3 -f 832/371/2 833/374/2 840/372/2 -f 833/374/5 834/380/5 841/375/5 -f 841/375/5 842/547/5 839/548/5 -f 839/548/5 840/372/5 841/375/5 -f 838/376/7 839/382/7 842/377/7 -f 836/379/1 841/375/1 834/380/1 -f 838/376/13 837/373/13 840/372/13 -f 842/383/12 841/375/12 836/379/12 -f 836/387/3 831/549/3 832/371/3 -f 832/371/3 837/373/3 836/387/3 -f 837/373/3 838/385/3 836/387/3 -f 852/388/2 845/550/2 844/389/2 -f 853/393/5 846/397/5 845/550/5 -f 845/550/5 852/388/5 853/393/5 -f 852/388/5 851/391/5 853/393/5 -f 854/394/6 851/400/6 850/395/6 -f 846/397/1 853/393/1 848/398/1 -f 852/388/14 849/390/14 850/395/14 -f 848/398/11 853/393/11 854/401/11 -f 844/389/3 843/551/3 848/403/3 -f 848/403/3 847/552/3 850/553/3 -f 850/553/3 849/390/3 848/403/3 -f 856/406/5 858/554/5 860/555/5 -f 860/555/5 862/556/5 864/404/5 -f 864/404/5 866/557/5 868/405/5 -f 868/405/5 870/558/5 856/406/5 -f 856/406/5 860/555/5 864/404/5 -f 857/408/3 855/559/3 865/409/3 -f 855/559/3 869/560/3 865/409/3 -f 869/560/3 867/561/3 865/409/3 -f 865/409/3 863/562/3 861/563/3 -f 861/563/3 859/407/3 865/409/3 -f 881/412/6 880/564/6 879/565/6 -f 879/565/6 886/566/6 885/410/6 -f 885/410/6 884/567/6 883/411/6 -f 883/411/6 882/568/6 881/412/6 -f 881/412/6 879/565/6 885/410/6 s 1 -f 12/569/6 23/570/18 11/571/18 -f 19/572/19 30/573/7 18/574/7 -f 16/575/20 27/576/1 15/577/1 -f 13/578/21 24/579/6 12/569/6 -f 20/580/22 31/581/19 19/572/19 -f 10/582/23 21/583/2 9/584/2 -f 17/585/24 28/586/20 16/575/20 -f 14/587/25 25/588/21 13/578/21 -f 9/584/2 32/589/22 20/580/22 -f 11/571/18 22/590/23 10/582/23 -f 18/574/7 29/591/24 17/585/24 -f 15/592/1 26/593/25 14/587/25 -f 39/594/21 52/595/25 40/596/25 -f 46/597/22 48/598/2 35/599/2 -f 36/600/23 49/601/18 37/602/18 -f 43/603/24 56/604/7 44/605/7 -f 40/596/25 53/606/1 41/607/1 -f 37/602/18 50/608/6 38/609/6 -f 44/605/7 57/610/19 45/611/19 -f 41/612/1 54/613/20 42/614/20 -f 38/609/6 51/615/21 39/594/21 -f 45/611/19 58/616/22 46/597/22 -f 35/599/2 47/617/23 36/600/23 -f 42/614/20 55/618/24 43/603/24 -f 90/619/26 97/620/27 91/621/28 -f 88/622/29 94/623/3 87/624/3 -f 88/625/30 96/626/31 95/627/32 -f 80/628/33 82/629/34 81/630/33 -f 86/631/35 84/632/36 83/633/37 -f 84/632/36 80/628/33 81/630/33 -f 91/621/28 98/634/38 89/635/39 -f 90/619/26 95/627/32 96/626/31 -f 104/636/7 98/634/38 93/637/40 -f 96/626/31 94/638/41 97/620/27 -f 79/639/42 85/640/3 86/641/42 -f 99/642/43 86/641/42 102/643/43 -f 88/622/29 104/644/44 93/645/29 -f 106/646/45 107/441/46 105/647/47 -f 103/648/48 105/647/47 100/649/49 -f 101/650/44 102/643/43 104/644/44 -f 110/438/50 111/651/51 109/439/52 -f 115/652/53 114/653/50 113/654/52 -f 115/655/53 121/656/54 111/657/51 -f 113/658/52 122/659/55 115/655/53 -f 118/660/56 122/659/55 123/661/57 -f 111/657/51 120/49/57 109/662/52 -f 116/663/58 128/664/59 130/665/60 -f 107/666/46 117/667/61 105/668/47 -f 105/668/47 118/660/56 100/669/49 -f 125/670/62 128/664/59 126/671/63 -f 124/672/64 130/665/60 125/670/62 -f 116/663/58 129/673/65 114/674/50 -f 103/675/48 125/670/62 106/676/45 -f 110/677/50 128/664/59 112/678/66 -f 108/679/67 125/670/62 126/671/63 -f 112/680/66 115/652/53 111/651/51 -f 216/681/2 191/682/23 192/683/2 -f 208/684/25 185/685/1 184/686/25 -f 223/687/24 200/688/7 199/689/24 -f 215/690/23 193/691/18 191/682/23 -f 209/692/1 186/693/20 185/694/1 -f 224/695/7 201/696/19 200/688/7 -f 217/697/18 194/698/6 193/691/18 -f 210/699/20 187/700/24 186/693/20 -f 225/701/19 202/702/22 201/696/19 -f 203/703/2 180/704/23 179/705/2 -f 218/706/6 195/707/21 194/698/6 -f 211/708/24 188/709/7 187/700/24 -f 226/710/22 192/683/2 202/702/22 -f 204/711/23 181/712/18 180/704/23 -f 219/713/21 196/714/25 195/707/21 -f 212/715/7 189/716/19 188/709/7 -f 205/717/18 182/718/6 181/712/18 -f 220/719/25 197/720/1 196/714/25 -f 213/721/19 190/722/22 189/716/19 -f 206/723/6 183/724/21 182/718/6 -f 221/725/1 198/726/20 197/727/1 -f 214/728/22 179/705/2 190/722/22 -f 207/729/21 184/686/25 183/724/21 -f 222/730/20 199/689/24 198/726/20 -f 233/731/1 244/732/25 232/733/25 -f 230/734/6 241/735/18 229/736/18 -f 237/737/19 248/738/7 236/739/7 -f 234/740/20 245/741/1 233/742/1 -f 231/743/21 242/744/6 230/734/6 -f 238/745/22 249/746/19 237/737/19 -f 228/747/23 239/748/2 227/749/2 -f 235/750/24 246/751/20 234/740/20 -f 232/733/25 243/752/21 231/743/21 -f 227/749/2 250/753/22 238/745/22 -f 229/736/18 240/754/23 228/747/23 -f 236/739/7 247/755/24 235/750/24 -f 254/756/68 261/757/2 253/758/2 -f 252/759/69 259/760/3 251/761/3 -f 251/761/3 266/762/9 258/763/9 -f 257/764/1 264/765/70 256/766/70 -f 255/767/5 262/768/68 254/756/68 -f 253/758/2 260/769/69 252/759/69 -f 258/763/9 265/770/1 257/771/1 -f 256/766/70 263/772/5 255/767/5 -f 282/773/71 267/774/3 274/775/72 -f 280/776/73 273/777/7 272/778/74 -f 278/779/75 271/780/5 270/781/76 -f 276/782/77 269/783/6 268/784/78 -f 281/785/79 274/775/72 273/777/7 -f 279/786/80 272/778/74 271/780/5 -f 277/787/81 270/781/76 269/788/6 -f 275/789/69 268/784/78 267/774/3 -f 277/790/81 283/791/82 284/792/83 -f 282/793/71 288/794/84 289/795/85 -f 279/786/80 287/796/86 280/776/73 -f 278/779/75 284/797/83 285/798/87 -f 280/776/73 288/794/84 281/799/79 -f 278/779/75 286/800/70 279/786/80 -f 289/795/85 295/801/88 296/802/89 -f 286/800/70 294/803/90 287/796/86 -f 285/798/87 291/804/91 292/805/92 -f 287/796/86 295/801/88 288/794/84 -f 285/798/87 293/806/93 286/800/70 -f 284/792/83 290/807/94 291/808/91 -f 275/809/69 283/791/82 276/810/77 -f 283/791/82 275/809/69 290/807/94 -f 282/793/71 289/795/85 275/809/69 -f 289/795/85 296/802/89 275/809/69 -f 296/811/89 297/812/95 275/813/69 -f 295/814/88 304/815/96 296/811/89 -f 275/813/69 298/816/97 290/817/94 -f 293/806/93 302/818/98 294/803/90 -f 291/819/91 300/820/99 292/805/92 -f 294/803/90 303/821/100 295/814/88 -f 292/805/92 301/822/101 293/806/93 -f 290/817/94 299/823/76 291/824/91 -f 320/825/71 305/826/3 312/827/72 -f 318/828/73 311/829/7 310/830/74 -f 316/831/75 309/832/5 308/833/76 -f 314/834/77 307/835/6 306/836/78 -f 319/837/79 312/827/72 311/838/7 -f 317/839/80 310/830/74 309/832/5 -f 315/840/81 308/833/76 307/835/6 -f 313/841/69 306/836/78 305/826/3 -f 315/842/81 321/843/82 322/844/83 -f 320/845/71 326/846/84 327/847/85 -f 318/828/73 324/848/70 325/849/86 -f 316/831/75 322/844/83 323/850/87 -f 318/828/73 326/851/84 319/852/79 -f 316/831/75 324/848/70 317/839/80 -f 327/847/85 333/853/88 334/854/89 -f 325/849/86 331/855/93 332/856/90 -f 323/850/87 329/857/91 330/858/92 -f 325/849/86 333/859/88 326/851/84 -f 323/850/87 331/855/93 324/848/70 -f 322/844/83 328/860/94 329/857/91 -f 313/861/69 321/843/82 314/862/77 -f 321/843/82 313/861/69 328/860/94 -f 320/845/71 327/847/85 313/861/69 -f 327/847/85 334/854/89 313/861/69 -f 334/863/89 335/864/102 313/865/69 -f 333/866/88 342/867/103 334/863/89 -f 313/865/69 336/868/104 328/869/94 -f 331/855/93 340/870/105 332/856/90 -f 329/871/91 338/872/106 330/858/92 -f 332/856/90 341/873/74 333/874/88 -f 330/858/92 339/875/107 331/855/93 -f 328/869/94 337/876/108 329/871/91 -f 297/877/95 344/878/109 298/879/97 -f 303/821/100 347/880/110 348/881/72 -f 301/882/101 345/883/111 346/884/112 -f 304/815/96 343/885/113 297/877/95 -f 304/815/96 348/881/72 349/886/114 -f 302/818/98 346/884/112 347/880/110 -f 346/884/112 354/887/115 347/880/110 -f 344/878/109 350/888/116 351/889/117 -f 347/880/110 355/890/118 348/881/72 -f 345/883/111 353/891/119 346/884/112 -f 343/885/113 356/892/120 350/888/116 -f 348/881/72 356/892/120 349/886/114 -f 298/879/97 344/878/109 299/893/76 -f 344/878/109 351/889/117 299/893/76 -f 299/894/76 345/883/111 300/895/99 -f 345/883/111 299/894/76 352/896/121 -f 336/868/104 357/897/122 358/898/123 -f 339/899/107 360/900/124 361/901/125 -f 337/876/108 358/898/123 359/902/78 -f 335/903/102 363/904/126 357/897/122 -f 339/899/107 362/905/127 340/906/105 -f 337/876/108 360/900/124 338/872/106 -f 357/897/122 365/907/128 358/898/123 -f 361/901/125 367/908/129 368/909/130 -f 358/898/123 366/910/131 359/902/78 -f 363/904/126 364/911/132 357/897/122 -f 362/905/127 368/909/130 369/912/133 -f 360/900/124 366/910/131 367/908/129 -f 341/913/74 363/904/126 342/914/103 -f 363/904/126 341/913/74 370/915/134 -f 340/906/105 362/905/127 341/916/74 -f 362/905/127 369/912/133 341/916/74 -f 364/917/132 351/918/117 350/919/116 -f 351/918/117 341/920/74 299/921/76 -f 341/922/74 352/923/121 299/924/76 -f 352/923/121 368/925/130 353/926/119 -f 353/926/119 367/908/129 354/887/115 -f 354/887/115 366/910/131 355/890/118 -f 355/890/118 365/907/128 356/892/120 -f 356/892/120 364/917/132 350/919/116 -f 389/927/14 388/928/2 387/929/2 -f 391/930/6 390/931/14 389/927/14 -f 393/932/11 392/933/6 391/930/6 -f 395/934/1 394/935/11 393/932/11 -f 397/936/12 396/937/1 395/938/1 -f 399/939/7 398/940/12 397/936/12 -f 401/941/13 400/942/7 399/939/7 -f 387/929/2 402/943/13 401/941/13 -f 117/667/61 121/656/54 122/659/55 -f 126/671/63 128/664/59 127/944/65 -f 121/656/54 119/440/135 120/49/57 -f 530/945/13 545/307/7 529/946/7 -f 528/947/12 543/529/1 527/948/1 -f 526/949/11 541/314/6 525/950/6 -f 524/951/14 539/527/2 523/952/2 -f 523/952/2 546/310/13 530/945/13 -f 529/946/7 544/320/12 528/947/12 -f 527/953/1 542/317/11 526/949/11 -f 525/950/6 540/312/14 524/951/14 -f 532/313/12 548/954/1 531/311/1 -f 531/311/1 554/955/11 538/308/11 -f 537/309/6 552/956/14 536/321/14 -f 535/318/2 550/957/13 534/316/13 -f 533/315/7 547/958/12 532/313/12 -f 538/308/11 553/959/6 537/309/6 -f 536/321/14 551/960/2 535/319/2 -f 534/316/13 549/961/7 533/315/7 -f 570/329/13 555/962/2 562/963/13 -f 568/325/12 561/964/7 560/965/12 -f 566/336/11 559/966/1 558/967/11 -f 564/332/14 557/968/6 556/969/14 -f 569/327/7 562/963/13 561/964/7 -f 567/339/1 560/965/12 559/970/1 -f 565/334/6 558/967/11 557/968/6 -f 563/331/2 556/969/14 555/962/2 -f 576/340/14 585/971/6 577/326/6 -f 574/337/13 583/972/2 575/535/2 -f 572/333/12 581/973/7 573/335/7 -f 577/326/6 586/974/11 578/328/11 -f 575/536/2 584/975/14 576/340/14 -f 573/335/7 582/976/13 574/337/13 -f 571/330/1 579/977/12 572/333/12 -f 578/328/11 580/978/1 571/330/1 -f 591/979/136 647/980/137 651/981/138 -f 656/982/139 591/983/136 595/984/140 -f 596/985/141 652/986/142 656/982/139 -f 588/987/143 652/986/142 592/988/144 -f 648/989/145 591/983/136 652/986/142 -f 657/990/146 592/988/144 596/985/141 -f 597/991/147 653/992/148 657/990/146 -f 589/993/149 653/992/148 593/994/150 -f 649/995/151 592/988/144 653/992/148 -f 597/991/147 654/996/152 593/994/150 -f 594/997/153 658/998/154 598/999/155 -f 594/997/153 650/1000/156 654/996/152 -f 654/996/152 589/993/149 593/994/150 -f 598/999/155 651/981/138 594/997/153 -f 595/1001/140 659/1002/157 599/1003/158 -f 591/979/136 655/1004/159 595/1001/140 -f 590/1005/160 651/981/138 647/980/137 -f 599/1006/158 656/982/139 595/984/140 -f 600/1007/161 656/982/139 660/1008/162 -f 661/1009/163 596/985/141 600/1007/161 -f 601/1010/164 657/990/146 661/1009/163 -f 662/1011/165 597/991/147 601/1010/164 -f 602/1012/166 658/998/154 662/1011/165 -f 602/1012/166 655/1004/159 598/999/155 -f 599/1003/158 663/1013/167 603/1014/168 -f 603/1015/168 660/1008/162 599/1006/158 -f 600/1007/161 664/1016/169 604/1017/170 -f 604/1017/170 661/1009/163 600/1007/161 -f 605/1018/171 661/1009/163 665/1019/172 -f 666/1020/173 601/1010/164 605/1018/171 -f 606/1021/174 662/1011/165 666/1020/173 -f 663/1013/167 602/1012/166 606/1021/174 -f 756/1022/175 603/1015/168 667/1023/176 -f 668/1024/177 664/1016/169 756/1022/175 -f 757/1025/178 604/1017/170 668/1024/177 -f 605/1018/171 757/1025/178 669/1026/179 -f 666/1020/173 669/1026/179 758/1027/180 -f 606/1021/174 758/1027/180 670/1028/181 -f 663/1013/167 670/1028/181 755/1029/182 -f 667/1030/176 663/1013/167 755/1029/182 -f 667/1030/176 759/1031/183 671/1032/184 -f 672/1033/185 756/1022/175 760/1034/186 -f 669/1026/179 761/1035/187 673/1036/188 -f 760/1034/186 667/1023/176 671/1037/184 -f 670/1028/181 762/1038/189 674/1039/190 -f 761/1035/187 668/1024/177 672/1033/185 -f 610/1040/191 692/1041/192 678/1042/193 -f 758/1027/180 673/1036/188 762/1038/189 -f 755/1029/182 674/1039/190 759/1031/183 -f 766/1043/194 609/1044/195 781/1045/196 -f 622/1046/197 678/1042/193 698/1047/198 -f 763/1048/199 607/1049/200 619/1050/201 -f 607/1049/200 692/1041/192 619/1050/201 -f 620/1051/202 675/1052/203 607/1049/200 -f 764/1053/204 608/1054/205 620/1051/202 -f 610/1040/191 763/1048/199 619/1050/201 -f 608/1054/205 694/1055/206 620/1051/202 -f 621/1056/207 676/1057/208 608/1054/205 -f 781/1045/196 621/1056/207 765/1058/209 -f 779/1059/210 620/1051/202 607/1049/200 -f 671/1032/184 683/1060/211 611/1061/212 -f 609/1044/195 698/1062/198 677/1063/213 -f 782/1064/214 622/1046/197 766/1065/194 -f 780/1066/215 621/1056/207 608/1054/205 -f 615/1067/216 685/1068/217 611/1069/212 -f 612/1070/218 693/1071/219 616/1072/220 -f 612/1070/218 760/1034/186 685/1068/217 -f 760/1034/186 611/1069/212 685/1068/217 -f 616/1072/220 687/1073/221 612/1070/218 -f 613/1074/222 695/1075/223 617/1076/224 -f 613/1074/222 761/1035/187 687/1073/221 -f 687/1073/221 672/1033/185 612/1070/218 -f 697/1077/225 613/1074/222 617/1076/224 -f 618/1078/226 689/1079/227 697/1077/225 -f 674/1039/190 689/1079/227 614/1080/228 -f 762/1038/189 613/1074/222 689/1079/227 -f 691/1081/229 614/1080/228 618/1078/226 -f 705/1082/230 681/1083/231 785/1084/232 -f 615/1085/216 683/1060/211 691/1081/229 -f 759/1031/183 614/1080/228 683/1060/211 -f 768/1086/233 615/1067/216 700/1087/234 -f 702/1088/235 693/1071/219 768/1086/233 -f 678/1042/193 699/1089/236 786/1090/237 -f 698/1047/198 786/1090/237 705/1091/230 -f 769/1092/238 616/1072/220 702/1088/235 -f 704/1093/239 695/1075/223 769/1092/238 -f 621/1056/207 677/1063/213 696/1094/240 -f 694/1055/206 783/1095/241 675/1052/203 -f 697/1077/225 704/1093/239 770/1096/242 -f 618/1078/226 770/1096/242 706/1097/243 -f 692/1041/192 783/1095/241 699/1089/236 -f 696/1094/240 784/1098/244 676/1057/208 -f 691/1081/229 706/1097/243 767/1099/245 -f 768/1086/233 708/1100/246 796/1101/247 -f 676/1057/208 701/1102/248 694/1055/206 -f 677/1063/213 705/1082/230 785/1084/232 -f 679/1103/249 639/1104/250 791/1105/251 -f 682/1106/252 642/1107/253 794/1108/254 -f 699/1089/236 679/1103/249 791/1105/251 -f 677/1063/213 703/1109/255 696/1094/240 -f 792/1110/256 624/1111/257 640/1112/258 -f 626/1113/259 791/1105/251 639/1104/250 -f 784/1098/244 792/1110/256 701/1102/248 -f 786/1090/237 791/1105/251 682/1106/252 -f 793/1114/260 625/1115/261 641/1116/262 -f 792/1110/256 623/1117/263 679/1103/249 -f 785/1084/232 793/1114/260 703/1109/255 -f 783/1095/241 792/1110/256 679/1103/249 -f 615/1085/216 767/1099/245 700/1118/234 -f 680/1119/264 641/1116/262 624/1111/257 -f 705/1091/230 682/1106/252 794/1108/254 -f 703/1109/255 680/1119/264 784/1098/244 -f 769/1092/238 710/1120/265 797/1121/266 -f 708/1122/246 767/1099/245 795/1123/267 -f 681/1083/231 642/1124/253 625/1115/261 -f 790/1125/268 731/1126/269 627/1127/270 -f 798/1128/271 704/1093/239 712/1129/272 -f 702/1088/235 796/1101/247 710/1120/265 -f 642/1107/253 713/1130/273 734/1131/274 -f 731/1126/269 626/1113/259 639/1104/250 -f 706/1097/243 795/1123/267 767/1099/245 -f 704/1093/239 797/1121/266 712/1129/272 -f 732/1132/275 787/1133/276 707/1134/277 -f 707/1134/277 627/1127/270 731/1126/269 -f 710/1120/265 772/1135/278 726/1136/279 -f 714/1137/280 770/1096/242 798/1128/271 -f 639/1104/250 707/1134/277 731/1126/269 -f 732/1132/275 623/1117/263 640/1112/258 -f 712/1129/272 773/1138/281 728/1139/282 -f 772/1135/278 708/1100/246 724/1140/283 -f 709/1141/284 629/1142/285 788/1143/286 -f 732/1132/275 788/1143/286 628/1144/287 -f 730/1145/288 798/1128/271 774/1146/289 -f 797/1121/266 726/1136/279 773/1138/281 -f 624/1111/257 732/1132/275 640/1112/258 -f 641/1116/262 709/1141/284 624/1111/257 -f 742/1147/290 772/1135/278 776/1148/291 -f 798/1128/271 728/1139/282 774/1146/289 -f 734/1149/274 789/1150/292 711/1151/293 -f 733/1152/294 789/1150/292 629/1142/285 -f 634/1153/295 718/1154/296 738/1155/297 -f 714/1137/280 771/1156/298 795/1123/267 -f 625/1115/261 733/1152/294 641/1116/262 -f 642/1124/253 711/1151/293 625/1115/261 -f 684/1157/299 735/1158/300 631/1159/301 -f 790/1125/268 634/1153/295 630/1160/302 -f 713/1130/273 630/1160/302 734/1131/274 -f 690/1161/303 627/1127/270 631/1159/301 -f 686/1162/304 736/1163/305 632/1164/306 -f 718/1154/296 631/1159/301 735/1158/300 -f 628/1144/287 684/1157/299 787/1133/276 -f 788/1143/286 633/1165/307 686/1162/304 -f 633/1165/307 717/1166/308 737/1167/309 -f 632/1164/306 715/1168/310 684/1157/299 -f 787/1133/276 631/1159/301 627/1127/270 -f 789/1150/292 634/1169/295 688/1170/311 -f 724/1171/283 795/1123/267 771/1156/298 -f 686/1162/304 737/1167/309 716/1172/312 -f 788/1143/286 632/1164/306 628/1144/287 -f 629/1142/285 688/1170/311 633/1165/307 -f 728/1139/282 777/1173/313 744/1174/314 -f 776/1148/291 724/1140/283 740/1175/315 -f 688/1170/311 738/1176/297 717/1166/308 -f 739/1177/316 718/1154/296 735/1158/300 -f 730/1145/288 778/1178/317 746/1179/318 -f 773/1138/281 742/1147/290 777/1173/313 -f 735/1158/300 719/1180/319 739/1177/316 -f 741/1181/320 715/1168/310 736/1163/305 -f 776/1148/291 748/1182/321 808/1183/322 -f 774/1146/289 744/1174/314 778/1178/317 -f 736/1163/305 720/1184/323 741/1181/320 -f 737/1167/309 720/1184/323 716/1172/312 -f 729/1185/324 646/1186/136 806/1187/325 -f 730/1145/288 775/1188/326 771/1156/298 -f 717/1166/308 743/1189/327 737/1167/309 -f 738/1176/297 721/1190/328 717/1166/308 -f 803/1191/329 802/1192/142 729/1185/324 -f 802/1192/142 747/1193/143 638/1194/145 -f 718/1154/296 745/1195/330 738/1155/297 -f 739/1177/316 729/1185/324 722/1196/331 -f 643/1197/144 635/1198/151 747/1193/143 -f 722/1196/331 806/1187/325 745/1195/330 -f 739/1177/316 723/1199/332 803/1191/329 -f 804/1200/333 719/1180/319 741/1181/320 -f 804/1200/333 799/1201/148 723/1199/332 -f 799/1201/148 749/1202/149 635/1198/151 -f 741/1181/320 725/1203/334 804/1200/333 -f 805/1204/335 720/1184/323 743/1189/327 -f 740/1205/315 771/1156/298 775/1188/326 -f 723/1199/332 643/1197/144 803/1191/329 -f 743/1189/327 727/1206/336 805/1204/335 -f 745/1207/330 727/1206/336 721/1190/328 -f 809/1208/337 742/1147/290 750/1209/338 -f 740/1205/315 807/1210/339 748/1211/321 -f 645/1212/153 636/1213/156 800/1214/152 -f 800/1214/152 749/1202/149 644/1215/150 -f 810/1216/340 744/1174/314 752/1217/341 -f 742/1147/290 808/1183/322 750/1209/338 -f 804/1200/333 800/1214/152 644/1215/150 -f 645/1212/153 725/1203/334 805/1204/335 -f 775/1188/326 754/1218/342 807/1210/339 -f 752/1217/341 777/1173/313 809/1208/337 -f 646/1219/136 637/1220/137 801/1221/138 -f 801/1221/138 751/1222/160 645/1212/153 -f 646/1186/136 638/1194/145 753/1223/343 -f 754/1218/342 778/1178/317 810/1216/340 -f 805/1204/335 801/1221/138 645/1212/153 -f 646/1219/136 727/1206/336 806/1224/325 -f 98/634/38 94/638/41 93/637/40 -f 82/629/34 99/1225/6 95/1226/32 -f 83/633/37 98/634/38 102/1227/7 -f 95/1226/32 101/1228/6 88/1229/30 -f 857/1230/14 856/1231/2 855/1232/2 -f 859/1233/6 858/1234/14 857/1230/14 -f 861/1235/11 860/1236/6 859/1233/6 -f 863/1237/1 862/1238/11 861/1235/11 -f 865/1239/12 864/1240/1 863/1241/1 -f 867/1242/7 866/1243/12 865/1239/12 -f 869/1244/13 868/1245/7 867/1242/7 -f 855/1232/2 870/1246/13 869/1244/13 -f 881/1247/2 874/1248/68 873/1249/2 -f 879/1250/3 872/1251/69 871/1252/3 -f 886/1253/9 871/1252/3 878/1254/9 -f 884/1255/70 877/1256/1 876/1257/70 -f 882/1258/68 875/1259/5 874/1248/68 -f 880/1260/69 873/1249/2 872/1251/69 -f 885/1261/1 878/1254/9 877/1262/1 -f 883/1263/5 876/1257/70 875/1259/5 -f 12/569/6 24/579/6 23/570/18 -f 19/572/19 31/581/19 30/573/7 -f 16/575/20 28/586/20 27/576/1 -f 13/578/21 25/588/21 24/579/6 -f 20/580/22 32/589/22 31/581/19 -f 10/582/23 22/590/23 21/583/2 -f 17/585/24 29/591/24 28/586/20 -f 14/587/25 26/593/25 25/588/21 -f 9/584/2 21/583/2 32/589/22 -f 11/571/18 23/570/18 22/590/23 -f 18/574/7 30/573/7 29/591/24 -f 15/592/1 27/1264/1 26/593/25 -f 39/594/21 51/615/21 52/595/25 -f 46/597/22 58/616/22 48/598/2 -f 36/600/23 47/617/23 49/601/18 -f 43/603/24 55/618/24 56/604/7 -f 40/596/25 52/595/25 53/606/1 -f 37/602/18 49/601/18 50/608/6 -f 44/605/7 56/604/7 57/610/19 -f 41/612/1 53/1265/1 54/613/20 -f 38/609/6 50/608/6 51/615/21 -f 45/611/19 57/610/19 58/616/22 -f 35/599/2 48/598/2 47/617/23 -f 42/614/20 54/613/20 55/618/24 -f 90/619/26 96/626/31 97/620/27 -f 88/622/29 93/645/29 94/623/3 -f 88/625/30 87/1266/344 96/626/31 -f 80/628/33 79/1267/345 82/629/34 -f 86/631/35 85/640/36 84/632/36 -f 84/632/36 85/640/36 80/628/33 -f 91/621/28 97/620/27 98/634/38 -f 90/619/26 92/1268/346 95/627/32 -f 96/626/31 87/1266/344 94/638/41 -f 79/639/42 80/628/3 85/640/3 -f 99/642/43 79/639/42 86/641/42 -f 88/622/29 101/650/44 104/644/44 -f 106/646/45 108/442/67 107/441/46 -f 103/648/48 106/646/45 105/647/47 -f 101/650/44 99/642/43 102/643/43 -f 110/438/50 112/680/66 111/651/51 -f 115/652/53 116/1269/58 114/653/50 -f 115/655/53 122/659/55 121/656/54 -f 113/658/52 123/661/57 122/659/55 -f 118/660/56 117/667/61 122/659/55 -f 111/657/51 121/656/54 120/49/57 -f 116/663/58 112/678/66 128/664/59 -f 107/666/46 119/440/135 117/667/61 -f 105/668/47 117/667/61 118/660/56 -f 125/670/62 130/665/60 128/664/59 -f 124/672/64 129/673/65 130/665/60 -f 116/663/58 130/665/60 129/673/65 -f 103/675/48 124/672/64 125/670/62 -f 110/677/50 127/944/65 128/664/59 -f 108/679/67 106/676/45 125/670/62 -f 112/680/66 116/1269/58 115/652/53 -f 216/681/2 215/690/23 191/682/23 -f 208/684/25 209/1270/1 185/685/1 -f 223/687/24 224/695/7 200/688/7 -f 215/690/23 217/697/18 193/691/18 -f 209/692/1 210/699/20 186/693/20 -f 224/695/7 225/701/19 201/696/19 -f 217/697/18 218/706/6 194/698/6 -f 210/699/20 211/708/24 187/700/24 -f 225/701/19 226/710/22 202/702/22 -f 203/703/2 204/711/23 180/704/23 -f 218/706/6 219/713/21 195/707/21 -f 211/708/24 212/715/7 188/709/7 -f 226/710/22 216/681/2 192/683/2 -f 204/711/23 205/717/18 181/712/18 -f 219/713/21 220/719/25 196/714/25 -f 212/715/7 213/721/19 189/716/19 -f 205/717/18 206/723/6 182/718/6 -f 220/719/25 221/1271/1 197/720/1 -f 213/721/19 214/728/22 190/722/22 -f 206/723/6 207/729/21 183/724/21 -f 221/725/1 222/730/20 198/726/20 -f 214/728/22 203/703/2 179/705/2 -f 207/729/21 208/684/25 184/686/25 -f 222/730/20 223/687/24 199/689/24 -f 233/731/1 245/1272/1 244/732/25 -f 230/734/6 242/744/6 241/735/18 -f 237/737/19 249/746/19 248/738/7 -f 234/740/20 246/751/20 245/741/1 -f 231/743/21 243/752/21 242/744/6 -f 238/745/22 250/753/22 249/746/19 -f 228/747/23 240/754/23 239/748/2 -f 235/750/24 247/755/24 246/751/20 -f 232/733/25 244/732/25 243/752/21 -f 227/749/2 239/748/2 250/753/22 -f 229/736/18 241/735/18 240/754/23 -f 236/739/7 248/738/7 247/755/24 -f 254/756/68 262/768/68 261/757/2 -f 252/759/69 260/769/69 259/760/3 -f 251/761/3 259/760/3 266/762/9 -f 257/764/1 265/1273/1 264/765/70 -f 255/767/5 263/772/5 262/768/68 -f 253/758/2 261/757/2 260/769/69 -f 258/763/9 266/762/9 265/770/1 -f 256/766/70 264/765/70 263/772/5 -f 282/773/71 275/789/69 267/774/3 -f 280/776/73 281/785/79 273/777/7 -f 278/779/75 279/786/80 271/780/5 -f 276/782/77 277/1274/81 269/783/6 -f 281/785/79 282/773/71 274/775/72 -f 279/786/80 280/776/73 272/778/74 -f 277/787/81 278/779/75 270/781/76 -f 275/789/69 276/782/77 268/784/78 -f 277/790/81 276/810/77 283/791/82 -f 282/793/71 281/799/79 288/794/84 -f 279/786/80 286/800/70 287/796/86 -f 278/779/75 277/1275/81 284/797/83 -f 280/776/73 287/796/86 288/794/84 -f 278/779/75 285/798/87 286/800/70 -f 289/795/85 288/794/84 295/801/88 -f 286/800/70 293/806/93 294/803/90 -f 285/798/87 284/797/83 291/804/91 -f 287/796/86 294/803/90 295/801/88 -f 285/798/87 292/805/92 293/806/93 -f 284/792/83 283/791/82 290/807/94 -f 296/811/89 304/815/96 297/812/95 -f 295/814/88 303/821/100 304/815/96 -f 275/813/69 297/812/95 298/816/97 -f 293/806/93 301/822/101 302/818/98 -f 291/819/91 299/1276/76 300/820/99 -f 294/803/90 302/818/98 303/821/100 -f 292/805/92 300/820/99 301/822/101 -f 290/817/94 298/816/97 299/823/76 -f 320/825/71 313/841/69 305/826/3 -f 318/828/73 319/1277/79 311/829/7 -f 316/831/75 317/839/80 309/832/5 -f 314/834/77 315/840/81 307/835/6 -f 319/837/79 320/825/71 312/827/72 -f 317/839/80 318/828/73 310/830/74 -f 315/840/81 316/831/75 308/833/76 -f 313/841/69 314/834/77 306/836/78 -f 315/842/81 314/862/77 321/843/82 -f 320/845/71 319/1278/79 326/846/84 -f 318/828/73 317/839/80 324/848/70 -f 316/831/75 315/842/81 322/844/83 -f 318/828/73 325/849/86 326/851/84 -f 316/831/75 323/850/87 324/848/70 -f 327/847/85 326/846/84 333/853/88 -f 325/849/86 324/848/70 331/855/93 -f 323/850/87 322/844/83 329/857/91 -f 325/849/86 332/856/90 333/859/88 -f 323/850/87 330/858/92 331/855/93 -f 322/844/83 321/843/82 328/860/94 -f 334/863/89 342/867/103 335/864/102 -f 333/866/88 341/1279/74 342/867/103 -f 313/865/69 335/864/102 336/868/104 -f 331/855/93 339/875/107 340/870/105 -f 329/871/91 337/876/108 338/872/106 -f 332/856/90 340/870/105 341/873/74 -f 330/858/92 338/872/106 339/875/107 -f 328/869/94 336/868/104 337/876/108 -f 297/877/95 343/885/113 344/878/109 -f 303/821/100 302/818/98 347/880/110 -f 301/882/101 300/895/99 345/883/111 -f 304/815/96 349/886/114 343/885/113 -f 304/815/96 303/821/100 348/881/72 -f 302/818/98 301/882/101 346/884/112 -f 346/884/112 353/891/119 354/887/115 -f 344/878/109 343/885/113 350/888/116 -f 347/880/110 354/887/115 355/890/118 -f 345/883/111 352/896/121 353/891/119 -f 343/885/113 349/886/114 356/892/120 -f 348/881/72 355/890/118 356/892/120 -f 336/868/104 335/903/102 357/897/122 -f 339/899/107 338/872/106 360/900/124 -f 337/876/108 336/868/104 358/898/123 -f 335/903/102 342/914/103 363/904/126 -f 339/899/107 361/901/125 362/905/127 -f 337/876/108 359/902/78 360/900/124 -f 357/897/122 364/911/132 365/907/128 -f 361/901/125 360/900/124 367/908/129 -f 358/898/123 365/907/128 366/910/131 -f 363/904/126 370/915/134 364/911/132 -f 362/905/127 361/901/125 368/909/130 -f 360/900/124 359/902/78 366/910/131 -f 364/917/132 370/1280/134 351/918/117 -f 351/918/117 370/1280/134 341/920/74 -f 341/922/74 369/1281/133 352/923/121 -f 352/923/121 369/1281/133 368/925/130 -f 353/926/119 368/925/130 367/908/129 -f 354/887/115 367/908/129 366/910/131 -f 355/890/118 366/910/131 365/907/128 -f 356/892/120 365/907/128 364/917/132 -f 389/927/14 390/931/14 388/928/2 -f 391/930/6 392/933/6 390/931/14 -f 393/932/11 394/935/11 392/933/6 -f 395/934/1 396/1282/1 394/935/11 -f 397/936/12 398/940/12 396/937/1 -f 399/939/7 400/942/7 398/940/12 -f 401/941/13 402/943/13 400/942/7 -f 387/929/2 388/928/2 402/943/13 -f 117/667/61 119/440/135 121/656/54 -f 530/945/13 546/310/13 545/307/7 -f 528/947/12 544/320/12 543/529/1 -f 526/949/11 542/317/11 541/314/6 -f 524/951/14 540/312/14 539/527/2 -f 523/952/2 539/527/2 546/310/13 -f 529/946/7 545/307/7 544/320/12 -f 527/953/1 543/528/1 542/317/11 -f 525/950/6 541/314/6 540/312/14 -f 532/313/12 547/958/12 548/954/1 -f 531/311/1 548/954/1 554/955/11 -f 537/309/6 553/959/6 552/956/14 -f 535/318/2 551/1283/2 550/957/13 -f 533/315/7 549/961/7 547/958/12 -f 538/308/11 554/955/11 553/959/6 -f 536/321/14 552/956/14 551/960/2 -f 534/316/13 550/957/13 549/961/7 -f 570/329/13 563/331/2 555/962/2 -f 568/325/12 569/327/7 561/964/7 -f 566/336/11 567/338/1 559/966/1 -f 564/332/14 565/334/6 557/968/6 -f 569/327/7 570/329/13 562/963/13 -f 567/339/1 568/325/12 560/965/12 -f 565/334/6 566/336/11 558/967/11 -f 563/331/2 564/332/14 556/969/14 -f 576/340/14 584/975/14 585/971/6 -f 574/337/13 582/976/13 583/972/2 -f 572/333/12 579/977/12 581/973/7 -f 577/326/6 585/971/6 586/974/11 -f 575/536/2 583/1284/2 584/975/14 -f 573/335/7 581/973/7 582/976/13 -f 571/330/1 580/978/1 579/977/12 -f 578/328/11 586/974/11 580/978/1 -f 591/979/136 587/1285/343 647/980/137 -f 656/982/139 652/986/142 591/983/136 -f 596/985/141 592/988/144 652/986/142 -f 588/987/143 648/989/145 652/986/142 -f 648/989/145 587/1286/343 591/983/136 -f 657/990/146 653/992/148 592/988/144 -f 597/991/147 593/994/150 653/992/148 -f 589/993/149 649/995/151 653/992/148 -f 649/995/151 588/987/143 592/988/144 -f 597/991/147 658/998/154 654/996/152 -f 594/997/153 654/996/152 658/998/154 -f 594/997/153 590/1005/160 650/1000/156 -f 654/996/152 650/1000/156 589/993/149 -f 598/999/155 655/1004/159 651/981/138 -f 595/1001/140 655/1004/159 659/1002/157 -f 591/979/136 651/981/138 655/1004/159 -f 590/1005/160 594/997/153 651/981/138 -f 599/1006/158 660/1008/162 656/982/139 -f 600/1007/161 596/985/141 656/982/139 -f 661/1009/163 657/990/146 596/985/141 -f 601/1010/164 597/991/147 657/990/146 -f 662/1011/165 658/998/154 597/991/147 -f 602/1012/166 598/999/155 658/998/154 -f 602/1012/166 659/1002/157 655/1004/159 -f 599/1003/158 659/1002/157 663/1013/167 -f 603/1015/168 664/1016/169 660/1008/162 -f 600/1007/161 660/1008/162 664/1016/169 -f 604/1017/170 665/1019/172 661/1009/163 -f 605/1018/171 601/1010/164 661/1009/163 -f 666/1020/173 662/1011/165 601/1010/164 -f 606/1021/174 602/1012/166 662/1011/165 -f 663/1013/167 659/1002/157 602/1012/166 -f 756/1022/175 664/1016/169 603/1015/168 -f 668/1024/177 604/1017/170 664/1016/169 -f 757/1025/178 665/1019/172 604/1017/170 -f 605/1018/171 665/1019/172 757/1025/178 -f 666/1020/173 605/1018/171 669/1026/179 -f 606/1021/174 666/1020/173 758/1027/180 -f 663/1013/167 606/1021/174 670/1028/181 -f 667/1030/176 603/1014/168 663/1013/167 -f 667/1030/176 755/1029/182 759/1031/183 -f 672/1033/185 668/1024/177 756/1022/175 -f 669/1026/179 757/1025/178 761/1035/187 -f 760/1034/186 756/1022/175 667/1023/176 -f 670/1028/181 758/1027/180 762/1038/189 -f 761/1035/187 757/1025/178 668/1024/177 -f 610/1040/191 619/1050/201 692/1041/192 -f 758/1027/180 669/1026/179 673/1036/188 -f 755/1029/182 670/1028/181 674/1039/190 -f 766/1043/194 622/1287/197 609/1044/195 -f 622/1046/197 610/1040/191 678/1042/193 -f 763/1048/199 779/1059/210 607/1049/200 -f 607/1049/200 675/1052/203 692/1041/192 -f 620/1051/202 694/1055/206 675/1052/203 -f 764/1053/204 780/1066/215 608/1054/205 -f 610/1040/191 782/1064/214 763/1048/199 -f 608/1054/205 676/1057/208 694/1055/206 -f 621/1056/207 696/1094/240 676/1057/208 -f 781/1045/196 609/1044/195 621/1056/207 -f 779/1059/210 764/1053/204 620/1051/202 -f 671/1032/184 759/1031/183 683/1060/211 -f 609/1044/195 622/1287/197 698/1062/198 -f 782/1064/214 610/1040/191 622/1046/197 -f 780/1066/215 765/1058/209 621/1056/207 -f 615/1067/216 693/1071/219 685/1068/217 -f 612/1070/218 685/1068/217 693/1071/219 -f 612/1070/218 672/1033/185 760/1034/186 -f 760/1034/186 671/1037/184 611/1069/212 -f 616/1072/220 695/1075/223 687/1073/221 -f 613/1074/222 687/1073/221 695/1075/223 -f 613/1074/222 673/1036/188 761/1035/187 -f 687/1073/221 761/1035/187 672/1033/185 -f 697/1077/225 689/1079/227 613/1074/222 -f 618/1078/226 614/1080/228 689/1079/227 -f 674/1039/190 762/1038/189 689/1079/227 -f 762/1038/189 673/1036/188 613/1074/222 -f 691/1081/229 683/1060/211 614/1080/228 -f 705/1082/230 794/1288/254 681/1083/231 -f 615/1085/216 611/1061/212 683/1060/211 -f 759/1031/183 674/1039/190 614/1080/228 -f 768/1086/233 693/1071/219 615/1067/216 -f 702/1088/235 616/1072/220 693/1071/219 -f 678/1042/193 692/1041/192 699/1089/236 -f 698/1047/198 678/1042/193 786/1090/237 -f 769/1092/238 695/1075/223 616/1072/220 -f 704/1093/239 617/1076/224 695/1075/223 -f 621/1056/207 609/1044/195 677/1063/213 -f 694/1055/206 701/1102/248 783/1095/241 -f 697/1077/225 617/1076/224 704/1093/239 -f 618/1078/226 697/1077/225 770/1096/242 -f 692/1041/192 675/1052/203 783/1095/241 -f 696/1094/240 703/1109/255 784/1098/244 -f 691/1081/229 618/1078/226 706/1097/243 -f 768/1086/233 700/1087/234 708/1100/246 -f 676/1057/208 784/1098/244 701/1102/248 -f 677/1063/213 698/1062/198 705/1082/230 -f 679/1103/249 623/1117/263 639/1104/250 -f 682/1106/252 626/1113/259 642/1107/253 -f 699/1089/236 783/1095/241 679/1103/249 -f 677/1063/213 785/1084/232 703/1109/255 -f 792/1110/256 680/1119/264 624/1111/257 -f 626/1113/259 682/1106/252 791/1105/251 -f 784/1098/244 680/1119/264 792/1110/256 -f 786/1090/237 699/1089/236 791/1105/251 -f 793/1114/260 681/1083/231 625/1115/261 -f 792/1110/256 640/1112/258 623/1117/263 -f 785/1084/232 681/1083/231 793/1114/260 -f 783/1095/241 701/1102/248 792/1110/256 -f 615/1085/216 691/1081/229 767/1099/245 -f 680/1119/264 793/1114/260 641/1116/262 -f 705/1091/230 786/1090/237 682/1106/252 -f 703/1109/255 793/1114/260 680/1119/264 -f 769/1092/238 702/1088/235 710/1120/265 -f 708/1122/246 700/1118/234 767/1099/245 -f 681/1083/231 794/1288/254 642/1124/253 -f 790/1125/268 713/1130/273 731/1126/269 -f 798/1128/271 770/1096/242 704/1093/239 -f 702/1088/235 768/1086/233 796/1101/247 -f 642/1107/253 626/1113/259 713/1130/273 -f 731/1126/269 713/1130/273 626/1113/259 -f 706/1097/243 714/1137/280 795/1123/267 -f 704/1093/239 769/1092/238 797/1121/266 -f 732/1132/275 628/1144/287 787/1133/276 -f 707/1134/277 787/1133/276 627/1127/270 -f 710/1120/265 796/1101/247 772/1135/278 -f 714/1137/280 706/1097/243 770/1096/242 -f 639/1104/250 623/1117/263 707/1134/277 -f 732/1132/275 707/1134/277 623/1117/263 -f 712/1129/272 797/1121/266 773/1138/281 -f 772/1135/278 796/1101/247 708/1100/246 -f 709/1141/284 733/1152/294 629/1142/285 -f 732/1132/275 709/1141/284 788/1143/286 -f 730/1145/288 714/1137/280 798/1128/271 -f 797/1121/266 710/1120/265 726/1136/279 -f 624/1111/257 709/1141/284 732/1132/275 -f 641/1116/262 733/1152/294 709/1141/284 -f 742/1147/290 726/1136/279 772/1135/278 -f 798/1128/271 712/1129/272 728/1139/282 -f 734/1149/274 630/1289/302 789/1150/292 -f 733/1152/294 711/1151/293 789/1150/292 -f 634/1153/295 690/1161/303 718/1154/296 -f 714/1137/280 730/1145/288 771/1156/298 -f 625/1115/261 711/1151/293 733/1152/294 -f 642/1124/253 734/1149/274 711/1151/293 -f 684/1157/299 715/1168/310 735/1158/300 -f 790/1125/268 690/1161/303 634/1153/295 -f 713/1130/273 790/1125/268 630/1160/302 -f 690/1161/303 790/1125/268 627/1127/270 -f 686/1162/304 716/1172/312 736/1163/305 -f 718/1154/296 690/1161/303 631/1159/301 -f 628/1144/287 632/1164/306 684/1157/299 -f 788/1143/286 629/1142/285 633/1165/307 -f 633/1165/307 688/1170/311 717/1166/308 -f 632/1164/306 736/1163/305 715/1168/310 -f 787/1133/276 684/1157/299 631/1159/301 -f 789/1150/292 630/1289/302 634/1169/295 -f 724/1171/283 708/1122/246 795/1123/267 -f 686/1162/304 633/1165/307 737/1167/309 -f 788/1143/286 686/1162/304 632/1164/306 -f 629/1142/285 789/1150/292 688/1170/311 -f 728/1139/282 773/1138/281 777/1173/313 -f 776/1148/291 772/1135/278 724/1140/283 -f 688/1170/311 634/1169/295 738/1176/297 -f 739/1177/316 722/1196/331 718/1154/296 -f 730/1145/288 774/1146/289 778/1178/317 -f 773/1138/281 726/1136/279 742/1147/290 -f 735/1158/300 715/1168/310 719/1180/319 -f 741/1181/320 719/1180/319 715/1168/310 -f 776/1148/291 740/1175/315 748/1182/321 -f 774/1146/289 728/1139/282 744/1174/314 -f 736/1163/305 716/1172/312 720/1184/323 -f 737/1167/309 743/1189/327 720/1184/323 -f 729/1185/324 802/1192/142 646/1186/136 -f 730/1145/288 746/1179/318 775/1188/326 -f 717/1166/308 721/1190/328 743/1189/327 -f 738/1176/297 745/1207/330 721/1190/328 -f 803/1191/329 643/1197/144 802/1192/142 -f 802/1192/142 643/1197/144 747/1193/143 -f 718/1154/296 722/1196/331 745/1195/330 -f 739/1177/316 803/1191/329 729/1185/324 -f 643/1197/144 799/1201/148 635/1198/151 -f 722/1196/331 729/1185/324 806/1187/325 -f 739/1177/316 719/1180/319 723/1199/332 -f 804/1200/333 723/1199/332 719/1180/319 -f 804/1200/333 644/1215/150 799/1201/148 -f 799/1201/148 644/1215/150 749/1202/149 -f 741/1181/320 720/1184/323 725/1203/334 -f 805/1204/335 725/1203/334 720/1184/323 -f 740/1205/315 724/1171/283 771/1156/298 -f 723/1199/332 799/1201/148 643/1197/144 -f 743/1189/327 721/1190/328 727/1206/336 -f 745/1207/330 806/1224/325 727/1206/336 -f 809/1208/337 777/1173/313 742/1147/290 -f 740/1205/315 775/1188/326 807/1210/339 -f 645/1212/153 751/1222/160 636/1213/156 -f 800/1214/152 636/1213/156 749/1202/149 -f 810/1216/340 778/1178/317 744/1174/314 -f 742/1147/290 776/1148/291 808/1183/322 -f 804/1200/333 725/1203/334 800/1214/152 -f 645/1212/153 800/1214/152 725/1203/334 -f 775/1188/326 746/1179/318 754/1218/342 -f 752/1217/341 744/1174/314 777/1173/313 -f 646/1219/136 753/1290/343 637/1220/137 -f 801/1221/138 637/1220/137 751/1222/160 -f 646/1186/136 802/1192/142 638/1194/145 -f 754/1218/342 746/1179/318 778/1178/317 -f 805/1204/335 727/1206/336 801/1221/138 -f 646/1219/136 801/1221/138 727/1206/336 -f 98/634/38 97/620/27 94/638/41 -f 92/1291/346 82/629/34 95/1226/32 -f 82/629/34 79/1267/345 99/1225/6 -f 99/1225/6 101/1228/6 95/1226/32 -f 102/1227/7 86/631/35 83/633/37 -f 83/633/37 89/1292/39 98/634/38 -f 98/634/38 104/636/7 102/1227/7 -f 857/1230/14 858/1234/14 856/1231/2 -f 859/1233/6 860/1236/6 858/1234/14 -f 861/1235/11 862/1238/11 860/1236/6 -f 863/1237/1 864/1293/1 862/1238/11 -f 865/1239/12 866/1243/12 864/1240/1 -f 867/1242/7 868/1245/7 866/1243/12 -f 869/1244/13 870/1246/13 868/1245/7 -f 855/1232/2 856/1231/2 870/1246/13 -f 881/1247/2 882/1258/68 874/1248/68 -f 879/1250/3 880/1260/69 872/1251/69 -f 886/1253/9 879/1250/3 871/1252/3 -f 884/1255/70 885/1294/1 877/1256/1 -f 882/1258/68 883/1263/5 875/1259/5 -f 880/1260/69 881/1247/2 873/1249/2 -f 885/1261/1 886/1253/9 878/1254/9 -f 883/1263/5 884/1255/70 876/1257/70 +f 420/515/222 427/516/223 421/517/224 +f 418/518/225 424/519/226 417/520/226 +f 418/521/227 426/522/228 425/523/229 +f 410/524/230 412/525/231 411/526/230 +f 416/527/232 414/528/233 413/529/234 +f 414/528/233 410/524/230 411/526/230 +f 421/517/224 428/530/235 419/531/236 +f 420/515/222 425/523/229 426/522/228 +f 432/532/237 428/530/235 423/533/238 +f 426/522/228 424/534/239 427/516/223 +f 409/535/240 415/536/226 416/537/240 +f 429/538/241 416/537/240 431/539/241 +f 418/518/225 432/540/242 423/541/225 +f 430/542/242 431/539/241 432/540/242 +f 428/530/235 424/534/239 423/533/238 +f 412/525/231 429/543/243 425/544/229 +f 413/529/234 428/530/235 431/545/237 +f 425/544/229 430/546/243 418/547/227 +f 420/515/222 426/522/228 427/516/223 +f 418/518/225 423/541/225 424/519/226 +f 418/521/227 417/548/244 426/522/228 +f 410/524/230 409/549/245 412/525/231 +f 416/527/232 415/536/233 414/528/233 +f 414/528/233 415/536/233 410/524/230 +f 421/517/224 427/516/223 428/530/235 +f 420/515/222 422/550/246 425/523/229 +f 426/522/228 417/548/244 424/534/239 +f 409/535/240 410/524/226 415/536/226 +f 429/538/241 409/535/240 416/537/240 +f 418/518/225 430/542/242 432/540/242 +f 430/542/242 429/538/241 431/539/241 +f 428/530/235 427/516/223 424/534/239 +f 422/551/246 412/525/231 425/544/229 +f 412/525/231 409/549/245 429/543/243 +f 429/543/243 430/546/243 425/544/229 +f 431/545/237 416/527/232 413/529/234 +f 413/529/234 419/552/236 428/530/235 +f 428/530/235 432/532/237 431/545/237 +o Barrel +v 0.000000 1.875000 4.000000 +v -0.250000 1.808013 4.000000 +v -0.433012 1.625000 4.000000 +v -0.500000 1.375000 4.000000 +v -0.433012 1.125000 4.000000 +v -0.250000 0.941987 4.000000 +v 0.000000 0.875000 4.000000 +v 0.250000 0.941987 4.000000 +v 0.433012 1.125000 4.000000 +v 0.500000 1.375000 4.000000 +v 0.433013 1.625000 4.000000 +v 0.250000 1.808012 4.000000 +v 0.000000 1.875000 11.500000 +v -0.250000 1.808013 11.500000 +v -0.433012 1.625000 11.500000 +v -0.500000 1.375000 11.500000 +v -0.433012 1.125000 11.500000 +v -0.250000 0.941987 11.500000 +v 0.000000 0.875000 11.500000 +v 0.250000 0.941987 11.500000 +v 0.433012 1.125000 11.500000 +v 0.500000 1.375000 11.500000 +v 0.433013 1.625000 11.500000 +v 0.250000 1.808012 11.500000 +v 0.000000 1.812500 12.000000 +v -0.218750 1.753886 12.000000 +v -0.378886 1.593750 12.000000 +v -0.437500 1.375000 12.000000 +v -0.378886 1.156250 12.000000 +v -0.218750 0.996114 12.000000 +v 0.000000 0.937500 12.000000 +v 0.218750 0.996114 12.000000 +v 0.378886 1.156250 12.000000 +v 0.437500 1.375000 12.000000 +v 0.378886 1.593750 12.000000 +v 0.218750 1.753886 12.000000 +v -0.218750 1.753892 4.500000 +v 0.000000 1.812506 4.500000 +v -0.378886 1.593756 4.500000 +v -0.437500 1.375006 4.500000 +v -0.378886 1.156256 4.500000 +v -0.218750 0.996120 4.500000 +v 0.000000 0.937506 4.500000 +v 0.218750 0.996120 4.500000 +v 0.378886 1.156256 4.500000 +v 0.437500 1.375006 4.500000 +v 0.378886 1.593756 4.500000 +v 0.218750 1.753892 4.500000 +vt 0.002103 0.018927 +vt 0.015385 0.000117 +vt 0.028667 0.018927 +vt 0.017308 0.226425 +vt 0.028962 0.242929 +vt 0.017308 0.292443 +vt 0.015385 0.075355 +vt 0.007716 0.070315 +vt 0.002103 0.056545 +vt 0.000048 0.037736 +vt 0.007716 0.005157 +vt 0.023053 0.005157 +vt 0.030721 0.037736 +vt 0.028667 0.056545 +vt 0.023053 0.070315 +vt 0.010579 0.288021 +vt 0.005653 0.275939 +vt 0.003850 0.259434 +vt 0.005653 0.242929 +vt 0.010579 0.230847 +vt 0.024036 0.230847 +vt 0.030765 0.259434 +vt 0.028962 0.275939 +vt 0.024036 0.288021 +vt 0.261538 0.169811 +vt 0.030769 0.150943 +vt 0.261538 0.150943 +vt 0.261538 0.075472 +vt 0.030769 0.056604 +vt 0.261538 0.056604 +vt 0.261538 0.018868 +vt 0.030769 -0.000000 +vt 0.261538 -0.000000 +vt 0.261538 0.188679 +vt 0.030769 0.169811 +vt 0.261538 0.094340 +vt 0.030769 0.075472 +vt 0.261538 0.132075 +vt 0.030769 0.113208 +vt 0.261538 0.113208 +vt 0.261538 0.037736 +vt 0.030769 0.018868 +vt 0.261538 0.207547 +vt 0.030769 0.188679 +vt 0.030769 0.094340 +vt 0.030769 0.132075 +vt 0.030769 0.037736 +vt 0.261538 0.226415 +vt 0.030769 0.207547 +vt 0.030769 0.415094 +vt 0.261538 0.433962 +vt 0.030769 0.433962 +vt 0.030769 0.320755 +vt 0.261538 0.339623 +vt 0.030769 0.339623 +vt 0.030769 0.358491 +vt 0.261538 0.377358 +vt 0.030769 0.377358 +vt 0.030769 0.264151 +vt 0.261538 0.283019 +vt 0.030769 0.283019 +vt 0.261538 0.452830 +vt 0.030769 0.452830 +vt 0.261538 0.396226 +vt 0.030769 0.396226 +vt 0.261538 0.301887 +vt 0.030769 0.301887 +vt 0.030769 0.226415 +vt 0.261538 0.245283 +vt 0.030769 0.245283 +vt 0.261538 0.415094 +vt 0.261538 0.320755 +vt 0.261538 0.358491 +vt 0.261538 0.264151 +vt 0.030769 0.226415 +vt 0.261538 0.226415 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +s off +f 449/553/247 451/554/247 453/555/247 +f 463/556/247 465/557/247 457/558/247 +f 445/559/247 446/560/247 447/561/247 +f 447/561/247 448/562/247 449/553/247 +f 449/553/247 450/563/247 451/554/247 +f 451/554/247 452/564/247 453/555/247 +f 453/555/247 454/565/247 455/566/247 +f 455/566/247 456/567/247 453/555/247 +f 456/567/247 445/559/247 453/555/247 +f 445/559/247 447/561/247 453/555/247 +f 447/561/247 449/553/247 453/555/247 +f 457/558/247 458/568/247 459/569/247 +f 459/569/247 460/570/247 457/558/247 +f 460/570/247 461/571/247 457/558/247 +f 461/571/247 462/572/247 463/556/247 +f 463/556/247 464/573/247 465/557/247 +f 465/557/247 466/574/247 457/558/247 +f 466/574/247 467/575/247 457/558/247 +f 467/575/247 468/576/247 457/558/247 +f 461/571/247 463/556/247 457/558/247 +s 1 +f 436/577/248 447/578/249 435/579/249 +f 443/580/250 454/581/251 442/582/251 +f 440/583/252 451/584/253 439/585/253 +f 437/586/254 448/587/248 436/577/248 +f 444/588/255 455/589/250 443/580/250 +f 434/590/256 445/591/257 433/592/257 +f 441/593/258 452/594/252 440/583/252 +f 438/595/259 449/596/254 437/586/254 +f 433/592/257 456/597/255 444/588/255 +f 435/579/249 446/598/256 434/590/256 +f 442/582/251 453/599/258 441/593/258 +f 439/600/253 450/601/259 438/595/259 +f 461/602/254 474/603/259 462/604/259 +f 468/605/255 470/606/257 457/607/257 +f 458/608/256 471/609/249 459/610/249 +f 465/611/258 478/612/251 466/613/251 +f 462/604/259 475/614/253 463/615/253 +f 459/610/249 472/616/248 460/617/248 +f 466/613/251 479/618/250 467/619/250 +f 463/620/253 476/621/252 464/622/252 +f 460/617/248 473/623/254 461/602/254 +f 467/619/250 480/624/255 468/605/255 +f 457/607/257 469/625/256 458/608/256 +f 464/622/252 477/626/258 465/611/258 +f 436/577/248 448/587/248 447/578/249 +f 443/580/250 455/589/250 454/581/251 +f 440/583/252 452/594/252 451/584/253 +f 437/586/254 449/596/254 448/587/248 +f 444/588/255 456/597/255 455/589/250 +f 434/590/256 446/598/256 445/591/257 +f 441/593/258 453/599/258 452/594/252 +f 438/595/259 450/601/259 449/596/254 +f 433/592/257 445/591/257 456/597/255 +f 435/579/249 447/578/249 446/598/256 +f 442/582/251 454/581/251 453/599/258 +f 439/600/253 451/627/253 450/601/259 +f 461/602/254 473/623/254 474/603/259 +f 468/605/255 480/624/255 470/606/257 +f 458/608/256 469/625/256 471/609/249 +f 465/611/258 477/626/258 478/612/251 +f 462/604/259 474/603/259 475/614/253 +f 459/610/249 471/609/249 472/616/248 +f 466/613/251 478/612/251 479/618/250 +f 463/620/253 475/628/253 476/621/252 +f 460/617/248 472/616/248 473/623/254 +f 467/619/250 479/618/250 480/624/255 +f 457/607/257 470/606/257 469/625/256 +f 464/622/252 476/621/252 477/626/258 +o Battery +v -0.562500 -1.000000 -1.500000 +v 0.562500 -1.000000 -1.500000 +v -0.562500 -1.000000 2.000000 +v 0.562500 -1.000000 2.000000 +v 0.437500 -0.750000 -1.375000 +v -0.437500 -0.750000 -1.375000 +v -0.437500 -0.750000 1.875000 +v 0.437500 -0.750000 1.875000 +v 0.562500 -0.750000 -1.500000 +v -0.562500 -0.750000 -1.500000 +v -0.562500 -0.750000 2.000000 +v 0.562500 -0.750000 2.000000 +v 0.437500 0.750000 -1.375000 +v -0.437500 0.750000 -1.375000 +v -0.437500 0.750000 1.875000 +v 0.437500 0.750000 1.875000 +v 0.062500 0.750000 -1.000000 +v 0.312500 0.750000 -1.000000 +v 0.062500 0.750000 -1.250000 +v 0.312500 0.750000 -1.250000 +v -0.312500 0.750000 -1.000000 +v -0.062500 0.750000 -1.000000 +v -0.312500 0.750000 -1.250000 +v -0.062500 0.750000 -1.250000 +v 0.062500 0.875000 -1.250000 +v 0.062500 0.875000 -1.000000 +v 0.312500 0.875000 -1.000000 +v 0.312500 0.875000 -1.250000 +v -0.312500 0.875000 -1.250000 +v -0.312500 0.875000 -1.000000 +v -0.062500 0.875000 -1.000000 +v -0.062500 0.875000 -1.250000 +vt 0.115385 0.556604 +vt 0.007692 0.471698 +vt 0.115385 0.471698 +vt 0.376923 0.452830 +vt 0.276923 0.566038 +vt 0.276923 0.452830 +vt 0.007692 0.575472 +vt 0.007692 0.556604 +vt 0.123077 0.556604 +vt 0.115385 0.452830 +vt -0.000000 0.471698 +vt 0.111538 0.584906 +vt 0.115385 0.660377 +vt 0.111538 0.650943 +vt 0.011538 0.650943 +vt 0.011538 0.584906 +vt 0.115385 0.575472 +vt 0.007692 0.660377 +vt 0.150000 0.632075 +vt 0.250000 0.566038 +vt 0.250000 0.632075 +vt 0.150000 0.452830 +vt 0.123077 0.566038 +vt 0.123077 0.452830 +vt 0.250000 0.452830 +vt 0.150000 0.566038 +vt 0.138462 0.575472 +vt 0.146154 0.594340 +vt 0.138462 0.594340 +vt 0.123077 0.575472 +vt 0.130769 0.594340 +vt 0.123077 0.594340 +vt 0.146154 0.566038 +vt 0.138462 0.566038 +vt 0.138462 0.603774 +vt 0.146154 0.603774 +vt 0.134615 0.594340 +vt 0.130769 0.575472 +vt 0.134615 0.575472 +vt 0.119231 0.575472 +vt 0.119231 0.594340 +vt 0.150000 0.594340 +vt 0.146154 0.575472 +vt 0.150000 0.575472 +vt 0.134615 0.575472 +vt 0.134615 0.594340 +vt 0.130769 0.566038 +vt 0.123077 0.566038 +vt 0.123077 0.603774 +vt 0.130769 0.603774 +vt 0.376923 0.566038 +vt 0.123077 0.471698 +vt 0.007692 0.452830 +vt -0.000000 0.556604 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 482/629/260 483/630/260 481/631/260 +f 487/632/261 494/633/261 486/634/261 +f 482/629/262 492/635/262 484/636/262 +f 481/631/263 489/637/263 482/629/263 +f 483/630/261 490/638/261 481/631/261 +f 484/636/264 491/639/264 483/630/264 +f 485/640/265 490/641/265 486/642/265 +f 487/643/265 492/635/265 488/644/265 +f 488/644/265 489/645/265 485/640/265 +f 486/642/265 491/646/265 487/643/265 +f 495/647/265 493/648/265 494/649/265 +f 488/650/264 495/651/264 487/652/264 +f 485/653/262 496/654/262 488/650/262 +f 486/634/263 493/648/263 485/653/263 +f 507/655/265 505/656/265 506/657/265 +f 511/658/265 509/659/265 510/660/265 +f 500/661/262 507/655/262 498/662/262 +f 497/663/261 505/656/261 499/664/261 +f 503/665/263 512/666/263 504/667/263 +f 502/668/264 510/660/264 501/669/264 +f 499/670/263 508/671/263 500/672/263 +f 498/673/264 506/657/264 497/674/264 +f 504/675/262 511/658/262 502/676/262 +f 501/677/261 509/659/261 503/678/261 +f 482/629/260 484/636/260 483/630/260 +f 487/632/261 495/679/261 494/633/261 +f 482/629/262 489/645/262 492/635/262 +f 481/631/263 490/680/263 489/637/263 +f 483/630/261 491/681/261 490/638/261 +f 484/636/264 492/682/264 491/639/264 +f 485/640/265 489/645/265 490/641/265 +f 487/643/265 491/646/265 492/635/265 +f 488/644/265 492/635/265 489/645/265 +f 486/642/265 490/641/265 491/646/265 +f 495/647/265 496/654/265 493/648/265 +f 488/650/264 496/654/264 495/651/264 +f 485/653/262 493/648/262 496/654/262 +f 486/634/263 494/633/263 493/648/263 +f 507/655/265 508/671/265 505/656/265 +f 511/658/265 512/666/265 509/659/265 +f 500/661/262 508/671/262 507/655/262 +f 497/663/261 506/657/261 505/656/261 +f 503/665/263 509/659/263 512/666/263 +f 502/668/264 511/658/264 510/660/264 +f 499/670/263 505/656/263 508/671/263 +f 498/673/264 507/655/264 506/657/264 +f 504/675/262 512/666/262 511/658/262 +f 501/677/261 510/660/261 509/659/261 +o Lever +v 0.562500 -0.375000 2.000000 +v 0.562500 -0.109835 2.109835 +v 0.562500 0.000000 2.375000 +v 0.562500 -0.109835 2.640165 +v 0.562500 -0.375000 2.750000 +v 0.562500 -0.640165 2.640165 +v 0.562500 -0.750000 2.375000 +v 0.562500 -0.640165 2.109835 +v 1.062500 -0.375000 2.000000 +v 1.062500 -0.109835 2.109835 +v 1.062500 0.000000 2.375000 +v 1.062500 -0.109835 2.640165 +v 1.062500 -0.375000 2.750000 +v 1.062500 -0.640165 2.640165 +v 1.062500 -0.750000 2.375000 +v 1.062500 -0.640165 2.109835 +v 0.812500 -0.625000 2.250000 +v 0.724112 -0.625000 2.286612 +v 0.687500 -0.625000 2.375000 +v 0.724112 -0.625000 2.463388 +v 0.812500 -0.625000 2.500000 +v 0.900888 -0.625000 2.463388 +v 0.937500 -0.625000 2.375000 +v 0.900888 -0.625000 2.286612 +v 0.812500 -1.125000 2.250000 +v 0.724112 -1.125000 2.286612 +v 0.687500 -1.125000 2.375000 +v 0.724112 -1.125000 2.463388 +v 0.812500 -1.125000 2.500000 +v 0.900888 -1.125000 2.463388 +v 0.937500 -1.125000 2.375000 +v 0.900888 -1.125000 2.286612 +v 0.724112 -1.150888 2.275888 +v 0.687500 -1.213388 2.338388 +v 0.724112 -1.275888 2.400888 +v 0.812500 -1.301777 2.426777 +v 0.900888 -1.275888 2.400888 +v 0.937500 -1.213388 2.338388 +v 0.900888 -1.150888 2.275888 +v 0.724112 -1.161612 2.250000 +v 0.687500 -1.250000 2.250000 +v 0.724112 -1.338388 2.250000 +v 0.812500 -1.375000 2.250000 +v 0.900888 -1.338388 2.250000 +v 0.937500 -1.250000 2.250000 +v 0.900888 -1.161612 2.250000 +v 0.812500 -1.125000 -0.750000 +v 0.724112 -1.161612 -0.750000 +v 0.687500 -1.250000 -0.750000 +v 0.724112 -1.338388 -0.750000 +v 0.812500 -1.375000 -0.750000 +v 0.900888 -1.338388 -0.750000 +v 0.937500 -1.250000 -0.750000 +v 0.900888 -1.161612 -0.750000 +v -0.812500 -0.625000 2.250000 +v -0.900888 -0.625000 2.286612 +v -0.937500 -0.625000 2.375000 +v -0.900888 -0.625000 2.463388 +v -0.812500 -0.625000 2.500000 +v -0.724112 -0.625000 2.463388 +v -0.687500 -0.625000 2.375000 +v -0.724112 -0.625000 2.286612 +v -0.812500 -1.125000 2.250000 +v -0.900888 -1.125000 2.286612 +v -0.937500 -1.125000 2.375000 +v -0.900888 -1.125000 2.463388 +v -0.812500 -1.125000 2.500000 +v -0.724112 -1.125000 2.463388 +v -0.687500 -1.125000 2.375000 +v -0.724112 -1.125000 2.286612 +v -0.900888 -1.150888 2.275888 +v -0.937500 -1.213388 2.338388 +v -0.900888 -1.275888 2.400888 +v -0.812500 -1.301777 2.426777 +v -0.724112 -1.275888 2.400888 +v -0.687500 -1.213388 2.338388 +v -0.724112 -1.150888 2.275888 +v -0.900888 -1.161612 2.250000 +v -0.937500 -1.250000 2.250000 +v -0.900888 -1.338388 2.250000 +v -0.812500 -1.375000 2.250000 +v -0.724112 -1.338388 2.250000 +v -0.687500 -1.250000 2.250000 +v -0.724112 -1.161612 2.250000 +v -0.812500 -1.125000 -0.750000 +v -0.900888 -1.161612 -0.750000 +v -0.937500 -1.250000 -0.750000 +v -0.900888 -1.338388 -0.750000 +v -0.812500 -1.375000 -0.750000 +v -0.724112 -1.338388 -0.750000 +v -0.687500 -1.250000 -0.750000 +v -0.724112 -1.161612 -0.750000 +v 0.775888 -1.125000 -0.838388 +v 0.713388 -1.161612 -0.775888 +v 0.713388 -1.338388 -0.775888 +v 0.775888 -1.375000 -0.838388 +v 0.838388 -1.338388 -0.900888 +v 0.864277 -1.250000 -0.926777 +v 0.838388 -1.161612 -0.900888 +v 0.687500 -1.125000 -0.875000 +v 0.687500 -1.161612 -0.786612 +v 0.687500 -1.338388 -0.786612 +v 0.687500 -1.375000 -0.875000 +v 0.687500 -1.338388 -0.963388 +v 0.687500 -1.250000 -1.000000 +v 0.687500 -1.161612 -0.963388 +v -0.775888 -1.125000 -0.838388 +v -0.838388 -1.161612 -0.900888 +v -0.864277 -1.250000 -0.926777 +v -0.838388 -1.338388 -0.900888 +v -0.775888 -1.375000 -0.838388 +v -0.713388 -1.338388 -0.775888 +v -0.713388 -1.161612 -0.775888 +v -0.687500 -1.125000 -0.875000 +v -0.687500 -1.161612 -0.963388 +v -0.687500 -1.250000 -1.000000 +v -0.687500 -1.338388 -0.963388 +v -0.687500 -1.375000 -0.875000 +v -0.687500 -1.338388 -0.786612 +v -0.687500 -1.161612 -0.786612 +v -0.562500 -0.375000 2.000000 +v -0.562500 -0.109835 2.109835 +v -0.562500 0.000000 2.375000 +v -0.562500 -0.109835 2.640165 +v -0.562500 -0.375000 2.750000 +v -0.562500 -0.640165 2.640165 +v -0.562500 -0.750000 2.375000 +v -0.562500 -0.640165 2.109835 +v -1.062500 -0.375000 2.000000 +v -1.062500 -0.109835 2.109835 +v -1.062500 0.000000 2.375000 +v -1.062500 -0.109835 2.640165 +v -1.062500 -0.375000 2.750000 +v -1.062500 -0.640165 2.640165 +v -1.062500 -0.750000 2.375000 +v -1.062500 -0.640165 2.109835 +vt 0.392282 0.481132 +vt 0.403846 0.452768 +vt 0.415410 0.481132 +vt 0.403846 0.452768 +vt 0.392282 0.481132 +vt 0.403846 0.509497 +vt 0.412023 0.501189 +vt 0.403846 0.509497 +vt 0.395669 0.501189 +vt 0.395669 0.461075 +vt 0.412023 0.461075 +vt 0.412023 0.501189 +vt 0.415410 0.481132 +vt 0.412023 0.461075 +vt 0.395669 0.461075 +vt 0.395669 0.501189 +vt 0.376923 0.509434 +vt 0.392308 0.528302 +vt 0.376923 0.528302 +vt 0.376923 0.547170 +vt 0.392308 0.566038 +vt 0.376923 0.566038 +vt 0.392308 0.584906 +vt 0.376923 0.584906 +vt 0.376923 0.452830 +vt 0.392308 0.471698 +vt 0.376923 0.471698 +vt 0.376923 0.490566 +vt 0.392308 0.509434 +vt 0.392308 0.547170 +vt 0.392308 0.603774 +vt 0.376923 0.603774 +vt 0.392308 0.490566 +vt 0.303846 0.688679 +vt 0.319231 0.679245 +vt 0.319231 0.688679 +vt 0.303846 0.707547 +vt 0.319231 0.698113 +vt 0.319231 0.707547 +vt 0.303846 0.726415 +vt 0.319231 0.716981 +vt 0.319231 0.726415 +vt 0.303846 0.669811 +vt 0.319231 0.660377 +vt 0.319231 0.669811 +vt 0.303846 0.698113 +vt 0.303846 0.716981 +vt 0.303846 0.735849 +vt 0.319231 0.735849 +vt 0.303846 0.679245 +vt 0.300000 0.660377 +vt 0.296154 0.669811 +vt 0.296154 0.660377 +vt 0.300000 0.688679 +vt 0.296154 0.698113 +vt 0.296154 0.688679 +vt 0.296154 0.707547 +vt 0.296154 0.735849 +vt 0.296154 0.726415 +vt 0.300000 0.698113 +vt 0.296154 0.716981 +vt 0.292308 0.698113 +vt 0.292308 0.688679 +vt 0.288462 0.707547 +vt 0.292308 0.735849 +vt 0.288462 0.726415 +vt 0.288462 0.716981 +vt 0.292308 0.669811 +vt 0.292308 0.660377 +vt 0.296154 0.679245 +vt 0.300000 0.669811 +vt 0.288462 0.688679 +vt 0.196154 0.679245 +vt 0.288462 0.679245 +vt 0.288462 0.698113 +vt 0.196154 0.688679 +vt 0.196154 0.669811 +vt 0.288462 0.669811 +vt 0.196154 0.707547 +vt 0.288462 0.735849 +vt 0.196154 0.726415 +vt 0.196154 0.698113 +vt 0.196154 0.716981 +vt 0.196154 0.660377 +vt 0.288462 0.660377 +vt 0.015385 0.669811 +vt -0.000000 0.679245 +vt 0.000000 0.669811 +vt 0.015385 0.726415 +vt 0.000000 0.735849 +vt -0.000000 0.726415 +vt 0.015385 0.707547 +vt 0.000000 0.716981 +vt -0.000000 0.707547 +vt 0.015385 0.688679 +vt -0.000000 0.698113 +vt -0.000000 0.688679 +vt 0.015385 0.660377 +vt 0.000000 0.660377 +vt 0.015385 0.716981 +vt 0.015385 0.698113 +vt 0.015385 0.679245 +vt 0.019231 0.698113 +vt 0.023077 0.688679 +vt 0.023077 0.698113 +vt 0.019231 0.669811 +vt 0.023077 0.660377 +vt 0.023077 0.669811 +vt 0.023077 0.716981 +vt 0.023077 0.726415 +vt 0.023077 0.707547 +vt 0.023077 0.735849 +vt 0.019231 0.735849 +vt 0.026923 0.660377 +vt 0.026923 0.669811 +vt 0.030769 0.716981 +vt 0.030769 0.726415 +vt 0.026923 0.698113 +vt 0.030769 0.707547 +vt 0.026923 0.735849 +vt 0.026923 0.688679 +vt 0.023077 0.679245 +vt 0.019231 0.688679 +vt 0.030769 0.669811 +vt 0.123077 0.679245 +vt 0.030769 0.679245 +vt 0.030769 0.660377 +vt 0.123077 0.669811 +vt 0.123077 0.688679 +vt 0.030769 0.688679 +vt 0.123077 0.726415 +vt 0.030769 0.698113 +vt 0.123077 0.707547 +vt 0.123077 0.735849 +vt 0.030769 0.735849 +vt 0.123077 0.716981 +vt 0.123077 0.698113 +vt 0.192308 0.679245 +vt 0.188462 0.669811 +vt 0.192308 0.669811 +vt 0.188462 0.707547 +vt 0.188462 0.698113 +vt 0.192308 0.716981 +vt 0.188462 0.726415 +vt 0.188462 0.716981 +vt 0.188462 0.679245 +vt 0.188462 0.688679 +vt 0.180769 0.707547 +vt 0.184615 0.679245 +vt 0.184615 0.669811 +vt 0.180769 0.698113 +vt 0.184615 0.716981 +vt 0.180769 0.688679 +vt 0.188462 0.660377 +vt 0.188462 0.735849 +vt 0.192308 0.726415 +vt 0.184615 0.726415 +vt 0.130769 0.679245 +vt 0.130769 0.688679 +vt 0.126923 0.716981 +vt 0.130769 0.707547 +vt 0.130769 0.716981 +vt 0.130769 0.698113 +vt 0.126923 0.679245 +vt 0.130769 0.669811 +vt 0.130769 0.726415 +vt 0.126923 0.726415 +vt 0.138462 0.688679 +vt 0.138462 0.707547 +vt 0.134615 0.716981 +vt 0.138462 0.698113 +vt 0.134615 0.679245 +vt 0.134615 0.726415 +vt 0.130769 0.660377 +vt 0.126923 0.669811 +vt 0.134615 0.669811 +vt 0.130769 0.735849 +vt 0.138462 0.679245 +vt 0.180769 0.669811 +vt 0.180769 0.679245 +vt 0.138462 0.660377 +vt 0.180769 0.660377 +vt 0.138462 0.735849 +vt 0.180769 0.726415 +vt 0.180769 0.735849 +vt 0.138462 0.716981 +vt 0.180769 0.716981 +vt 0.392308 0.528302 +vt 0.376923 0.509434 +vt 0.376923 0.528302 +vt 0.392308 0.566038 +vt 0.376923 0.547170 +vt 0.376923 0.566038 +vt 0.392308 0.584906 +vt 0.376923 0.584906 +vt 0.392308 0.471698 +vt 0.376923 0.452830 +vt 0.376923 0.471698 +vt 0.392308 0.509434 +vt 0.376923 0.490566 +vt 0.392308 0.547170 +vt 0.392308 0.603774 +vt 0.376923 0.603774 +vt 0.392308 0.490566 +vt 0.392308 0.452830 +vt 0.303846 0.660377 +vt 0.300000 0.735849 +vt 0.196154 0.735849 +vt 0.015385 0.735849 +vt 0.019231 0.660377 +vt 0.123077 0.660377 +vt 0.138462 0.669811 +vt 0.138462 0.726415 +vt 0.392308 0.452830 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 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.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.0000 1.0000 +vn 0.7263 0.1363 -0.6737 +vn 0.7071 0.0000 -0.7071 +vn 0.6794 -0.1448 0.7194 +vn 0.7071 0.0000 0.7071 +vn -0.6794 -0.1448 0.7194 +vn -0.7071 0.0000 0.7071 +vn -0.7263 0.1363 -0.6737 +vn -0.7071 0.0000 -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.7574 0.4617 -0.4617 +vn -0.9955 -0.0671 0.0671 +vn 0.9955 -0.0671 0.0671 +vn 0.7574 0.4617 -0.4617 +vn 0.6630 -0.5294 0.5294 +vn -0.6630 -0.5294 0.5294 +vn 0.9987 -0.0473 0.0196 +vn 0.7263 0.6737 -0.1363 +vn 0.6794 -0.7194 0.1448 +vn -0.9987 -0.0473 0.0196 +vn -0.6794 -0.7194 0.1448 +vn -0.0000 -0.9824 0.1866 +vn -0.7263 0.6737 -0.1363 +vn 0.0473 0.9987 -0.0196 +vn 0.7194 0.6794 -0.1448 +vn -0.6737 0.7263 0.1363 +vn 0.7194 -0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn 0.9824 -0.0000 -0.1866 +vn 0.0473 -0.9987 -0.0196 +vn -0.0473 0.9987 -0.0196 +vn 0.6737 0.7263 0.1363 +vn -0.7194 0.6794 -0.1448 +vn 0.6737 -0.7263 0.1363 +vn -0.7194 -0.6794 -0.1448 +vn -0.0473 -0.9987 -0.0196 +vn -0.9824 0.0000 -0.1866 +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.5294 0.6630 -0.5294 +vn 0.1448 -0.6794 -0.7194 +vn 0.0196 0.9987 -0.0473 +vn -0.1363 0.7263 0.6737 +vn 0.1866 -0.0000 -0.9824 +vn 0.0196 -0.9987 -0.0473 +vn 0.1448 0.6794 -0.7194 +vn -0.1363 -0.7263 0.6737 +vn -0.0671 0.9955 -0.0671 +vn -0.5294 0.6630 -0.5294 +vn -0.5294 -0.6630 -0.5294 +vn -0.0671 -0.9955 -0.0671 +vn 0.4617 0.7574 0.4617 +vn 0.4617 -0.7574 0.4617 +vn -0.1448 0.6794 -0.7194 +vn -0.1448 -0.6794 -0.7194 +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.1363 0.7263 0.6737 +s off +f 525/683/266 527/684/266 521/685/266 +f 647/686/267 645/687/267 643/688/267 +f 521/685/266 522/689/266 523/690/266 +f 523/690/266 524/691/266 525/683/266 +f 525/683/266 526/692/266 527/684/266 +f 527/684/266 528/693/266 521/685/266 +f 521/685/266 523/690/266 525/683/266 +f 643/688/267 642/694/267 641/695/267 +f 641/695/267 648/696/267 647/686/267 +f 647/686/267 646/697/267 645/687/267 +f 645/687/267 644/698/267 643/688/267 +f 643/688/267 641/695/267 647/686/267 +s 1 +f 516/699/268 523/700/269 515/701/269 +f 514/702/270 521/703/271 513/704/271 +f 513/704/271 528/705/272 520/706/272 +f 519/707/273 526/708/274 518/709/274 +f 517/710/275 524/711/268 516/699/268 +f 515/701/269 522/712/270 514/702/270 +f 520/706/272 527/713/273 519/714/273 +f 518/709/274 525/715/275 517/710/275 +f 544/716/276 529/717/271 536/718/277 +f 542/719/278 535/720/266 534/721/279 +f 540/722/280 533/723/275 532/724/281 +f 538/725/282 531/726/267 530/727/283 +f 543/728/284 536/718/277 535/720/266 +f 541/729/285 534/721/279 533/723/275 +f 539/730/286 532/724/281 531/731/267 +f 537/732/270 530/727/283 529/717/271 +f 539/733/286 545/734/287 546/735/288 +f 544/736/276 550/737/289 551/738/290 +f 541/729/285 549/739/291 542/719/278 +f 540/722/280 546/740/288 547/741/292 +f 542/719/278 550/737/289 543/742/284 +f 540/722/280 548/743/274 541/729/285 +f 551/738/290 557/744/293 558/745/294 +f 548/743/274 556/746/295 549/739/291 +f 547/741/292 553/747/296 554/748/297 +f 549/739/291 557/744/293 550/737/289 +f 547/741/292 555/749/298 548/743/274 +f 546/735/288 552/750/299 553/751/296 +f 537/752/270 545/734/287 538/753/282 +f 545/734/287 537/752/270 552/750/299 +f 544/736/276 551/738/290 537/752/270 +f 551/738/290 558/745/294 537/752/270 +f 558/754/294 559/755/300 537/756/270 +f 557/757/293 566/758/301 558/754/294 +f 537/756/270 560/759/302 552/760/299 +f 555/749/298 564/761/303 556/746/295 +f 553/762/296 562/763/304 554/748/297 +f 556/746/295 565/764/305 557/757/293 +f 554/748/297 563/765/306 555/749/298 +f 552/760/299 561/766/281 553/767/296 +f 582/768/276 567/769/271 574/770/277 +f 580/771/278 573/772/266 572/773/279 +f 578/774/280 571/775/275 570/776/281 +f 576/777/282 569/778/267 568/779/283 +f 581/780/284 574/770/277 573/781/266 +f 579/782/285 572/773/279 571/775/275 +f 577/783/286 570/776/281 569/778/267 +f 575/784/270 568/779/283 567/769/271 +f 577/785/286 583/786/287 584/787/288 +f 582/788/276 588/789/289 589/790/290 +f 580/771/278 586/791/274 587/792/291 +f 578/774/280 584/787/288 585/793/292 +f 580/771/278 588/794/289 581/795/284 +f 578/774/280 586/791/274 579/782/285 +f 589/790/290 595/796/293 596/797/294 +f 587/792/291 593/798/298 594/799/295 +f 585/793/292 591/800/296 592/801/297 +f 587/792/291 595/802/293 588/794/289 +f 585/793/292 593/798/298 586/791/274 +f 584/787/288 590/803/299 591/800/296 +f 575/804/270 583/786/287 576/805/282 +f 583/786/287 575/804/270 590/803/299 +f 582/788/276 589/790/290 575/804/270 +f 589/790/290 596/797/294 575/804/270 +f 596/806/294 597/807/307 575/808/270 +f 595/809/293 604/810/308 596/806/294 +f 575/808/270 598/811/309 590/812/299 +f 593/798/298 602/813/310 594/799/295 +f 591/814/296 600/815/311 592/801/297 +f 594/799/295 603/816/279 595/817/293 +f 592/801/297 601/818/312 593/798/298 +f 590/812/299 599/819/313 591/814/296 +f 559/820/300 606/821/314 560/822/302 +f 565/764/305 609/823/315 610/824/277 +f 563/825/306 607/826/316 608/827/317 +f 566/758/301 605/828/318 559/820/300 +f 566/758/301 610/824/277 611/829/319 +f 564/761/303 608/827/317 609/823/315 +f 608/827/317 616/830/320 609/823/315 +f 606/821/314 612/831/321 613/832/322 +f 609/823/315 617/833/323 610/824/277 +f 607/826/316 615/834/324 608/827/317 +f 605/828/318 618/835/325 612/831/321 +f 610/824/277 618/835/325 611/829/319 +f 560/822/302 606/821/314 561/836/281 +f 606/821/314 613/832/322 561/836/281 +f 561/837/281 607/826/316 562/838/304 +f 607/826/316 561/837/281 614/839/326 +f 598/811/309 619/840/327 620/841/328 +f 601/842/312 622/843/329 623/844/330 +f 599/819/313 620/841/328 621/845/283 +f 597/846/307 625/847/331 619/840/327 +f 601/842/312 624/848/332 602/849/310 +f 599/819/313 622/843/329 600/815/311 +f 619/840/327 627/850/333 620/841/328 +f 623/844/330 629/851/334 630/852/335 +f 620/841/328 628/853/336 621/845/283 +f 625/847/331 626/854/337 619/840/327 +f 624/848/332 630/852/335 631/855/338 +f 622/843/329 628/853/336 629/851/334 +f 603/856/279 625/847/331 604/857/308 +f 625/847/331 603/856/279 632/858/339 +f 602/849/310 624/848/332 603/859/279 +f 624/848/332 631/855/338 603/859/279 +f 626/860/337 613/861/322 612/862/321 +f 613/861/322 603/863/279 561/864/281 +f 603/865/279 614/866/326 561/867/281 +f 614/866/326 630/868/335 615/869/324 +f 615/869/324 629/851/334 616/830/320 +f 616/830/320 628/853/336 617/833/323 +f 617/833/323 627/850/333 618/835/325 +f 618/835/325 626/860/337 612/862/321 +f 643/870/269 636/871/268 635/872/269 +f 641/873/271 634/874/270 633/875/271 +f 648/876/272 633/875/271 640/877/272 +f 646/878/274 639/879/273 638/880/274 +f 644/881/268 637/882/275 636/871/268 +f 642/883/270 635/872/269 634/874/270 +f 647/884/273 640/877/272 639/885/273 +f 645/886/275 638/880/274 637/882/275 +f 516/699/268 524/711/268 523/700/269 +f 514/702/270 522/712/270 521/703/271 +f 513/704/271 521/703/271 528/705/272 +f 519/707/273 527/887/273 526/708/274 +f 517/710/275 525/715/275 524/711/268 +f 515/701/269 523/700/269 522/712/270 +f 520/706/272 528/705/272 527/713/273 +f 518/709/274 526/708/274 525/715/275 +f 544/716/276 537/732/270 529/717/271 +f 542/719/278 543/728/284 535/720/266 +f 540/722/280 541/729/285 533/723/275 +f 538/725/282 539/888/286 531/726/267 +f 543/728/284 544/716/276 536/718/277 +f 541/729/285 542/719/278 534/721/279 +f 539/730/286 540/722/280 532/724/281 +f 537/732/270 538/725/282 530/727/283 +f 539/733/286 538/753/282 545/734/287 +f 544/736/276 543/742/284 550/737/289 +f 541/729/285 548/743/274 549/739/291 +f 540/722/280 539/889/286 546/740/288 +f 542/719/278 549/739/291 550/737/289 +f 540/722/280 547/741/292 548/743/274 +f 551/738/290 550/737/289 557/744/293 +f 548/743/274 555/749/298 556/746/295 +f 547/741/292 546/740/288 553/747/296 +f 549/739/291 556/746/295 557/744/293 +f 547/741/292 554/748/297 555/749/298 +f 546/735/288 545/734/287 552/750/299 +f 558/754/294 566/758/301 559/755/300 +f 557/757/293 565/764/305 566/758/301 +f 537/756/270 559/755/300 560/759/302 +f 555/749/298 563/765/306 564/761/303 +f 553/762/296 561/890/281 562/763/304 +f 556/746/295 564/761/303 565/764/305 +f 554/748/297 562/763/304 563/765/306 +f 552/760/299 560/759/302 561/766/281 +f 582/768/276 575/784/270 567/769/271 +f 580/771/278 581/891/284 573/772/266 +f 578/774/280 579/782/285 571/775/275 +f 576/777/282 577/783/286 569/778/267 +f 581/780/284 582/768/276 574/770/277 +f 579/782/285 580/771/278 572/773/279 +f 577/783/286 578/774/280 570/776/281 +f 575/784/270 576/777/282 568/779/283 +f 577/785/286 576/805/282 583/786/287 +f 582/788/276 581/892/284 588/789/289 +f 580/771/278 579/782/285 586/791/274 +f 578/774/280 577/785/286 584/787/288 +f 580/771/278 587/792/291 588/794/289 +f 578/774/280 585/793/292 586/791/274 +f 589/790/290 588/789/289 595/796/293 +f 587/792/291 586/791/274 593/798/298 +f 585/793/292 584/787/288 591/800/296 +f 587/792/291 594/799/295 595/802/293 +f 585/793/292 592/801/297 593/798/298 +f 584/787/288 583/786/287 590/803/299 +f 596/806/294 604/810/308 597/807/307 +f 595/809/293 603/893/279 604/810/308 +f 575/808/270 597/807/307 598/811/309 +f 593/798/298 601/818/312 602/813/310 +f 591/814/296 599/819/313 600/815/311 +f 594/799/295 602/813/310 603/816/279 +f 592/801/297 600/815/311 601/818/312 +f 590/812/299 598/811/309 599/819/313 +f 559/820/300 605/828/318 606/821/314 +f 565/764/305 564/761/303 609/823/315 +f 563/825/306 562/838/304 607/826/316 +f 566/758/301 611/829/319 605/828/318 +f 566/758/301 565/764/305 610/824/277 +f 564/761/303 563/825/306 608/827/317 +f 608/827/317 615/834/324 616/830/320 +f 606/821/314 605/828/318 612/831/321 +f 609/823/315 616/830/320 617/833/323 +f 607/826/316 614/839/326 615/834/324 +f 605/828/318 611/829/319 618/835/325 +f 610/824/277 617/833/323 618/835/325 +f 598/811/309 597/846/307 619/840/327 +f 601/842/312 600/815/311 622/843/329 +f 599/819/313 598/811/309 620/841/328 +f 597/846/307 604/857/308 625/847/331 +f 601/842/312 623/844/330 624/848/332 +f 599/819/313 621/845/283 622/843/329 +f 619/840/327 626/854/337 627/850/333 +f 623/844/330 622/843/329 629/851/334 +f 620/841/328 627/850/333 628/853/336 +f 625/847/331 632/858/339 626/854/337 +f 624/848/332 623/844/330 630/852/335 +f 622/843/329 621/845/283 628/853/336 +f 626/860/337 632/894/339 613/861/322 +f 613/861/322 632/894/339 603/863/279 +f 603/865/279 631/895/338 614/866/326 +f 614/866/326 631/895/338 630/868/335 +f 615/869/324 630/868/335 629/851/334 +f 616/830/320 629/851/334 628/853/336 +f 617/833/323 628/853/336 627/850/333 +f 618/835/325 627/850/333 626/860/337 +f 643/870/269 644/881/268 636/871/268 +f 641/873/271 642/883/270 634/874/270 +f 648/876/272 641/873/271 633/875/271 +f 646/878/274 647/896/273 639/879/273 +f 644/881/268 645/886/275 637/882/275 +f 642/883/270 643/870/269 635/872/269 +f 647/884/273 648/876/272 640/877/272 +f 645/886/275 646/878/274 638/880/274 +o Gun +v -0.562500 -1.000000 3.000000 +v 0.562500 -1.000000 3.000000 +v -0.562500 -1.000000 -2.000000 +v 0.562500 -1.000000 -2.000000 +v -0.562500 2.000000 -2.000000 +v -0.562500 2.000000 2.000000 +v 0.562500 2.000000 2.000000 +v 0.562500 2.000000 -2.000000 +v 0.562500 0.750000 3.000000 +v -0.562500 0.750000 3.000000 +v -0.500000 0.187500 -2.000000 +v 0.500000 0.187500 -2.000000 +v -0.500000 1.937500 -2.000000 +v 0.500000 1.937500 -2.000000 +v -0.500000 1.937500 -4.000000 +v -0.250000 -0.062500 -2.500000 +v -0.250000 -0.062500 -2.000000 +v 0.500000 1.937500 -4.000000 +v -0.500000 1.437500 -4.750000 +v 0.500000 1.437500 -4.750000 +v -0.250000 -0.812500 -2.500000 +v 0.250000 -0.812500 -2.500000 +v 0.250000 -0.812500 -2.000000 +v -0.250000 -0.812500 -2.000000 +v 0.250000 -0.062500 -2.500000 +v 0.250000 -0.062500 -2.000000 +v -0.500000 0.437500 -4.750000 +v -0.500000 0.187500 -4.500000 +v 0.500000 0.187500 -4.500000 +v 0.500000 0.437500 -4.750000 +v 0.125000 0.187500 -3.500000 +v -0.125000 0.187500 -3.500000 +v 0.125000 -0.437500 -3.500000 +v -0.125000 -0.437500 -3.500000 +v 0.125000 -1.937500 -4.250000 +v -0.125000 -1.937500 -4.250000 +v 0.125000 -1.937500 -5.250000 +v -0.137500 -1.937500 -5.250000 +v 0.125000 -1.562500 -5.250000 +v -0.137500 -1.562500 -5.250000 +v 0.125000 0.187500 -4.500000 +v -0.137500 0.187500 -4.500000 +v 0.125000 -0.062500 -4.500000 +v -0.137500 -0.062500 -4.500000 +v 0.375000 -0.437500 -3.750000 +v 0.375000 0.187500 -3.750000 +v 0.375000 -1.937500 -4.500000 +v 0.375000 -1.937500 -5.000000 +v 0.375000 -1.562500 -5.000000 +v 0.375000 -0.062500 -4.250000 +v 0.375000 0.187500 -4.250000 +v -0.375000 0.187500 -3.750000 +v -0.375000 -0.437500 -3.750000 +v -0.375000 -1.937500 -4.500000 +v -0.375000 -1.937500 -5.000000 +v -0.375000 -1.562500 -5.000000 +v -0.375000 0.187500 -4.250000 +v -0.375000 -0.062500 -4.250000 +v -0.250000 -0.812500 -2.500000 +v 0.250000 -0.812500 -2.500000 +v -0.250000 -0.812500 -3.750000 +v 0.250000 -0.812500 -3.750000 +v -0.250000 -0.687500 -2.500000 +v 0.250000 -0.687500 -2.500000 +v -0.250000 -0.687500 -3.750000 +v 0.250000 -0.687500 -3.750000 +v -0.562500 -1.000000 -1.500000 +v 0.562500 -1.000000 -1.500000 +v -0.562500 -1.000000 2.000000 +v 0.562500 -1.000000 2.000000 +v -0.562500 -0.750000 -1.500000 +v 0.562500 -0.750000 -1.500000 +v -0.562500 -0.750000 2.000000 +v 0.562500 -0.750000 2.000000 +v 0.000000 1.875000 4.000000 +v -0.250000 1.808013 4.000000 +v -0.433012 1.625000 4.000000 +v -0.500000 1.375000 4.000000 +v -0.433012 1.125000 4.000000 +v -0.250000 0.941987 4.000000 +v 0.000000 0.875000 4.000000 +v 0.250000 0.941987 4.000000 +v 0.433012 1.125000 4.000000 +v 0.500000 1.375000 4.000000 +v 0.433013 1.625000 4.000000 +v 0.250000 1.808012 4.000000 +v -0.218750 1.753892 4.500000 +v 0.000000 1.812506 4.500000 +v -0.378886 1.593756 4.500000 +v -0.437500 1.375006 4.500000 +v -0.378886 1.156256 4.500000 +v -0.218750 0.996120 4.500000 +v 0.000000 0.937506 4.500000 +v 0.218750 0.996120 4.500000 +v 0.378886 1.156256 4.500000 +v 0.437500 1.375006 4.500000 +v 0.378886 1.593756 4.500000 +v 0.218750 1.753892 4.500000 +v 0.000000 1.875000 2.000000 +v -0.250000 1.808013 2.000000 +v -0.433012 1.625000 2.000000 +v -0.500000 1.375000 2.000000 +v -0.433012 1.125000 2.000000 +v -0.250000 0.941987 2.000000 +v 0.000000 0.875000 2.000000 +v 0.250000 0.941987 2.000000 +v 0.433012 1.125000 2.000000 +v 0.500000 1.375000 2.000000 +v 0.433013 1.625000 2.000000 +v 0.250000 1.808012 2.000000 +v -0.218750 1.753892 2.000000 +v 0.000000 1.812506 2.000000 +v -0.378886 1.593756 2.000000 +v -0.437500 1.375006 2.000000 +v -0.378886 1.156256 2.000000 +v -0.218750 0.996120 2.000000 +v 0.000000 0.937506 2.000000 +v 0.218750 0.996120 2.000000 +v 0.378886 1.156256 2.000000 +v 0.437500 1.375006 2.000000 +v 0.378886 1.593756 2.000000 +v 0.218750 1.753892 2.000000 +v 0.000000 0.562500 3.000000 +v -0.218750 0.503886 3.000000 +v -0.378886 0.343750 3.000000 +v -0.437500 0.125000 3.000000 +v -0.378886 -0.093750 3.000000 +v -0.218750 -0.253886 3.000000 +v 0.000000 -0.312500 3.000000 +v 0.218750 -0.253886 3.000000 +v 0.378886 -0.093750 3.000000 +v 0.437500 0.125000 3.000000 +v 0.378886 0.343750 3.000000 +v 0.218750 0.503886 3.000000 +v 0.000000 0.562500 3.250000 +v -0.218750 0.503886 3.250000 +v -0.378886 0.343750 3.250000 +v -0.437500 0.125000 3.250000 +v -0.378886 -0.093750 3.250000 +v -0.218750 -0.253886 3.250000 +v 0.000000 -0.312500 3.250000 +v 0.218750 -0.253886 3.250000 +v 0.378886 -0.093750 3.250000 +v 0.437500 0.125000 3.250000 +v 0.378886 0.343750 3.250000 +v 0.218750 0.503886 3.250000 +v -0.500000 0.187500 -2.500000 +v -0.500000 0.187500 -2.000000 +v 0.500000 0.187500 -2.500000 +v 0.500000 0.187500 -2.000000 +v 0.500000 0.500000 -2.750000 +v 0.500000 1.125000 -2.750000 +v 0.500000 1.125000 -2.625000 +v 0.500000 0.500000 -2.625000 +v 1.062500 0.687500 -2.750000 +v 0.875000 0.500000 -2.750000 +v 0.875000 1.125000 -2.750000 +v 1.062500 0.937500 -2.750000 +v 1.062500 0.937500 -2.625000 +v 0.875000 1.125000 -2.625000 +v 0.875000 0.500000 -2.625000 +v 1.062500 0.687500 -2.625000 +v -0.750000 1.062500 -3.250000 +v -0.750000 1.062500 -1.250000 +v -0.926777 0.989277 -3.250000 +v -0.926777 0.989277 -1.250000 +v -1.000000 0.812500 -3.250000 +v -1.000000 0.812500 -1.250000 +v -0.926777 0.635723 -3.250000 +v -0.926777 0.635723 -1.250000 +v -0.750000 0.562500 -3.250000 +v -0.750000 0.562500 -1.250000 +v -0.573223 0.635723 -3.250000 +v -0.573223 0.635723 -1.250000 +v -0.500000 0.812500 -3.250000 +v -0.500000 0.812500 -1.250000 +v -0.573223 0.989277 -3.250000 +v -0.573223 0.989277 -1.250000 +v 0.125000 0.187500 -3.250000 +v -0.125000 0.187500 -3.250000 +v 0.125000 -0.437500 -3.125000 +v -0.125000 -0.437500 -3.125000 +v 0.125000 0.187500 -3.500000 +v -0.125000 0.187500 -3.500000 +v 0.125000 -0.437500 -3.500000 +v -0.125000 -0.437500 -3.500000 +v -0.500000 0.500000 -2.750000 +v -0.500000 1.125000 -2.750000 +v -0.500000 1.125000 -2.625000 +v -0.500000 0.500000 -2.625000 +v -1.062500 0.687500 -2.750000 +v -0.875000 0.500000 -2.750000 +v -0.875000 1.125000 -2.750000 +v -1.062500 0.937500 -2.750000 +v -1.062500 0.937500 -2.625000 +v -0.875000 1.125000 -2.625000 +v -0.875000 0.500000 -2.625000 +v -1.062500 0.687500 -2.625000 +v 0.500000 0.500000 -1.875000 +v 0.500000 1.125000 -1.875000 +v 0.500000 1.125000 -1.750000 +v 0.500000 0.500000 -1.750000 +v 1.062500 0.687500 -1.875000 +v 0.875000 0.500000 -1.875000 +v 0.875000 1.125000 -1.875000 +v 1.062500 0.937500 -1.875000 +v 1.062500 0.937500 -1.750000 +v 0.875000 1.125000 -1.750000 +v 0.875000 0.500000 -1.750000 +v 1.062500 0.687500 -1.750000 +v -0.500000 0.500000 -1.875000 +v -0.500000 1.125000 -1.875000 +v -0.500000 1.125000 -1.750000 +v -0.500000 0.500000 -1.750000 +v -1.062500 0.687500 -1.875000 +v -0.875000 0.500000 -1.875000 +v -0.875000 1.125000 -1.875000 +v -1.062500 0.937500 -1.875000 +v -1.062500 0.937500 -1.750000 +v -0.875000 1.125000 -1.750000 +v -0.875000 0.500000 -1.750000 +v -1.062500 0.687500 -1.750000 +v 0.750000 1.062500 -3.250000 +v 0.750000 1.062500 -1.250000 +v 0.573223 0.989277 -3.250000 +v 0.573223 0.989277 -1.250000 +v 0.500000 0.812500 -3.250000 +v 0.500000 0.812500 -1.250000 +v 0.573223 0.635723 -3.250000 +v 0.573223 0.635723 -1.250000 +v 0.750000 0.562500 -3.250000 +v 0.750000 0.562500 -1.250000 +v 0.926777 0.635723 -3.250000 +v 0.926777 0.635723 -1.250000 +v 1.000000 0.812500 -3.250000 +v 1.000000 0.812500 -1.250000 +v 0.926777 0.989277 -3.250000 +v 0.926777 0.989277 -1.250000 +vt 0.465385 -0.000000 +vt 0.496154 0.084906 +vt 0.465385 0.084906 +vt 0.496154 0.311321 +vt 0.619231 0.396226 +vt 0.496154 0.396226 +vt 0.653846 0.084906 +vt 0.619231 0.311321 +vt 0.619231 0.084906 +vt 0.465385 0.216981 +vt 0.430769 0.311321 +vt 0.430769 0.216981 +vt 0.603846 0.000000 +vt 0.619231 0.000000 +vt 0.496154 0.000000 +vt 0.503846 0.084906 +vt 0.430769 0.084906 +vt 0.346154 0.566038 +vt 0.369231 0.603774 +vt 0.346154 0.603774 +vt 0.330769 0.660377 +vt 0.330769 0.603774 +vt 0.738462 0.169811 +vt 0.715385 0.207547 +vt 0.730769 0.075472 +vt 0.653846 0.207547 +vt 0.715385 0.283019 +vt 0.653846 0.283019 +vt 0.307692 0.566038 +vt 0.330769 0.566038 +vt 0.738462 0.283019 +vt 0.730769 -0.000000 +vt 0.653846 0.075472 +vt 0.653846 -0.000000 +vt 0.769231 0.094340 +vt 0.769231 0.169811 +vt 0.738462 0.075472 +vt 0.738462 0.000000 +vt 0.730769 0.415094 +vt 0.653846 0.415094 +vt 0.796154 0.462264 +vt 0.811538 0.462264 +vt 0.811538 0.518868 +vt 0.411538 0.622642 +vt 0.419231 0.575472 +vt 0.419231 0.622642 +vt 0.415385 0.452830 +vt 0.453846 0.490566 +vt 0.415385 0.490566 +vt 0.415385 0.547170 +vt 0.453846 0.537736 +vt 0.453846 0.547170 +vt 0.415385 0.500000 +vt 0.453846 0.500000 +vt 0.603846 0.084906 +vt 0.596154 0.000000 +vt 0.388462 0.915094 +vt 0.496154 0.830189 +vt 0.496154 0.915094 +vt 0.465385 0.490566 +vt 0.496154 0.603774 +vt 0.603846 0.103774 +vt 0.017308 0.226425 +vt 0.028962 0.242929 +vt 0.017308 0.292443 +vt 0.002103 0.018927 +vt 0.015385 0.000117 +vt 0.028667 0.018927 +vt 0.028944 0.209875 +vt 0.017308 0.226354 +vt 0.005671 0.176917 +vt 0.369231 0.566038 +vt 0.376923 0.603774 +vt 0.307692 0.603774 +vt 0.300000 0.566038 +vt 0.346154 0.660377 +vt 0.323077 0.679245 +vt 0.721154 0.462264 +vt 0.709615 0.471698 +vt 0.709615 0.462264 +vt 0.721154 0.471698 +vt 0.709615 0.518868 +vt 0.703846 0.462264 +vt 0.696154 0.471698 +vt 0.696154 0.462264 +vt 0.709615 0.528302 +vt 0.721154 0.518868 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.703846 0.448113 +vt 0.703846 0.429245 +vt 0.709615 0.415094 +vt 0.688461 0.453302 +vt 0.695961 0.471698 +vt 0.688461 0.490094 +vt 0.695961 0.433962 +vt 0.693765 0.446970 +vt 0.683158 0.420954 +vt 0.392308 0.566038 +vt 0.411538 0.547170 +vt 0.411538 0.575472 +vt 0.438462 0.566038 +vt 0.419231 0.547170 +vt 0.438462 0.547170 +vt 0.709615 0.471698 +vt 0.721154 0.462264 +vt 0.709615 0.462264 +vt 0.703846 0.485849 +vt 0.703846 0.504717 +vt 0.709615 0.518868 +vt 0.696154 0.471698 +vt 0.703846 0.462264 +vt 0.696154 0.462264 +vt 0.721154 0.518868 +vt 0.709615 0.528302 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.709615 0.415094 +vt 0.721154 0.462264 +vt 0.709615 0.471698 +vt 0.709615 0.462264 +vt 0.721154 0.471698 +vt 0.709615 0.518868 +vt 0.703846 0.462264 +vt 0.696154 0.471698 +vt 0.696154 0.462264 +vt 0.709615 0.528302 +vt 0.721154 0.518868 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.703846 0.448113 +vt 0.703846 0.429245 +vt 0.709615 0.415094 +vt 0.709615 0.471698 +vt 0.721154 0.462264 +vt 0.709615 0.462264 +vt 0.703846 0.485849 +vt 0.703846 0.504717 +vt 0.709615 0.518868 +vt 0.696154 0.471698 +vt 0.703846 0.462264 +vt 0.696154 0.462264 +vt 0.721154 0.518868 +vt 0.709615 0.528302 +vt 0.721154 0.528302 +vt 0.703846 0.471698 +vt 0.703846 0.518868 +vt 0.703846 0.528302 +vt 0.709615 0.415094 +vt 0.688461 0.453302 +vt 0.695961 0.471698 +vt 0.688461 0.490094 +vt 0.695961 0.433962 +vt 0.693765 0.446970 +vt 0.683158 0.420954 +vt 0.653846 0.311321 +vt 0.465385 0.311321 +vt 0.503846 -0.000000 +vt 0.738462 0.094340 +vt 0.738462 0.207547 +vt 0.738462 0.320755 +vt 0.738462 0.396226 +vt 0.819231 0.481132 +vt 0.819231 0.500000 +vt 0.796154 0.518868 +vt 0.788462 0.500000 +vt 0.788462 0.481132 +vt 0.453846 0.452830 +vt 0.415385 0.537736 +vt 0.596154 0.084906 +vt 0.388462 0.830189 +vt 0.619231 0.622642 +vt 0.603846 0.622642 +vt 0.603846 0.603774 +vt 0.496154 0.622642 +vt 0.465385 0.622642 +vt 0.496154 0.103774 +vt 0.010579 0.288021 +vt 0.005653 0.275939 +vt 0.003850 0.259434 +vt 0.005653 0.242929 +vt 0.010579 0.230847 +vt 0.024036 0.230847 +vt 0.030765 0.259434 +vt 0.028962 0.275939 +vt 0.024036 0.288021 +vt 0.015385 0.075355 +vt 0.007716 0.070315 +vt 0.002103 0.056545 +vt 0.000048 0.037736 +vt 0.007716 0.005157 +vt 0.023053 0.005157 +vt 0.030721 0.037736 +vt 0.028667 0.056545 +vt 0.023053 0.070315 +vt 0.010589 0.221938 +vt 0.005671 0.209875 +vt 0.003871 0.193396 +vt 0.010589 0.164854 +vt 0.017308 0.160439 +vt 0.024026 0.164854 +vt 0.028944 0.176917 +vt 0.030744 0.193396 +vt 0.024026 0.221938 +vt 0.376923 0.566038 +vt 0.300000 0.603774 +vt 0.353846 0.679245 +vt 0.703846 0.504717 +vt 0.703846 0.485849 +vt 0.721154 0.415094 +vt 0.683158 0.484706 +vt 0.680962 0.471698 +vt 0.683158 0.458690 +vt 0.693765 0.458690 +vt 0.693765 0.484706 +vt 0.688461 0.452358 +vt 0.683158 0.446970 +vt 0.680962 0.433962 +vt 0.688462 0.415566 +vt 0.693765 0.420954 +vt 0.392308 0.547170 +vt 0.721154 0.471698 +vt 0.721154 0.415094 +vt 0.703846 0.429245 +vt 0.703846 0.448113 +vt 0.703846 0.504717 +vt 0.703846 0.485849 +vt 0.721154 0.415094 +vt 0.721154 0.471698 +vt 0.721154 0.415094 +vt 0.703846 0.429245 +vt 0.703846 0.448113 +vt 0.683158 0.484706 +vt 0.680962 0.471698 +vt 0.683158 0.458690 +vt 0.693765 0.458690 +vt 0.693765 0.484706 +vt 0.688461 0.452358 +vt 0.683158 0.446970 +vt 0.680962 0.433962 +vt 0.688462 0.415566 +vt 0.693765 0.420954 +vt 0.742308 0.481132 +vt 0.742308 0.500000 +vt 0.723077 0.481132 +vt 0.723077 0.500000 +vt 0.830769 0.500000 +vt 0.876923 0.500000 +vt 0.884615 0.481132 +vt 0.884615 0.500000 +vt 0.796154 0.660377 +vt 0.811538 0.547170 +vt 0.819231 0.547170 +vt 0.796154 0.679245 +vt 0.788462 0.660377 +vt 0.773077 0.679245 +vt 0.788462 0.679245 +vt 0.819231 0.518868 +vt 0.796154 0.660377 +vt 0.811538 0.547170 +vt 0.788462 0.660377 +vt 0.788462 0.518868 +vt 0.773077 0.632075 +vt 0.765385 0.632075 +vt 0.765385 0.679245 +vt 0.773077 0.632075 +vt 0.796154 0.518868 +vt 0.773077 0.679245 +vt 0.788462 0.679245 +vt 0.796154 0.679245 +vt 0.765385 0.679245 +vt 0.765385 0.632075 +vt 0.819231 0.518868 +vt 0.819231 0.547170 +vt 0.788462 0.518868 +vt 0.830769 0.481132 +vt 0.430769 0.339623 +vt 0.338462 0.358491 +vt 0.338462 0.339623 +vt 0.400000 0.207547 +vt 0.338462 0.226415 +vt 0.338462 0.207547 +vt 0.430769 0.264151 +vt 0.338462 0.283019 +vt 0.338462 0.264151 +vt 0.430769 0.358491 +vt 0.338462 0.377358 +vt 0.400000 0.000000 +vt 0.338462 0.018868 +vt 0.338462 0.000000 +vt 0.430769 0.283019 +vt 0.338462 0.301887 +vt 0.430769 0.377358 +vt 0.338462 0.396226 +vt 0.400000 0.018868 +vt 0.338462 0.037736 +vt 0.430769 0.301887 +vt 0.338462 0.320755 +vt 0.400000 0.113208 +vt 0.338462 0.132075 +vt 0.338462 0.113208 +vt 0.430769 0.396226 +vt 0.338462 0.415094 +vt 0.400000 0.037736 +vt 0.338462 0.056604 +vt 0.430769 0.320755 +vt 0.400000 0.132075 +vt 0.338462 0.150943 +vt 0.430769 0.415094 +vt 0.338462 0.433962 +vt 0.400000 0.056604 +vt 0.338462 0.075472 +vt 0.400000 0.150943 +vt 0.338462 0.169811 +vt 0.430769 0.433962 +vt 0.338462 0.452830 +vt 0.400000 0.075472 +vt 0.338462 0.094340 +vt 0.400000 0.169811 +vt 0.338462 0.188679 +vt 0.430769 0.226415 +vt 0.338462 0.245283 +vt 0.338462 0.226415 +vt 0.400000 0.094340 +vt 0.400000 0.188679 +vt 0.430769 0.245283 +vt 0.407692 0.226415 +vt 0.400000 0.207547 +vt 0.407692 0.207547 +vt 0.407692 0.169811 +vt 0.400000 0.150943 +vt 0.407692 0.150943 +vt 0.407692 0.075472 +vt 0.400000 0.056604 +vt 0.407692 0.056604 +vt 0.407692 0.018868 +vt 0.400000 -0.000000 +vt 0.407692 -0.000000 +vt 0.407692 0.188679 +vt 0.400000 0.169811 +vt 0.407692 0.094340 +vt 0.400000 0.075472 +vt 0.407692 0.132075 +vt 0.400000 0.113208 +vt 0.407692 0.113208 +vt 0.407692 0.037736 +vt 0.400000 0.018868 +vt 0.400000 0.188679 +vt 0.400000 0.094340 +vt 0.400000 0.132075 +vt 0.400000 0.037736 +vt 0.680769 0.509434 +vt 0.619231 0.490566 +vt 0.680769 0.490566 +vt 0.680769 0.528302 +vt 0.619231 0.509434 +vt 0.680769 0.547170 +vt 0.619231 0.528302 +vt 0.680769 0.566038 +vt 0.619231 0.547170 +vt 0.680769 0.433962 +vt 0.619231 0.415094 +vt 0.680769 0.415094 +vt 0.680769 0.452830 +vt 0.619231 0.433962 +vt 0.680769 0.471698 +vt 0.619231 0.452830 +vt 0.619231 0.471698 +vt 0.811538 0.518868 +vt 0.680769 0.509434 +vt 0.619231 0.490566 +vt 0.680769 0.490566 +vt 0.680769 0.528302 +vt 0.619231 0.509434 +vt 0.680769 0.547170 +vt 0.619231 0.528302 +vt 0.680769 0.566038 +vt 0.619231 0.547170 +vt 0.680769 0.433962 +vt 0.619231 0.415094 +vt 0.680769 0.415094 +vt 0.680769 0.452830 +vt 0.619231 0.433962 +vt 0.680769 0.471698 +vt 0.619231 0.452830 +vt 0.619231 0.471698 +vt 0.876923 0.481132 +vt 0.400000 0.226415 +vt 0.430769 0.452830 +vt 0.400000 0.226415 +vt 0.619231 0.566038 +vt 0.619231 0.566038 +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.6247 0.7809 +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.8321 -0.5547 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.1961 0.9806 +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.3595 -0.2070 0.9099 +vn 0.3897 -0.4119 0.8237 +vn 0.3595 -0.2070 0.9099 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.3945 0.0000 -0.9189 +vn 0.3595 0.2070 -0.9099 +vn 0.3827 0.0000 -0.9239 +vn 0.3954 0.2222 -0.8912 +vn 0.8994 0.1123 -0.4225 +vn 0.9414 0.0706 -0.3297 +vn 0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.4084 0.2210 -0.8856 +vn -0.9054 0.1095 -0.4102 +vn -0.9452 0.0682 -0.3193 +vn 0.8994 -0.1123 0.4225 +vn -0.8994 -0.1123 0.4225 +vn -0.9511 -0.1381 0.2762 +vn -0.9239 0.0000 0.3827 +vn -0.9287 0.0000 -0.3708 +vn -0.3703 0.2060 -0.9058 +vn -0.3897 -0.4119 0.8237 +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.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.9511 -0.1381 0.2762 +s off +f 649/897/340 718/898/340 650/899/340 +f 655/900/341 653/901/341 654/902/341 +f 651/903/342 656/904/342 652/905/342 +f 657/906/343 654/907/343 658/908/343 +f 652/905/340 715/909/340 651/910/340 +f 717/911/342 722/912/342 718/898/342 +f 650/899/344 658/908/344 649/913/344 +f 672/914/345 664/915/345 669/916/345 +f 669/916/342 673/917/342 670/918/342 +f 668/919/346 666/920/346 677/921/346 +f 662/922/341 663/923/341 661/924/341 +f 670/918/346 674/925/346 671/926/346 +f 666/920/347 667/927/347 663/923/347 +f 676/928/340 660/929/340 659/930/340 +f 668/919/342 675/931/342 667/932/342 +f 672/914/340 670/918/340 671/926/340 +f 678/933/348 676/928/348 675/934/348 +f 676/935/345 659/936/345 663/923/345 +f 702/937/340 703/938/340 696/939/340 +f 828/940/349 829/941/349 827/942/349 +f 707/943/340 710/944/340 708/945/340 +f 707/946/345 713/947/345 709/948/345 +f 710/944/346 712/949/346 708/945/346 +f 713/947/341 712/949/341 714/950/341 +f 716/951/344 719/952/344 715/909/344 +f 722/953/340 719/954/340 720/955/340 +f 658/956/345 654/902/345 721/957/345 +f 652/905/346 656/904/346 720/958/346 +f 741/959/344 743/960/344 736/961/344 +f 727/962/344 729/963/344 731/964/344 +f 793/965/344 783/966/344 787/967/344 +f 665/968/350 795/969/350 664/915/350 +f 673/970/351 798/971/351 674/925/351 +f 664/972/342 797/973/342 673/917/342 +f 800/974/341 808/975/341 805/976/341 +f 808/975/344 801/977/344 809/978/344 +f 806/979/346 810/980/346 803/981/346 +f 804/982/340 802/983/340 799/984/340 +f 806/979/352 808/975/352 807/985/352 +f 810/986/351 804/982/351 803/987/351 +f 806/988/342 803/989/342 804/990/342 +f 820/991/344 824/992/344 812/993/344 +f 815/994/342 813/995/342 821/996/342 +f 828/997/345 834/998/345 830/999/345 +f 827/1000/346 833/1001/346 831/1002/346 +f 830/999/340 833/1001/340 829/941/340 +f 844/1003/341 836/1004/341 841/1005/341 +f 843/1006/344 846/1007/344 845/1008/344 +f 846/1009/345 842/1010/345 839/1011/345 +f 838/1012/340 840/1013/340 835/1014/340 +f 844/1003/353 842/1010/353 843/1015/353 +f 840/1013/350 846/1016/350 839/1017/350 +f 841/1005/342 836/1004/342 840/1018/342 +f 848/1019/341 856/1020/341 853/1021/341 +f 856/1020/344 849/1022/344 857/1023/344 +f 854/1024/346 858/1025/346 851/1026/346 +f 852/1027/340 850/1028/340 847/1029/340 +f 854/1024/352 856/1020/352 855/1030/352 +f 858/1031/351 852/1027/351 851/1032/351 +f 854/1033/342 851/1034/342 852/1035/342 +f 868/1036/341 860/1037/341 865/1038/341 +f 867/1039/344 870/1040/344 869/1041/344 +f 870/1042/345 866/1043/345 863/1044/345 +f 862/1045/340 864/1046/340 859/1047/340 +f 868/1036/353 866/1043/353 867/1048/353 +f 864/1046/350 870/1049/350 863/1050/350 +f 865/1038/342 860/1037/342 864/1051/342 +f 880/1052/344 884/1053/344 872/1054/344 +f 875/1055/342 873/1056/342 881/1057/342 +f 649/897/340 717/911/340 718/898/340 +f 655/900/341 656/904/341 653/901/341 +f 651/903/342 653/1058/342 656/904/342 +f 657/906/343 655/1059/343 654/907/343 +f 652/905/340 716/951/340 715/909/340 +f 717/911/342 721/1060/342 722/912/342 +f 650/899/344 657/906/344 658/908/344 +f 672/914/345 665/968/345 664/915/345 +f 669/916/342 664/972/342 673/917/342 +f 662/922/346 660/929/346 666/920/346 +f 660/929/346 677/921/346 666/920/346 +f 677/921/346 678/1061/346 668/919/346 +f 662/922/341 666/920/341 663/923/341 +f 670/918/346 673/970/346 674/925/346 +f 666/920/347 668/1062/347 667/927/347 +f 676/928/340 677/921/340 660/929/340 +f 668/919/342 678/1061/342 675/931/342 +f 672/914/340 669/916/340 670/918/340 +f 678/933/348 677/921/348 676/928/348 +f 661/924/345 663/923/345 659/936/345 +f 663/923/345 667/1063/345 676/935/345 +f 667/1063/345 675/1064/345 676/935/345 +f 686/1065/340 685/1066/340 703/938/340 +f 685/1066/340 696/939/340 703/938/340 +f 696/939/340 695/1067/340 702/937/340 +f 695/1067/340 683/1068/340 702/937/340 +f 683/1068/340 684/1069/340 702/937/340 +f 828/940/349 830/999/349 829/941/349 +f 707/943/340 709/1070/340 710/944/340 +f 707/946/345 711/1071/345 713/947/345 +f 710/944/346 714/950/346 712/949/346 +f 713/947/341 711/1071/341 712/949/341 +f 716/951/344 720/1072/344 719/952/344 +f 722/953/340 721/1073/340 719/954/340 +f 651/1074/345 715/1075/345 719/1076/345 +f 721/957/345 717/1077/345 649/1078/345 +f 653/901/345 651/1074/345 719/1076/345 +f 721/957/345 649/1078/345 658/956/345 +f 653/901/345 719/1076/345 654/902/345 +f 719/1076/345 721/957/345 654/902/345 +f 656/904/346 655/900/346 720/958/346 +f 655/900/346 657/906/346 722/1079/346 +f 720/958/346 655/900/346 722/1079/346 +f 657/906/346 650/899/346 722/1079/346 +f 650/899/346 718/898/346 722/1079/346 +f 716/951/346 652/905/346 720/958/346 +f 736/961/344 735/1080/344 737/1081/344 +f 737/1081/344 738/1082/344 736/961/344 +f 738/1082/344 739/1083/344 736/961/344 +f 739/1083/344 740/1084/344 741/959/344 +f 741/959/344 742/1085/344 743/960/344 +f 743/960/344 744/1086/344 736/961/344 +f 744/1086/344 745/1087/344 736/961/344 +f 745/1087/344 746/1088/344 736/961/344 +f 739/1083/344 741/959/344 736/961/344 +f 723/1089/344 724/1090/344 725/1091/344 +f 725/1091/344 726/1092/344 727/962/344 +f 727/962/344 728/1093/344 729/963/344 +f 729/963/344 730/1094/344 731/964/344 +f 731/964/344 732/1095/344 733/1096/344 +f 733/1096/344 734/1097/344 731/964/344 +f 734/1097/344 723/1089/344 731/964/344 +f 723/1089/344 725/1091/344 731/964/344 +f 725/1091/344 727/962/344 731/964/344 +f 783/966/344 784/1098/344 785/1099/344 +f 785/1099/344 786/1100/344 783/966/344 +f 786/1100/344 787/967/344 783/966/344 +f 787/967/344 788/1101/344 789/1102/344 +f 789/1102/344 790/1103/344 791/1104/344 +f 791/1104/344 792/1105/344 793/965/344 +f 793/965/344 794/1106/344 783/966/344 +f 787/967/344 789/1102/344 791/1104/344 +f 791/1104/344 793/965/344 787/967/344 +f 665/968/350 796/1107/350 795/969/350 +f 673/970/351 797/1108/351 798/971/351 +f 664/972/342 795/1109/342 797/973/342 +f 800/974/341 801/977/341 808/975/341 +f 801/977/344 802/983/344 809/978/344 +f 809/978/344 810/1110/344 807/1111/344 +f 807/1111/344 808/975/344 809/978/344 +f 806/979/346 807/985/346 810/980/346 +f 804/982/340 809/978/340 802/983/340 +f 806/979/352 805/976/352 808/975/352 +f 810/986/351 809/978/351 804/982/351 +f 804/990/342 799/1112/342 800/974/342 +f 800/974/342 805/976/342 804/990/342 +f 805/976/342 806/988/342 804/990/342 +f 812/993/344 814/1113/344 816/1114/344 +f 816/1114/344 818/1115/344 820/991/344 +f 820/991/344 822/1116/344 824/992/344 +f 824/992/344 826/1117/344 812/993/344 +f 812/993/344 816/1114/344 820/991/344 +f 813/995/342 811/1118/342 821/996/342 +f 811/1118/342 825/1119/342 821/996/342 +f 825/1119/342 823/1120/342 821/996/342 +f 821/996/342 819/1121/342 817/1122/342 +f 817/1122/342 815/994/342 821/996/342 +f 828/997/345 832/1123/345 834/998/345 +f 827/1000/346 829/941/346 833/1001/346 +f 830/999/340 834/998/340 833/1001/340 +f 844/1003/341 837/1124/341 836/1004/341 +f 845/1008/344 838/1012/344 837/1124/344 +f 837/1124/344 844/1003/344 845/1008/344 +f 844/1003/344 843/1006/344 845/1008/344 +f 846/1009/345 843/1015/345 842/1010/345 +f 838/1012/340 845/1008/340 840/1013/340 +f 844/1003/353 841/1005/353 842/1010/353 +f 840/1013/350 845/1008/350 846/1016/350 +f 836/1004/342 835/1125/342 840/1018/342 +f 840/1018/342 839/1126/342 842/1127/342 +f 842/1127/342 841/1005/342 840/1018/342 +f 848/1019/341 849/1022/341 856/1020/341 +f 849/1022/344 850/1028/344 857/1023/344 +f 857/1023/344 858/1128/344 855/1129/344 +f 855/1129/344 856/1020/344 857/1023/344 +f 854/1024/346 855/1030/346 858/1025/346 +f 852/1027/340 857/1023/340 850/1028/340 +f 854/1024/352 853/1021/352 856/1020/352 +f 858/1031/351 857/1023/351 852/1027/351 +f 852/1035/342 847/1130/342 848/1019/342 +f 848/1019/342 853/1021/342 852/1035/342 +f 853/1021/342 854/1033/342 852/1035/342 +f 868/1036/341 861/1131/341 860/1037/341 +f 869/1041/344 862/1045/344 861/1131/344 +f 861/1131/344 868/1036/344 869/1041/344 +f 868/1036/344 867/1039/344 869/1041/344 +f 870/1042/345 867/1048/345 866/1043/345 +f 862/1045/340 869/1041/340 864/1046/340 +f 868/1036/353 865/1038/353 866/1043/353 +f 864/1046/350 869/1041/350 870/1049/350 +f 860/1037/342 859/1132/342 864/1051/342 +f 864/1051/342 863/1133/342 866/1134/342 +f 866/1134/342 865/1038/342 864/1051/342 +f 872/1054/344 874/1135/344 876/1136/344 +f 876/1136/344 878/1137/344 880/1052/344 +f 880/1052/344 882/1138/344 884/1053/344 +f 884/1053/344 886/1139/344 872/1054/344 +f 872/1054/344 876/1136/344 880/1052/344 +f 873/1056/342 871/1140/342 881/1057/342 +f 871/1140/342 885/1141/342 881/1057/342 +f 885/1141/342 883/1142/342 881/1057/342 +f 881/1057/342 879/1143/342 877/1144/342 +f 877/1144/342 875/1055/342 881/1057/342 +s 1 +f 682/1145/354 683/1068/355 681/1146/356 +f 680/1147/357 681/1146/356 679/1148/358 +f 686/1065/359 687/1149/360 685/1066/361 +f 691/1150/362 690/1151/359 689/1152/361 +f 691/1153/362 697/1154/363 687/1155/360 +f 689/1156/361 698/1157/364 691/1153/362 +f 694/1158/365 698/1157/364 699/1159/366 +f 687/1155/360 696/939/366 685/1160/361 +f 692/1161/367 704/1162/368 706/1163/369 +f 683/1164/355 693/1165/370 681/1166/356 +f 681/1166/356 694/1158/365 679/1167/358 +f 701/1168/371 704/1162/368 702/1169/372 +f 700/1170/373 706/1163/369 701/1168/371 +f 692/1161/367 705/1171/374 690/1172/359 +f 680/1173/357 701/1168/371 682/1174/354 +f 686/1175/359 704/1162/368 688/1176/375 +f 684/1177/376 701/1168/371 702/1169/372 +f 688/1178/375 691/1150/362 687/1149/360 +f 760/1179/341 735/1180/377 736/1181/341 +f 752/1182/378 729/1183/340 728/1184/378 +f 767/1185/379 744/1186/346 743/1187/379 +f 759/1188/377 737/1189/380 735/1180/377 +f 753/1190/340 730/1191/381 729/1192/340 +f 768/1193/346 745/1194/382 744/1186/346 +f 761/1195/380 738/1196/345 737/1189/380 +f 754/1197/381 731/1198/379 730/1191/381 +f 769/1199/382 746/1200/383 745/1194/382 +f 747/1201/341 724/1202/377 723/1203/341 +f 762/1204/345 739/1205/384 738/1196/345 +f 755/1206/379 732/1207/346 731/1198/379 +f 770/1208/383 736/1181/341 746/1200/383 +f 748/1209/377 725/1210/380 724/1202/377 +f 763/1211/384 740/1212/378 739/1205/384 +f 756/1213/346 733/1214/382 732/1207/346 +f 749/1215/380 726/1216/345 725/1210/380 +f 764/1217/378 741/1218/340 740/1212/378 +f 757/1219/382 734/1220/383 733/1214/382 +f 750/1221/345 727/1222/384 726/1216/345 +f 765/1223/340 742/1224/381 741/1225/340 +f 758/1226/383 723/1203/341 734/1220/383 +f 751/1227/384 728/1184/378 727/1222/384 +f 766/1228/381 743/1187/379 742/1224/381 +f 777/1229/340 788/1230/378 776/1231/378 +f 774/1232/345 785/1233/380 773/1234/380 +f 781/1235/382 792/1236/346 780/1237/346 +f 778/1238/381 789/1239/340 777/1240/340 +f 775/1241/384 786/1242/345 774/1232/345 +f 782/1243/383 793/1244/382 781/1235/382 +f 772/1245/377 783/1246/341 771/1247/341 +f 779/1248/379 790/1249/381 778/1238/381 +f 776/1231/378 787/1250/384 775/1241/384 +f 771/1247/341 794/1251/383 782/1243/383 +f 773/1234/380 784/1252/377 772/1245/377 +f 780/1237/346 791/1253/379 779/1248/379 +f 813/1254/353 812/1255/341 811/1256/341 +f 815/1257/345 814/1258/353 813/1254/353 +f 817/1259/350 816/1260/345 815/1257/345 +f 819/1261/340 818/1262/350 817/1259/350 +f 821/1263/351 820/1264/340 819/1265/340 +f 823/1266/346 822/1267/351 821/1263/351 +f 825/1268/352 824/1269/346 823/1266/346 +f 811/1256/341 826/1270/352 825/1268/352 +f 693/1165/370 697/1154/363 698/1157/364 +f 702/1169/372 704/1162/368 703/1271/374 +f 697/1154/363 695/1067/385 696/939/366 +f 873/1272/353 872/1273/341 871/1274/341 +f 875/1275/345 874/1276/353 873/1272/353 +f 877/1277/350 876/1278/345 875/1275/345 +f 879/1279/340 878/1280/350 877/1277/350 +f 881/1281/351 880/1282/340 879/1283/340 +f 883/1284/346 882/1285/351 881/1281/351 +f 885/1286/352 884/1287/346 883/1284/346 +f 871/1274/341 886/1288/352 885/1286/352 +f 682/1145/354 684/1069/376 683/1068/355 +f 680/1147/357 682/1145/354 681/1146/356 +f 686/1065/359 688/1178/375 687/1149/360 +f 691/1150/362 692/1289/367 690/1151/359 +f 691/1153/362 698/1157/364 697/1154/363 +f 689/1156/361 699/1159/366 698/1157/364 +f 694/1158/365 693/1165/370 698/1157/364 +f 687/1155/360 697/1154/363 696/939/366 +f 692/1161/367 688/1176/375 704/1162/368 +f 683/1164/355 695/1067/385 693/1165/370 +f 681/1166/356 693/1165/370 694/1158/365 +f 701/1168/371 706/1163/369 704/1162/368 +f 700/1170/373 705/1171/374 706/1163/369 +f 692/1161/367 706/1163/369 705/1171/374 +f 680/1173/357 700/1170/373 701/1168/371 +f 686/1175/359 703/1271/374 704/1162/368 +f 684/1177/376 682/1174/354 701/1168/371 +f 688/1178/375 692/1289/367 691/1150/362 +f 760/1179/341 759/1188/377 735/1180/377 +f 752/1182/378 753/1290/340 729/1183/340 +f 767/1185/379 768/1193/346 744/1186/346 +f 759/1188/377 761/1195/380 737/1189/380 +f 753/1190/340 754/1197/381 730/1191/381 +f 768/1193/346 769/1199/382 745/1194/382 +f 761/1195/380 762/1204/345 738/1196/345 +f 754/1197/381 755/1206/379 731/1198/379 +f 769/1199/382 770/1208/383 746/1200/383 +f 747/1201/341 748/1209/377 724/1202/377 +f 762/1204/345 763/1211/384 739/1205/384 +f 755/1206/379 756/1213/346 732/1207/346 +f 770/1208/383 760/1179/341 736/1181/341 +f 748/1209/377 749/1215/380 725/1210/380 +f 763/1211/384 764/1217/378 740/1212/378 +f 756/1213/346 757/1219/382 733/1214/382 +f 749/1215/380 750/1221/345 726/1216/345 +f 764/1217/378 765/1291/340 741/1218/340 +f 757/1219/382 758/1226/383 734/1220/383 +f 750/1221/345 751/1227/384 727/1222/384 +f 765/1223/340 766/1228/381 742/1224/381 +f 758/1226/383 747/1201/341 723/1203/341 +f 751/1227/384 752/1182/378 728/1184/378 +f 766/1228/381 767/1185/379 743/1187/379 +f 777/1229/340 789/1292/340 788/1230/378 +f 774/1232/345 786/1242/345 785/1233/380 +f 781/1235/382 793/1244/382 792/1236/346 +f 778/1238/381 790/1249/381 789/1239/340 +f 775/1241/384 787/1250/384 786/1242/345 +f 782/1243/383 794/1251/383 793/1244/382 +f 772/1245/377 784/1252/377 783/1246/341 +f 779/1248/379 791/1253/379 790/1249/381 +f 776/1231/378 788/1230/378 787/1250/384 +f 771/1247/341 783/1246/341 794/1251/383 +f 773/1234/380 785/1233/380 784/1252/377 +f 780/1237/346 792/1236/346 791/1253/379 +f 813/1254/353 814/1258/353 812/1255/341 +f 815/1257/345 816/1260/345 814/1258/353 +f 817/1259/350 818/1262/350 816/1260/345 +f 819/1261/340 820/1293/340 818/1262/350 +f 821/1263/351 822/1267/351 820/1264/340 +f 823/1266/346 824/1269/346 822/1267/351 +f 825/1268/352 826/1270/352 824/1269/346 +f 811/1256/341 812/1255/341 826/1270/352 +f 693/1165/370 695/1067/385 697/1154/363 +f 873/1272/353 874/1276/353 872/1273/341 +f 875/1275/345 876/1278/345 874/1276/353 +f 877/1277/350 878/1280/350 876/1278/345 +f 879/1279/340 880/1294/340 878/1280/350 +f 881/1281/351 882/1285/351 880/1282/340 +f 883/1284/346 884/1287/346 882/1285/351 +f 885/1286/352 886/1288/352 884/1287/346 +f 871/1274/341 872/1273/341 886/1288/352 diff --git a/src/main/resources/assets/hbm/models/weapons/stg77.obj b/src/main/resources/assets/hbm/models/weapons/stg77.obj index 47582d957..decc89649 100644 --- a/src/main/resources/assets/hbm/models/weapons/stg77.obj +++ b/src/main/resources/assets/hbm/models/weapons/stg77.obj @@ -3411,9 +3411,9 @@ vt 0.170455 0.180723 vt 0.174242 0.144578 vt 0.136364 0.150602 vt 0.174242 0.192771 -vt 0.886904 0.951811 -vt 0.939394 0.807222 -vt 0.991884 0.951811 +vt 0.830355 0.927716 +vt 0.909091 0.710833 +vt 0.987826 0.927716 vt 0.640152 0.662651 vt 0.715909 0.662651 vt 0.753788 0.662651 @@ -3579,15 +3579,15 @@ vt 0.151515 0.536145 vt 0.189394 0.156627 vt 0.178030 0.180723 vt 0.136364 0.186747 -vt 0.969699 0.987093 -vt 0.939394 1.000007 -vt 0.909088 0.987093 -vt 0.878783 0.903614 -vt 0.886904 0.855418 -vt 0.909089 0.820136 -vt 0.969699 0.820136 -vt 0.991884 0.855418 -vt 1.000005 0.903614 +vt 0.954549 0.980639 +vt 0.909091 1.000011 +vt 0.863633 0.980639 +vt 0.818175 0.855421 +vt 0.830355 0.783127 +vt 0.863633 0.730204 +vt 0.954549 0.730204 +vt 0.987826 0.783127 +vt 1.000007 0.855422 vt 0.074559 0.941663 vt 0.075631 0.945782 vt 0.074559 0.949902 diff --git a/src/main/resources/assets/hbm/models/weapons/uzi.obj b/src/main/resources/assets/hbm/models/weapons/uzi.obj index c6023c32a..101594263 100644 --- a/src/main/resources/assets/hbm/models/weapons/uzi.obj +++ b/src/main/resources/assets/hbm/models/weapons/uzi.obj @@ -1,5 +1,1904 @@ # Blender v2.79 (sub 0) OBJ File: 'uzi.blend' # www.blender.org +o GunMirror +v 0.750000 0.000000 3.250000 +v -0.750000 0.000000 3.250000 +v 0.750000 0.000000 -5.500000 +v -0.750000 0.000000 -5.500000 +v 0.750000 1.500000 3.250000 +v -0.750000 1.500000 3.250000 +v 0.750000 1.500000 -5.500000 +v -0.750000 1.500000 -5.500000 +v 0.000000 1.250000 5.500000 +v 0.250000 1.183012 5.500000 +v 0.433013 1.000000 5.500000 +v 0.500000 0.750000 5.500000 +v 0.433013 0.500000 5.500000 +v 0.250000 0.316988 5.500000 +v 0.000000 0.250000 5.500000 +v -0.250000 0.316987 5.500000 +v -0.433012 0.500000 5.500000 +v -0.500000 0.750000 5.500000 +v -0.433013 1.000000 5.500000 +v -0.250000 1.183012 5.500000 +v 0.000000 1.250000 6.375000 +v 0.250000 1.183012 6.375000 +v 0.433013 1.000000 6.375000 +v 0.500000 0.750000 6.375000 +v 0.433013 0.500000 6.375000 +v 0.250000 0.316988 6.375000 +v 0.000000 0.250000 6.375000 +v -0.250000 0.316987 6.375000 +v -0.433012 0.500000 6.375000 +v -0.500000 0.750000 6.375000 +v -0.433013 1.000000 6.375000 +v -0.250000 1.183012 6.375000 +v 0.000000 1.000000 6.375000 +v 0.125000 0.966506 6.375000 +v 0.216506 0.875000 6.375000 +v 0.250000 0.750000 6.375000 +v 0.216506 0.625000 6.375000 +v 0.125000 0.533494 6.375000 +v 0.000000 0.500000 6.375000 +v -0.125000 0.533494 6.375000 +v -0.216506 0.625000 6.375000 +v -0.250000 0.750000 6.375000 +v -0.216506 0.875000 6.375000 +v -0.125000 0.966506 6.375000 +v 0.000000 1.000000 8.375000 +v 0.125000 0.966506 8.375000 +v 0.216506 0.875000 8.375000 +v 0.250000 0.750000 8.375000 +v 0.216506 0.625000 8.375000 +v 0.125000 0.533494 8.375000 +v 0.000000 0.500000 8.375000 +v -0.125000 0.533494 8.375000 +v -0.216506 0.625000 8.375000 +v -0.250000 0.750000 8.375000 +v -0.216506 0.875000 8.375000 +v -0.125000 0.966506 8.375000 +v 0.000000 0.937500 8.375000 +v 0.093750 0.912380 8.375000 +v 0.162380 0.843750 8.375000 +v 0.187500 0.750000 8.375000 +v 0.162380 0.656250 8.375000 +v 0.093750 0.587620 8.375000 +v 0.000000 0.562500 8.375000 +v -0.093750 0.587620 8.375000 +v -0.162380 0.656250 8.375000 +v -0.187500 0.750000 8.375000 +v -0.162380 0.843750 8.375000 +v -0.093750 0.912380 8.375000 +v 0.000000 0.937500 6.375000 +v 0.093750 0.912380 6.375000 +v 0.162380 0.843750 6.375000 +v 0.187500 0.750000 6.375000 +v 0.162380 0.656250 6.375000 +v 0.093750 0.587620 6.375000 +v 0.000000 0.562500 6.375000 +v -0.093750 0.587620 6.375000 +v -0.162380 0.656250 6.375000 +v -0.187500 0.750000 6.375000 +v -0.162380 0.843750 6.375000 +v -0.093750 0.912380 6.375000 +v 0.875000 -0.250000 1.250000 +v -0.875000 -0.250000 1.250000 +v 0.875000 -0.250000 -2.250000 +v -0.875000 -0.250000 -2.250000 +v 0.875000 0.500000 -2.250000 +v 0.875000 0.500000 1.250000 +v -0.875000 0.500000 1.250000 +v -0.875000 0.500000 -2.250000 +v 0.875000 1.000000 1.375000 +v 0.875000 1.000000 3.250000 +v -0.875000 1.000000 3.250000 +v -0.875000 1.000000 1.375000 +v 0.875000 0.125000 3.250000 +v 0.500000 -0.250000 3.250000 +v -0.500000 -0.250000 3.250000 +v -0.875000 0.125000 3.250000 +v 0.500000 -0.250000 1.375000 +v 0.875000 0.125000 1.375000 +v -0.875000 0.125000 1.375000 +v -0.500000 -0.250000 1.375000 +v 0.750000 0.125000 3.625000 +v 0.500000 -0.250000 3.625000 +v -0.750000 1.000000 3.625000 +v 0.750000 1.000000 3.625000 +v 0.625000 0.000000 3.625000 +v -0.625000 0.000000 3.625000 +v 0.625000 1.500000 3.625000 +v -0.625000 1.500000 3.625000 +v 0.625000 0.000000 5.500000 +v -0.625000 0.000000 5.500000 +v 0.625000 1.500000 5.500000 +v -0.625000 1.500000 5.500000 +v -0.750000 0.125000 3.625000 +v -0.500000 -0.250000 3.625000 +v 0.750000 0.125000 5.375000 +v 0.750000 1.000000 5.375000 +v -0.750000 0.125000 5.375000 +v -0.500000 -0.250000 5.375000 +v 0.500000 -0.250000 5.375000 +v -0.750000 1.000000 5.375000 +v 0.750000 1.500000 3.250000 +v 0.750000 1.500000 -3.750000 +v 0.375000 1.500000 3.250000 +v 0.375000 1.500000 -3.750000 +v 0.750000 1.750000 1.250000 +v 0.750000 1.750000 -1.750000 +v 0.375000 1.750000 1.250000 +v 0.375000 1.750000 -1.750000 +v -0.375000 1.500000 3.250000 +v -0.375000 1.500000 -3.750000 +v -0.750000 1.500000 3.250000 +v -0.750000 1.500000 -3.750000 +v -0.375000 1.750000 1.250000 +v -0.375000 1.750000 -1.750000 +v -0.750000 1.750000 1.250000 +v -0.750000 1.750000 -1.750000 +v -0.375000 1.500000 4.562500 +v -0.375000 1.500000 5.437500 +v -0.375000 1.875000 5.437500 +v -0.375000 2.018506 5.404197 +v -0.375000 2.140165 5.309359 +v -0.375000 2.221455 5.167424 +v -0.500000 1.875000 4.562500 +v -0.500000 2.018506 4.595803 +v -0.500000 2.140165 4.690641 +v -0.500000 2.221455 4.832576 +v -0.500000 2.250000 5.000000 +v -0.500000 2.221455 5.167424 +v -0.500000 2.140165 5.309359 +v -0.500000 2.018506 5.404197 +v -0.500000 1.875000 5.437500 +v -0.375000 2.250000 5.000000 +v -0.375000 2.221455 4.832576 +v -0.375000 2.140165 4.690641 +v -0.375000 2.018506 4.595803 +v -0.375000 1.875000 4.562500 +v -0.500000 1.500000 5.437500 +v -0.500000 1.500000 4.562500 +v -0.375000 2.000000 -5.375000 +v -0.375000 2.167424 -5.327425 +v -0.375000 2.309359 -5.191942 +v -0.375000 2.404197 -4.989178 +v -0.375000 2.437500 -4.750000 +v -0.375000 2.404197 -4.510823 +v -0.375000 2.309359 -4.308059 +v -0.375000 2.167424 -4.172575 +v -0.375000 2.000000 -4.125000 +v -0.500000 2.437500 -4.750000 +v -0.500000 2.404197 -4.989178 +v -0.500000 2.309359 -5.191942 +v -0.500000 2.167424 -5.327425 +v -0.500000 2.000000 -5.375000 +v -0.375000 1.500000 -4.125000 +v -0.375000 1.500000 -5.375000 +v -0.500000 2.404197 -4.510823 +v -0.500000 2.309359 -4.308059 +v -0.500000 2.167424 -4.172575 +v -0.500000 2.000000 -4.125000 +v -0.500000 1.500000 -4.125000 +v -0.500000 1.500000 -5.375000 +v 0.750000 1.500000 -1.500000 +v 0.750000 0.750000 -1.500000 +v 0.750000 0.750000 0.125000 +v 0.750000 1.500000 0.125000 +v 0.750000 1.500000 -1.500000 +v 0.750000 1.500000 0.125000 +v 0.750000 1.750000 -1.500000 +v 0.750000 1.750000 0.125000 +v 0.625000 1.500000 -1.500000 +v 0.625000 0.750000 -1.500000 +v 0.625000 0.750000 0.125000 +v 0.625000 1.500000 0.125000 +v -0.375000 -0.250000 -0.250000 +v 0.375000 -0.250000 -0.250000 +v 0.500000 1.500000 -1.500000 +v 0.500000 1.500000 0.125000 +v 0.500000 1.750000 -1.500000 +v 0.500000 1.750000 0.125000 +v 0.375000 -2.750000 -2.000000 +v -0.375000 -2.750000 -2.000000 +v -0.375000 -3.250000 -0.250000 +v -0.375000 -3.250000 -1.500000 +v 0.375000 -3.250000 -0.250000 +v 0.375000 -3.250000 -1.500000 +v 0.375000 -2.000000 -2.000000 +v -0.375000 -2.000000 -2.000000 +v 0.375000 -1.000000 -1.750000 +v -0.375000 -1.000000 -1.750000 +v 0.375000 -0.500000 -2.250000 +v -0.375000 -0.500000 -2.250000 +v 0.375000 -0.250000 -2.250000 +v -0.375000 -0.250000 -2.250000 +v -0.625000 -2.750000 -1.750000 +v -0.625000 -3.250000 -1.250000 +v -0.625000 -3.250000 -0.375000 +v -0.625000 -0.250000 -0.375000 +v -0.625000 -2.000000 -1.750000 +v -0.625000 -1.000000 -1.500000 +v -0.625000 -0.500000 -2.000000 +v -0.625000 -0.250000 -2.000000 +v 0.625000 -3.250000 -1.250000 +v 0.625000 -2.750000 -1.750000 +v 0.625000 -3.250000 -0.375000 +v 0.625000 -0.250000 -0.375000 +v 0.625000 -2.000000 -1.750000 +v 0.625000 -1.000000 -1.500000 +v 0.625000 -0.500000 -2.000000 +v 0.625000 -0.250000 -2.000000 +v 0.250000 0.000000 1.375000 +v -0.250000 0.000000 1.375000 +v 0.250000 0.000000 1.250000 +v -0.250000 0.000000 1.250000 +v 0.250000 -1.250000 1.375000 +v -0.250000 -1.250000 1.375000 +v 0.250000 -1.250000 1.250000 +v -0.250000 -1.250000 1.250000 +v 0.250000 -1.500000 1.000000 +v -0.250000 -1.500000 1.000000 +v 0.250000 -1.625000 1.000000 +v -0.250000 -1.625000 1.000000 +v 0.250000 -1.500000 0.250000 +v -0.250000 -1.500000 0.250000 +v 0.250000 -1.625000 0.250000 +v -0.250000 -1.625000 0.250000 +v 0.250000 -1.250000 -0.250000 +v -0.250000 -1.250000 -0.250000 +v 0.250000 -1.375000 -0.250000 +v -0.250000 -1.375000 -0.250000 +v 0.156250 -0.250000 0.312500 +v -0.156250 -0.250000 0.312500 +v 0.156250 -0.250000 0.187500 +v -0.156250 -0.250000 0.187500 +v 0.156250 -0.875000 0.312500 +v -0.156250 -0.875000 0.312500 +v 0.156250 -0.875000 0.187500 +v -0.156250 -0.875000 0.187500 +v 0.156250 -1.187500 0.562500 +v -0.156250 -1.187500 0.562500 +v 0.375000 1.500000 5.375000 +v -0.375000 1.500000 5.375000 +v 0.375000 1.500000 4.625000 +v -0.375000 1.500000 4.625000 +v 0.375000 1.625000 4.625000 +v 0.375000 1.625000 5.375000 +v -0.375000 1.625000 5.375000 +v -0.375000 1.625000 4.625000 +v 0.000000 1.625000 4.750000 +v 0.176777 1.625000 4.823223 +v 0.250000 1.625000 5.000000 +v 0.176777 1.625000 5.176777 +v 0.000000 1.625000 5.250000 +v -0.176777 1.625000 5.176777 +v -0.250000 1.625000 5.000000 +v -0.176777 1.625000 4.823223 +v 0.000000 1.687500 4.750000 +v 0.176777 1.687500 4.823223 +v 0.250000 1.687500 5.000000 +v 0.176777 1.687500 5.176777 +v 0.000000 1.687500 5.250000 +v -0.176777 1.687500 5.176777 +v -0.250000 1.687500 5.000000 +v -0.176777 1.687500 4.823223 +v 0.062500 1.687500 5.062500 +v -0.062500 1.687500 5.062500 +v 0.062500 1.687500 4.937500 +v -0.062500 1.687500 4.937500 +v 0.062500 2.187500 4.937500 +v 0.062500 2.187500 5.062500 +v -0.062500 2.187500 5.062500 +v -0.062500 2.187500 4.937500 +v 0.250000 1.500000 -4.250000 +v -0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -5.250000 +v -0.250000 1.500000 -5.250000 +v 0.250000 1.750000 -5.250000 +v 0.250000 1.750000 -4.250000 +v -0.250000 1.750000 -4.250000 +v -0.250000 1.750000 -5.250000 +v -0.250000 1.500000 -4.250000 +v -0.250000 1.500000 -5.250000 +v -0.375000 1.500000 -4.250000 +v -0.375000 1.500000 -5.250000 +v -0.375000 2.000000 -4.250000 +v -0.375000 2.000000 -5.250000 +v -0.250000 2.000000 -4.250000 +v -0.250000 2.000000 -5.250000 +v 0.375000 1.500000 -4.250000 +v 0.375000 1.500000 -5.250000 +v 0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -5.250000 +v 0.250000 2.000000 -4.250000 +v 0.250000 2.000000 -5.250000 +v 0.375000 2.000000 -4.250000 +v 0.375000 2.000000 -5.250000 +v 0.187500 1.750000 -4.625000 +v -0.187500 1.750000 -4.625000 +v 0.187500 1.750000 -4.875000 +v -0.187500 1.750000 -4.875000 +v 0.187500 2.250000 -4.875000 +v 0.187500 2.250000 -4.625000 +v -0.187500 2.250000 -4.625000 +v -0.187500 2.250000 -4.875000 +v 0.062500 2.375000 -4.875000 +v 0.062500 2.375000 -4.625000 +v -0.062500 2.375000 -4.625000 +v -0.062500 2.375000 -4.875000 +v 0.125000 2.250000 -4.625000 +v -0.125000 2.250000 -4.625000 +v 0.125000 2.250000 -4.875000 +v -0.125000 2.250000 -4.875000 +v 0.125000 2.125000 -4.625000 +v -0.125000 2.125000 -4.625000 +v 0.125000 2.125000 -4.875000 +v -0.125000 2.125000 -4.875000 +v -0.062500 2.312500 -4.625000 +v -0.062500 2.062500 -4.625000 +v -0.062500 2.312500 -4.875000 +v -0.062500 2.062500 -4.875000 +v 0.062500 2.312500 -4.625000 +v 0.062500 2.062500 -4.625000 +v 0.062500 2.312500 -4.875000 +v 0.062500 2.062500 -4.875000 +v 0.625000 0.000000 -5.500000 +v -0.625000 0.000000 -5.500000 +v 0.625000 1.000000 -5.500000 +v -0.625000 1.000000 -5.500000 +v 0.625000 1.000000 -5.750000 +v 0.625000 0.000000 -5.750000 +v -0.625000 0.000000 -5.750000 +v -0.625000 1.000000 -5.750000 +v 0.625000 0.750000 -6.000000 +v 0.625000 0.250000 -6.000000 +v -0.625000 0.250000 -6.000000 +v -0.625000 0.750000 -6.000000 +v 0.875000 0.312500 -5.875000 +v -0.875000 0.312500 -5.875000 +v 0.875000 0.224112 -5.838388 +v -0.875000 0.224112 -5.838388 +v 0.875000 0.187500 -5.750000 +v -0.875000 0.187500 -5.750000 +v 0.875000 0.224112 -5.661612 +v -0.875000 0.224112 -5.661612 +v 0.875000 0.312500 -5.625000 +v -0.875000 0.312500 -5.625000 +v 0.875000 0.400888 -5.661612 +v -0.875000 0.400888 -5.661612 +v 0.875000 0.437500 -5.750000 +v -0.875000 0.437500 -5.750000 +v 0.875000 0.400888 -5.838388 +v -0.875000 0.400888 -5.838388 +v 0.500000 1.500000 4.562500 +v 0.500000 1.500000 5.437500 +v 0.500000 1.875000 5.437500 +v 0.500000 2.018506 5.404197 +v 0.500000 2.140165 5.309359 +v 0.500000 2.221455 5.167424 +v 0.375000 1.875000 4.562500 +v 0.375000 2.018506 4.595803 +v 0.375000 2.140165 4.690641 +v 0.375000 2.221455 4.832576 +v 0.375000 2.250000 5.000000 +v 0.375000 2.221455 5.167424 +v 0.375000 2.140165 5.309359 +v 0.375000 2.018506 5.404197 +v 0.375000 1.875000 5.437500 +v 0.500000 2.250000 5.000000 +v 0.500000 2.221455 4.832576 +v 0.500000 2.140165 4.690641 +v 0.500000 2.018506 4.595803 +v 0.500000 1.875000 4.562500 +v 0.375000 1.500000 5.437500 +v 0.375000 1.500000 4.562500 +v 0.500000 2.000000 -5.375000 +v 0.500000 2.167424 -5.327425 +v 0.500000 2.309359 -5.191942 +v 0.500000 2.404197 -4.989178 +v 0.500000 2.437500 -4.750000 +v 0.500000 2.404197 -4.510823 +v 0.500000 2.309359 -4.308059 +v 0.500000 2.167424 -4.172575 +v 0.500000 2.000000 -4.125000 +v 0.375000 2.437500 -4.750000 +v 0.375000 2.404197 -4.989178 +v 0.375000 2.309359 -5.191942 +v 0.375000 2.167424 -5.327425 +v 0.375000 2.000000 -5.375000 +v 0.500000 1.500000 -4.125000 +v 0.500000 1.500000 -5.375000 +v 0.375000 2.404197 -4.510823 +v 0.375000 2.309359 -4.308059 +v 0.375000 2.167424 -4.172575 +v 0.375000 2.000000 -4.125000 +v 0.375000 1.500000 -4.125000 +v 0.375000 1.500000 -5.375000 +vt 0.336066 0.391304 +vt 0.049180 0.521739 +vt 0.336066 0.521739 +vt 0.336066 0.260870 +vt 0.049180 0.391304 +vt 0.049180 0.260870 +vt 0.000000 0.130435 +vt -0.000000 0.260870 +vt 0.348361 0.130435 +vt 0.336066 0.000000 +vt 0.336066 0.130435 +vt 0.663934 0.277174 +vt 0.655738 0.260870 +vt 0.655738 0.282609 +vt 0.663934 0.385870 +vt 0.655738 0.369565 +vt 0.655738 0.391304 +vt 0.663934 0.190217 +vt 0.655738 0.173913 +vt 0.655738 0.195652 +vt 0.655738 0.304348 +vt 0.663934 0.288043 +vt 0.663934 0.244565 +vt 0.655738 0.239130 +vt 0.663934 0.353261 +vt 0.655738 0.347826 +vt 0.663934 0.157609 +vt 0.655738 0.152174 +vt 0.663934 0.222826 +vt 0.655738 0.217391 +vt 0.663934 0.342391 +vt 0.655738 0.326087 +vt 0.655738 0.413043 +vt 0.663934 0.396739 +vt 0.663934 0.211957 +vt 0.663934 0.320652 +vt 0.706967 0.510870 +vt 0.704918 0.500000 +vt 0.704918 0.510870 +vt 0.706967 0.565217 +vt 0.704918 0.554348 +vt 0.704918 0.565217 +vt 0.706967 0.543478 +vt 0.704918 0.532609 +vt 0.704918 0.543478 +vt 0.706967 0.597826 +vt 0.704918 0.586957 +vt 0.704918 0.597826 +vt 0.706967 0.489130 +vt 0.704918 0.489130 +vt 0.706967 0.532609 +vt 0.704918 0.521739 +vt 0.706967 0.586957 +vt 0.704918 0.576087 +vt 0.706967 0.478261 +vt 0.704918 0.478261 +vt 0.706967 0.521739 +vt 0.706967 0.576087 +vt 0.704918 0.608696 +vt 0.663102 0.470094 +vt 0.657787 0.445681 +vt 0.652472 0.470094 +vt 0.598361 0.282609 +vt 0.483607 0.434783 +vt 0.598361 0.434783 +vt 0.483607 0.065217 +vt 0.598361 0.217391 +vt 0.598361 0.065217 +vt 0.483607 0.217391 +vt 0.459016 0.065217 +vt 0.459016 0.217391 +vt 0.622951 0.217391 +vt 0.622951 0.065217 +vt 0.483607 0.282609 +vt 0.598361 0.000000 +vt 0.483607 0.000000 +vt 0.663934 -0.000000 +vt 0.725410 0.152174 +vt 0.725410 0.000000 +vt 0.622951 0.119565 +vt 0.622951 0.032609 +vt 0.409836 0.391304 +vt 0.348361 0.260870 +vt 0.348361 0.391304 +vt 0.348361 0.250000 +vt 0.348361 0.510870 +vt 0.409836 0.141304 +vt 0.459016 0.250000 +vt 0.459016 0.141304 +vt 0.409836 0.510870 +vt 0.348361 0.402174 +vt 0.409836 0.130435 +vt 0.348361 -0.000000 +vt 0.409836 0.250000 +vt 0.348361 0.141304 +vt 0.737705 0.141304 +vt 0.823770 0.141304 +vt 0.836066 0.119565 +vt 0.836066 0.032609 +vt 0.795082 0.141304 +vt 0.737705 0.010870 +vt 0.639344 0.510870 +vt 0.475410 0.489130 +vt 0.409836 0.510870 +vt 0.573770 0.456522 +vt 0.536885 0.434783 +vt 0.536885 0.456522 +vt 0.483607 0.434783 +vt 0.475410 0.456522 +vt 0.483607 0.456522 +vt 0.639344 0.586956 +vt 0.475410 0.565217 +vt 0.409836 0.586956 +vt 0.475410 0.532609 +vt 0.639344 0.510870 +vt 0.409836 0.510870 +vt 0.733772 0.750000 +vt 0.747951 0.782232 +vt 0.762129 0.750000 +vt 0.742525 0.779778 +vt 0.737925 0.772791 +vt 0.733772 0.750000 +vt 0.692623 0.798848 +vt 0.713082 0.760865 +vt 0.672164 0.760865 +vt 0.684794 0.795957 +vt 0.678156 0.787723 +vt 0.672164 0.760865 +vt 0.180328 0.065217 +vt 0.049180 0.130435 +vt 0.180328 0.130435 +vt 0.233607 0.065217 +vt 0.233607 0.130435 +vt 0.467213 0.260870 +vt 0.471311 0.326087 +vt 0.471311 0.260870 +vt 0.413934 0.260870 +vt 0.467213 0.250000 +vt 0.413934 0.250000 +vt 0.413934 0.326087 +vt 0.409836 0.260870 +vt 0.409836 0.326087 +vt 0.471311 0.413043 +vt 0.479508 0.434783 +vt 0.479508 0.413043 +vt 0.418033 0.434783 +vt 0.409836 0.413043 +vt 0.409836 0.434783 +vt 0.471311 0.434783 +vt 0.418033 0.413043 +vt 0.483607 0.478261 +vt 0.180328 0.141304 +vt 0.528689 0.695652 +vt 0.536885 0.608696 +vt 0.495902 0.608696 +vt 0.467213 0.326087 +vt 0.717213 0.673913 +vt 0.676230 0.663043 +vt 0.676230 0.673913 +vt 0.717213 0.619565 +vt 0.676230 0.608696 +vt 0.676230 0.619565 +vt 0.733607 0.619565 +vt 0.719262 0.608696 +vt 0.719262 0.673913 +vt 0.733607 0.663043 +vt 0.717213 0.663043 +vt 0.758197 0.673913 +vt 0.733607 0.673913 +vt 0.758197 0.619565 +vt 0.733607 0.608696 +vt 0.774590 0.619565 +vt 0.758197 0.608696 +vt 0.774590 0.663043 +vt 0.758197 0.663043 +vt 0.668033 0.722826 +vt 0.657787 0.777174 +vt 0.668033 0.777174 +vt 0.653689 0.722826 +vt 0.643443 0.777174 +vt 0.653689 0.777174 +vt 0.657787 0.722826 +vt 0.672131 0.722826 +vt 0.672131 0.777174 +vt 0.653689 0.695652 +vt 0.643443 0.722826 +vt 0.657787 0.695652 +vt 0.672131 0.695652 +vt 0.536885 0.478261 +vt 0.573770 0.489130 +vt 0.741803 0.793478 +vt 0.766393 0.858696 +vt 0.766393 0.793478 +vt 0.741803 0.858696 +vt 0.737705 0.793478 +vt 0.737705 0.858696 +vt 0.770492 0.858696 +vt 0.770492 0.793478 +vt 0.813518 0.744565 +vt 0.821721 0.766322 +vt 0.829925 0.744565 +vt 0.651639 0.853261 +vt 0.684426 0.809783 +vt 0.651639 0.809783 +vt 0.829918 0.777174 +vt 0.834016 0.766304 +vt 0.829918 0.766304 +vt 0.838115 0.766304 +vt 0.842213 0.722826 +vt 0.838115 0.722826 +vt 0.834016 0.722826 +vt 0.829918 0.722826 +vt 0.842213 0.766304 +vt 0.846311 0.722826 +vt 0.696721 0.809783 +vt 0.729508 0.853261 +vt 0.729508 0.809783 +vt 0.684426 0.864130 +vt 0.684426 0.853261 +vt 0.684426 0.864130 +vt 0.651639 0.853261 +vt 0.651639 0.864130 +vt 0.696721 0.853261 +vt 0.688525 0.809783 +vt 0.688525 0.853261 +vt 0.737705 0.853261 +vt 0.737705 0.809783 +vt 0.688525 0.809783 +vt 0.647541 0.853261 +vt 0.651639 0.809783 +vt 0.647541 0.809783 +vt 0.647541 0.853261 +vt 0.647541 0.809783 +vt 0.684426 0.853261 +vt 0.688525 0.809783 +vt 0.684426 0.809783 +vt 0.635246 0.842391 +vt 0.631148 0.847826 +vt 0.635246 0.847826 +vt 0.631148 0.842391 +vt 0.627049 0.836957 +vt 0.639344 0.836957 +vt 0.614754 0.847826 +vt 0.610656 0.842391 +vt 0.610656 0.847826 +vt 0.606557 0.836957 +vt 0.608607 0.836957 +vt 0.618852 0.836957 +vt 0.614754 0.842391 +vt 0.608607 0.826087 +vt 0.606557 0.793478 +vt 0.616803 0.826087 +vt 0.618562 0.793404 +vt 0.610656 0.820652 +vt 0.614754 0.820652 +vt 0.637295 0.826087 +vt 0.639344 0.793478 +vt 0.629098 0.826087 +vt 0.627049 0.793478 +vt 0.631148 0.820652 +vt 0.635246 0.820652 +vt 0.643443 0.951087 +vt 0.659836 0.885870 +vt 0.643443 0.907609 +vt 0.602459 0.907609 +vt 0.586066 0.972826 +vt 0.602459 0.951087 +vt 0.524591 0.978309 +vt 0.520510 0.989130 +vt 0.524591 0.999951 +vt 0.524590 0.956569 +vt 0.521705 0.959739 +vt 0.527475 0.975042 +vt 0.733772 0.750000 +vt 0.747951 0.782232 +vt 0.762129 0.750000 +vt 0.742525 0.779778 +vt 0.737925 0.772791 +vt 0.733772 0.750000 +vt 0.692623 0.798848 +vt 0.713082 0.760865 +vt 0.672164 0.760865 +vt 0.684794 0.795957 +vt 0.678156 0.787723 +vt 0.672164 0.760865 +vt 0.663934 0.266304 +vt 0.663934 0.375000 +vt 0.663934 0.179348 +vt 0.663934 0.298913 +vt 0.663934 0.255435 +vt 0.663934 0.364130 +vt 0.663934 0.168478 +vt 0.663934 0.233696 +vt 0.663934 0.331522 +vt 0.663934 0.407609 +vt 0.663934 0.201087 +vt 0.663934 0.309783 +vt 0.706967 0.500000 +vt 0.706967 0.554348 +vt 0.706967 0.608696 +vt 0.654719 0.476052 +vt 0.657787 0.478232 +vt 0.660855 0.476052 +vt 0.663924 0.461957 +vt 0.663102 0.453819 +vt 0.660855 0.447861 +vt 0.654719 0.447861 +vt 0.652472 0.453819 +vt 0.651650 0.461957 +vt 0.663934 0.152174 +vt 0.635246 0.152174 +vt 0.635246 0.000000 +vt 0.409836 0.260870 +vt 0.409836 0.402174 +vt 0.409836 0.000000 +vt 0.823770 0.010870 +vt 0.795082 0.010870 +vt 0.639344 0.434783 +vt 0.409836 0.434783 +vt 0.573770 0.565217 +vt 0.573770 0.532609 +vt 0.734852 0.762334 +vt 0.737925 0.772791 +vt 0.742525 0.779778 +vt 0.753377 0.779778 +vt 0.757977 0.772791 +vt 0.761050 0.762334 +vt 0.762129 0.717768 +vt 0.733772 0.717768 +vt 0.734852 0.762334 +vt 0.733772 0.717768 +vt 0.762129 0.717768 +vt 0.762129 0.750000 +vt 0.761050 0.762334 +vt 0.757977 0.772791 +vt 0.747951 0.782232 +vt 0.753377 0.779778 +vt 0.673721 0.775401 +vt 0.678156 0.787723 +vt 0.684794 0.795957 +vt 0.700452 0.795957 +vt 0.707090 0.787723 +vt 0.711525 0.775401 +vt 0.713082 0.717456 +vt 0.672164 0.717456 +vt 0.673721 0.775401 +vt 0.672164 0.717456 +vt 0.713082 0.717456 +vt 0.713082 0.760865 +vt 0.711525 0.775401 +vt 0.707090 0.787723 +vt 0.692623 0.798848 +vt 0.700452 0.795957 +vt 0.049180 -0.000000 +vt 0.233607 0.141304 +vt 0.536885 0.673913 +vt 0.528689 0.586957 +vt 0.500000 0.586957 +vt 0.495902 0.673913 +vt 0.500000 0.695652 +vt 0.717213 0.608696 +vt 0.731557 0.608696 +vt 0.731557 0.673913 +vt 0.774590 0.608696 +vt 0.774590 0.673913 +vt 0.643443 0.695652 +vt 0.668033 0.695652 +vt 0.827522 0.729181 +vt 0.821721 0.722809 +vt 0.815921 0.729181 +vt 0.815921 0.759950 +vt 0.827522 0.759950 +vt 0.834016 0.777174 +vt 0.846311 0.766304 +vt 0.651639 0.864130 +vt 0.688525 0.853261 +vt 0.688525 0.853261 +vt 0.629098 0.836957 +vt 0.637295 0.836957 +vt 0.616803 0.836957 +vt 0.651639 0.972826 +vt 0.659836 0.972826 +vt 0.651639 0.885870 +vt 0.594262 0.885870 +vt 0.586066 0.885870 +vt 0.594262 0.972826 +vt 0.528671 0.989130 +vt 0.527476 0.981478 +vt 0.521705 0.981478 +vt 0.521705 0.996782 +vt 0.527476 0.996782 +vt 0.520510 0.967391 +vt 0.521705 0.975042 +vt 0.524590 0.978212 +vt 0.528670 0.967391 +vt 0.527475 0.959739 +vt 0.734852 0.762334 +vt 0.737925 0.772791 +vt 0.742525 0.779778 +vt 0.753377 0.779778 +vt 0.757977 0.772791 +vt 0.761050 0.762334 +vt 0.762129 0.717768 +vt 0.733772 0.717768 +vt 0.734852 0.762334 +vt 0.733772 0.717768 +vt 0.762129 0.717768 +vt 0.762129 0.750000 +vt 0.761050 0.762334 +vt 0.757977 0.772791 +vt 0.747951 0.782232 +vt 0.753377 0.779778 +vt 0.673721 0.775401 +vt 0.678156 0.787723 +vt 0.684794 0.795957 +vt 0.700452 0.795957 +vt 0.707090 0.787723 +vt 0.711525 0.775401 +vt 0.713082 0.717456 +vt 0.672164 0.717456 +vt 0.673721 0.775401 +vt 0.672164 0.717456 +vt 0.713082 0.717456 +vt 0.713082 0.760865 +vt 0.711525 0.775401 +vt 0.707090 0.787723 +vt 0.692623 0.798848 +vt 0.700452 0.795957 +vt 0.627049 0.217391 +vt 0.627049 0.239130 +vt 0.627049 0.326087 +vt 0.627049 0.347826 +vt 0.627049 0.391304 +vt 0.627049 0.413043 +vt 0.627049 0.195652 +vt 0.627049 0.304348 +vt 0.627049 0.260870 +vt 0.627049 0.282609 +vt 0.627049 0.369565 +vt 0.627049 0.173913 +vt 0.627049 0.152174 +vt 0.639344 0.554348 +vt 0.639344 0.565217 +vt 0.639344 0.532609 +vt 0.639344 0.543478 +vt 0.639344 0.586957 +vt 0.639344 0.597826 +vt 0.639344 0.489130 +vt 0.639344 0.500000 +vt 0.639344 0.521739 +vt 0.639344 0.576087 +vt 0.639344 0.478261 +vt 0.639344 0.510870 +vt 0.639344 0.608696 +vt 0.772541 0.510870 +vt 0.772541 0.565217 +vt 0.772541 0.543478 +vt 0.772541 0.597826 +vt 0.772541 0.500000 +vt 0.772541 0.554348 +vt 0.772541 0.532609 +vt 0.772541 0.586957 +vt 0.772541 0.489130 +vt 0.772541 0.521739 +vt 0.772541 0.576087 +vt 0.772541 0.608696 +vt 0.725410 0.271739 +vt 0.737705 0.233696 +vt 0.725410 0.228261 +vt 0.663934 0.358696 +vt 0.725410 0.358696 +vt 0.663934 0.228261 +vt 0.663934 0.402174 +vt 0.663934 0.271739 +vt 0.663934 0.478261 +vt 0.725410 0.402174 +vt 0.795082 0.271739 +vt 0.737705 0.271739 +vt 0.737705 0.396739 +vt 0.737705 0.478261 +vt 0.725410 0.478261 +vt 0.737705 0.228261 +vt 0.737705 0.358696 +vt 0.795082 0.228261 +vt 0.737705 0.152174 +vt 0.795082 0.396739 +vt 0.795082 0.478261 +vt 0.737705 0.402174 +vt 0.795082 0.358696 +vt 0.639344 0.489130 +vt 0.639344 0.456522 +vt 0.409836 0.456522 +vt 0.409836 0.489130 +vt 0.639344 0.565217 +vt 0.639344 0.532609 +vt 0.409836 0.532609 +vt 0.409836 0.565217 +vt 0.741803 0.782609 +vt 0.735656 0.793478 +vt 0.741803 0.793478 +vt 0.760246 0.782609 +vt 0.754098 0.793478 +vt 0.760246 0.793478 +vt 0.725410 0.782609 +vt 0.713115 0.793478 +vt 0.725410 0.793478 +vt 0.735656 0.782609 +vt 0.729508 0.793478 +vt 0.754098 0.782609 +vt 0.747951 0.793478 +vt 0.782787 0.782609 +vt 0.770492 0.793478 +vt 0.782787 0.793478 +vt 0.770492 0.782609 +vt 0.766393 0.793478 +vt 0.729508 0.782609 +vt 0.747951 0.782609 +vt 0.766393 0.782609 +vt 0.709016 0.809783 +vt 0.715164 0.798913 +vt 0.709016 0.798913 +vt 0.684426 0.809783 +vt 0.692623 0.798913 +vt 0.684426 0.798913 +vt 0.663934 0.809783 +vt 0.670082 0.798913 +vt 0.663934 0.798913 +vt 0.715164 0.809783 +vt 0.721311 0.798913 +vt 0.721311 0.809783 +vt 0.737705 0.798913 +vt 0.692623 0.809783 +vt 0.700820 0.798913 +vt 0.670082 0.809783 +vt 0.676230 0.798913 +vt 0.647541 0.809783 +vt 0.647541 0.798913 +vt 0.700820 0.809783 +vt 0.676230 0.809783 +vt 0.561475 0.934783 +vt 0.586066 0.891304 +vt 0.561475 0.891304 +vt 0.491803 0.695652 +vt 0.467213 0.956522 +vt 0.491803 0.956522 +vt 0.561475 0.804348 +vt 0.586066 0.739130 +vt 0.561475 0.739130 +vt 0.586066 0.695652 +vt 0.561475 0.695652 +vt 0.586066 0.804348 +vt 0.561475 0.956522 +vt 0.586066 0.934783 +vt 0.545082 0.739130 +vt 0.553279 0.804348 +vt 0.553279 0.739130 +vt 0.553279 0.956522 +vt 0.561475 0.934783 +vt 0.561475 0.956522 +vt 0.545082 0.804348 +vt 0.545082 0.891304 +vt 0.553279 0.934783 +vt 0.500000 0.956522 +vt 0.536885 0.695652 +vt 0.528689 0.695652 +vt 0.545082 0.804348 +vt 0.500000 0.695652 +vt 0.459016 0.695652 +vt 0.467213 0.695652 +vt 0.545082 0.891304 +vt 0.553279 0.804348 +vt 0.553279 0.934783 +vt 0.545082 0.739130 +vt 0.536885 0.695652 +vt 0.553279 0.739130 +vt 0.536885 0.891304 +vt 0.538934 0.891304 +vt 0.717213 0.717391 +vt 0.676230 0.717391 +vt 0.731557 0.717391 +vt 0.719262 0.717391 +vt 0.758197 0.717391 +vt 0.733607 0.717391 +vt 0.774590 0.717391 +vt 0.793033 0.755435 +vt 0.799180 0.750000 +vt 0.793033 0.750000 +vt 0.780738 0.755435 +vt 0.786885 0.750000 +vt 0.780738 0.750000 +vt 0.768443 0.755435 +vt 0.774590 0.750000 +vt 0.768443 0.750000 +vt 0.805328 0.755435 +vt 0.811475 0.750000 +vt 0.805328 0.750000 +vt 0.786885 0.755435 +vt 0.774590 0.755435 +vt 0.762295 0.755435 +vt 0.762295 0.750000 +vt 0.799180 0.755435 +vt 0.606557 0.853261 +vt 0.598361 0.847826 +vt 0.598361 0.853261 +vt 0.647541 0.793478 +vt 0.627049 0.858696 +vt 0.618852 0.847826 +vt 0.618852 0.858696 +vt 0.639344 0.847826 +vt 0.647541 0.836957 +vt 0.606557 0.798913 +vt 0.598361 0.788043 +vt 0.598361 0.798913 +vt 0.598361 0.804348 +vt 0.606557 0.815217 +vt 0.606557 0.804348 +vt 0.606557 0.847826 +vt 0.598361 0.836957 +vt 0.598361 0.831522 +vt 0.606557 0.836957 +vt 0.606557 0.831522 +vt 0.598361 0.820652 +vt 0.606557 0.820652 +vt 0.598361 0.815217 +vt 0.500000 0.956522 +vt 0.643443 0.972826 +vt 0.602459 0.994565 +vt 0.643443 0.994565 +vt 0.602459 0.885870 +vt 0.643443 0.864130 +vt 0.602459 0.864130 +vt 0.602459 0.972826 +vt 0.643443 0.885870 +vt 0.586066 0.961957 +vt 0.528689 0.967391 +vt 0.586066 0.967391 +vt 0.586066 0.956522 +vt 0.528689 0.961957 +vt 0.586066 0.994565 +vt 0.528689 1.000000 +vt 0.586066 1.000000 +vt 0.586066 0.989130 +vt 0.528689 0.994565 +vt 0.586066 0.983696 +vt 0.528689 0.989130 +vt 0.586066 0.978261 +vt 0.528689 0.983696 +vt 0.586066 0.972826 +vt 0.528689 0.978261 +vt 0.528689 0.972826 +vt 0.553279 0.956522 +vt 0.741803 0.782609 +vt 0.735656 0.793478 +vt 0.741803 0.793478 +vt 0.760246 0.782609 +vt 0.754098 0.793478 +vt 0.760246 0.793478 +vt 0.725410 0.782609 +vt 0.713115 0.793478 +vt 0.725410 0.793478 +vt 0.735656 0.782609 +vt 0.729508 0.793478 +vt 0.754098 0.782609 +vt 0.747951 0.793478 +vt 0.782787 0.782609 +vt 0.770492 0.793478 +vt 0.782787 0.793478 +vt 0.770492 0.782609 +vt 0.766393 0.793478 +vt 0.729508 0.782609 +vt 0.747951 0.782609 +vt 0.766393 0.782609 +vt 0.709016 0.809783 +vt 0.715164 0.798913 +vt 0.709016 0.798913 +vt 0.684426 0.809783 +vt 0.692623 0.798913 +vt 0.684426 0.798913 +vt 0.663934 0.809783 +vt 0.670082 0.798913 +vt 0.663934 0.798913 +vt 0.715164 0.809783 +vt 0.721311 0.798913 +vt 0.721311 0.809783 +vt 0.737705 0.798913 +vt 0.692623 0.809783 +vt 0.700820 0.798913 +vt 0.670082 0.809783 +vt 0.676230 0.798913 +vt 0.647541 0.809783 +vt 0.647541 0.798913 +vt 0.700820 0.809783 +vt 0.676230 0.809783 +vt 0.772541 0.478261 +vt 0.795082 0.233696 +vt 0.795082 0.152174 +vt 0.795082 0.402174 +vt 0.713115 0.782609 +vt 0.737705 0.809783 +vt 0.586066 0.956522 +vt 0.459016 0.956522 +vt 0.811475 0.755435 +vt 0.627049 0.847826 +vt 0.647541 0.847826 +vt 0.606557 0.788043 +vt 0.528689 0.956522 +vt 0.713115 0.782609 +vt 0.737705 0.809783 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9487 0.0000 0.3162 +vn -0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.9487 0.0000 0.3162 +vn 0.0000 0.6247 0.7809 +vn 0.0000 -0.7682 -0.6402 +vn 0.8660 0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.4072 -0.9129 0.0287 +vn -0.9363 -0.3291 0.1225 +vn -0.9188 -0.3671 0.1452 +vn 0.3827 -0.9239 0.0000 +vn 0.4072 -0.9129 0.0287 +vn -0.9871 0.0000 0.1602 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.9188 -0.3671 0.1452 +vn -0.4719 -0.8817 0.0000 +vn 0.9363 -0.3291 0.1225 +vn 0.9871 0.0000 0.1602 +vn 0.4719 -0.8817 0.0000 +vn -0.9571 -0.2898 0.0000 +vn 0.9571 -0.2898 0.0000 +vn 0.0000 0.9923 0.1240 +vn 0.0000 0.9923 -0.1240 +vn 0.0000 0.9981 0.0621 +vn 0.0000 0.9981 -0.0621 +vn 0.0000 0.9412 -0.3377 +vn 0.0000 0.7555 -0.6552 +vn 0.0000 0.7555 0.6552 +vn 0.0000 0.9412 0.3377 +vn 0.0000 0.1138 -0.9935 +vn 0.0000 0.4305 -0.9026 +vn 0.0000 0.1138 0.9935 +vn 0.0000 0.4305 0.9026 +vn 0.0000 0.8121 0.5835 +vn 0.0000 0.4965 0.8681 +vn 0.0000 0.9588 -0.2840 +vn 0.0000 0.1380 -0.9904 +vn 0.0000 0.4964 -0.8681 +vn 0.0000 0.1380 0.9904 +vn 0.0000 0.9588 0.2840 +vn 0.0000 0.8121 -0.5835 +vn -0.3416 -0.3416 -0.8756 +vn 0.4148 -0.2800 -0.8658 +vn -0.4148 -0.2800 -0.8658 +vn -0.2298 0.0000 0.9732 +vn 0.2298 0.0000 0.9732 +vn -0.3711 0.1112 -0.9219 +vn 0.3416 -0.3416 -0.8756 +vn 0.3458 -0.6635 -0.6635 +vn -0.3458 -0.6635 -0.6635 +vn 0.3711 0.1112 -0.9219 +vn -0.3827 0.0000 -0.9239 +vn -0.8727 -0.2257 -0.4330 +vn 0.9239 0.0000 -0.3827 +vn 0.3827 0.0000 -0.9239 +vn -0.9607 -0.1962 -0.1962 +vn -0.9123 0.0530 -0.4062 +vn -0.8507 0.0000 0.5257 +vn 0.9607 -0.1962 -0.1962 +vn 0.9123 0.0530 -0.4062 +vn 0.8507 0.0000 0.5257 +vn 0.8727 -0.2257 -0.4330 +vn -0.9626 -0.0605 -0.2642 +vn 0.9626 -0.0605 -0.2642 +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.9732 -0.2298 +vn 0.0000 0.9732 0.2298 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.8944 -0.4472 +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.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.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +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.9239 0.0000 -0.3827 +s off +f 2/1/1 3/2/1 1/3/1 +f 6/4/2 4/5/2 2/1/2 +f 8/6/3 3/7/3 4/8/3 +f 107/9/4 1/10/4 5/11/4 +f 33/12/5 22/13/5 21/14/5 +f 40/15/5 29/16/5 28/17/5 +f 37/18/5 26/19/5 25/20/5 +f 32/21/5 33/22/5 21/14/5 +f 22/13/5 35/23/5 23/24/5 +f 29/16/5 42/25/5 30/26/5 +f 26/19/5 39/27/5 27/28/5 +f 23/24/5 36/29/5 24/30/5 +f 42/31/5 31/32/5 30/26/5 +f 27/33/5 40/34/5 28/17/5 +f 36/35/5 25/20/5 24/30/5 +f 43/36/5 32/21/5 31/32/5 +f 60/37/5 49/38/5 48/39/5 +f 67/40/5 56/41/5 55/42/5 +f 57/43/5 46/44/5 45/45/5 +f 64/46/5 53/47/5 52/48/5 +f 49/38/5 62/49/5 50/50/5 +f 56/41/5 57/43/5 45/45/5 +f 58/51/5 47/52/5 46/44/5 +f 65/53/5 54/54/5 53/47/5 +f 50/50/5 63/55/5 51/56/5 +f 59/57/5 48/39/5 47/52/5 +f 66/58/5 55/42/5 54/54/5 +f 51/59/5 64/46/5 52/48/5 +f 79/60/5 75/61/5 71/62/5 +f 82/63/1 83/64/1 81/65/1 +f 85/66/6 87/67/6 86/68/6 +f 88/69/3 83/70/3 84/71/3 +f 86/68/5 82/72/5 81/73/5 +f 87/67/2 84/74/2 82/63/2 +f 85/66/7 81/75/7 83/76/7 +f 89/77/6 91/78/6 90/79/6 +f 100/80/3 89/77/3 97/81/3 +f 110/82/2 108/83/2 106/84/2 +f 106/84/8 6/4/8 2/1/8 +f 108/85/6 5/11/6 6/4/6 +f 105/86/1 2/1/1 1/3/1 +f 111/87/5 110/88/5 109/89/5 +f 109/90/1 106/91/1 105/86/1 +f 111/92/7 105/93/7 107/9/7 +f 112/94/6 107/95/6 108/85/6 +f 103/96/6 90/79/6 91/78/6 +f 117/97/5 118/98/5 119/99/5 +f 120/100/6 104/101/6 103/96/6 +f 123/102/2 128/103/2 124/104/2 +f 125/105/7 186/106/7 188/107/7 +f 185/108/7 126/109/7 187/110/7 +f 131/111/2 136/112/2 132/113/2 +f 134/114/7 129/115/7 130/116/7 +f 156/117/7 152/118/7 139/119/7 +f 146/120/2 145/121/2 143/122/2 +f 163/123/7 167/124/7 159/125/7 +f 169/126/2 170/127/2 172/128/2 +f 182/129/7 7/130/7 181/131/7 +f 1/10/7 182/129/7 183/132/7 +f 5/11/7 183/132/7 184/133/7 +f 191/134/3 184/135/3 183/136/3 +f 190/137/6 183/138/6 182/139/6 +f 189/140/5 182/141/5 181/142/5 +f 196/143/3 188/144/3 186/145/3 +f 197/146/5 185/147/5 187/148/5 +f 198/149/7 195/150/7 197/146/7 +f 126/109/6 197/151/6 187/110/6 +f 189/152/6 7/130/6 8/6/6 +f 214/153/1 204/154/1 203/155/1 +f 192/156/7 190/137/7 189/140/7 +f 236/157/2 230/158/2 232/159/2 +f 233/160/7 231/161/7 229/162/7 +f 239/163/7 235/164/7 233/160/7 +f 236/165/2 240/166/2 234/167/2 +f 242/168/2 240/166/2 238/169/2 +f 243/170/7 237/171/7 239/163/7 +f 247/172/7 241/173/7 243/170/7 +f 242/168/2 248/174/2 244/175/2 +f 255/176/3 252/177/3 251/178/3 +f 254/179/5 249/180/5 250/181/5 +f 256/182/2 250/181/2 252/177/2 +f 253/183/7 251/178/7 249/184/7 +f 258/185/9 253/186/9 254/179/9 +f 255/176/10 258/187/10 256/182/10 +f 253/183/7 257/188/7 255/176/7 +f 254/179/2 256/182/2 258/185/2 +f 128/103/6 198/189/6 197/151/6 +f 125/105/6 198/189/6 127/190/6 +f 263/191/6 265/192/6 264/193/6 +f 266/194/3 261/195/3 262/196/3 +f 264/193/5 260/197/5 259/198/5 +f 281/199/6 279/200/6 277/201/6 +f 306/202/7 299/203/7 300/204/7 +f 287/205/6 289/206/6 288/207/6 +f 290/208/3 285/209/3 286/210/3 +f 288/207/5 284/211/5 283/212/5 +f 289/206/2 286/210/2 284/211/2 +f 287/213/7 283/214/7 285/209/7 +f 295/215/6 297/216/6 296/217/6 +f 306/202/6 303/218/6 305/219/6 +f 314/220/6 311/221/6 313/222/6 +f 298/223/3 293/224/3 294/225/3 +f 296/217/5 292/226/5 291/227/5 +f 305/219/5 301/228/5 299/203/5 +f 313/229/5 309/230/5 307/231/5 +f 304/232/3 300/204/3 302/233/3 +f 312/234/3 308/235/3 310/236/3 +f 310/236/2 311/221/2 312/234/2 +f 341/237/3 326/238/3 323/239/3 +f 337/240/3 322/241/3 326/238/3 +f 319/242/3 341/237/3 323/239/3 +f 325/243/5 339/244/5 324/245/5 +f 320/246/5 339/244/5 327/247/5 +f 321/248/5 335/249/5 325/243/5 +f 320/246/5 331/250/5 315/251/5 +f 332/252/5 321/248/5 316/253/5 +f 340/254/5 336/255/5 316/253/5 +f 333/256/3 319/242/3 317/257/3 +f 322/241/3 334/258/3 318/259/3 +f 338/260/3 342/261/3 317/257/3 +f 351/262/7 343/263/7 352/264/7 +f 353/265/2 346/266/2 354/267/2 +f 360/268/2 364/269/2 368/270/2 +f 359/271/7 357/272/7 365/273/7 +f 390/274/7 386/275/7 373/276/7 +f 380/277/2 379/278/2 377/279/2 +f 397/280/7 401/281/7 393/282/7 +f 403/283/2 404/284/2 406/285/2 +f 2/1/1 4/5/1 3/2/1 +f 6/4/2 8/6/2 4/5/2 +f 8/6/3 7/130/3 3/7/3 +f 107/9/4 105/93/4 1/10/4 +f 33/12/5 34/286/5 22/13/5 +f 40/15/5 41/287/5 29/16/5 +f 37/18/5 38/288/5 26/19/5 +f 32/21/5 44/289/5 33/22/5 +f 22/13/5 34/290/5 35/23/5 +f 29/16/5 41/291/5 42/25/5 +f 26/19/5 38/292/5 39/27/5 +f 23/24/5 35/293/5 36/29/5 +f 42/31/5 43/294/5 31/32/5 +f 27/33/5 39/295/5 40/34/5 +f 36/35/5 37/296/5 25/20/5 +f 43/36/5 44/297/5 32/21/5 +f 60/37/5 61/298/5 49/38/5 +f 67/40/5 68/299/5 56/41/5 +f 57/43/5 58/51/5 46/44/5 +f 64/46/5 65/53/5 53/47/5 +f 49/38/5 61/298/5 62/49/5 +f 56/41/5 68/299/5 57/43/5 +f 58/51/5 59/57/5 47/52/5 +f 65/53/5 66/58/5 54/54/5 +f 50/50/5 62/49/5 63/55/5 +f 59/57/5 60/37/5 48/39/5 +f 66/58/5 67/40/5 55/42/5 +f 51/59/5 63/300/5 64/46/5 +f 71/62/5 70/301/5 79/60/5 +f 70/301/5 69/302/5 79/60/5 +f 69/302/5 80/303/5 79/60/5 +f 79/60/5 78/304/5 77/305/5 +f 77/305/5 76/306/5 75/61/5 +f 75/61/5 74/307/5 71/62/5 +f 74/307/5 73/308/5 71/62/5 +f 73/308/5 72/309/5 71/62/5 +f 79/60/5 77/305/5 75/61/5 +f 82/63/1 84/74/1 83/64/1 +f 85/66/6 88/69/6 87/67/6 +f 88/69/3 85/66/3 83/70/3 +f 86/68/5 87/67/5 82/72/5 +f 87/67/2 88/69/2 84/74/2 +f 85/66/7 86/68/7 81/75/7 +f 89/77/6 92/310/6 91/78/6 +f 100/80/3 99/311/3 92/310/3 +f 92/310/3 89/77/3 100/80/3 +f 89/77/3 98/312/3 97/81/3 +f 110/82/2 112/313/2 108/83/2 +f 106/84/8 108/83/8 6/4/8 +f 108/85/6 107/95/6 5/11/6 +f 105/86/1 106/91/1 2/1/1 +f 111/87/5 112/94/5 110/88/5 +f 109/90/1 110/314/1 106/91/1 +f 111/92/7 109/315/7 105/93/7 +f 112/94/6 111/87/6 107/95/6 +f 103/96/6 104/101/6 90/79/6 +f 119/99/5 115/316/5 117/97/5 +f 115/316/5 116/317/5 117/97/5 +f 116/317/5 120/100/5 117/97/5 +f 120/100/6 116/317/6 104/101/6 +f 123/102/2 127/190/2 128/103/2 +f 125/105/7 121/318/7 186/106/7 +f 185/108/7 122/319/7 126/109/7 +f 131/111/2 135/320/2 136/112/2 +f 134/114/7 133/321/7 129/115/7 +f 156/117/7 155/322/7 154/323/7 +f 154/323/7 153/324/7 156/117/7 +f 153/324/7 152/118/7 156/117/7 +f 152/118/7 142/325/7 139/119/7 +f 142/325/7 141/326/7 139/119/7 +f 141/326/7 140/327/7 139/119/7 +f 139/119/7 138/328/7 137/329/7 +f 137/329/7 156/117/7 139/119/7 +f 145/121/2 144/330/2 143/122/2 +f 143/122/2 158/331/2 157/332/2 +f 157/332/2 151/333/2 143/122/2 +f 151/333/2 150/334/2 149/335/2 +f 143/122/2 151/333/2 147/336/2 +f 149/335/2 148/337/2 151/333/2 +f 148/337/2 147/336/2 151/333/2 +f 147/336/2 146/120/2 143/122/2 +f 159/125/7 160/338/7 161/339/7 +f 161/339/7 162/340/7 159/125/7 +f 162/340/7 163/123/7 159/125/7 +f 163/123/7 164/341/7 167/124/7 +f 164/341/7 165/342/7 167/124/7 +f 165/342/7 166/343/7 167/124/7 +f 167/124/7 173/344/7 174/345/7 +f 174/345/7 159/125/7 167/124/7 +f 170/127/2 171/346/2 172/128/2 +f 172/128/2 180/347/2 179/348/2 +f 179/348/2 178/349/2 172/128/2 +f 178/349/2 177/350/2 176/351/2 +f 172/128/2 178/349/2 168/352/2 +f 176/351/2 175/353/2 178/349/2 +f 175/353/2 168/352/2 178/349/2 +f 168/352/2 169/126/2 172/128/2 +f 182/129/7 3/354/7 7/130/7 +f 1/10/7 3/354/7 182/129/7 +f 5/11/7 1/10/7 183/132/7 +f 191/134/3 192/156/3 184/135/3 +f 190/137/6 191/134/6 183/138/6 +f 189/140/5 190/137/5 182/141/5 +f 196/143/3 198/149/3 188/144/3 +f 197/146/5 195/150/5 185/147/5 +f 198/149/7 196/143/7 195/150/7 +f 126/109/6 128/103/6 197/151/6 +f 8/6/6 6/4/6 189/152/6 +f 6/4/6 5/11/6 192/355/6 +f 5/11/6 184/133/6 192/355/6 +f 189/152/6 181/131/6 7/130/6 +f 6/4/6 192/355/6 189/152/6 +f 214/153/1 202/356/1 204/154/1 +f 204/154/1 221/357/1 203/155/1 +f 221/357/1 223/358/1 203/155/1 +f 203/155/1 201/359/1 214/153/1 +f 201/359/1 215/360/1 214/153/1 +f 192/156/7 191/134/7 190/137/7 +f 236/157/2 234/167/2 230/158/2 +f 233/160/7 235/361/7 231/161/7 +f 239/163/7 237/362/7 235/164/7 +f 236/165/2 238/363/2 240/166/2 +f 242/168/2 244/175/2 240/166/2 +f 243/170/7 241/173/7 237/171/7 +f 247/172/7 245/364/7 241/173/7 +f 242/168/2 246/365/2 248/174/2 +f 255/176/3 256/182/3 252/177/3 +f 254/179/5 253/186/5 249/180/5 +f 256/182/2 254/179/2 250/181/2 +f 253/183/7 255/176/7 251/178/7 +f 258/185/9 257/366/9 253/186/9 +f 255/176/10 257/367/10 258/187/10 +f 128/103/6 127/190/6 198/189/6 +f 125/105/6 188/107/6 198/189/6 +f 263/191/6 266/194/6 265/192/6 +f 266/194/3 263/191/3 261/195/3 +f 264/193/5 265/192/5 260/197/5 +f 277/201/6 276/368/6 275/369/6 +f 275/369/6 282/370/6 281/199/6 +f 281/199/6 280/371/6 279/200/6 +f 279/200/6 278/372/6 277/201/6 +f 277/201/6 275/369/6 281/199/6 +f 306/202/7 305/219/7 299/203/7 +f 287/205/6 290/373/6 289/206/6 +f 290/208/3 287/213/3 285/209/3 +f 288/207/5 289/206/5 284/211/5 +f 289/206/2 290/208/2 286/210/2 +f 287/213/7 288/374/7 283/214/7 +f 295/215/6 298/223/6 297/216/6 +f 306/202/6 304/375/6 303/218/6 +f 314/220/6 312/234/6 311/221/6 +f 298/223/3 295/215/3 293/224/3 +f 296/217/5 297/216/5 292/226/5 +f 305/219/5 303/376/5 301/228/5 +f 313/229/5 311/221/5 309/230/5 +f 304/232/3 306/202/3 300/204/3 +f 312/234/3 314/377/3 308/235/3 +f 310/236/2 309/230/2 311/221/2 +f 341/237/3 337/240/3 326/238/3 +f 337/240/3 330/378/3 322/241/3 +f 319/242/3 329/379/3 341/237/3 +f 325/243/5 335/249/5 339/244/5 +f 320/246/5 324/245/5 339/244/5 +f 321/248/5 328/380/5 335/249/5 +f 320/246/5 327/247/5 331/250/5 +f 332/252/5 328/380/5 321/248/5 +f 336/255/5 332/252/5 316/253/5 +f 316/253/5 315/251/5 340/254/5 +f 315/251/5 331/250/5 340/254/5 +f 333/256/3 329/379/3 319/242/3 +f 322/241/3 330/378/3 334/258/3 +f 342/261/3 333/256/3 317/257/3 +f 317/257/3 318/259/3 338/260/3 +f 318/259/3 334/258/3 338/260/3 +f 351/262/7 347/381/7 345/382/7 +f 345/382/7 343/263/7 351/262/7 +f 343/263/7 348/383/7 352/264/7 +f 353/265/2 349/384/2 344/385/2 +f 344/385/2 346/266/2 353/265/2 +f 346/266/2 350/386/2 354/267/2 +f 356/387/2 358/388/2 360/268/2 +f 360/268/2 362/389/2 364/269/2 +f 364/269/2 366/390/2 368/270/2 +f 368/270/2 370/391/2 356/387/2 +f 356/387/2 360/268/2 368/270/2 +f 357/272/7 355/392/7 369/393/7 +f 369/393/7 367/394/7 357/272/7 +f 367/394/7 365/273/7 357/272/7 +f 365/273/7 363/395/7 361/396/7 +f 361/396/7 359/271/7 365/273/7 +f 390/274/7 389/397/7 388/398/7 +f 388/398/7 387/399/7 390/274/7 +f 387/399/7 386/275/7 390/274/7 +f 386/275/7 376/400/7 373/276/7 +f 376/400/7 375/401/7 373/276/7 +f 375/401/7 374/402/7 373/276/7 +f 373/276/7 372/403/7 371/404/7 +f 371/404/7 390/274/7 373/276/7 +f 379/278/2 378/405/2 377/279/2 +f 377/279/2 392/406/2 391/407/2 +f 391/407/2 385/408/2 377/279/2 +f 385/408/2 384/409/2 383/410/2 +f 377/279/2 385/408/2 381/411/2 +f 383/410/2 382/412/2 385/408/2 +f 382/412/2 381/411/2 385/408/2 +f 381/411/2 380/277/2 377/279/2 +f 393/282/7 394/413/7 395/414/7 +f 395/414/7 396/415/7 393/282/7 +f 396/415/7 397/280/7 393/282/7 +f 397/280/7 398/416/7 401/281/7 +f 398/416/7 399/417/7 401/281/7 +f 399/417/7 400/418/7 401/281/7 +f 401/281/7 407/419/7 408/420/7 +f 408/420/7 393/282/7 401/281/7 +f 404/284/2 405/421/2 406/285/2 +f 406/285/2 414/422/2 413/423/2 +f 413/423/2 412/424/2 406/285/2 +f 412/424/2 411/425/2 410/426/2 +f 406/285/2 412/424/2 402/427/2 +f 410/426/2 409/428/2 412/424/2 +f 409/428/2 402/427/2 412/424/2 +f 402/427/2 403/283/2 406/285/2 +s 1 +f 23/24/11 12/429/7 11/430/11 +f 30/26/2 19/431/12 18/432/2 +f 27/33/1 16/433/13 15/434/1 +f 24/30/7 13/435/14 12/429/7 +f 31/32/12 20/436/15 19/431/12 +f 21/14/6 10/437/16 9/438/6 +f 28/17/13 17/439/17 16/433/13 +f 25/20/14 14/440/18 13/435/14 +f 32/21/15 9/438/6 20/436/15 +f 22/13/16 11/430/11 10/437/16 +f 29/16/17 18/432/2 17/439/17 +f 26/19/18 15/441/1 14/440/18 +f 55/42/12 44/442/15 43/443/12 +f 45/45/6 34/444/16 33/445/6 +f 52/48/13 41/446/17 40/447/13 +f 49/38/14 38/448/18 37/449/14 +f 56/41/15 33/445/6 44/442/15 +f 46/44/16 35/450/11 34/444/16 +f 53/47/17 42/451/2 41/446/17 +f 50/50/18 39/452/1 38/448/18 +f 47/52/11 36/453/7 35/450/11 +f 54/54/2 43/443/12 42/451/2 +f 51/59/1 40/447/13 39/454/1 +f 48/39/7 37/449/14 36/453/7 +f 72/455/2 61/298/12 60/37/2 +f 79/456/14 68/299/18 67/40/14 +f 69/457/1 58/51/13 57/43/1 +f 76/458/16 65/53/11 64/46/16 +f 73/459/12 62/49/15 61/298/12 +f 80/460/18 57/43/1 68/299/18 +f 70/461/13 59/57/17 58/51/13 +f 77/462/11 66/58/7 65/53/11 +f 74/463/15 63/55/6 62/49/15 +f 71/464/17 60/37/2 59/57/17 +f 78/465/7 67/40/14 66/58/7 +f 75/466/6 64/46/16 63/300/6 +f 95/467/19 113/468/20 96/469/21 +f 95/467/19 97/470/22 94/471/23 +f 91/78/24 99/472/25 96/469/21 +f 98/473/26 94/471/23 97/470/22 +f 96/469/21 100/474/27 95/467/19 +f 89/475/7 93/476/28 98/473/26 +f 118/477/29 113/468/20 114/478/29 +f 101/479/30 94/471/23 93/476/28 +f 104/480/31 93/476/28 90/481/31 +f 113/482/20 91/78/24 96/469/21 +f 102/483/32 95/467/19 94/471/23 +f 117/484/33 103/485/24 113/482/20 +f 115/486/34 102/483/32 101/479/30 +f 116/487/7 101/488/30 104/480/31 +f 119/489/32 114/478/29 102/483/32 +f 125/105/35 123/490/35 121/491/35 +f 128/103/36 122/492/36 124/493/36 +f 133/321/37 131/494/35 129/495/35 +f 136/112/38 130/496/36 132/497/36 +f 136/112/38 133/321/37 134/114/38 +f 153/498/39 145/499/40 146/500/39 +f 141/501/41 148/502/42 149/503/41 +f 156/504/43 158/505/3 143/506/43 +f 154/507/40 144/508/44 145/499/40 +f 142/509/42 147/510/6 148/502/42 +f 138/511/5 151/512/45 157/513/5 +f 139/514/45 150/515/46 151/512/45 +f 155/516/44 143/506/43 144/508/44 +f 152/517/6 146/500/39 147/510/6 +f 140/518/46 149/503/41 150/515/46 +f 176/519/47 166/520/48 165/521/47 +f 169/522/49 163/523/6 162/524/49 +f 172/525/50 160/526/51 159/527/50 +f 177/528/48 167/529/52 166/520/48 +f 178/530/52 173/531/5 167/529/52 +f 168/532/6 164/533/53 163/523/6 +f 171/534/51 161/535/54 160/526/51 +f 180/536/3 159/527/50 174/537/3 +f 175/538/53 165/521/47 164/533/53 +f 170/539/54 162/524/49 161/535/54 +f 210/540/55 207/541/56 208/542/57 +f 201/543/58 194/544/59 193/545/58 +f 206/546/60 199/547/61 200/548/55 +f 200/548/55 204/549/62 202/550/63 +f 208/542/57 205/551/64 206/546/60 +f 212/552/65 209/553/61 210/540/55 +f 213/554/66 206/555/60 200/556/55 +f 228/557/67 209/558/61 211/559/68 +f 214/153/69 217/560/70 213/554/66 +f 208/561/57 219/562/66 210/540/55 +f 219/562/66 212/552/65 210/540/55 +f 216/563/71 201/543/58 193/545/58 +f 217/560/70 208/561/57 206/555/60 +f 202/564/63 213/554/66 200/556/55 +f 221/565/72 225/566/73 223/567/74 +f 223/568/74 194/544/59 203/569/59 +f 207/570/56 225/566/73 205/571/64 +f 227/572/75 207/570/56 209/558/61 +f 222/573/75 204/574/62 199/575/61 +f 225/566/73 199/575/61 205/571/64 +f 215/360/71 218/576/76 217/560/70 +f 225/566/73 226/577/77 223/567/74 +f 235/578/78 232/159/3 231/579/3 +f 234/167/79 229/162/5 230/158/5 +f 237/580/80 236/165/78 235/581/78 +f 240/166/81 233/160/79 234/167/79 +f 244/175/82 239/163/81 240/166/81 +f 241/582/83 238/169/80 237/583/80 +f 245/584/84 242/168/83 241/582/83 +f 248/174/85 243/170/82 244/175/82 +f 282/585/86 267/586/3 274/587/86 +f 280/588/87 273/589/2 272/590/87 +f 278/591/88 271/592/5 270/593/88 +f 276/594/89 269/595/7 268/596/89 +f 281/597/2 274/587/86 273/589/2 +f 279/598/5 272/590/87 271/592/5 +f 277/599/7 270/593/88 269/600/7 +f 275/601/3 268/596/89 267/586/3 +f 341/602/27 327/603/25 339/604/27 +f 321/248/90 318/259/2 316/253/2 +f 319/242/91 315/605/7 317/257/7 +f 323/606/92 325/607/93 324/608/92 +f 325/607/93 322/241/90 321/248/90 +f 323/609/92 320/610/91 319/242/91 +f 337/611/22 339/612/27 335/613/22 +f 328/614/26 337/611/22 335/613/22 +f 328/614/26 334/615/91 330/616/26 +f 329/617/25 331/618/90 327/603/25 +f 340/619/93 333/620/90 342/621/93 +f 336/622/92 342/621/93 338/623/92 +f 332/624/91 338/623/92 334/615/91 +f 218/576/76 215/360/71 216/563/71 +f 226/577/77 224/625/74 223/567/74 +f 347/626/80 346/627/6 345/628/6 +f 349/629/94 343/630/1 344/631/1 +f 353/265/95 351/262/78 352/264/95 +f 351/262/78 350/632/80 347/626/80 +f 353/265/95 348/633/94 349/629/94 +f 357/634/96 356/635/3 355/636/3 +f 359/637/1 358/638/96 357/634/96 +f 361/639/97 360/640/1 359/641/1 +f 363/642/5 362/643/97 361/639/97 +f 365/644/98 364/645/5 363/642/5 +f 367/646/6 366/647/98 365/644/98 +f 369/648/99 368/649/6 367/646/6 +f 355/636/3 370/650/99 369/648/99 +f 216/563/71 220/651/100 218/576/76 +f 220/651/100 219/562/66 218/576/76 +f 228/557/67 226/577/77 227/572/75 +f 224/625/74 226/577/77 228/557/67 +f 387/652/39 379/653/40 380/654/39 +f 375/655/41 382/656/42 383/657/41 +f 390/658/43 392/659/3 377/660/43 +f 388/661/40 378/662/44 379/653/40 +f 376/663/42 381/664/6 382/656/42 +f 372/665/5 385/666/45 391/667/5 +f 373/668/45 384/669/46 385/666/45 +f 389/670/44 377/660/43 378/662/44 +f 386/671/6 380/654/39 381/664/6 +f 374/672/46 383/657/41 384/669/46 +f 410/673/47 400/674/48 399/675/47 +f 403/676/49 397/677/6 396/678/49 +f 406/679/50 394/680/51 393/681/50 +f 411/682/48 401/683/52 400/674/48 +f 412/684/52 407/685/5 401/683/52 +f 402/686/6 398/687/53 397/677/6 +f 405/688/51 395/689/54 394/680/51 +f 414/690/3 393/681/50 408/691/3 +f 409/692/53 399/675/47 398/687/53 +f 404/693/54 396/678/49 395/689/54 +f 23/24/11 24/30/7 12/429/7 +f 30/26/2 31/32/12 19/431/12 +f 27/33/1 28/17/13 16/433/13 +f 24/30/7 25/20/14 13/435/14 +f 31/32/12 32/21/15 20/436/15 +f 21/14/6 22/13/16 10/437/16 +f 28/17/13 29/16/17 17/439/17 +f 25/20/14 26/19/18 14/440/18 +f 32/21/15 21/14/6 9/438/6 +f 22/13/16 23/24/11 11/430/11 +f 29/16/17 30/26/2 18/432/2 +f 26/19/18 27/28/1 15/441/1 +f 55/42/12 56/41/15 44/442/15 +f 45/45/6 46/44/16 34/444/16 +f 52/48/13 53/47/17 41/446/17 +f 49/38/14 50/50/18 38/448/18 +f 56/41/15 45/45/6 33/445/6 +f 46/44/16 47/52/11 35/450/11 +f 53/47/17 54/54/2 42/451/2 +f 50/50/18 51/56/1 39/452/1 +f 47/52/11 48/39/7 36/453/7 +f 54/54/2 55/42/12 43/443/12 +f 51/59/1 52/48/13 40/447/13 +f 48/39/7 49/38/14 37/449/14 +f 72/455/2 73/459/12 61/298/12 +f 79/456/14 80/460/18 68/299/18 +f 69/457/1 70/461/13 58/51/13 +f 76/458/16 77/462/11 65/53/11 +f 73/459/12 74/463/15 62/49/15 +f 80/460/18 69/457/1 57/43/1 +f 70/461/13 71/464/17 59/57/17 +f 77/462/11 78/465/7 66/58/7 +f 74/463/15 75/694/6 63/55/6 +f 71/464/17 72/455/2 60/37/2 +f 78/465/7 79/456/14 67/40/14 +f 75/466/6 76/458/16 64/46/16 +f 95/467/19 114/478/29 113/468/20 +f 95/467/19 100/474/27 97/470/22 +f 91/78/24 92/310/2 99/472/25 +f 98/473/26 93/476/28 94/471/23 +f 96/469/21 99/472/25 100/474/27 +f 89/475/7 90/481/31 93/476/28 +f 118/477/29 117/695/33 113/468/20 +f 101/479/30 102/483/32 94/471/23 +f 104/480/31 101/488/30 93/476/28 +f 113/482/20 103/485/24 91/78/24 +f 102/483/32 114/478/29 95/467/19 +f 117/484/33 120/696/2 103/485/24 +f 115/486/34 119/489/32 102/483/32 +f 116/487/7 115/697/34 101/488/30 +f 119/489/32 118/477/29 114/478/29 +f 125/105/35 127/190/35 123/490/35 +f 128/103/36 126/109/36 122/492/36 +f 133/321/37 135/320/37 131/494/35 +f 136/112/38 134/114/38 130/496/36 +f 136/112/38 135/320/37 133/321/37 +f 153/498/39 154/507/40 145/499/40 +f 141/501/41 142/509/42 148/502/42 +f 156/504/43 137/698/3 158/505/3 +f 154/507/40 155/516/44 144/508/44 +f 142/509/42 152/517/6 147/510/6 +f 138/511/5 139/514/45 151/512/45 +f 139/514/45 140/518/46 150/515/46 +f 155/516/44 156/504/43 143/506/43 +f 152/517/6 153/498/39 146/500/39 +f 140/518/46 141/501/41 149/503/41 +f 176/519/47 177/528/48 166/520/48 +f 169/522/49 168/532/6 163/523/6 +f 172/525/50 171/534/51 160/526/51 +f 177/528/48 178/530/52 167/529/52 +f 178/530/52 179/699/5 173/531/5 +f 168/532/6 175/538/53 164/533/53 +f 171/534/51 170/539/54 161/535/54 +f 180/536/3 172/525/50 159/527/50 +f 175/538/53 176/519/47 165/521/47 +f 170/539/54 169/522/49 162/524/49 +f 210/540/55 209/553/61 207/541/56 +f 201/543/58 203/569/59 194/544/59 +f 206/546/60 205/551/64 199/547/61 +f 200/548/55 199/547/61 204/549/62 +f 208/542/57 207/541/56 205/551/64 +f 212/552/65 211/700/68 209/553/61 +f 213/554/66 217/560/70 206/555/60 +f 228/557/67 227/572/75 209/558/61 +f 214/153/69 215/360/71 217/560/70 +f 208/561/57 218/576/76 219/562/66 +f 219/562/66 220/651/100 212/552/65 +f 216/563/71 215/360/71 201/543/58 +f 217/560/70 218/576/76 208/561/57 +f 202/564/63 214/153/69 213/554/66 +f 221/565/72 222/573/75 225/566/73 +f 223/568/74 224/701/74 194/544/59 +f 207/570/56 226/577/77 225/566/73 +f 227/572/75 226/577/77 207/570/56 +f 222/573/75 221/565/72 204/574/62 +f 225/566/73 222/573/75 199/575/61 +f 235/578/78 236/157/78 232/159/3 +f 234/167/79 233/160/79 229/162/5 +f 237/580/80 238/363/80 236/165/78 +f 240/166/81 239/163/81 233/160/79 +f 244/175/82 243/170/82 239/163/81 +f 241/582/83 242/168/83 238/169/80 +f 245/584/84 246/365/84 242/168/83 +f 248/174/85 247/172/85 243/170/82 +f 282/585/86 275/601/3 267/586/3 +f 280/588/87 281/597/2 273/589/2 +f 278/591/88 279/598/5 271/592/5 +f 276/594/89 277/702/7 269/595/7 +f 281/597/2 282/585/86 274/587/86 +f 279/598/5 280/588/87 272/590/87 +f 277/599/7 278/591/88 270/593/88 +f 275/601/3 276/594/89 268/596/89 +f 341/602/27 329/617/25 327/603/25 +f 321/248/90 322/241/90 318/259/2 +f 319/242/91 320/610/91 315/605/7 +f 323/606/92 326/703/93 325/607/93 +f 325/607/93 326/703/93 322/241/90 +f 323/609/92 324/704/92 320/610/91 +f 337/611/22 341/705/27 339/612/27 +f 328/614/26 330/616/26 337/611/22 +f 328/614/26 332/624/91 334/615/91 +f 329/617/25 333/620/90 331/618/90 +f 340/619/93 331/618/90 333/620/90 +f 336/622/92 340/619/93 342/621/93 +f 332/624/91 336/622/92 338/623/92 +f 347/626/80 350/632/80 346/627/6 +f 349/629/94 348/633/94 343/630/1 +f 353/265/95 354/267/78 351/262/78 +f 351/262/78 354/267/78 350/632/80 +f 353/265/95 352/264/95 348/633/94 +f 357/634/96 358/638/96 356/635/3 +f 359/637/1 360/706/1 358/638/96 +f 361/639/97 362/643/97 360/640/1 +f 363/642/5 364/645/5 362/643/97 +f 365/644/98 366/647/98 364/645/5 +f 367/646/6 368/649/6 366/647/98 +f 369/648/99 370/650/99 368/649/6 +f 355/636/3 356/635/3 370/650/99 +f 387/652/39 388/661/40 379/653/40 +f 375/655/41 376/663/42 382/656/42 +f 390/658/43 371/707/3 392/659/3 +f 388/661/40 389/670/44 378/662/44 +f 376/663/42 386/671/6 381/664/6 +f 372/665/5 373/668/45 385/666/45 +f 373/668/45 374/672/46 384/669/46 +f 389/670/44 390/658/43 377/660/43 +f 386/671/6 387/652/39 380/654/39 +f 374/672/46 375/655/41 383/657/41 +f 410/673/47 411/682/48 400/674/48 +f 403/676/49 402/686/6 397/677/6 +f 406/679/50 405/688/51 394/680/51 +f 411/682/48 412/684/52 401/683/52 +f 412/684/52 413/708/5 407/685/5 +f 402/686/6 409/692/53 398/687/53 +f 405/688/51 404/693/54 395/689/54 +f 414/690/3 406/679/50 393/681/50 +f 409/692/53 410/673/47 399/675/47 +f 404/693/54 403/676/49 396/678/49 o Slide v -0.125500 1.625000 2.562500 v -0.312500 1.625000 2.375500 @@ -101,47 +2000,47 @@ vn -0.7071 -0.0000 0.7071 vn -0.7071 -0.0000 -0.7071 vn 0.7071 -0.0000 -0.7071 s off -f 25/1/1 28/2/1 26/3/1 -f 19/4/2 10/5/2 11/6/2 -f 18/7/2 15/8/2 17/9/2 -f 24/10/3 21/11/3 22/12/3 -f 22/13/4 28/2/4 24/10/4 -f 23/14/5 25/15/5 21/16/5 -f 24/10/2 27/17/2 23/14/2 -f 25/1/1 27/17/1 28/2/1 -f 19/4/2 20/18/2 10/5/2 -f 18/7/2 14/19/2 15/8/2 -f 24/10/3 23/14/3 21/11/3 -f 22/13/4 26/20/4 28/2/4 -f 23/14/5 27/17/5 25/15/5 -f 24/10/2 28/2/2 27/17/2 +f 439/709/101 442/710/101 440/711/101 +f 433/712/102 424/713/102 425/714/102 +f 432/715/102 429/716/102 431/717/102 +f 438/718/103 435/719/103 436/720/103 +f 436/721/104 442/710/104 438/718/104 +f 437/722/105 439/723/105 435/724/105 +f 438/718/102 441/725/102 437/722/102 +f 439/709/101 441/725/101 442/710/101 +f 433/712/102 434/726/102 424/713/102 +f 432/715/102 428/727/102 429/716/102 +f 438/718/103 437/722/103 435/719/103 +f 436/721/104 440/728/104 442/710/104 +f 437/722/105 441/725/105 439/723/105 +f 438/718/102 442/710/102 441/725/102 s 1 -f 4/21/6 12/22/7 1/23/8 -f 8/24/9 14/25/10 3/26/10 -f 6/27/11 16/28/12 7/29/13 -f 12/22/7 11/30/14 2/31/14 -f 10/32/15 9/33/16 5/34/15 -f 8/24/9 7/29/13 16/28/12 -f 14/25/10 18/35/17 13/36/18 -f 2/37/14 10/32/15 5/34/15 -f 12/38/19 20/18/20 19/4/20 -f 13/39/21 17/9/22 16/40/21 -f 12/38/19 16/40/21 9/41/19 -f 4/21/6 13/36/18 12/22/7 -f 8/24/9 15/42/9 14/25/10 -f 6/27/11 9/33/16 16/28/12 -f 2/31/14 1/23/8 12/22/7 -f 12/22/7 19/43/23 11/30/14 -f 20/44/24 9/33/16 10/32/15 -f 9/33/16 6/27/11 5/34/15 -f 17/45/25 15/42/9 16/28/12 -f 15/42/9 8/24/9 16/28/12 -f 4/21/6 3/26/10 13/36/18 -f 3/26/10 14/25/10 13/36/18 -f 2/37/14 11/46/14 10/32/15 -f 12/38/19 9/41/19 20/18/20 -f 13/39/21 18/7/22 17/9/22 -f 12/38/19 13/39/21 16/40/21 +f 418/729/106 426/730/107 415/731/108 +f 422/732/109 428/733/110 417/734/110 +f 420/735/111 430/736/112 421/737/113 +f 426/730/107 425/738/114 416/739/114 +f 424/740/115 423/741/116 419/742/115 +f 422/732/109 421/737/113 430/736/112 +f 428/733/110 432/743/117 427/744/118 +f 416/745/114 424/740/115 419/742/115 +f 426/746/119 434/726/120 433/712/120 +f 427/747/121 431/717/122 430/748/121 +f 426/746/119 430/748/121 423/749/119 +f 418/729/106 427/744/118 426/730/107 +f 422/732/109 429/750/109 428/733/110 +f 420/735/111 423/741/116 430/736/112 +f 416/739/114 415/731/108 426/730/107 +f 426/730/107 433/751/123 425/738/114 +f 434/752/124 423/741/116 424/740/115 +f 423/741/116 420/735/111 419/742/115 +f 431/753/125 429/750/109 430/736/112 +f 429/750/109 422/732/109 430/736/112 +f 418/729/106 417/734/110 427/744/118 +f 417/734/110 428/733/110 427/744/118 +f 416/745/114 425/754/114 424/740/115 +f 426/746/119 423/749/119 434/726/120 +f 427/747/121 432/715/122 431/717/122 +f 426/746/119 427/747/121 430/748/121 o Bullet v 0.000000 0.750000 -1.312500 v 0.000000 0.750000 -0.812500 @@ -268,67 +2167,67 @@ vn -0.3730 -0.3730 0.8496 vn 0.3730 0.3730 0.8496 vn 0.0000 0.5275 0.8496 s off -f 39/47/26 41/48/26 43/49/26 -f 43/49/26 29/50/26 31/51/26 -f 31/51/26 33/52/26 43/49/26 -f 33/52/26 35/53/26 43/49/26 -f 35/53/26 37/54/26 43/49/26 -f 37/54/26 39/47/26 43/49/26 +f 453/755/126 455/756/126 457/757/126 +f 457/757/126 443/758/126 445/759/126 +f 445/759/126 447/760/126 457/757/126 +f 447/760/126 449/761/126 457/757/126 +f 449/761/126 451/762/126 457/757/126 +f 451/762/126 453/755/126 457/757/126 s 1 -f 30/55/27 31/56/28 29/57/29 -f 32/58/30 33/59/31 31/56/28 -f 34/60/32 35/61/33 33/59/31 -f 36/62/34 37/63/35 35/61/33 -f 38/64/36 39/65/37 37/66/35 -f 40/67/38 41/68/39 39/65/37 -f 38/64/36 50/69/40 40/67/38 -f 42/70/41 43/71/42 41/68/39 -f 44/72/43 29/57/29 43/71/42 -f 45/73/44 55/74/45 47/75/46 -f 44/72/43 46/76/47 30/55/27 -f 30/55/27 45/73/44 32/58/30 -f 36/62/34 47/75/46 48/77/48 -f 40/67/38 51/78/49 42/70/41 -f 38/79/36 48/77/48 49/80/50 -f 44/72/43 51/78/49 52/81/51 -f 34/60/32 45/73/44 47/75/46 -f 56/82/52 55/83/45 59/84/53 -f 51/78/49 60/85/54 52/81/51 -f 50/69/40 57/86/55 58/87/56 -f 48/77/48 55/88/45 56/89/52 -f 46/76/47 53/90/57 45/73/44 -f 52/81/51 54/91/58 46/76/47 -f 51/78/49 58/92/56 59/93/53 -f 48/77/48 57/94/55 49/80/50 -f 30/55/27 32/58/30 31/56/28 -f 32/58/30 34/60/32 33/59/31 -f 34/60/32 36/62/34 35/61/33 -f 36/62/34 38/79/36 37/63/35 -f 38/64/36 40/67/38 39/65/37 -f 40/67/38 42/70/41 41/68/39 -f 38/64/36 49/95/50 50/69/40 -f 42/70/41 44/72/43 43/71/42 -f 44/72/43 30/55/27 29/57/29 -f 45/73/44 53/96/57 55/74/45 -f 44/72/43 52/81/51 46/76/47 -f 30/55/27 46/76/47 45/73/44 -f 36/62/34 34/60/32 47/75/46 -f 40/67/38 50/69/40 51/78/49 -f 38/79/36 36/62/34 48/77/48 -f 44/72/43 42/70/41 51/78/49 -f 34/60/32 32/58/30 45/73/44 -f 55/83/45 53/97/57 59/84/53 -f 53/97/57 54/98/58 59/84/53 -f 54/98/58 60/99/54 59/84/53 -f 59/84/53 58/100/56 57/101/55 -f 57/101/55 56/82/52 59/84/53 -f 51/78/49 59/102/53 60/85/54 -f 50/69/40 49/95/50 57/86/55 -f 48/77/48 47/75/46 55/88/45 -f 46/76/47 54/103/58 53/90/57 -f 52/81/51 60/104/54 54/91/58 -f 51/78/49 50/69/40 58/92/56 -f 48/77/48 56/105/52 57/94/55 +f 444/763/127 445/764/128 443/765/129 +f 446/766/130 447/767/131 445/764/128 +f 448/768/132 449/769/133 447/767/131 +f 450/770/134 451/771/135 449/769/133 +f 452/772/136 453/773/137 451/774/135 +f 454/775/138 455/776/139 453/773/137 +f 452/772/136 464/777/140 454/775/138 +f 456/778/141 457/779/142 455/776/139 +f 458/780/143 443/765/129 457/779/142 +f 459/781/144 469/782/145 461/783/146 +f 458/780/143 460/784/147 444/763/127 +f 444/763/127 459/781/144 446/766/130 +f 450/770/134 461/783/146 462/785/148 +f 454/775/138 465/786/149 456/778/141 +f 452/787/136 462/785/148 463/788/150 +f 458/780/143 465/786/149 466/789/151 +f 448/768/132 459/781/144 461/783/146 +f 470/790/152 469/791/145 473/792/153 +f 465/786/149 474/793/154 466/789/151 +f 464/777/140 471/794/155 472/795/156 +f 462/785/148 469/796/145 470/797/152 +f 460/784/147 467/798/157 459/781/144 +f 466/789/151 468/799/158 460/784/147 +f 465/786/149 472/800/156 473/801/153 +f 462/785/148 471/802/155 463/788/150 +f 444/763/127 446/766/130 445/764/128 +f 446/766/130 448/768/132 447/767/131 +f 448/768/132 450/770/134 449/769/133 +f 450/770/134 452/787/136 451/771/135 +f 452/772/136 454/775/138 453/773/137 +f 454/775/138 456/778/141 455/776/139 +f 452/772/136 463/803/150 464/777/140 +f 456/778/141 458/780/143 457/779/142 +f 458/780/143 444/763/127 443/765/129 +f 459/781/144 467/804/157 469/782/145 +f 458/780/143 466/789/151 460/784/147 +f 444/763/127 460/784/147 459/781/144 +f 450/770/134 448/768/132 461/783/146 +f 454/775/138 464/777/140 465/786/149 +f 452/787/136 450/770/134 462/785/148 +f 458/780/143 456/778/141 465/786/149 +f 448/768/132 446/766/130 459/781/144 +f 469/791/145 467/805/157 473/792/153 +f 467/805/157 468/806/158 473/792/153 +f 468/806/158 474/807/154 473/792/153 +f 473/792/153 472/808/156 471/809/155 +f 471/809/155 470/790/152 473/792/153 +f 465/786/149 473/810/153 474/793/154 +f 464/777/140 463/803/150 471/794/155 +f 462/785/148 461/783/146 469/796/145 +f 460/784/147 468/811/158 467/798/157 +f 466/789/151 474/812/154 468/799/158 +f 465/786/149 464/777/140 472/800/156 +f 462/785/148 470/813/152 471/802/155 o Magazine v 0.375000 -4.750000 -0.375000 v -0.375000 -4.750000 -0.375000 @@ -390,38 +2289,38 @@ vn 0.0000 1.0000 0.0000 vn 0.0000 0.8944 0.4472 vn 0.0000 0.0000 -1.0000 s off -f 62/106/59 63/107/59 61/108/59 -f 61/108/60 73/109/60 71/110/60 -f 67/111/61 70/112/61 65/113/61 -f 66/114/62 69/115/62 68/116/62 -f 73/109/63 72/117/63 71/110/63 -f 70/112/63 75/118/63 65/113/63 -f 72/119/62 76/120/62 71/121/62 -f 67/122/64 76/120/64 70/112/64 -f 66/114/63 78/123/63 69/115/63 -f 78/123/61 74/124/61 73/125/61 -f 69/115/64 73/126/64 68/127/64 -f 64/128/65 72/129/65 74/130/65 -f 62/106/59 64/131/59 63/107/59 -f 67/132/60 62/133/60 71/110/60 -f 62/133/60 61/108/60 71/110/60 -f 61/108/60 68/116/60 73/109/60 -f 65/113/61 64/128/61 67/111/61 -f 64/128/61 62/134/61 67/111/61 -f 68/116/62 61/108/62 63/107/62 -f 63/107/62 66/114/62 68/116/62 -f 73/109/63 74/135/63 72/117/63 -f 70/112/63 76/120/63 75/118/63 -f 72/119/62 75/118/62 76/120/62 -f 67/122/64 71/136/64 76/120/64 -f 66/114/63 77/137/63 78/123/63 -f 78/123/61 77/137/61 74/124/61 -f 69/115/64 78/123/64 73/126/64 -f 66/114/65 63/107/65 74/130/65 -f 63/107/65 64/128/65 74/130/65 -f 64/128/65 65/113/65 72/129/65 -f 65/113/65 75/138/65 72/129/65 -f 74/130/65 77/139/65 66/114/65 +f 476/814/159 477/815/159 475/816/159 +f 475/816/160 487/817/160 485/818/160 +f 481/819/161 484/820/161 479/821/161 +f 480/822/162 483/823/162 482/824/162 +f 487/817/163 486/825/163 485/818/163 +f 484/820/163 489/826/163 479/821/163 +f 486/827/162 490/828/162 485/829/162 +f 481/830/164 490/828/164 484/820/164 +f 480/822/163 492/831/163 483/823/163 +f 492/831/161 488/832/161 487/833/161 +f 483/823/164 487/834/164 482/835/164 +f 478/836/165 486/837/165 488/838/165 +f 476/814/159 478/839/159 477/815/159 +f 481/840/160 476/841/160 485/818/160 +f 476/841/160 475/816/160 485/818/160 +f 475/816/160 482/824/160 487/817/160 +f 479/821/161 478/836/161 481/819/161 +f 478/836/161 476/842/161 481/819/161 +f 482/824/162 475/816/162 477/815/162 +f 477/815/162 480/822/162 482/824/162 +f 487/817/163 488/843/163 486/825/163 +f 484/820/163 490/828/163 489/826/163 +f 486/827/162 489/826/162 490/828/162 +f 481/830/164 485/844/164 490/828/164 +f 480/822/163 491/845/163 492/831/163 +f 492/831/161 491/845/161 488/832/161 +f 483/823/164 492/831/164 487/834/164 +f 480/822/165 477/815/165 488/838/165 +f 477/815/165 478/836/165 488/838/165 +f 478/836/165 479/821/165 486/837/165 +f 479/821/165 489/846/165 486/837/165 +f 488/838/165 491/847/165 480/822/165 o StockFront v 0.750000 0.000000 -2.500000 v 0.750000 0.000000 -5.500000 @@ -588,99 +2487,99 @@ vn 0.0000 -0.7071 0.7071 vn 0.0000 -1.0000 0.0000 vn 0.0000 -0.7071 -0.7071 s off -f 80/140/66 87/141/66 84/142/66 -f 86/143/66 87/141/66 80/140/66 -f 91/144/67 90/145/67 88/146/67 -f 92/147/67 96/148/67 95/149/67 -f 84/150/68 89/151/68 83/152/68 -f 87/141/69 88/153/69 84/142/69 -f 83/152/70 90/154/70 82/155/70 -f 79/156/71 94/157/71 85/158/71 -f 82/155/72 91/159/72 81/160/72 -f 85/161/73 95/149/73 86/143/73 -f 81/162/71 92/147/71 80/163/71 -f 80/140/70 93/164/70 79/156/70 -f 86/143/74 96/148/74 87/141/74 -f 98/165/66 105/166/66 102/167/66 -f 104/168/66 105/166/66 98/165/66 -f 109/169/67 108/170/67 106/171/67 -f 110/172/67 114/173/67 113/174/67 -f 102/175/68 107/176/68 101/177/68 -f 105/166/69 106/178/69 102/167/69 -f 101/177/70 108/179/70 100/180/70 -f 97/181/71 112/182/71 103/183/71 -f 100/180/72 109/184/72 99/185/72 -f 103/186/73 113/174/73 104/168/73 -f 99/187/71 110/172/71 98/188/71 -f 98/165/70 111/189/70 97/181/70 -f 104/168/74 114/173/74 105/166/74 -f 128/190/66 124/191/66 120/192/66 -f 125/193/67 127/194/67 129/195/67 -f 84/142/66 83/152/66 82/155/66 -f 82/155/66 81/196/66 84/142/66 -f 81/196/66 80/140/66 84/142/66 -f 80/140/66 79/156/66 86/143/66 -f 79/156/66 85/158/66 86/143/66 -f 90/145/67 89/197/67 88/146/67 -f 88/146/67 96/148/67 92/147/67 -f 92/147/67 91/144/67 88/146/67 -f 94/198/67 93/199/67 95/149/67 -f 93/199/67 92/147/67 95/149/67 -f 84/150/68 88/200/68 89/151/68 -f 87/141/69 96/201/69 88/153/69 -f 83/152/70 89/151/70 90/154/70 -f 79/156/71 93/202/71 94/157/71 -f 82/155/72 90/154/72 91/159/72 -f 85/161/73 94/203/73 95/149/73 -f 81/162/71 91/144/71 92/147/71 -f 80/140/70 92/204/70 93/164/70 -f 86/143/74 95/149/74 96/148/74 -f 102/167/66 101/177/66 100/180/66 -f 100/180/66 99/205/66 102/167/66 -f 99/205/66 98/165/66 102/167/66 -f 98/165/66 97/181/66 104/168/66 -f 97/181/66 103/183/66 104/168/66 -f 108/170/67 107/206/67 106/171/67 -f 106/171/67 114/173/67 110/172/67 -f 110/172/67 109/169/67 106/171/67 -f 112/207/67 111/208/67 113/174/67 -f 111/208/67 110/172/67 113/174/67 -f 102/175/68 106/209/68 107/176/68 -f 105/166/69 114/210/69 106/178/69 -f 101/177/70 107/176/70 108/179/70 -f 97/181/71 111/211/71 112/182/71 -f 100/180/72 108/179/72 109/184/72 -f 103/186/73 112/212/73 113/174/73 -f 99/187/71 109/169/71 110/172/71 -f 98/165/70 110/213/70 111/189/70 -f 104/168/74 113/174/74 114/173/74 -f 120/192/66 118/214/66 116/215/66 -f 116/215/66 130/216/66 128/190/66 -f 128/190/66 126/217/66 124/191/66 -f 124/191/66 122/218/66 120/192/66 -f 120/192/66 116/215/66 128/190/66 -f 129/195/67 115/219/67 117/220/67 -f 117/220/67 119/221/67 129/195/67 -f 119/221/67 121/222/67 129/195/67 -f 121/222/67 123/223/67 129/195/67 -f 123/223/67 125/193/67 129/195/67 +f 494/848/166 501/849/166 498/850/166 +f 500/851/166 501/849/166 494/848/166 +f 505/852/167 504/853/167 502/854/167 +f 506/855/167 510/856/167 509/857/167 +f 498/858/168 503/859/168 497/860/168 +f 501/849/169 502/861/169 498/850/169 +f 497/860/170 504/862/170 496/863/170 +f 493/864/171 508/865/171 499/866/171 +f 496/863/172 505/867/172 495/868/172 +f 499/869/173 509/857/173 500/851/173 +f 495/870/171 506/855/171 494/871/171 +f 494/848/170 507/872/170 493/864/170 +f 500/851/174 510/856/174 501/849/174 +f 512/873/166 519/874/166 516/875/166 +f 518/876/166 519/874/166 512/873/166 +f 523/877/167 522/878/167 520/879/167 +f 524/880/167 528/881/167 527/882/167 +f 516/883/168 521/884/168 515/885/168 +f 519/874/169 520/886/169 516/875/169 +f 515/885/170 522/887/170 514/888/170 +f 511/889/171 526/890/171 517/891/171 +f 514/888/172 523/892/172 513/893/172 +f 517/894/173 527/882/173 518/876/173 +f 513/895/171 524/880/171 512/896/171 +f 512/873/170 525/897/170 511/889/170 +f 518/876/174 528/881/174 519/874/174 +f 542/898/166 538/899/166 534/900/166 +f 539/901/167 541/902/167 543/903/167 +f 498/850/166 497/860/166 496/863/166 +f 496/863/166 495/904/166 498/850/166 +f 495/904/166 494/848/166 498/850/166 +f 494/848/166 493/864/166 500/851/166 +f 493/864/166 499/866/166 500/851/166 +f 504/853/167 503/905/167 502/854/167 +f 502/854/167 510/856/167 506/855/167 +f 506/855/167 505/852/167 502/854/167 +f 508/906/167 507/907/167 509/857/167 +f 507/907/167 506/855/167 509/857/167 +f 498/858/168 502/908/168 503/859/168 +f 501/849/169 510/909/169 502/861/169 +f 497/860/170 503/859/170 504/862/170 +f 493/864/171 507/910/171 508/865/171 +f 496/863/172 504/862/172 505/867/172 +f 499/869/173 508/911/173 509/857/173 +f 495/870/171 505/852/171 506/855/171 +f 494/848/170 506/912/170 507/872/170 +f 500/851/174 509/857/174 510/856/174 +f 516/875/166 515/885/166 514/888/166 +f 514/888/166 513/913/166 516/875/166 +f 513/913/166 512/873/166 516/875/166 +f 512/873/166 511/889/166 518/876/166 +f 511/889/166 517/891/166 518/876/166 +f 522/878/167 521/914/167 520/879/167 +f 520/879/167 528/881/167 524/880/167 +f 524/880/167 523/877/167 520/879/167 +f 526/915/167 525/916/167 527/882/167 +f 525/916/167 524/880/167 527/882/167 +f 516/883/168 520/917/168 521/884/168 +f 519/874/169 528/918/169 520/886/169 +f 515/885/170 521/884/170 522/887/170 +f 511/889/171 525/919/171 526/890/171 +f 514/888/172 522/887/172 523/892/172 +f 517/894/173 526/920/173 527/882/173 +f 513/895/171 523/877/171 524/880/171 +f 512/873/170 524/921/170 525/897/170 +f 518/876/174 527/882/174 528/881/174 +f 534/900/166 532/922/166 530/923/166 +f 530/923/166 544/924/166 542/898/166 +f 542/898/166 540/925/166 538/899/166 +f 538/899/166 536/926/166 534/900/166 +f 534/900/166 530/923/166 542/898/166 +f 543/903/167 529/927/167 531/928/167 +f 531/928/167 533/929/167 543/903/167 +f 533/929/167 535/930/167 543/903/167 +f 535/930/167 537/931/167 543/903/167 +f 537/931/167 539/901/167 543/903/167 s 1 -f 116/224/69 117/225/75 115/226/69 -f 118/227/75 119/228/74 117/225/75 -f 120/229/74 121/230/73 119/231/74 -f 122/232/73 123/233/71 121/230/73 -f 124/234/71 125/235/72 123/233/71 -f 126/236/72 127/237/70 125/235/72 -f 128/238/70 129/239/68 127/237/70 -f 130/240/68 115/226/69 129/239/68 -f 116/224/69 118/227/75 117/225/75 -f 118/227/75 120/241/74 119/228/74 -f 120/229/74 122/232/73 121/230/73 -f 122/232/73 124/234/71 123/233/71 -f 124/234/71 126/236/72 125/235/72 -f 126/236/72 128/238/70 127/237/70 -f 128/238/70 130/240/68 129/239/68 -f 130/240/68 116/224/69 115/226/69 +f 530/932/169 531/933/175 529/934/169 +f 532/935/175 533/936/174 531/933/175 +f 534/937/174 535/938/173 533/939/174 +f 536/940/173 537/941/171 535/938/173 +f 538/942/171 539/943/172 537/941/171 +f 540/944/172 541/945/170 539/943/172 +f 542/946/170 543/947/168 541/945/170 +f 544/948/168 529/934/169 543/947/168 +f 530/932/169 532/935/175 531/933/175 +f 532/935/175 534/949/174 533/936/174 +f 534/937/174 536/940/173 535/938/173 +f 536/940/173 538/942/171 537/941/171 +f 538/942/171 540/944/172 539/943/172 +f 540/944/172 542/946/170 541/945/170 +f 542/946/170 544/948/168 543/947/168 +f 544/948/168 530/932/169 529/934/169 o StockBack v 0.500000 0.000000 -2.500000 v 0.500000 0.000000 -6.000000 @@ -795,58 +2694,58 @@ vn 0.0000 0.7071 -0.7071 vn 0.0000 -0.1789 -0.9839 vn 0.0000 -0.7071 0.7071 s off -f 133/242/76 131/243/76 134/244/76 -f 138/245/77 136/246/77 137/247/77 -f 131/248/78 137/247/78 134/244/78 -f 132/249/79 138/250/79 131/243/79 -f 134/244/80 136/246/80 133/242/80 -f 140/251/78 141/252/78 139/253/78 -f 147/254/80 139/253/80 141/252/80 -f 139/253/76 144/255/76 140/251/76 -f 142/256/77 145/257/77 141/252/77 -f 143/258/81 148/259/81 144/255/81 -f 148/260/82 145/257/82 146/261/82 -f 148/262/79 142/256/79 140/251/79 -f 150/263/83 151/264/83 149/265/83 -f 151/264/80 153/266/80 149/265/80 -f 150/263/79 156/267/79 152/268/79 -f 156/269/81 153/266/81 154/270/81 -f 159/271/76 157/272/76 160/273/76 -f 164/274/77 162/275/77 163/276/77 -f 157/277/78 163/276/78 160/273/78 -f 158/278/79 164/279/79 157/272/79 -f 160/273/80 162/275/80 159/271/80 -f 166/280/83 167/281/83 165/282/83 -f 167/281/80 169/283/80 165/282/80 -f 166/280/79 172/284/79 168/285/79 -f 172/286/81 169/283/81 170/287/81 -f 133/242/76 132/249/76 131/243/76 -f 138/245/77 135/288/77 136/246/77 -f 131/248/78 138/289/78 137/247/78 -f 132/249/79 135/290/79 138/250/79 -f 134/244/80 137/247/80 136/246/80 -f 140/251/78 142/256/78 141/252/78 -f 141/252/80 145/291/80 147/254/80 -f 147/254/80 143/292/80 139/253/80 -f 139/253/76 143/258/76 144/255/76 -f 142/256/77 146/261/77 145/257/77 -f 143/258/81 147/293/81 148/259/81 -f 148/260/82 147/294/82 145/257/82 -f 140/251/79 144/295/79 148/262/79 -f 148/262/79 146/296/79 142/256/79 -f 150/263/83 152/268/83 151/264/83 -f 151/264/80 154/270/80 153/266/80 -f 150/263/79 155/297/79 156/267/79 -f 156/269/81 155/298/81 153/266/81 -f 159/271/76 158/278/76 157/272/76 -f 164/274/77 161/299/77 162/275/77 -f 157/277/78 164/300/78 163/276/78 -f 158/278/79 161/301/79 164/279/79 -f 160/273/80 163/276/80 162/275/80 -f 166/280/83 168/285/83 167/281/83 -f 167/281/80 170/287/80 169/283/80 -f 166/280/79 171/302/79 172/284/79 -f 172/286/81 171/303/81 169/283/81 +f 547/950/176 545/951/176 548/952/176 +f 552/953/177 550/954/177 551/955/177 +f 545/956/178 551/955/178 548/952/178 +f 546/957/179 552/958/179 545/951/179 +f 548/952/180 550/954/180 547/950/180 +f 554/959/178 555/960/178 553/961/178 +f 561/962/180 553/961/180 555/960/180 +f 553/961/176 558/963/176 554/959/176 +f 556/964/177 559/965/177 555/960/177 +f 557/966/181 562/967/181 558/963/181 +f 562/968/182 559/965/182 560/969/182 +f 562/970/179 556/964/179 554/959/179 +f 564/971/183 565/972/183 563/973/183 +f 565/972/180 567/974/180 563/973/180 +f 564/971/179 570/975/179 566/976/179 +f 570/977/181 567/974/181 568/978/181 +f 573/979/176 571/980/176 574/981/176 +f 578/982/177 576/983/177 577/984/177 +f 571/985/178 577/984/178 574/981/178 +f 572/986/179 578/987/179 571/980/179 +f 574/981/180 576/983/180 573/979/180 +f 580/988/183 581/989/183 579/990/183 +f 581/989/180 583/991/180 579/990/180 +f 580/988/179 586/992/179 582/993/179 +f 586/994/181 583/991/181 584/995/181 +f 547/950/176 546/957/176 545/951/176 +f 552/953/177 549/996/177 550/954/177 +f 545/956/178 552/997/178 551/955/178 +f 546/957/179 549/998/179 552/958/179 +f 548/952/180 551/955/180 550/954/180 +f 554/959/178 556/964/178 555/960/178 +f 555/960/180 559/999/180 561/962/180 +f 561/962/180 557/1000/180 553/961/180 +f 553/961/176 557/966/176 558/963/176 +f 556/964/177 560/969/177 559/965/177 +f 557/966/181 561/1001/181 562/967/181 +f 562/968/182 561/1002/182 559/965/182 +f 554/959/179 558/1003/179 562/970/179 +f 562/970/179 560/1004/179 556/964/179 +f 564/971/183 566/976/183 565/972/183 +f 565/972/180 568/978/180 567/974/180 +f 564/971/179 569/1005/179 570/975/179 +f 570/977/181 569/1006/181 567/974/181 +f 573/979/176 572/986/176 571/980/176 +f 578/982/177 575/1007/177 576/983/177 +f 571/985/178 578/1008/178 577/984/178 +f 572/986/179 575/1009/179 578/987/179 +f 574/981/180 577/984/180 576/983/180 +f 580/988/183 582/993/183 581/989/183 +f 581/989/180 584/995/180 583/991/180 +f 580/988/179 585/1010/179 586/992/179 +f 586/994/181 585/1011/181 583/991/181 o Silencer v 0.000000 1.500000 6.375000 v -0.375000 1.399519 6.375000 @@ -1009,99 +2908,99 @@ vn -0.5000 0.8660 0.0000 vn 0.0000 1.0000 0.0000 vn 0.8660 -0.5000 0.0000 s off -f 177/304/84 175/305/84 183/306/84 -f 195/307/85 208/308/85 207/309/85 -f 185/310/85 198/311/85 186/312/85 -f 193/313/85 204/314/85 192/315/85 -f 190/316/85 201/317/85 189/318/85 -f 196/319/85 198/320/85 208/321/85 -f 185/310/85 199/322/85 197/323/85 -f 194/324/85 205/325/85 193/313/85 -f 191/326/85 202/327/85 190/316/85 -f 188/328/85 199/329/85 187/330/85 -f 195/307/85 206/331/85 194/324/85 -f 191/332/85 204/333/85 203/334/85 -f 189/318/85 200/335/85 188/328/85 -f 219/336/85 210/337/85 213/338/85 -f 175/305/84 174/339/84 183/306/84 -f 174/339/84 173/340/84 183/306/84 -f 173/340/84 184/341/84 183/306/84 -f 183/306/84 182/342/84 181/343/84 -f 181/343/84 180/344/84 179/345/84 -f 179/345/84 178/346/84 177/304/84 -f 177/304/84 176/347/84 175/305/84 -f 183/306/84 181/343/84 179/345/84 -f 179/345/84 177/304/84 183/306/84 -f 195/307/85 196/319/85 208/308/85 -f 185/310/85 197/348/85 198/311/85 -f 193/313/85 205/349/85 204/314/85 -f 190/316/85 202/350/85 201/317/85 -f 196/319/85 186/312/85 198/320/85 -f 185/310/85 187/330/85 199/322/85 -f 194/324/85 206/351/85 205/325/85 -f 191/326/85 203/352/85 202/327/85 -f 188/328/85 200/353/85 199/329/85 -f 195/307/85 207/354/85 206/331/85 -f 191/332/85 192/315/85 204/333/85 -f 189/318/85 201/355/85 200/335/85 -f 210/337/85 209/356/85 213/338/85 -f 209/356/85 211/357/85 213/338/85 -f 211/357/85 212/358/85 213/338/85 -f 213/338/85 214/359/85 217/360/85 -f 214/359/85 215/361/85 217/360/85 -f 215/361/85 216/362/85 217/360/85 -f 217/360/85 218/363/85 219/336/85 -f 219/336/85 220/364/85 210/337/85 -f 217/360/85 219/336/85 213/338/85 +f 591/1012/184 589/1013/184 597/1014/184 +f 609/1015/185 622/1016/185 621/1017/185 +f 599/1018/185 612/1019/185 600/1020/185 +f 607/1021/185 618/1022/185 606/1023/185 +f 604/1024/185 615/1025/185 603/1026/185 +f 610/1027/185 612/1028/185 622/1029/185 +f 599/1018/185 613/1030/185 611/1031/185 +f 608/1032/185 619/1033/185 607/1021/185 +f 605/1034/185 616/1035/185 604/1024/185 +f 602/1036/185 613/1037/185 601/1038/185 +f 609/1015/185 620/1039/185 608/1032/185 +f 605/1040/185 618/1041/185 617/1042/185 +f 603/1026/185 614/1043/185 602/1036/185 +f 633/1044/185 624/1045/185 627/1046/185 +f 589/1013/184 588/1047/184 597/1014/184 +f 588/1047/184 587/1048/184 597/1014/184 +f 587/1048/184 598/1049/184 597/1014/184 +f 597/1014/184 596/1050/184 595/1051/184 +f 595/1051/184 594/1052/184 593/1053/184 +f 593/1053/184 592/1054/184 591/1012/184 +f 591/1012/184 590/1055/184 589/1013/184 +f 597/1014/184 595/1051/184 593/1053/184 +f 593/1053/184 591/1012/184 597/1014/184 +f 609/1015/185 610/1027/185 622/1016/185 +f 599/1018/185 611/1056/185 612/1019/185 +f 607/1021/185 619/1057/185 618/1022/185 +f 604/1024/185 616/1058/185 615/1025/185 +f 610/1027/185 600/1020/185 612/1028/185 +f 599/1018/185 601/1038/185 613/1030/185 +f 608/1032/185 620/1059/185 619/1033/185 +f 605/1034/185 617/1060/185 616/1035/185 +f 602/1036/185 614/1061/185 613/1037/185 +f 609/1015/185 621/1062/185 620/1039/185 +f 605/1040/185 606/1023/185 618/1041/185 +f 603/1026/185 615/1063/185 614/1043/185 +f 624/1045/185 623/1064/185 627/1046/185 +f 623/1064/185 625/1065/185 627/1046/185 +f 625/1065/185 626/1066/185 627/1046/185 +f 627/1046/185 628/1067/185 631/1068/185 +f 628/1067/185 629/1069/185 631/1068/185 +f 629/1069/185 630/1070/185 631/1068/185 +f 631/1068/185 632/1071/185 633/1044/185 +f 633/1044/185 634/1072/185 624/1045/185 +f 631/1068/185 633/1044/185 627/1046/185 s 1 -f 179/365/86 190/316/87 178/366/87 -f 176/367/88 187/330/89 175/368/89 -f 183/369/90 194/324/91 182/370/91 -f 180/371/92 191/332/86 179/372/86 -f 177/373/93 188/328/88 176/367/88 -f 184/374/94 195/307/90 183/369/90 -f 174/375/95 186/312/96 173/376/96 -f 181/377/97 192/315/92 180/371/92 -f 178/366/87 189/318/93 177/373/93 -f 173/376/96 196/319/94 184/374/94 -f 175/368/89 185/310/95 174/375/95 -f 182/370/91 193/313/97 181/377/97 -f 200/335/91 213/378/90 212/379/91 -f 208/308/87 219/380/93 207/309/93 -f 198/311/86 209/381/92 210/382/86 -f 205/349/89 216/383/95 204/314/95 -f 201/317/90 214/384/94 213/385/90 -f 198/320/86 220/386/87 208/321/87 -f 197/323/92 211/387/97 209/388/92 -f 206/351/88 217/389/89 205/325/89 -f 202/327/94 215/390/96 214/391/94 -f 199/329/97 212/392/91 211/393/97 -f 207/354/93 218/394/88 206/331/88 -f 204/333/95 215/395/96 203/334/96 -f 179/365/86 191/326/86 190/316/87 -f 176/367/88 188/328/88 187/330/89 -f 183/369/90 195/307/90 194/324/91 -f 180/371/92 192/315/92 191/332/86 -f 177/373/93 189/318/93 188/328/88 -f 184/374/94 196/319/94 195/307/90 -f 174/375/95 185/310/95 186/312/96 -f 181/377/97 193/313/97 192/315/92 -f 178/366/87 190/316/87 189/318/93 -f 173/376/96 186/312/96 196/319/94 -f 175/368/89 187/330/89 185/310/95 -f 182/370/91 194/324/91 193/313/97 -f 200/335/91 201/355/90 213/378/90 -f 208/308/87 220/396/87 219/380/93 -f 198/311/86 197/348/92 209/381/92 -f 205/349/89 217/397/89 216/383/95 -f 201/317/90 202/350/94 214/384/94 -f 198/320/86 210/398/86 220/386/87 -f 197/323/92 199/322/97 211/387/97 -f 206/351/88 218/399/88 217/389/89 -f 202/327/94 203/352/96 215/390/96 -f 199/329/97 200/353/91 212/392/91 -f 207/354/93 219/400/93 218/394/88 -f 204/333/95 216/401/95 215/395/96 +f 593/1073/186 604/1024/187 592/1074/187 +f 590/1075/188 601/1038/189 589/1076/189 +f 597/1077/190 608/1032/191 596/1078/191 +f 594/1079/192 605/1040/186 593/1080/186 +f 591/1081/193 602/1036/188 590/1075/188 +f 598/1082/194 609/1015/190 597/1077/190 +f 588/1083/195 600/1020/196 587/1084/196 +f 595/1085/197 606/1023/192 594/1079/192 +f 592/1074/187 603/1026/193 591/1081/193 +f 587/1084/196 610/1027/194 598/1082/194 +f 589/1076/189 599/1018/195 588/1083/195 +f 596/1078/191 607/1021/197 595/1085/197 +f 614/1043/191 627/1086/190 626/1087/191 +f 622/1016/187 633/1088/193 621/1017/193 +f 612/1019/186 623/1089/192 624/1090/186 +f 619/1057/189 630/1091/195 618/1022/195 +f 615/1025/190 628/1092/194 627/1093/190 +f 612/1028/186 634/1094/187 622/1029/187 +f 611/1031/192 625/1095/197 623/1096/192 +f 620/1059/188 631/1097/189 619/1033/189 +f 616/1035/194 629/1098/196 628/1099/194 +f 613/1037/197 626/1100/191 625/1101/197 +f 621/1062/193 632/1102/188 620/1039/188 +f 618/1041/195 629/1103/196 617/1042/196 +f 593/1073/186 605/1034/186 604/1024/187 +f 590/1075/188 602/1036/188 601/1038/189 +f 597/1077/190 609/1015/190 608/1032/191 +f 594/1079/192 606/1023/192 605/1040/186 +f 591/1081/193 603/1026/193 602/1036/188 +f 598/1082/194 610/1027/194 609/1015/190 +f 588/1083/195 599/1018/195 600/1020/196 +f 595/1085/197 607/1021/197 606/1023/192 +f 592/1074/187 604/1024/187 603/1026/193 +f 587/1084/196 600/1020/196 610/1027/194 +f 589/1076/189 601/1038/189 599/1018/195 +f 596/1078/191 608/1032/191 607/1021/197 +f 614/1043/191 615/1063/190 627/1086/190 +f 622/1016/187 634/1104/187 633/1088/193 +f 612/1019/186 611/1056/192 623/1089/192 +f 619/1057/189 631/1105/189 630/1091/195 +f 615/1025/190 616/1058/194 628/1092/194 +f 612/1028/186 624/1106/186 634/1094/187 +f 611/1031/192 613/1030/197 625/1095/197 +f 620/1059/188 632/1107/188 631/1097/189 +f 616/1035/194 617/1060/196 629/1098/196 +f 613/1037/197 614/1061/191 626/1100/191 +f 621/1062/193 633/1108/193 632/1102/188 +f 618/1041/195 630/1109/195 629/1103/196 o Gun v -0.750000 0.000000 3.250000 v 0.750000 0.000000 3.250000 @@ -2326,678 +4225,678 @@ vn 0.0000 0.7071 0.7071 vn 0.0000 0.7071 -0.7071 vn 0.9239 0.0000 -0.3827 s off -f 223/402/98 222/403/98 221/404/98 -f 224/405/99 226/406/99 222/403/99 -f 223/407/100 228/408/100 224/409/100 -f 221/410/101 327/411/101 225/412/101 -f 242/413/102 253/414/102 241/415/102 -f 249/416/102 260/417/102 248/418/102 -f 246/419/102 257/420/102 245/421/102 -f 252/422/102 253/423/102 264/424/102 -f 242/413/102 255/425/102 254/426/102 -f 249/416/102 262/427/102 261/428/102 -f 246/419/102 259/429/102 258/430/102 -f 243/431/102 256/432/102 255/433/102 -f 251/434/102 262/435/102 250/436/102 -f 247/437/102 260/438/102 259/439/102 -f 245/421/102 256/440/102 244/441/102 -f 252/422/102 263/442/102 251/434/102 -f 269/443/102 280/444/102 268/445/102 -f 276/446/102 287/447/102 275/448/102 -f 266/449/102 277/450/102 265/451/102 -f 273/452/102 284/453/102 272/454/102 -f 269/443/102 282/455/102 281/456/102 -f 276/446/102 277/450/102 288/457/102 -f 267/458/102 278/459/102 266/449/102 -f 274/460/102 285/461/102 273/452/102 -f 270/462/102 283/463/102 282/455/102 -f 268/445/102 279/464/102 267/458/102 -f 275/448/102 286/465/102 274/460/102 -f 271/466/102 284/453/102 283/467/102 -f 299/468/102 289/469/102 293/470/102 -f 303/471/98 302/472/98 301/473/98 -f 307/474/103 305/475/103 306/476/103 -f 303/477/100 308/478/100 304/479/100 -f 302/480/102 306/476/102 301/481/102 -f 304/482/99 307/474/99 302/472/99 -f 301/483/104 305/475/104 303/484/104 -f 311/485/103 309/486/103 310/487/103 -f 309/486/100 312/488/100 320/489/100 -f 328/490/99 330/491/99 326/492/99 -f 226/406/105 326/492/105 222/403/105 -f 225/412/103 328/493/103 226/406/103 -f 222/403/98 325/494/98 221/404/98 -f 330/495/102 331/496/102 329/497/102 -f 326/498/98 329/499/98 325/494/98 -f 325/500/104 331/501/104 327/411/104 -f 327/502/103 332/503/103 328/493/103 -f 310/487/103 323/504/103 311/485/103 -f 337/505/102 340/506/102 336/507/102 -f 324/508/103 340/506/103 323/504/103 -f 348/509/99 343/510/99 344/511/99 -f 406/512/104 345/513/104 408/514/104 -f 405/515/104 346/516/104 342/517/104 -f 356/518/99 351/519/99 352/520/99 -f 349/521/104 354/522/104 350/523/104 -f 373/524/104 374/525/104 376/526/104 -f 363/527/99 367/528/99 371/529/99 -f 382/530/104 381/531/104 379/532/104 -f 388/533/99 398/534/99 392/535/99 -f 402/536/104 227/537/104 223/538/104 -f 221/410/104 402/536/104 223/538/104 -f 225/412/104 403/539/104 221/410/104 -f 404/540/100 411/541/100 403/542/100 -f 403/543/103 410/544/103 402/545/103 -f 402/546/102 409/547/102 401/548/102 -f 408/549/100 416/550/100 406/551/100 -f 405/552/102 417/553/102 407/554/102 -f 415/555/104 418/556/104 417/553/104 -f 417/557/103 346/516/103 407/558/103 -f 412/559/103 404/560/103 225/412/103 -f 424/561/98 434/562/98 421/563/98 -f 410/544/104 412/564/104 409/547/104 -f 450/565/99 456/566/99 452/567/99 -f 451/568/104 453/569/104 449/570/104 -f 455/571/104 459/572/104 453/569/104 -f 460/573/99 456/574/99 454/575/99 -f 460/573/99 462/576/99 458/577/99 -f 457/578/104 463/579/104 459/572/104 -f 461/580/104 467/581/104 463/579/104 -f 462/576/99 468/582/99 466/583/99 -f 472/584/100 475/585/100 471/586/100 -f 469/587/102 474/588/102 470/589/102 -f 470/589/99 476/590/99 472/584/99 -f 471/586/104 473/591/104 469/592/104 -f 473/593/106 478/594/106 474/588/106 -f 478/595/107 475/585/107 476/590/107 -f 473/591/104 475/585/104 477/596/104 -f 474/588/99 478/594/99 476/590/99 -f 348/509/103 418/597/103 347/598/103 -f 418/597/103 345/513/103 347/598/103 -f 485/599/103 483/600/103 484/601/103 -f 481/602/100 486/603/100 482/604/100 -f 480/605/102 484/601/102 479/606/102 -f 499/607/103 501/608/103 495/609/103 -f 519/610/104 526/611/104 520/612/104 -f 509/613/103 507/614/103 508/615/103 -f 505/616/100 510/617/100 506/618/100 -f 504/619/102 508/615/102 503/620/102 -f 506/618/99 509/613/99 504/619/99 -f 503/621/104 507/622/104 505/616/104 -f 517/623/103 515/624/103 516/625/103 -f 523/626/103 526/611/103 525/627/103 -f 531/628/103 534/629/103 533/630/103 -f 513/631/100 518/632/100 514/633/100 -f 512/634/102 516/625/102 511/635/102 -f 521/636/102 525/627/102 519/610/102 -f 529/637/102 533/638/102 527/639/102 -f 520/612/100 524/640/100 522/641/100 -f 528/642/100 532/643/100 530/644/100 -f 531/628/99 530/644/99 532/643/99 -f 546/645/100 561/646/100 543/647/100 -f 542/648/100 557/649/100 546/645/100 -f 561/646/100 539/650/100 543/647/100 -f 559/651/102 545/652/102 544/653/102 -f 559/651/102 540/654/102 547/655/102 -f 555/656/102 541/657/102 545/652/102 -f 551/658/102 540/654/102 535/659/102 -f 541/657/102 552/660/102 536/661/102 -f 556/662/102 560/663/102 535/659/102 -f 539/650/100 553/664/100 537/665/100 -f 554/666/100 542/648/100 538/667/100 -f 562/668/100 558/669/100 538/667/100 -f 563/670/104 565/671/104 571/672/104 -f 566/673/99 564/674/99 573/675/99 -f 588/676/99 584/677/99 580/678/99 -f 587/679/104 589/680/104 581/681/104 -f 607/682/104 608/683/104 610/684/104 -f 597/685/99 601/686/99 605/687/99 -f 616/688/104 615/689/104 613/690/104 -f 622/691/99 632/692/99 626/693/99 -f 223/402/98 224/405/98 222/403/98 -f 224/405/99 228/408/99 226/406/99 -f 223/407/100 227/537/100 228/408/100 -f 221/410/101 325/500/101 327/411/101 -f 242/413/102 254/694/102 253/414/102 -f 249/416/102 261/695/102 260/417/102 -f 246/419/102 258/696/102 257/420/102 -f 252/422/102 241/415/102 253/423/102 -f 242/413/102 243/431/102 255/425/102 -f 249/416/102 250/436/102 262/427/102 -f 246/419/102 247/697/102 259/429/102 -f 243/431/102 244/441/102 256/432/102 -f 251/434/102 263/698/102 262/435/102 -f 247/437/102 248/418/102 260/438/102 -f 245/421/102 257/699/102 256/440/102 -f 252/422/102 264/700/102 263/442/102 -f 269/443/102 281/456/102 280/444/102 -f 276/446/102 288/457/102 287/447/102 -f 266/449/102 278/459/102 277/450/102 -f 273/452/102 285/461/102 284/453/102 -f 269/443/102 270/462/102 282/455/102 -f 276/446/102 265/451/102 277/450/102 -f 267/458/102 279/464/102 278/459/102 -f 274/460/102 286/465/102 285/461/102 -f 270/462/102 271/701/102 283/463/102 -f 268/445/102 280/444/102 279/464/102 -f 275/448/102 287/447/102 286/465/102 -f 271/466/102 272/454/102 284/453/102 -f 289/469/102 290/702/102 293/470/102 -f 290/702/102 291/703/102 293/470/102 -f 291/703/102 292/704/102 293/470/102 -f 293/470/102 294/705/102 297/706/102 -f 294/705/102 295/707/102 297/706/102 -f 295/707/102 296/708/102 297/706/102 -f 297/706/102 298/709/102 299/468/102 -f 299/468/102 300/710/102 289/469/102 -f 297/706/102 299/468/102 293/470/102 -f 303/471/98 304/482/98 302/472/98 -f 307/474/103 308/478/103 305/475/103 -f 303/477/100 305/475/100 308/478/100 -f 302/480/102 307/474/102 306/476/102 -f 304/482/99 308/478/99 307/474/99 -f 301/483/104 306/476/104 305/475/104 -f 311/485/103 312/488/103 309/486/103 -f 312/488/100 319/711/100 320/489/100 -f 320/489/100 317/712/100 309/486/100 -f 317/712/100 318/713/100 309/486/100 -f 328/490/99 332/714/99 330/491/99 -f 226/406/105 328/490/105 326/492/105 -f 225/412/103 327/502/103 328/493/103 -f 222/403/98 326/498/98 325/494/98 -f 330/495/102 332/503/102 331/496/102 -f 326/498/98 330/715/98 329/499/98 -f 325/500/104 329/716/104 331/501/104 -f 327/502/103 331/496/103 332/503/103 -f 310/487/103 324/508/103 323/504/103 -f 336/507/102 335/717/102 337/505/102 -f 335/717/102 339/718/102 337/505/102 -f 339/718/102 338/719/102 337/505/102 -f 324/508/103 336/507/103 340/506/103 -f 348/509/99 347/598/99 343/510/99 -f 406/512/104 341/720/104 345/513/104 -f 405/515/104 407/558/104 346/516/104 -f 356/518/99 355/721/99 351/519/99 -f 349/521/104 353/722/104 354/522/104 -f 374/525/104 375/723/104 376/526/104 -f 376/526/104 357/724/104 358/725/104 -f 358/725/104 359/726/104 376/526/104 -f 359/726/104 360/727/104 361/728/104 -f 376/526/104 359/726/104 372/729/104 -f 361/728/104 362/730/104 359/726/104 -f 362/730/104 372/729/104 359/726/104 -f 372/729/104 373/524/104 376/526/104 -f 363/527/99 364/731/99 365/732/99 -f 365/732/99 366/733/99 363/527/99 -f 366/733/99 367/528/99 363/527/99 -f 367/528/99 368/734/99 371/529/99 -f 368/734/99 369/735/99 371/529/99 -f 369/735/99 370/736/99 371/529/99 -f 371/529/99 377/737/99 378/738/99 -f 378/738/99 363/527/99 371/529/99 -f 381/531/104 380/739/104 379/532/104 -f 379/532/104 394/740/104 393/741/104 -f 393/741/104 387/742/104 379/532/104 -f 387/742/104 386/743/104 385/744/104 -f 379/532/104 387/742/104 383/745/104 -f 385/744/104 384/746/104 387/742/104 -f 384/746/104 383/745/104 387/742/104 -f 383/745/104 382/530/104 379/532/104 -f 392/535/99 391/747/99 390/748/99 -f 390/748/99 389/749/99 392/535/99 -f 389/749/99 388/533/99 392/535/99 -f 388/533/99 395/750/99 398/534/99 -f 395/750/99 396/751/99 398/534/99 -f 396/751/99 397/752/99 398/534/99 -f 398/534/99 399/753/99 400/754/99 -f 400/754/99 392/535/99 398/534/99 -f 402/536/104 401/755/104 227/537/104 -f 221/410/104 403/539/104 402/536/104 -f 225/412/104 404/560/104 403/539/104 -f 404/540/100 412/564/100 411/541/100 -f 403/543/103 411/541/103 410/544/103 -f 402/546/102 410/544/102 409/547/102 -f 408/549/100 418/556/100 416/550/100 -f 405/552/102 415/555/102 417/553/102 -f 415/555/104 416/550/104 418/556/104 -f 417/557/103 348/509/103 346/516/103 -f 225/412/103 226/406/103 412/559/103 -f 226/406/103 228/408/103 409/756/103 -f 412/559/103 226/406/103 409/756/103 -f 228/408/103 227/537/103 409/756/103 -f 227/537/103 401/755/103 409/756/103 -f 424/561/98 422/757/98 434/562/98 -f 434/562/98 435/758/98 421/563/98 -f 421/563/98 423/759/98 424/561/98 -f 423/759/98 443/760/98 441/761/98 -f 424/561/98 423/759/98 441/761/98 -f 410/544/104 411/541/104 412/564/104 -f 450/565/99 454/575/99 456/566/99 -f 451/568/104 455/762/104 453/569/104 -f 455/571/104 457/763/104 459/572/104 -f 460/573/99 458/764/99 456/574/99 -f 460/573/99 464/765/99 462/576/99 -f 457/578/104 461/580/104 463/579/104 -f 461/580/104 465/766/104 467/581/104 -f 462/576/99 464/765/99 468/582/99 -f 472/584/100 476/590/100 475/585/100 -f 469/587/102 473/593/102 474/588/102 -f 470/589/99 474/588/99 476/590/99 -f 471/586/104 475/585/104 473/591/104 -f 473/593/106 477/767/106 478/594/106 -f 478/595/107 477/768/107 475/585/107 -f 348/509/103 417/557/103 418/597/103 -f 418/597/103 408/514/103 345/513/103 -f 485/599/103 486/603/103 483/600/103 -f 481/602/100 483/600/100 486/603/100 -f 480/605/102 485/599/102 484/601/102 -f 495/609/103 496/769/103 497/770/103 -f 497/770/103 498/771/103 499/607/103 -f 499/607/103 500/772/103 501/608/103 -f 501/608/103 502/773/103 495/609/103 -f 495/609/103 497/770/103 499/607/103 -f 519/610/104 525/627/104 526/611/104 -f 509/613/103 510/774/103 507/614/103 -f 505/616/100 507/622/100 510/617/100 -f 504/619/102 509/613/102 508/615/102 -f 506/618/99 510/617/99 509/613/99 -f 503/621/104 508/775/104 507/622/104 -f 517/623/103 518/632/103 515/624/103 -f 523/626/103 524/776/103 526/611/103 -f 531/628/103 532/643/103 534/629/103 -f 513/631/100 515/624/100 518/632/100 -f 512/634/102 517/623/102 516/625/102 -f 521/636/102 523/777/102 525/627/102 -f 529/637/102 531/628/102 533/638/102 -f 520/612/100 526/611/100 524/640/100 -f 528/642/100 534/778/100 532/643/100 -f 531/628/99 529/637/99 530/644/99 -f 546/645/100 557/649/100 561/646/100 -f 542/648/100 550/779/100 557/649/100 -f 561/646/100 549/780/100 539/650/100 -f 559/651/102 555/656/102 545/652/102 -f 559/651/102 544/653/102 540/654/102 -f 555/656/102 548/781/102 541/657/102 -f 551/658/102 547/655/102 540/654/102 -f 541/657/102 548/781/102 552/660/102 -f 560/663/102 551/658/102 535/659/102 -f 535/659/102 536/661/102 556/662/102 -f 536/661/102 552/660/102 556/662/102 -f 539/650/100 549/780/100 553/664/100 -f 554/666/100 550/779/100 542/648/100 -f 558/669/100 554/666/100 538/667/100 -f 538/667/100 537/665/100 562/668/100 -f 537/665/100 553/664/100 562/668/100 -f 565/671/104 567/782/104 571/672/104 -f 571/672/104 572/783/104 563/670/104 -f 572/783/104 568/784/104 563/670/104 -f 564/674/99 569/785/99 573/675/99 -f 573/675/99 574/786/99 566/673/99 -f 574/786/99 570/787/99 566/673/99 -f 580/678/99 578/788/99 576/789/99 -f 576/789/99 590/790/99 588/676/99 -f 588/676/99 586/791/99 584/677/99 -f 584/677/99 582/792/99 580/678/99 -f 580/678/99 576/789/99 588/676/99 -f 589/680/104 575/793/104 577/794/104 -f 577/794/104 579/795/104 589/680/104 -f 579/795/104 581/681/104 589/680/104 -f 581/681/104 583/796/104 585/797/104 -f 585/797/104 587/679/104 581/681/104 -f 608/683/104 609/798/104 610/684/104 -f 610/684/104 591/799/104 592/800/104 -f 592/800/104 593/801/104 610/684/104 -f 593/801/104 594/802/104 595/803/104 -f 610/684/104 593/801/104 606/804/104 -f 595/803/104 596/805/104 593/801/104 -f 596/805/104 606/804/104 593/801/104 -f 606/804/104 607/682/104 610/684/104 -f 597/685/99 598/806/99 599/807/99 -f 599/807/99 600/808/99 597/685/99 -f 600/808/99 601/686/99 597/685/99 -f 601/686/99 602/809/99 605/687/99 -f 602/809/99 603/810/99 605/687/99 -f 603/810/99 604/811/99 605/687/99 -f 605/687/99 611/812/99 612/813/99 -f 612/813/99 597/685/99 605/687/99 -f 615/689/104 614/814/104 613/690/104 -f 613/690/104 628/815/104 627/816/104 -f 627/816/104 621/817/104 613/690/104 -f 621/817/104 620/818/104 619/819/104 -f 613/690/104 621/817/104 617/820/104 -f 619/819/104 618/821/104 621/817/104 -f 618/821/104 617/820/104 621/817/104 -f 617/820/104 616/688/104 613/690/104 -f 626/693/99 625/822/99 624/823/99 -f 624/823/99 623/824/99 626/693/99 -f 623/824/99 622/691/99 626/693/99 -f 622/691/99 629/825/99 632/692/99 -f 629/825/99 630/826/99 632/692/99 -f 630/826/99 631/827/99 632/692/99 -f 632/692/99 633/828/99 634/829/99 -f 634/829/99 626/693/99 632/692/99 +f 637/1110/198 636/1111/198 635/1112/198 +f 638/1113/199 640/1114/199 636/1111/199 +f 637/1115/200 642/1116/200 638/1117/200 +f 635/1118/201 741/1119/201 639/1120/201 +f 656/1121/202 667/1122/202 655/1123/202 +f 663/1124/202 674/1125/202 662/1126/202 +f 660/1127/202 671/1128/202 659/1129/202 +f 666/1130/202 667/1131/202 678/1132/202 +f 656/1121/202 669/1133/202 668/1134/202 +f 663/1124/202 676/1135/202 675/1136/202 +f 660/1127/202 673/1137/202 672/1138/202 +f 657/1139/202 670/1140/202 669/1141/202 +f 665/1142/202 676/1143/202 664/1144/202 +f 661/1145/202 674/1146/202 673/1147/202 +f 659/1129/202 670/1148/202 658/1149/202 +f 666/1130/202 677/1150/202 665/1142/202 +f 683/1151/202 694/1152/202 682/1153/202 +f 690/1154/202 701/1155/202 689/1156/202 +f 680/1157/202 691/1158/202 679/1159/202 +f 687/1160/202 698/1161/202 686/1162/202 +f 683/1151/202 696/1163/202 695/1164/202 +f 690/1154/202 691/1158/202 702/1165/202 +f 681/1166/202 692/1167/202 680/1157/202 +f 688/1168/202 699/1169/202 687/1160/202 +f 684/1170/202 697/1171/202 696/1163/202 +f 682/1153/202 693/1172/202 681/1166/202 +f 689/1156/202 700/1173/202 688/1168/202 +f 685/1174/202 698/1161/202 697/1175/202 +f 713/1176/202 703/1177/202 707/1178/202 +f 717/1179/198 716/1180/198 715/1181/198 +f 721/1182/203 719/1183/203 720/1184/203 +f 717/1185/200 722/1186/200 718/1187/200 +f 716/1188/202 720/1184/202 715/1189/202 +f 718/1190/199 721/1182/199 716/1180/199 +f 715/1191/204 719/1183/204 717/1192/204 +f 725/1193/203 723/1194/203 724/1195/203 +f 723/1194/200 726/1196/200 734/1197/200 +f 742/1198/199 744/1199/199 740/1200/199 +f 640/1114/205 740/1200/205 636/1111/205 +f 639/1120/203 742/1201/203 640/1114/203 +f 636/1111/198 739/1202/198 635/1112/198 +f 744/1203/202 745/1204/202 743/1205/202 +f 740/1206/198 743/1207/198 739/1202/198 +f 739/1208/204 745/1209/204 741/1119/204 +f 741/1210/203 746/1211/203 742/1201/203 +f 724/1195/203 737/1212/203 725/1193/203 +f 751/1213/202 754/1214/202 750/1215/202 +f 738/1216/203 754/1214/203 737/1212/203 +f 762/1217/199 757/1218/199 758/1219/199 +f 820/1220/204 759/1221/204 822/1222/204 +f 819/1223/204 760/1224/204 756/1225/204 +f 770/1226/199 765/1227/199 766/1228/199 +f 763/1229/204 768/1230/204 764/1231/204 +f 787/1232/204 788/1233/204 790/1234/204 +f 777/1235/199 781/1236/199 785/1237/199 +f 796/1238/204 795/1239/204 793/1240/204 +f 802/1241/199 812/1242/199 806/1243/199 +f 816/1244/204 641/1245/204 637/1246/204 +f 635/1118/204 816/1244/204 637/1246/204 +f 639/1120/204 817/1247/204 635/1118/204 +f 818/1248/200 825/1249/200 817/1250/200 +f 817/1251/203 824/1252/203 816/1253/203 +f 816/1254/202 823/1255/202 815/1256/202 +f 822/1257/200 830/1258/200 820/1259/200 +f 819/1260/202 831/1261/202 821/1262/202 +f 829/1263/204 832/1264/204 831/1261/204 +f 831/1265/203 760/1224/203 821/1266/203 +f 826/1267/203 818/1268/203 639/1120/203 +f 838/1269/198 848/1270/198 835/1271/198 +f 824/1252/204 826/1272/204 823/1255/204 +f 864/1273/199 870/1274/199 866/1275/199 +f 865/1276/204 867/1277/204 863/1278/204 +f 869/1279/204 873/1280/204 867/1277/204 +f 874/1281/199 870/1282/199 868/1283/199 +f 874/1281/199 876/1284/199 872/1285/199 +f 871/1286/204 877/1287/204 873/1280/204 +f 875/1288/204 881/1289/204 877/1287/204 +f 876/1284/199 882/1290/199 880/1291/199 +f 886/1292/200 889/1293/200 885/1294/200 +f 883/1295/202 888/1296/202 884/1297/202 +f 884/1297/199 890/1298/199 886/1292/199 +f 885/1294/204 887/1299/204 883/1300/204 +f 887/1301/206 892/1302/206 888/1296/206 +f 892/1303/207 889/1293/207 890/1298/207 +f 887/1299/204 889/1293/204 891/1304/204 +f 888/1296/199 892/1302/199 890/1298/199 +f 762/1217/203 832/1305/203 761/1306/203 +f 832/1305/203 759/1221/203 761/1306/203 +f 899/1307/203 897/1308/203 898/1309/203 +f 895/1310/200 900/1311/200 896/1312/200 +f 894/1313/202 898/1309/202 893/1314/202 +f 913/1315/203 915/1316/203 909/1317/203 +f 933/1318/204 940/1319/204 934/1320/204 +f 923/1321/203 921/1322/203 922/1323/203 +f 919/1324/200 924/1325/200 920/1326/200 +f 918/1327/202 922/1323/202 917/1328/202 +f 920/1326/199 923/1321/199 918/1327/199 +f 917/1329/204 921/1330/204 919/1324/204 +f 931/1331/203 929/1332/203 930/1333/203 +f 937/1334/203 940/1319/203 939/1335/203 +f 945/1336/203 948/1337/203 947/1338/203 +f 927/1339/200 932/1340/200 928/1341/200 +f 926/1342/202 930/1333/202 925/1343/202 +f 935/1344/202 939/1335/202 933/1318/202 +f 943/1345/202 947/1346/202 941/1347/202 +f 934/1320/200 938/1348/200 936/1349/200 +f 942/1350/200 946/1351/200 944/1352/200 +f 945/1336/199 944/1352/199 946/1351/199 +f 960/1353/200 975/1354/200 957/1355/200 +f 956/1356/200 971/1357/200 960/1353/200 +f 975/1354/200 953/1358/200 957/1355/200 +f 973/1359/202 959/1360/202 958/1361/202 +f 973/1359/202 954/1362/202 961/1363/202 +f 969/1364/202 955/1365/202 959/1360/202 +f 965/1366/202 954/1362/202 949/1367/202 +f 955/1365/202 966/1368/202 950/1369/202 +f 970/1370/202 974/1371/202 949/1367/202 +f 953/1358/200 967/1372/200 951/1373/200 +f 968/1374/200 956/1356/200 952/1375/200 +f 976/1376/200 972/1377/200 952/1375/200 +f 977/1378/204 979/1379/204 985/1380/204 +f 980/1381/199 978/1382/199 987/1383/199 +f 1002/1384/199 998/1385/199 994/1386/199 +f 1001/1387/204 1003/1388/204 995/1389/204 +f 1021/1390/204 1022/1391/204 1024/1392/204 +f 1011/1393/199 1015/1394/199 1019/1395/199 +f 1030/1396/204 1029/1397/204 1027/1398/204 +f 1036/1399/199 1046/1400/199 1040/1401/199 +f 637/1110/198 638/1113/198 636/1111/198 +f 638/1113/199 642/1116/199 640/1114/199 +f 637/1115/200 641/1245/200 642/1116/200 +f 635/1118/201 739/1208/201 741/1119/201 +f 656/1121/202 668/1402/202 667/1122/202 +f 663/1124/202 675/1403/202 674/1125/202 +f 660/1127/202 672/1404/202 671/1128/202 +f 666/1130/202 655/1123/202 667/1131/202 +f 656/1121/202 657/1139/202 669/1133/202 +f 663/1124/202 664/1144/202 676/1135/202 +f 660/1127/202 661/1405/202 673/1137/202 +f 657/1139/202 658/1149/202 670/1140/202 +f 665/1142/202 677/1406/202 676/1143/202 +f 661/1145/202 662/1126/202 674/1146/202 +f 659/1129/202 671/1407/202 670/1148/202 +f 666/1130/202 678/1408/202 677/1150/202 +f 683/1151/202 695/1164/202 694/1152/202 +f 690/1154/202 702/1165/202 701/1155/202 +f 680/1157/202 692/1167/202 691/1158/202 +f 687/1160/202 699/1169/202 698/1161/202 +f 683/1151/202 684/1170/202 696/1163/202 +f 690/1154/202 679/1159/202 691/1158/202 +f 681/1166/202 693/1172/202 692/1167/202 +f 688/1168/202 700/1173/202 699/1169/202 +f 684/1170/202 685/1409/202 697/1171/202 +f 682/1153/202 694/1152/202 693/1172/202 +f 689/1156/202 701/1155/202 700/1173/202 +f 685/1174/202 686/1162/202 698/1161/202 +f 703/1177/202 704/1410/202 707/1178/202 +f 704/1410/202 705/1411/202 707/1178/202 +f 705/1411/202 706/1412/202 707/1178/202 +f 707/1178/202 708/1413/202 711/1414/202 +f 708/1413/202 709/1415/202 711/1414/202 +f 709/1415/202 710/1416/202 711/1414/202 +f 711/1414/202 712/1417/202 713/1176/202 +f 713/1176/202 714/1418/202 703/1177/202 +f 711/1414/202 713/1176/202 707/1178/202 +f 717/1179/198 718/1190/198 716/1180/198 +f 721/1182/203 722/1186/203 719/1183/203 +f 717/1185/200 719/1183/200 722/1186/200 +f 716/1188/202 721/1182/202 720/1184/202 +f 718/1190/199 722/1186/199 721/1182/199 +f 715/1191/204 720/1184/204 719/1183/204 +f 725/1193/203 726/1196/203 723/1194/203 +f 726/1196/200 733/1419/200 734/1197/200 +f 734/1197/200 731/1420/200 723/1194/200 +f 731/1420/200 732/1421/200 723/1194/200 +f 742/1198/199 746/1422/199 744/1199/199 +f 640/1114/205 742/1198/205 740/1200/205 +f 639/1120/203 741/1210/203 742/1201/203 +f 636/1111/198 740/1206/198 739/1202/198 +f 744/1203/202 746/1211/202 745/1204/202 +f 740/1206/198 744/1423/198 743/1207/198 +f 739/1208/204 743/1424/204 745/1209/204 +f 741/1210/203 745/1204/203 746/1211/203 +f 724/1195/203 738/1216/203 737/1212/203 +f 750/1215/202 749/1425/202 751/1213/202 +f 749/1425/202 753/1426/202 751/1213/202 +f 753/1426/202 752/1427/202 751/1213/202 +f 738/1216/203 750/1215/203 754/1214/203 +f 762/1217/199 761/1306/199 757/1218/199 +f 820/1220/204 755/1428/204 759/1221/204 +f 819/1223/204 821/1266/204 760/1224/204 +f 770/1226/199 769/1429/199 765/1227/199 +f 763/1229/204 767/1430/204 768/1230/204 +f 788/1233/204 789/1431/204 790/1234/204 +f 790/1234/204 771/1432/204 772/1433/204 +f 772/1433/204 773/1434/204 790/1234/204 +f 773/1434/204 774/1435/204 775/1436/204 +f 790/1234/204 773/1434/204 786/1437/204 +f 775/1436/204 776/1438/204 773/1434/204 +f 776/1438/204 786/1437/204 773/1434/204 +f 786/1437/204 787/1232/204 790/1234/204 +f 777/1235/199 778/1439/199 779/1440/199 +f 779/1440/199 780/1441/199 777/1235/199 +f 780/1441/199 781/1236/199 777/1235/199 +f 781/1236/199 782/1442/199 785/1237/199 +f 782/1442/199 783/1443/199 785/1237/199 +f 783/1443/199 784/1444/199 785/1237/199 +f 785/1237/199 791/1445/199 792/1446/199 +f 792/1446/199 777/1235/199 785/1237/199 +f 795/1239/204 794/1447/204 793/1240/204 +f 793/1240/204 808/1448/204 807/1449/204 +f 807/1449/204 801/1450/204 793/1240/204 +f 801/1450/204 800/1451/204 799/1452/204 +f 793/1240/204 801/1450/204 797/1453/204 +f 799/1452/204 798/1454/204 801/1450/204 +f 798/1454/204 797/1453/204 801/1450/204 +f 797/1453/204 796/1238/204 793/1240/204 +f 806/1243/199 805/1455/199 804/1456/199 +f 804/1456/199 803/1457/199 806/1243/199 +f 803/1457/199 802/1241/199 806/1243/199 +f 802/1241/199 809/1458/199 812/1242/199 +f 809/1458/199 810/1459/199 812/1242/199 +f 810/1459/199 811/1460/199 812/1242/199 +f 812/1242/199 813/1461/199 814/1462/199 +f 814/1462/199 806/1243/199 812/1242/199 +f 816/1244/204 815/1463/204 641/1245/204 +f 635/1118/204 817/1247/204 816/1244/204 +f 639/1120/204 818/1268/204 817/1247/204 +f 818/1248/200 826/1272/200 825/1249/200 +f 817/1251/203 825/1249/203 824/1252/203 +f 816/1254/202 824/1252/202 823/1255/202 +f 822/1257/200 832/1264/200 830/1258/200 +f 819/1260/202 829/1263/202 831/1261/202 +f 829/1263/204 830/1258/204 832/1264/204 +f 831/1265/203 762/1217/203 760/1224/203 +f 639/1120/203 640/1114/203 826/1267/203 +f 640/1114/203 642/1116/203 823/1464/203 +f 826/1267/203 640/1114/203 823/1464/203 +f 642/1116/203 641/1245/203 823/1464/203 +f 641/1245/203 815/1463/203 823/1464/203 +f 838/1269/198 836/1465/198 848/1270/198 +f 848/1270/198 849/1466/198 835/1271/198 +f 835/1271/198 837/1467/198 838/1269/198 +f 837/1467/198 857/1468/198 855/1469/198 +f 838/1269/198 837/1467/198 855/1469/198 +f 824/1252/204 825/1249/204 826/1272/204 +f 864/1273/199 868/1283/199 870/1274/199 +f 865/1276/204 869/1470/204 867/1277/204 +f 869/1279/204 871/1471/204 873/1280/204 +f 874/1281/199 872/1472/199 870/1282/199 +f 874/1281/199 878/1473/199 876/1284/199 +f 871/1286/204 875/1288/204 877/1287/204 +f 875/1288/204 879/1474/204 881/1289/204 +f 876/1284/199 878/1473/199 882/1290/199 +f 886/1292/200 890/1298/200 889/1293/200 +f 883/1295/202 887/1301/202 888/1296/202 +f 884/1297/199 888/1296/199 890/1298/199 +f 885/1294/204 889/1293/204 887/1299/204 +f 887/1301/206 891/1475/206 892/1302/206 +f 892/1303/207 891/1476/207 889/1293/207 +f 762/1217/203 831/1265/203 832/1305/203 +f 832/1305/203 822/1222/203 759/1221/203 +f 899/1307/203 900/1311/203 897/1308/203 +f 895/1310/200 897/1308/200 900/1311/200 +f 894/1313/202 899/1307/202 898/1309/202 +f 909/1317/203 910/1477/203 911/1478/203 +f 911/1478/203 912/1479/203 913/1315/203 +f 913/1315/203 914/1480/203 915/1316/203 +f 915/1316/203 916/1481/203 909/1317/203 +f 909/1317/203 911/1478/203 913/1315/203 +f 933/1318/204 939/1335/204 940/1319/204 +f 923/1321/203 924/1482/203 921/1322/203 +f 919/1324/200 921/1330/200 924/1325/200 +f 918/1327/202 923/1321/202 922/1323/202 +f 920/1326/199 924/1325/199 923/1321/199 +f 917/1329/204 922/1483/204 921/1330/204 +f 931/1331/203 932/1340/203 929/1332/203 +f 937/1334/203 938/1484/203 940/1319/203 +f 945/1336/203 946/1351/203 948/1337/203 +f 927/1339/200 929/1332/200 932/1340/200 +f 926/1342/202 931/1331/202 930/1333/202 +f 935/1344/202 937/1485/202 939/1335/202 +f 943/1345/202 945/1336/202 947/1346/202 +f 934/1320/200 940/1319/200 938/1348/200 +f 942/1350/200 948/1486/200 946/1351/200 +f 945/1336/199 943/1345/199 944/1352/199 +f 960/1353/200 971/1357/200 975/1354/200 +f 956/1356/200 964/1487/200 971/1357/200 +f 975/1354/200 963/1488/200 953/1358/200 +f 973/1359/202 969/1364/202 959/1360/202 +f 973/1359/202 958/1361/202 954/1362/202 +f 969/1364/202 962/1489/202 955/1365/202 +f 965/1366/202 961/1363/202 954/1362/202 +f 955/1365/202 962/1489/202 966/1368/202 +f 974/1371/202 965/1366/202 949/1367/202 +f 949/1367/202 950/1369/202 970/1370/202 +f 950/1369/202 966/1368/202 970/1370/202 +f 953/1358/200 963/1488/200 967/1372/200 +f 968/1374/200 964/1487/200 956/1356/200 +f 972/1377/200 968/1374/200 952/1375/200 +f 952/1375/200 951/1373/200 976/1376/200 +f 951/1373/200 967/1372/200 976/1376/200 +f 979/1379/204 981/1490/204 985/1380/204 +f 985/1380/204 986/1491/204 977/1378/204 +f 986/1491/204 982/1492/204 977/1378/204 +f 978/1382/199 983/1493/199 987/1383/199 +f 987/1383/199 988/1494/199 980/1381/199 +f 988/1494/199 984/1495/199 980/1381/199 +f 994/1386/199 992/1496/199 990/1497/199 +f 990/1497/199 1004/1498/199 1002/1384/199 +f 1002/1384/199 1000/1499/199 998/1385/199 +f 998/1385/199 996/1500/199 994/1386/199 +f 994/1386/199 990/1497/199 1002/1384/199 +f 1003/1388/204 989/1501/204 991/1502/204 +f 991/1502/204 993/1503/204 1003/1388/204 +f 993/1503/204 995/1389/204 1003/1388/204 +f 995/1389/204 997/1504/204 999/1505/204 +f 999/1505/204 1001/1387/204 995/1389/204 +f 1022/1391/204 1023/1506/204 1024/1392/204 +f 1024/1392/204 1005/1507/204 1006/1508/204 +f 1006/1508/204 1007/1509/204 1024/1392/204 +f 1007/1509/204 1008/1510/204 1009/1511/204 +f 1024/1392/204 1007/1509/204 1020/1512/204 +f 1009/1511/204 1010/1513/204 1007/1509/204 +f 1010/1513/204 1020/1512/204 1007/1509/204 +f 1020/1512/204 1021/1390/204 1024/1392/204 +f 1011/1393/199 1012/1514/199 1013/1515/199 +f 1013/1515/199 1014/1516/199 1011/1393/199 +f 1014/1516/199 1015/1394/199 1011/1393/199 +f 1015/1394/199 1016/1517/199 1019/1395/199 +f 1016/1517/199 1017/1518/199 1019/1395/199 +f 1017/1518/199 1018/1519/199 1019/1395/199 +f 1019/1395/199 1025/1520/199 1026/1521/199 +f 1026/1521/199 1011/1393/199 1019/1395/199 +f 1029/1397/204 1028/1522/204 1027/1398/204 +f 1027/1398/204 1042/1523/204 1041/1524/204 +f 1041/1524/204 1035/1525/204 1027/1398/204 +f 1035/1525/204 1034/1526/204 1033/1527/204 +f 1027/1398/204 1035/1525/204 1031/1528/204 +f 1033/1527/204 1032/1529/204 1035/1525/204 +f 1032/1529/204 1031/1528/204 1035/1525/204 +f 1031/1528/204 1030/1396/204 1027/1398/204 +f 1040/1401/199 1039/1530/199 1038/1531/199 +f 1038/1531/199 1037/1532/199 1040/1401/199 +f 1037/1532/199 1036/1399/199 1040/1401/199 +f 1036/1399/199 1043/1533/199 1046/1400/199 +f 1043/1533/199 1044/1534/199 1046/1400/199 +f 1044/1534/199 1045/1535/199 1046/1400/199 +f 1046/1400/199 1047/1536/199 1048/1537/199 +f 1048/1537/199 1040/1401/199 1046/1400/199 s 1 -f 232/830/104 243/431/108 231/831/108 -f 239/832/109 250/436/99 238/833/99 -f 236/834/110 247/437/98 235/835/98 -f 233/836/111 244/441/104 232/830/104 -f 240/837/112 251/434/109 239/832/109 -f 230/838/113 241/415/103 229/839/103 -f 237/840/114 248/418/110 236/834/110 -f 234/841/115 245/421/111 233/836/111 -f 229/839/103 252/422/112 240/837/112 -f 231/831/108 242/413/113 230/838/113 -f 238/833/99 249/416/114 237/840/114 -f 235/842/98 246/419/115 234/841/115 -f 264/843/112 275/448/109 263/844/109 -f 254/845/113 265/451/103 253/846/103 -f 261/847/114 272/454/110 260/848/110 -f 258/849/115 269/443/111 257/850/111 -f 253/846/103 276/446/112 264/843/112 -f 255/851/108 266/449/113 254/845/113 -f 262/852/99 273/452/114 261/847/114 -f 259/853/98 270/462/115 258/849/115 -f 256/854/104 267/458/108 255/851/108 -f 263/844/109 274/460/99 262/852/99 -f 260/848/110 271/466/98 259/855/98 -f 257/850/111 268/445/104 256/854/104 -f 281/456/109 292/856/99 280/444/99 -f 288/457/115 299/857/111 287/447/111 -f 278/459/110 289/858/98 277/450/98 -f 285/461/108 296/859/113 284/453/113 -f 282/455/112 293/860/109 281/456/109 -f 277/450/98 300/861/115 288/457/115 -f 279/464/114 290/862/110 278/459/110 -f 286/465/104 297/863/108 285/461/108 -f 283/463/103 294/864/112 282/455/112 -f 280/444/99 291/865/114 279/464/114 -f 287/447/111 298/866/104 286/465/104 -f 284/453/113 295/867/103 283/467/103 -f 315/868/116 333/869/117 334/870/118 -f 317/871/119 315/868/116 314/872/120 -f 319/873/121 311/485/122 316/874/123 -f 314/872/120 318/875/124 317/871/119 -f 320/876/125 316/874/123 315/868/116 -f 313/877/126 309/878/104 318/875/124 -f 333/869/117 338/879/118 334/870/118 -f 314/872/120 321/880/127 313/877/126 -f 313/877/126 324/881/128 310/882/128 -f 311/485/122 333/883/117 316/874/123 -f 315/868/116 322/884/129 314/872/120 -f 323/885/122 337/886/130 333/883/117 -f 322/884/129 335/887/131 321/880/127 -f 321/888/127 336/889/104 324/881/128 -f 334/870/118 339/890/129 322/884/129 -f 343/891/132 345/513/132 341/892/132 -f 342/893/133 348/509/133 344/894/133 -f 351/895/132 353/722/134 349/896/132 -f 350/897/133 356/518/135 352/898/133 -f 353/722/134 356/518/135 354/522/135 -f 365/899/136 373/900/137 366/901/137 -f 368/902/138 361/903/139 369/904/139 -f 378/905/100 376/906/140 363/907/140 -f 364/908/141 374/909/136 365/899/136 -f 367/910/103 362/911/138 368/902/138 -f 371/912/142 358/913/102 377/914/102 -f 370/915/143 359/916/142 371/912/142 -f 363/907/140 375/917/141 364/908/141 -f 366/901/137 372/918/103 367/910/103 -f 369/904/139 360/919/143 370/915/143 -f 386/920/144 396/921/145 385/922/145 -f 383/923/103 389/924/146 382/925/146 -f 380/926/147 392/927/148 379/928/148 -f 387/929/149 397/930/144 386/920/144 -f 393/931/102 398/932/149 387/929/149 -f 384/933/150 388/934/103 383/923/103 -f 381/935/151 391/936/147 380/926/147 -f 379/928/148 400/937/100 394/938/100 -f 385/922/145 395/939/150 384/933/150 -f 382/925/146 390/940/151 381/935/151 -f 427/941/152 430/942/153 428/943/154 -f 414/944/155 421/945/156 413/946/156 -f 419/947/157 426/948/158 420/949/153 -f 424/950/159 420/949/153 422/951/160 -f 425/952/161 428/943/154 426/948/158 -f 429/953/157 432/954/162 430/942/153 -f 426/955/158 433/956/163 420/957/153 -f 429/958/157 448/959/164 431/960/165 -f 437/961/166 434/562/167 433/956/163 -f 428/962/154 439/963/163 438/964/168 -f 432/954/162 439/963/163 430/942/153 -f 421/945/156 436/965/169 413/946/156 -f 428/962/154 437/961/166 426/955/158 -f 422/966/160 433/956/163 434/562/167 -f 441/967/170 445/968/171 442/969/172 -f 414/944/155 443/970/173 423/971/155 -f 427/972/152 445/968/171 446/973/174 -f 427/972/152 447/974/172 429/958/157 -f 424/975/159 442/969/172 419/976/157 -f 419/976/157 445/968/171 425/977/161 -f 435/758/169 437/961/166 438/964/168 -f 445/968/171 443/978/173 446/973/174 -f 452/567/100 455/979/175 451/980/100 -f 449/570/102 454/575/176 450/565/102 -f 456/574/175 457/981/177 455/982/175 -f 453/569/176 460/573/178 454/575/176 -f 459/572/178 464/765/179 460/573/178 -f 458/577/177 461/983/180 457/984/177 -f 462/576/180 465/985/181 461/983/180 -f 463/579/179 468/582/182 464/765/179 -f 487/986/100 502/987/183 494/988/183 -f 493/989/99 500/990/184 492/991/184 -f 491/992/102 498/993/185 490/994/185 -f 489/995/104 496/996/186 488/997/186 -f 494/988/183 501/998/99 493/989/99 -f 492/991/184 499/999/102 491/992/102 -f 490/994/185 497/1000/104 489/1001/104 -f 488/997/186 495/1002/100 487/986/100 -f 547/1003/121 561/1004/125 559/1005/125 -f 538/667/99 541/657/187 536/661/99 -f 535/1006/104 539/650/188 537/665/104 -f 545/1007/189 543/1008/190 544/1009/190 -f 542/648/187 545/1007/189 541/657/187 -f 540/1010/188 543/1011/190 539/650/188 -f 559/1012/125 557/1013/119 555/1014/119 -f 557/1013/119 548/1015/124 555/1014/119 -f 554/1016/188 548/1015/124 550/1017/124 -f 551/1018/187 549/1019/121 547/1003/121 -f 553/1020/187 560/1021/189 562/1022/189 -f 562/1022/189 556/1023/190 558/1024/190 -f 558/1024/190 552/1025/188 554/1016/188 -f 438/964/168 436/965/169 435/758/169 -f 446/973/174 443/978/173 444/1026/173 -f 566/1027/103 567/1028/177 565/1029/103 -f 563/1030/98 569/1031/191 564/1032/98 -f 571/672/175 573/675/192 572/783/192 -f 570/1033/177 571/672/175 567/1028/177 -f 568/1034/191 573/675/192 569/1031/191 -f 576/1035/100 577/1036/193 575/1037/100 -f 578/1038/193 579/1039/98 577/1036/193 -f 580/1040/98 581/1041/194 579/1042/98 -f 582/1043/194 583/1044/102 581/1041/194 -f 584/1045/102 585/1046/195 583/1044/102 -f 586/1047/195 587/1048/103 585/1046/195 -f 588/1049/103 589/1050/196 587/1048/103 -f 590/1051/196 575/1037/100 589/1050/196 -f 436/965/169 438/964/168 440/1052/197 -f 440/1052/197 438/964/168 439/963/163 -f 448/959/164 447/974/172 446/973/174 -f 444/1026/173 448/959/164 446/973/174 -f 599/1053/136 607/1054/137 600/1055/137 -f 602/1056/138 595/1057/139 603/1058/139 -f 612/1059/100 610/1060/140 597/1061/140 -f 598/1062/141 608/1063/136 599/1053/136 -f 601/1064/103 596/1065/138 602/1056/138 -f 605/1066/142 592/1067/102 611/1068/102 -f 604/1069/143 593/1070/142 605/1066/142 -f 597/1061/140 609/1071/141 598/1062/141 -f 600/1055/137 606/1072/103 601/1064/103 -f 603/1058/139 594/1073/143 604/1069/143 -f 620/1074/144 630/1075/145 619/1076/145 -f 617/1077/103 623/1078/146 616/1079/146 -f 614/1080/147 626/1081/148 613/1082/148 -f 621/1083/149 631/1084/144 620/1074/144 -f 627/1085/102 632/1086/149 621/1083/149 -f 618/1087/150 622/1088/103 617/1077/103 -f 615/1089/151 625/1090/147 614/1080/147 -f 613/1082/148 634/1091/100 628/1092/100 -f 619/1076/145 629/1093/150 618/1087/150 -f 616/1079/146 624/1094/151 615/1089/151 -f 232/830/104 244/441/104 243/431/108 -f 239/832/109 251/434/109 250/436/99 -f 236/834/110 248/418/110 247/437/98 -f 233/836/111 245/421/111 244/441/104 -f 240/837/112 252/422/112 251/434/109 -f 230/838/113 242/413/113 241/415/103 -f 237/840/114 249/416/114 248/418/110 -f 234/841/115 246/419/115 245/421/111 -f 229/839/103 241/415/103 252/422/112 -f 231/831/108 243/431/108 242/413/113 -f 238/833/99 250/436/99 249/416/114 -f 235/842/98 247/697/98 246/419/115 -f 264/843/112 276/446/112 275/448/109 -f 254/845/113 266/449/113 265/451/103 -f 261/847/114 273/452/114 272/454/110 -f 258/849/115 270/462/115 269/443/111 -f 253/846/103 265/451/103 276/446/112 -f 255/851/108 267/458/108 266/449/113 -f 262/852/99 274/460/99 273/452/114 -f 259/853/98 271/701/98 270/462/115 -f 256/854/104 268/445/104 267/458/108 -f 263/844/109 275/448/109 274/460/99 -f 260/848/110 272/454/110 271/466/98 -f 257/850/111 269/443/111 268/445/104 -f 281/456/109 293/860/109 292/856/99 -f 288/457/115 300/861/115 299/857/111 -f 278/459/110 290/862/110 289/858/98 -f 285/461/108 297/863/108 296/859/113 -f 282/455/112 294/864/112 293/860/109 -f 277/450/98 289/858/98 300/861/115 -f 279/464/114 291/865/114 290/862/110 -f 286/465/104 298/866/104 297/863/108 -f 283/463/103 295/1095/103 294/864/112 -f 280/444/99 292/856/99 291/865/114 -f 287/447/111 299/857/111 298/866/104 -f 284/453/113 296/859/113 295/867/103 -f 315/868/116 316/874/123 333/869/117 -f 317/871/119 320/876/125 315/868/116 -f 319/873/121 312/488/99 311/485/122 -f 314/872/120 313/877/126 318/875/124 -f 320/876/125 319/873/121 316/874/123 -f 313/877/126 310/882/128 309/878/104 -f 333/869/117 337/1096/130 338/879/118 -f 314/872/120 322/884/129 321/880/127 -f 313/877/126 321/888/127 324/881/128 -f 311/485/122 323/885/122 333/883/117 -f 315/868/116 334/870/118 322/884/129 -f 323/885/122 340/1097/99 337/886/130 -f 322/884/129 339/890/129 335/887/131 -f 321/888/127 335/1098/131 336/889/104 -f 334/870/118 338/879/118 339/890/129 -f 343/891/132 347/598/132 345/513/132 -f 342/893/133 346/516/133 348/509/133 -f 351/895/132 355/721/134 353/722/134 -f 350/897/133 354/522/135 356/518/135 -f 353/722/134 355/721/134 356/518/135 -f 365/899/136 374/909/136 373/900/137 -f 368/902/138 362/911/138 361/903/139 -f 378/905/100 357/1099/100 376/906/140 -f 364/908/141 375/917/141 374/909/136 -f 367/910/103 372/918/103 362/911/138 -f 371/912/142 359/916/142 358/913/102 -f 370/915/143 360/919/143 359/916/142 -f 363/907/140 376/906/140 375/917/141 -f 366/901/137 373/900/137 372/918/103 -f 369/904/139 361/903/139 360/919/143 -f 386/920/144 397/930/144 396/921/145 -f 383/923/103 388/934/103 389/924/146 -f 380/926/147 391/936/147 392/927/148 -f 387/929/149 398/932/149 397/930/144 -f 393/931/102 399/1100/102 398/932/149 -f 384/933/150 395/939/150 388/934/103 -f 381/935/151 390/940/151 391/936/147 -f 379/928/148 392/927/148 400/937/100 -f 385/922/145 396/921/145 395/939/150 -f 382/925/146 389/924/146 390/940/151 -f 427/941/152 429/953/157 430/942/153 -f 414/944/155 423/971/155 421/945/156 -f 419/947/157 425/952/161 426/948/158 -f 424/950/159 419/947/157 420/949/153 -f 425/952/161 427/941/152 428/943/154 -f 429/953/157 431/1101/165 432/954/162 -f 426/955/158 437/961/166 433/956/163 -f 429/958/157 447/974/172 448/959/164 -f 437/961/166 435/758/169 434/562/167 -f 428/962/154 430/942/153 439/963/163 -f 432/954/162 440/1052/197 439/963/163 -f 421/945/156 435/758/169 436/965/169 -f 428/962/154 438/964/168 437/961/166 -f 422/966/160 420/957/153 433/956/163 -f 441/967/170 443/978/173 445/968/171 -f 414/944/155 444/1102/173 443/970/173 -f 427/972/152 425/977/161 445/968/171 -f 427/972/152 446/973/174 447/974/172 -f 424/975/159 441/967/170 442/969/172 -f 419/976/157 442/969/172 445/968/171 -f 452/567/100 456/566/175 455/979/175 -f 449/570/102 453/569/176 454/575/176 -f 456/574/175 458/764/177 457/981/177 -f 453/569/176 459/572/178 460/573/178 -f 459/572/178 463/579/179 464/765/179 -f 458/577/177 462/576/180 461/983/180 -f 462/576/180 466/583/181 465/985/181 -f 463/579/179 467/581/182 468/582/182 -f 487/986/100 495/1002/100 502/987/183 -f 493/989/99 501/998/99 500/990/184 -f 491/992/102 499/999/102 498/993/185 -f 489/995/104 497/1103/104 496/996/186 -f 494/988/183 502/987/183 501/998/99 -f 492/991/184 500/990/184 499/999/102 -f 490/994/185 498/993/185 497/1000/104 -f 488/997/186 496/996/186 495/1002/100 -f 547/1003/121 549/1019/121 561/1004/125 -f 538/667/99 542/648/187 541/657/187 -f 535/1006/104 540/1010/188 539/650/188 -f 545/1007/189 546/1104/189 543/1008/190 -f 542/648/187 546/1104/189 545/1007/189 -f 540/1010/188 544/1105/190 543/1011/190 -f 559/1012/125 561/1106/125 557/1013/119 -f 557/1013/119 550/1017/124 548/1015/124 -f 554/1016/188 552/1025/188 548/1015/124 -f 551/1018/187 553/1020/187 549/1019/121 -f 553/1020/187 551/1018/187 560/1021/189 -f 562/1022/189 560/1021/189 556/1023/190 -f 558/1024/190 556/1023/190 552/1025/188 -f 566/1027/103 570/1033/177 567/1028/177 -f 563/1030/98 568/1034/191 569/1031/191 -f 571/672/175 574/786/175 573/675/192 -f 570/1033/177 574/786/175 571/672/175 -f 568/1034/191 572/783/192 573/675/192 -f 576/1035/100 578/1038/193 577/1036/193 -f 578/1038/193 580/1107/98 579/1039/98 -f 580/1040/98 582/1043/194 581/1041/194 -f 582/1043/194 584/1045/102 583/1044/102 -f 584/1045/102 586/1047/195 585/1046/195 -f 586/1047/195 588/1049/103 587/1048/103 -f 588/1049/103 590/1051/196 589/1050/196 -f 590/1051/196 576/1035/100 575/1037/100 -f 599/1053/136 608/1063/136 607/1054/137 -f 602/1056/138 596/1065/138 595/1057/139 -f 612/1059/100 591/1108/100 610/1060/140 -f 598/1062/141 609/1071/141 608/1063/136 -f 601/1064/103 606/1072/103 596/1065/138 -f 605/1066/142 593/1070/142 592/1067/102 -f 604/1069/143 594/1073/143 593/1070/142 -f 597/1061/140 610/1060/140 609/1071/141 -f 600/1055/137 607/1054/137 606/1072/103 -f 603/1058/139 595/1057/139 594/1073/143 -f 620/1074/144 631/1084/144 630/1075/145 -f 617/1077/103 622/1088/103 623/1078/146 -f 614/1080/147 625/1090/147 626/1081/148 -f 621/1083/149 632/1086/149 631/1084/144 -f 627/1085/102 633/1109/102 632/1086/149 -f 618/1087/150 629/1093/150 622/1088/103 -f 615/1089/151 624/1094/151 625/1090/147 -f 613/1082/148 626/1081/148 634/1091/100 -f 619/1076/145 630/1075/145 629/1093/150 -f 616/1079/146 623/1078/146 624/1094/151 +f 646/1538/204 657/1139/208 645/1539/208 +f 653/1540/209 664/1144/199 652/1541/199 +f 650/1542/210 661/1145/198 649/1543/198 +f 647/1544/211 658/1149/204 646/1538/204 +f 654/1545/212 665/1142/209 653/1540/209 +f 644/1546/213 655/1123/203 643/1547/203 +f 651/1548/214 662/1126/210 650/1542/210 +f 648/1549/215 659/1129/211 647/1544/211 +f 643/1547/203 666/1130/212 654/1545/212 +f 645/1539/208 656/1121/213 644/1546/213 +f 652/1541/199 663/1124/214 651/1548/214 +f 649/1550/198 660/1127/215 648/1549/215 +f 678/1551/212 689/1156/209 677/1552/209 +f 668/1553/213 679/1159/203 667/1554/203 +f 675/1555/214 686/1162/210 674/1556/210 +f 672/1557/215 683/1151/211 671/1558/211 +f 667/1554/203 690/1154/212 678/1551/212 +f 669/1559/208 680/1157/213 668/1553/213 +f 676/1560/199 687/1160/214 675/1555/214 +f 673/1561/198 684/1170/215 672/1557/215 +f 670/1562/204 681/1166/208 669/1559/208 +f 677/1552/209 688/1168/199 676/1560/199 +f 674/1556/210 685/1174/198 673/1563/198 +f 671/1558/211 682/1153/204 670/1562/204 +f 695/1164/209 706/1564/199 694/1152/199 +f 702/1165/215 713/1565/211 701/1155/211 +f 692/1167/210 703/1566/198 691/1158/198 +f 699/1169/208 710/1567/213 698/1161/213 +f 696/1163/212 707/1568/209 695/1164/209 +f 691/1158/198 714/1569/215 702/1165/215 +f 693/1172/214 704/1570/210 692/1167/210 +f 700/1173/204 711/1571/208 699/1169/208 +f 697/1171/203 708/1572/212 696/1163/212 +f 694/1152/199 705/1573/214 693/1172/214 +f 701/1155/211 712/1574/204 700/1173/204 +f 698/1161/213 709/1575/203 697/1175/203 +f 729/1576/216 747/1577/217 748/1578/218 +f 731/1579/219 729/1576/216 728/1580/220 +f 733/1581/221 725/1193/222 730/1582/223 +f 728/1580/220 732/1583/224 731/1579/219 +f 734/1584/225 730/1582/223 729/1576/216 +f 727/1585/226 723/1586/204 732/1583/224 +f 747/1577/217 752/1587/218 748/1578/218 +f 728/1580/220 735/1588/227 727/1585/226 +f 727/1585/226 738/1589/228 724/1590/228 +f 725/1193/222 747/1591/217 730/1582/223 +f 729/1576/216 736/1592/229 728/1580/220 +f 737/1593/222 751/1594/230 747/1591/217 +f 736/1592/229 749/1595/231 735/1588/227 +f 735/1596/227 750/1597/204 738/1589/228 +f 748/1578/218 753/1598/229 736/1592/229 +f 757/1599/232 759/1221/232 755/1600/232 +f 756/1601/233 762/1217/233 758/1602/233 +f 765/1603/232 767/1430/234 763/1604/232 +f 764/1605/233 770/1226/235 766/1606/233 +f 767/1430/234 770/1226/235 768/1230/235 +f 779/1607/236 787/1608/237 780/1609/237 +f 782/1610/238 775/1611/239 783/1612/239 +f 792/1613/200 790/1614/240 777/1615/240 +f 778/1616/241 788/1617/236 779/1607/236 +f 781/1618/203 776/1619/238 782/1610/238 +f 785/1620/242 772/1621/202 791/1622/202 +f 784/1623/243 773/1624/242 785/1620/242 +f 777/1615/240 789/1625/241 778/1616/241 +f 780/1609/237 786/1626/203 781/1618/203 +f 783/1612/239 774/1627/243 784/1623/243 +f 800/1628/244 810/1629/245 799/1630/245 +f 797/1631/203 803/1632/246 796/1633/246 +f 794/1634/247 806/1635/248 793/1636/248 +f 801/1637/249 811/1638/244 800/1628/244 +f 807/1639/202 812/1640/249 801/1637/249 +f 798/1641/250 802/1642/203 797/1631/203 +f 795/1643/251 805/1644/247 794/1634/247 +f 793/1636/248 814/1645/200 808/1646/200 +f 799/1630/245 809/1647/250 798/1641/250 +f 796/1633/246 804/1648/251 795/1643/251 +f 841/1649/252 844/1650/253 842/1651/254 +f 828/1652/255 835/1653/256 827/1654/256 +f 833/1655/257 840/1656/258 834/1657/253 +f 838/1658/259 834/1657/253 836/1659/260 +f 839/1660/261 842/1651/254 840/1656/258 +f 843/1661/257 846/1662/262 844/1650/253 +f 840/1663/258 847/1664/263 834/1665/253 +f 843/1666/257 862/1667/264 845/1668/265 +f 851/1669/266 848/1270/267 847/1664/263 +f 842/1670/254 853/1671/263 852/1672/268 +f 846/1662/262 853/1671/263 844/1650/253 +f 835/1653/256 850/1673/269 827/1654/256 +f 842/1670/254 851/1669/266 840/1663/258 +f 836/1674/260 847/1664/263 848/1270/267 +f 855/1675/270 859/1676/271 856/1677/272 +f 828/1652/255 857/1678/273 837/1679/255 +f 841/1680/252 859/1676/271 860/1681/274 +f 841/1680/252 861/1682/272 843/1666/257 +f 838/1683/259 856/1677/272 833/1684/257 +f 833/1684/257 859/1676/271 839/1685/261 +f 849/1466/269 851/1669/266 852/1672/268 +f 859/1676/271 857/1686/273 860/1681/274 +f 866/1275/200 869/1687/275 865/1688/200 +f 863/1278/202 868/1283/276 864/1273/202 +f 870/1282/275 871/1689/277 869/1690/275 +f 867/1277/276 874/1281/278 868/1283/276 +f 873/1280/278 878/1473/279 874/1281/278 +f 872/1285/277 875/1691/280 871/1692/277 +f 876/1284/280 879/1693/281 875/1691/280 +f 877/1287/279 882/1290/282 878/1473/279 +f 901/1694/200 916/1695/283 908/1696/283 +f 907/1697/199 914/1698/284 906/1699/284 +f 905/1700/202 912/1701/285 904/1702/285 +f 903/1703/204 910/1704/286 902/1705/286 +f 908/1696/283 915/1706/199 907/1697/199 +f 906/1699/284 913/1707/202 905/1700/202 +f 904/1702/285 911/1708/204 903/1709/204 +f 902/1705/286 909/1710/200 901/1694/200 +f 961/1711/221 975/1712/225 973/1713/225 +f 952/1375/199 955/1365/287 950/1369/199 +f 949/1714/204 953/1358/288 951/1373/204 +f 959/1715/289 957/1716/290 958/1717/290 +f 956/1356/287 959/1715/289 955/1365/287 +f 954/1718/288 957/1719/290 953/1358/288 +f 973/1720/225 971/1721/219 969/1722/219 +f 971/1721/219 962/1723/224 969/1722/219 +f 968/1724/288 962/1723/224 964/1725/224 +f 965/1726/287 963/1727/221 961/1711/221 +f 967/1728/287 974/1729/289 976/1730/289 +f 976/1730/289 970/1731/290 972/1732/290 +f 972/1732/290 966/1733/288 968/1724/288 +f 852/1672/268 850/1673/269 849/1466/269 +f 860/1681/274 857/1686/273 858/1734/273 +f 980/1735/203 981/1736/277 979/1737/203 +f 977/1738/198 983/1739/291 978/1740/198 +f 985/1380/275 987/1383/292 986/1491/292 +f 984/1741/277 985/1380/275 981/1736/277 +f 982/1742/291 987/1383/292 983/1739/291 +f 990/1743/200 991/1744/293 989/1745/200 +f 992/1746/293 993/1747/198 991/1744/293 +f 994/1748/198 995/1749/294 993/1750/198 +f 996/1751/294 997/1752/202 995/1749/294 +f 998/1753/202 999/1754/295 997/1752/202 +f 1000/1755/295 1001/1756/203 999/1754/295 +f 1002/1757/203 1003/1758/296 1001/1756/203 +f 1004/1759/296 989/1745/200 1003/1758/296 +f 850/1673/269 852/1672/268 854/1760/297 +f 854/1760/297 852/1672/268 853/1671/263 +f 862/1667/264 861/1682/272 860/1681/274 +f 858/1734/273 862/1667/264 860/1681/274 +f 1013/1761/236 1021/1762/237 1014/1763/237 +f 1016/1764/238 1009/1765/239 1017/1766/239 +f 1026/1767/200 1024/1768/240 1011/1769/240 +f 1012/1770/241 1022/1771/236 1013/1761/236 +f 1015/1772/203 1010/1773/238 1016/1764/238 +f 1019/1774/242 1006/1775/202 1025/1776/202 +f 1018/1777/243 1007/1778/242 1019/1774/242 +f 1011/1769/240 1023/1779/241 1012/1770/241 +f 1014/1763/237 1020/1780/203 1015/1772/203 +f 1017/1766/239 1008/1781/243 1018/1777/243 +f 1034/1782/244 1044/1783/245 1033/1784/245 +f 1031/1785/203 1037/1786/246 1030/1787/246 +f 1028/1788/247 1040/1789/248 1027/1790/248 +f 1035/1791/249 1045/1792/244 1034/1782/244 +f 1041/1793/202 1046/1794/249 1035/1791/249 +f 1032/1795/250 1036/1796/203 1031/1785/203 +f 1029/1797/251 1039/1798/247 1028/1788/247 +f 1027/1790/248 1048/1799/200 1042/1800/200 +f 1033/1784/245 1043/1801/250 1032/1795/250 +f 1030/1787/246 1038/1802/251 1029/1797/251 +f 646/1538/204 658/1149/204 657/1139/208 +f 653/1540/209 665/1142/209 664/1144/199 +f 650/1542/210 662/1126/210 661/1145/198 +f 647/1544/211 659/1129/211 658/1149/204 +f 654/1545/212 666/1130/212 665/1142/209 +f 644/1546/213 656/1121/213 655/1123/203 +f 651/1548/214 663/1124/214 662/1126/210 +f 648/1549/215 660/1127/215 659/1129/211 +f 643/1547/203 655/1123/203 666/1130/212 +f 645/1539/208 657/1139/208 656/1121/213 +f 652/1541/199 664/1144/199 663/1124/214 +f 649/1550/198 661/1405/198 660/1127/215 +f 678/1551/212 690/1154/212 689/1156/209 +f 668/1553/213 680/1157/213 679/1159/203 +f 675/1555/214 687/1160/214 686/1162/210 +f 672/1557/215 684/1170/215 683/1151/211 +f 667/1554/203 679/1159/203 690/1154/212 +f 669/1559/208 681/1166/208 680/1157/213 +f 676/1560/199 688/1168/199 687/1160/214 +f 673/1561/198 685/1409/198 684/1170/215 +f 670/1562/204 682/1153/204 681/1166/208 +f 677/1552/209 689/1156/209 688/1168/199 +f 674/1556/210 686/1162/210 685/1174/198 +f 671/1558/211 683/1151/211 682/1153/204 +f 695/1164/209 707/1568/209 706/1564/199 +f 702/1165/215 714/1569/215 713/1565/211 +f 692/1167/210 704/1570/210 703/1566/198 +f 699/1169/208 711/1571/208 710/1567/213 +f 696/1163/212 708/1572/212 707/1568/209 +f 691/1158/198 703/1566/198 714/1569/215 +f 693/1172/214 705/1573/214 704/1570/210 +f 700/1173/204 712/1574/204 711/1571/208 +f 697/1171/203 709/1803/203 708/1572/212 +f 694/1152/199 706/1564/199 705/1573/214 +f 701/1155/211 713/1565/211 712/1574/204 +f 698/1161/213 710/1567/213 709/1575/203 +f 729/1576/216 730/1582/223 747/1577/217 +f 731/1579/219 734/1584/225 729/1576/216 +f 733/1581/221 726/1196/199 725/1193/222 +f 728/1580/220 727/1585/226 732/1583/224 +f 734/1584/225 733/1581/221 730/1582/223 +f 727/1585/226 724/1590/228 723/1586/204 +f 747/1577/217 751/1804/230 752/1587/218 +f 728/1580/220 736/1592/229 735/1588/227 +f 727/1585/226 735/1596/227 738/1589/228 +f 725/1193/222 737/1593/222 747/1591/217 +f 729/1576/216 748/1578/218 736/1592/229 +f 737/1593/222 754/1805/199 751/1594/230 +f 736/1592/229 753/1598/229 749/1595/231 +f 735/1596/227 749/1806/231 750/1597/204 +f 748/1578/218 752/1587/218 753/1598/229 +f 757/1599/232 761/1306/232 759/1221/232 +f 756/1601/233 760/1224/233 762/1217/233 +f 765/1603/232 769/1429/234 767/1430/234 +f 764/1605/233 768/1230/235 770/1226/235 +f 767/1430/234 769/1429/234 770/1226/235 +f 779/1607/236 788/1617/236 787/1608/237 +f 782/1610/238 776/1619/238 775/1611/239 +f 792/1613/200 771/1807/200 790/1614/240 +f 778/1616/241 789/1625/241 788/1617/236 +f 781/1618/203 786/1626/203 776/1619/238 +f 785/1620/242 773/1624/242 772/1621/202 +f 784/1623/243 774/1627/243 773/1624/242 +f 777/1615/240 790/1614/240 789/1625/241 +f 780/1609/237 787/1608/237 786/1626/203 +f 783/1612/239 775/1611/239 774/1627/243 +f 800/1628/244 811/1638/244 810/1629/245 +f 797/1631/203 802/1642/203 803/1632/246 +f 794/1634/247 805/1644/247 806/1635/248 +f 801/1637/249 812/1640/249 811/1638/244 +f 807/1639/202 813/1808/202 812/1640/249 +f 798/1641/250 809/1647/250 802/1642/203 +f 795/1643/251 804/1648/251 805/1644/247 +f 793/1636/248 806/1635/248 814/1645/200 +f 799/1630/245 810/1629/245 809/1647/250 +f 796/1633/246 803/1632/246 804/1648/251 +f 841/1649/252 843/1661/257 844/1650/253 +f 828/1652/255 837/1679/255 835/1653/256 +f 833/1655/257 839/1660/261 840/1656/258 +f 838/1658/259 833/1655/257 834/1657/253 +f 839/1660/261 841/1649/252 842/1651/254 +f 843/1661/257 845/1809/265 846/1662/262 +f 840/1663/258 851/1669/266 847/1664/263 +f 843/1666/257 861/1682/272 862/1667/264 +f 851/1669/266 849/1466/269 848/1270/267 +f 842/1670/254 844/1650/253 853/1671/263 +f 846/1662/262 854/1760/297 853/1671/263 +f 835/1653/256 849/1466/269 850/1673/269 +f 842/1670/254 852/1672/268 851/1669/266 +f 836/1674/260 834/1665/253 847/1664/263 +f 855/1675/270 857/1686/273 859/1676/271 +f 828/1652/255 858/1810/273 857/1678/273 +f 841/1680/252 839/1685/261 859/1676/271 +f 841/1680/252 860/1681/274 861/1682/272 +f 838/1683/259 855/1675/270 856/1677/272 +f 833/1684/257 856/1677/272 859/1676/271 +f 866/1275/200 870/1274/275 869/1687/275 +f 863/1278/202 867/1277/276 868/1283/276 +f 870/1282/275 872/1472/277 871/1689/277 +f 867/1277/276 873/1280/278 874/1281/278 +f 873/1280/278 877/1287/279 878/1473/279 +f 872/1285/277 876/1284/280 875/1691/280 +f 876/1284/280 880/1291/281 879/1693/281 +f 877/1287/279 881/1289/282 882/1290/282 +f 901/1694/200 909/1710/200 916/1695/283 +f 907/1697/199 915/1706/199 914/1698/284 +f 905/1700/202 913/1707/202 912/1701/285 +f 903/1703/204 911/1811/204 910/1704/286 +f 908/1696/283 916/1695/283 915/1706/199 +f 906/1699/284 914/1698/284 913/1707/202 +f 904/1702/285 912/1701/285 911/1708/204 +f 902/1705/286 910/1704/286 909/1710/200 +f 961/1711/221 963/1727/221 975/1712/225 +f 952/1375/199 956/1356/287 955/1365/287 +f 949/1714/204 954/1718/288 953/1358/288 +f 959/1715/289 960/1812/289 957/1716/290 +f 956/1356/287 960/1812/289 959/1715/289 +f 954/1718/288 958/1813/290 957/1719/290 +f 973/1720/225 975/1814/225 971/1721/219 +f 971/1721/219 964/1725/224 962/1723/224 +f 968/1724/288 966/1733/288 962/1723/224 +f 965/1726/287 967/1728/287 963/1727/221 +f 967/1728/287 965/1726/287 974/1729/289 +f 976/1730/289 974/1729/289 970/1731/290 +f 972/1732/290 970/1731/290 966/1733/288 +f 980/1735/203 984/1741/277 981/1736/277 +f 977/1738/198 982/1742/291 983/1739/291 +f 985/1380/275 988/1494/275 987/1383/292 +f 984/1741/277 988/1494/275 985/1380/275 +f 982/1742/291 986/1491/292 987/1383/292 +f 990/1743/200 992/1746/293 991/1744/293 +f 992/1746/293 994/1815/198 993/1747/198 +f 994/1748/198 996/1751/294 995/1749/294 +f 996/1751/294 998/1753/202 997/1752/202 +f 998/1753/202 1000/1755/295 999/1754/295 +f 1000/1755/295 1002/1757/203 1001/1756/203 +f 1002/1757/203 1004/1759/296 1003/1758/296 +f 1004/1759/296 990/1743/200 989/1745/200 +f 1013/1761/236 1022/1771/236 1021/1762/237 +f 1016/1764/238 1010/1773/238 1009/1765/239 +f 1026/1767/200 1005/1816/200 1024/1768/240 +f 1012/1770/241 1023/1779/241 1022/1771/236 +f 1015/1772/203 1020/1780/203 1010/1773/238 +f 1019/1774/242 1007/1778/242 1006/1775/202 +f 1018/1777/243 1008/1781/243 1007/1778/242 +f 1011/1769/240 1024/1768/240 1023/1779/241 +f 1014/1763/237 1021/1762/237 1020/1780/203 +f 1017/1766/239 1009/1765/239 1008/1781/243 +f 1034/1782/244 1045/1792/244 1044/1783/245 +f 1031/1785/203 1036/1796/203 1037/1786/246 +f 1028/1788/247 1039/1798/247 1040/1789/248 +f 1035/1791/249 1046/1794/249 1045/1792/244 +f 1041/1793/202 1047/1817/202 1046/1794/249 +f 1032/1795/250 1043/1801/250 1036/1796/203 +f 1029/1797/251 1038/1802/251 1039/1798/247 +f 1027/1790/248 1040/1789/248 1048/1799/200 +f 1033/1784/245 1044/1783/245 1043/1801/250 +f 1030/1787/246 1037/1786/246 1038/1802/251 diff --git a/src/main/resources/assets/hbm/my_hecking_realism.png b/src/main/resources/assets/hbm/my_hecking_realism.png new file mode 100644 index 000000000..dab8b86bc Binary files /dev/null and b/src/main/resources/assets/hbm/my_hecking_realism.png differ diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index f8acc5aaa..7bb46ab65 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -232,6 +232,23 @@ "weapon.fire.tauLoop": {"category": "player", "sounds": ["weapon/fire/tauLoop"]}, "weapon.fire.tauRelease": {"category": "player", "sounds": ["weapon/fire/tauRelease1", "weapon/fire/tauRelease2", "weapon/fire/tauRelease3"]}, "weapon.fire.fatman": {"category": "player", "sounds": ["weapon/fire/fatman"]}, + "weapon.fire.smack": {"category": "player", "sounds": ["weapon/fire/smack"]}, + "weapon.fire.vstar": {"category": "player", "sounds": ["weapon/fire/vstar"]}, + "weapon.fire.loudestNoiseOnEarth": {"category": "player", "sounds": ["weapon/fire/loudestNoiseOnEarth"]}, + "weapon.fire.disintegration": {"category": "player", "sounds": ["weapon/fire/disintegration"]}, + "weapon.fire.laser": {"category": "player", "sounds": ["weapon/fire/laser"]}, + "weapon.fire.laserGatling": {"category": "player", "sounds": ["weapon/fire/laserGatling"]}, + "weapon.fire.silenced": {"category": "player", "sounds": ["weapon/fire/silenced"]}, + "weapon.fire.assault": {"category": "player", "sounds": ["weapon/fire/assault"]}, + "weapon.fire.pistol": {"category": "player", "sounds": ["weapon/fire/pistol"]}, + "weapon.fire.rifle": {"category": "player", "sounds": ["weapon/fire/rifle"]}, + "weapon.fire.rifleHeavy": {"category": "player", "sounds": ["weapon/fire/rifleHeavy"]}, + "weapon.fire.shotgun": {"category": "player", "sounds": ["weapon/fire/shotgun"]}, + "weapon.fire.shotgunAlt": {"category": "player", "sounds": ["weapon/fire/shotgunAlt"]}, + "weapon.fire.shotgunAuto": {"category": "player", "sounds": ["weapon/fire/shotgunAuto"]}, + "weapon.fire.greaseGun": {"category": "player", "sounds": ["weapon/fire/greaseGun"]}, + "weapon.fire.uzi": {"category": "player", "sounds": ["weapon/fire/uzi"]}, + "weapon.fire.tesla": {"category": "player", "sounds": ["weapon/fire/tesla"]}, "weapon.reload.boltClose": {"category": "player", "sounds": ["weapon/reload/boltClose"]}, "weapon.reload.boltOpen": {"category": "player", "sounds": ["weapon/reload/boltOpen"]}, @@ -260,6 +277,7 @@ "weapon.reload.tubeFwoomp": {"category": "player", "sounds": ["weapon/reload/tubeFwoomp"]}, "weapon.reload.impact": {"category": "player", "sounds": ["weapon/reload/impact1", "weapon/reload/impact2", "weapon/reload/impact3"]}, "weapon.reload.fatmanFull": {"category": "player", "sounds": ["weapon/reload/fatmanFull"]}, + "weapon.reload.screw": {"category": "player", "sounds": ["weapon/reload/screw"]}, "weapon.foley.gunWhack": {"category": "player", "sounds": ["weapon/foley/gunWhack", "weapon/foley/gunWhack2"]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/assault.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/assault.ogg new file mode 100644 index 000000000..6a49dbc1d Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/assault.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/disintegration.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/disintegration.ogg new file mode 100644 index 000000000..944cb0fb9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/disintegration.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/greaseGun.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/greaseGun.ogg new file mode 100644 index 000000000..71bad6b35 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/greaseGun.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/laser.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/laser.ogg new file mode 100644 index 000000000..f6f869bba Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/laser.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/laserGatling.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/laserGatling.ogg new file mode 100644 index 000000000..e24acf08e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/laserGatling.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/pistol.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/pistol.ogg new file mode 100644 index 000000000..5670830e6 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/pistol.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/rifle.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/rifle.ogg new file mode 100644 index 000000000..eb4f2fa43 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/rifle.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/rifleHeavy.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/rifleHeavy.ogg new file mode 100644 index 000000000..48f650331 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/rifleHeavy.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shotgun.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgun.ogg new file mode 100644 index 000000000..9c15eb596 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgun.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAlt.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAlt.ogg new file mode 100644 index 000000000..422dae1e3 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAlt.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAuto.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAuto.ogg new file mode 100644 index 000000000..eb8e6a76c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/shotgunAuto.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/silenced.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/silenced.ogg new file mode 100644 index 000000000..2e972df03 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/silenced.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/smack.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/smack.ogg new file mode 100644 index 000000000..65386b73c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/smack.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/tesla.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/tesla.ogg new file mode 100644 index 000000000..8c02cb806 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/tesla.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/uzi.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/uzi.ogg new file mode 100644 index 000000000..de44d99ab Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/uzi.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/vstar.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/vstar.ogg new file mode 100644 index 000000000..346ffe2eb Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/vstar.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/reload/screw.ogg b/src/main/resources/assets/hbm/sounds/weapon/reload/screw.ogg new file mode 100644 index 000000000..e6dd7e05c Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/reload/screw.ogg differ diff --git a/src/main/resources/assets/hbm/textures/blocks/particle/particle_ashes.png b/src/main/resources/assets/hbm/textures/blocks/particle/particle_ashes.png new file mode 100644 index 000000000..4a60bfb70 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/particle/particle_ashes.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenade.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenade.png deleted file mode 100644 index 519dd733d..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenade.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeHE.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeHE.png deleted file mode 100644 index 870b02d13..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeHE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeIncendiary.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeIncendiary.png deleted file mode 100644 index 3d175b379..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeIncendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeSleek.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeSleek.png deleted file mode 100644 index 581649526..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeSleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeToxic.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeToxic.png deleted file mode 100644 index cd1064afc..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeToxic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeTraining.png b/src/main/resources/assets/hbm/textures/entity/ModelGrenadeTraining.png deleted file mode 100644 index bac5fd09f..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelGrenadeTraining.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocket.png b/src/main/resources/assets/hbm/textures/entity/ModelRocket.png deleted file mode 100644 index 9ada99c32..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocket.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketCanister.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketCanister.png deleted file mode 100644 index 3b1507beb..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketCanister.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketEMP.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketEMP.png deleted file mode 100644 index 5dcff98f2..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketEMP.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketGlare.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketGlare.png deleted file mode 100644 index 0a3c2aa52..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketGlare.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketHE.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketHE.png deleted file mode 100644 index 275146752..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketHE.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketIncendiary.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketIncendiary.png deleted file mode 100644 index d85bb21cc..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketIncendiary.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketNuclear.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketNuclear.png deleted file mode 100644 index 81bf7d0e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketNuclear.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketPhosphorus.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketPhosphorus.png deleted file mode 100644 index 30a9c896d..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketPhosphorus.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketShrapnel.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketShrapnel.png deleted file mode 100644 index 62fa9befd..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketShrapnel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/ModelRocketSleek.png b/src/main/resources/assets/hbm/textures/entity/ModelRocketSleek.png deleted file mode 100644 index cd8b70153..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/ModelRocketSleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/dummy.png b/src/main/resources/assets/hbm/textures/entity/dummy.png new file mode 100644 index 000000000..2bef2f04e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/dummy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo.png b/src/main/resources/assets/hbm/textures/items/ammo.png index 680cf4113..58ed1d739 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo.png and b/src/main/resources/assets/hbm/textures/items/ammo.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_equestrian.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_equestrian.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_equestrian.png rename to src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_equestrian.png diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_nuke.png new file mode 100644 index 000000000..29a262ca2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_nuke.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_sm.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_sm.png new file mode 100644 index 000000000..30efa4d03 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_secret.folly_sm.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.g12_equestrian.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.g12_equestrian.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/ammo_standard.g12_equestrian.png rename to src/main/resources/assets/hbm/textures/items/ammo_secret.g12_equestrian.png diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_equestrian.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.m44_equestrian.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/ammo_standard.m44_equestrian.png rename to src/main/resources/assets/hbm/textures/items/ammo_secret.m44_equestrian.png diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.b75.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75.png new file mode 100644 index 000000000..f81589f2a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_exp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_exp.png new file mode 100644 index 000000000..2c7e24b4f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_exp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_inc.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_inc.png new file mode 100644 index 000000000..b01ed4d9d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.b75_inc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_ir.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_ir.png new file mode 100644 index 000000000..0b398e264 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_ir.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png new file mode 100644 index 000000000..a8bb6196c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_ferrouranium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png new file mode 100644 index 000000000..5e6692fb6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.coil_tungsten.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_bp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_bp.png new file mode 100644 index 000000000..fe66c7c00 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m357_bp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_bp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_bp.png new file mode 100644 index 000000000..30fee7b56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_standard.m44_bp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png index 2a751e076..2f00653e3 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png index 1112b26c1..cfe452c8d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_fmj.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png index 62179c6c3..12bee077c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_jhp.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png index 40470f133..84b3d03a4 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png and b/src/main/resources/assets/hbm/textures/items/ammo_standard.p22_sp.png differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelFolly.png b/src/main/resources/assets/hbm/textures/models/ModelFolly.png deleted file mode 100644 index 065460dca..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelFolly.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/ModelTwiGun.png b/src/main/resources/assets/hbm/textures/models/ModelTwiGun.png deleted file mode 100755 index 403da0f56..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/ModelTwiGun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelBeam.png b/src/main/resources/assets/hbm/textures/models/SteelBeam.png deleted file mode 100644 index aca7ef40f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelBeam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelCorner.png b/src/main/resources/assets/hbm/textures/models/SteelCorner.png deleted file mode 100644 index 585b3bd3d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelCorner.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelScaffold.png b/src/main/resources/assets/hbm/textures/models/SteelScaffold.png deleted file mode 100644 index 9ea7ecbea..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelScaffold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/SteelWall.png b/src/main/resources/assets/hbm/textures/models/SteelWall.png deleted file mode 100644 index 7ea292660..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/SteelWall.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_desert.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_desert.png new file mode 100644 index 000000000..e489023d6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_desert.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_grass.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_grass.png new file mode 100644 index 000000000..293089481 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_grass.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_snow.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_snow.png new file mode 100644 index 000000000..56400bed9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_snow.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_stone.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_stone.png new file mode 100644 index 000000000..fafacb3f5 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_ap_stone.png differ diff --git a/src/main/resources/assets/hbm/textures/models/bombs/mine_shrapnel.png b/src/main/resources/assets/hbm/textures/models/bombs/mine_shrapnel.png new file mode 100644 index 000000000..2956d1bde Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/bombs/mine_shrapnel.png differ diff --git a/src/main/resources/assets/hbm/textures/models/dornier_0.png b/src/main/resources/assets/hbm/textures/models/dornier_0.png deleted file mode 100644 index c5552e2b8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/dornier_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/dornier_3.png b/src/main/resources/assets/hbm/textures/models/dornier_3.png deleted file mode 100644 index 00c8985cb..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/dornier_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/ammo_press.png b/src/main/resources/assets/hbm/textures/models/machines/ammo_press.png new file mode 100644 index 000000000..77c7930ae Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/ammo_press.png differ diff --git a/src/main/resources/assets/hbm/textures/models/mine_ap.png b/src/main/resources/assets/hbm/textures/models/mine_ap.png deleted file mode 100644 index 073f2a657..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mine_ap.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/mine_shrap.png b/src/main/resources/assets/hbm/textures/models/mine_shrap.png deleted file mode 100644 index 6e89e8bc8..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/mine_shrap.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/test_container_double.png b/src/main/resources/assets/hbm/textures/models/test_container_double.png deleted file mode 100644 index 182a96c72..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/test_container_double.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/test_container_single.png b/src/main/resources/assets/hbm/textures/models/test_container_single.png deleted file mode 100644 index c00662549..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/test_container_single.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png index 32a05672c..b8590707a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png and b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver_atlas.png b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver_atlas.png new file mode 100644 index 000000000..32a05672c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/bio_revolver_atlas.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/c130_0.png b/src/main/resources/assets/hbm/textures/models/weapons/c130_0.png new file mode 100644 index 000000000..04729bcdf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/c130_0.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/carbine.png b/src/main/resources/assets/hbm/textures/models/weapons/carbine.png deleted file mode 100644 index 49b5f2796..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/carbine.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png index d27d13845..192380382 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_daybreaker.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_daybreaker.png new file mode 100644 index 000000000..abb9a52d9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_daybreaker.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_topaz.png b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_topaz.png new file mode 100644 index 000000000..53c100c73 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/flamethrower_topaz.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/g3.png b/src/main/resources/assets/hbm/textures/models/weapons/g3.png index 6c19d9949..3cc638643 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/g3.png and b/src/main/resources/assets/hbm/textures/models/weapons/g3.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/hangman.png b/src/main/resources/assets/hbm/textures/models/weapons/hangman.png new file mode 100644 index 000000000..6f007351f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/hangman.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png b/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png index 6d0b45444..7458e6d96 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png and b/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png b/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png new file mode 100644 index 000000000..66bfa6d81 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png b/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png index b4303c8c8..36b7c8dc7 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png and b/src/main/resources/assets/hbm/textures/models/weapons/moonlight.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/stg77.png b/src/main/resources/assets/hbm/textures/models/weapons/stg77.png index 6aa5e8509..6bb0d2949 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/stg77.png and b/src/main/resources/assets/hbm/textures/models/weapons/stg77.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/skeleton.png b/src/main/resources/assets/hbm/textures/particle/skeleton.png new file mode 100644 index 000000000..184b5853e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/particle/skeleton.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/skoilet.png b/src/main/resources/assets/hbm/textures/particle/skoilet.png new file mode 100644 index 000000000..971df0043 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/particle/skoilet.png differ