diff --git a/src/main/java/api/hbm/energy/IBatteryItem.java b/src/main/java/api/hbm/energy/IBatteryItem.java index fb90e3d86..827f88a8e 100644 --- a/src/main/java/api/hbm/energy/IBatteryItem.java +++ b/src/main/java/api/hbm/energy/IBatteryItem.java @@ -1,6 +1,8 @@ package api.hbm.energy; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public interface IBatteryItem { @@ -11,4 +13,31 @@ public interface IBatteryItem { public long getMaxCharge(); public long getChargeRate(); public long getDischargeRate(); + + /** Returns a string for the NBT tag name of the long storing power */ + public default String getChargeTagName() { + return "charge"; + } + + /** Returns a string for the NBT tag name of the long storing power */ + public static String getChargeTagName(ItemStack stack) { + return ((IBatteryItem) stack.getItem()).getChargeTagName(); + } + + /** Returns an empty battery stack from the passed ItemStack, the original won't be modified */ + public static ItemStack emptyBattery(ItemStack stack) { + if(stack != null && stack.getItem() instanceof IBatteryItem) { + String keyName = getChargeTagName(stack); + ItemStack stackOut = stack.copy(); + stackOut.stackTagCompound = new NBTTagCompound(); + stackOut.stackTagCompound.setLong(keyName, 0); + return stackOut.copy(); + } + return null; + } + + /** Returns an empty battery stack from the passed Item */ + public static ItemStack emptyBattery(Item item) { + return item instanceof IBatteryItem ? emptyBattery(new ItemStack(item)) : null; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java index dcac06294..f7612ee69 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.ArrayList; import java.util.Random; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -17,19 +18,16 @@ import net.minecraft.world.World; public class BlockAmmoCrate extends Block { - @SideOnly(Side.CLIENT) - private IIcon iconTop; - @SideOnly(Side.CLIENT) - private IIcon iconBottom; + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; - public BlockAmmoCrate(Material p_i45394_1_) { - super(p_i45394_1_); + public BlockAmmoCrate(Material mat) { + super(mat); } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_ammo_top"); this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":crate_ammo_bottom"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_ammo_side"); @@ -42,35 +40,37 @@ public class BlockAmmoCrate extends Block { } Random rand = new Random(); - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - - ArrayList ret = new ArrayList(); - - ret.add(new ItemStack(ModItems.cap_nuka, 12 + rand.nextInt(21))); - ret.add(new ItemStack(ModItems.syringe_metal_stimpak, 1 + rand.nextInt(3))); - - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_22lr, 16 + rand.nextInt(17))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_9mm, 6 + rand.nextInt(13))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_12gauge, 6 + rand.nextInt(4))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_20gauge, 3 + rand.nextInt(4))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.gun_revolver_ammo, 10 + rand.nextInt(11))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.gun_revolver_iron_ammo, 12 + rand.nextInt(15))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_50bmg, 2 + rand.nextInt(7))); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_rocket, 1)); - if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_grenade, 1 + rand.nextInt(2))); - - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_12gauge_incendiary, 3)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge_incendiary, 3)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge_caustic, 3)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge_flechette, 3)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_9mm_ap, 7)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_rocket_incendiary, 1)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_rocket_sleek, 1)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade_he, 1)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade_incendiary, 1)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade_sleek, 1)); - if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.syringe_metal_super, 2)); - - return ret; - } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + + ArrayList ret = new ArrayList(); + + ret.add(new ItemStack(ModItems.cap_nuka, 12 + rand.nextInt(21))); + ret.add(new ItemStack(ModItems.syringe_metal_stimpak, 1 + rand.nextInt(3))); + + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_22lr, 16 + rand.nextInt(17))); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_9mm, 6 + rand.nextInt(13))); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_12gauge, 6 + rand.nextInt(4))); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_20gauge, 3 + rand.nextInt(4))); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_357, 10 + rand.nextInt(11))); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_357, 12 + rand.nextInt(15), Ammo357Magnum.IRON.ordinal())); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_50bmg, 2 + rand.nextInt(7))); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_rocket, 1)); + if(rand.nextBoolean()) ret.add(new ItemStack(ModItems.ammo_grenade, 1 + rand.nextInt(2))); + + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_12gauge, 3, Ammo12Gauge.INCENDIARY.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge, 3, Ammo20Gauge.INCENDIARY.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge, 3, Ammo20Gauge.CAUSTIC.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_20gauge, 3, Ammo20Gauge.FLECHETTE.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_9mm, 7, Ammo9mm.AP.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_rocket, 1, AmmoRocket.INCENDIARY.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_rocket, 1, AmmoRocket.SLEEK.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade, 1, AmmoGrenade.HE.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade, 1, AmmoGrenade.INCENDIARY.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.ammo_grenade, 1, AmmoGrenade.SLEEK.ordinal())); + if(rand.nextInt(10) == 0) ret.add(new ItemStack(ModItems.syringe_metal_super, 2)); + + return ret; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index de7dfd046..db6dd613f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.items.ItemAmmoEnums.Ammo44Magnum; import com.hbm.items.ModItems; import net.minecraft.block.BlockFalling; @@ -18,219 +19,219 @@ import net.minecraft.world.World; public class BlockCrate extends BlockFalling { - List crateList; - List weaponList; - List leadList; - List metalList; - List redList; + List crateList; + List weaponList; + List leadList; + List metalList; + List redList; public BlockCrate(Material p_i45394_1_) { super(p_i45394_1_); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return null; + } - @Override + @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)) - { - dropItems(world, x, y, z); - world.setBlockToAir(x, y, z); - world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); - return true; - } else { - if(world.isRemote) - { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + dropItems(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + return true; + } else { + if(world.isRemote) { player.addChatMessage(new ChatComponentText("I'll need a crate opening device to get the loot, smashing the whole thing won't work...")); } - } - - return true; - } - - public void setDrops() { + } - crateList = new ArrayList(); - weaponList = new ArrayList(); - leadList = new ArrayList(); - metalList = new ArrayList(); - redList = new ArrayList(); + return true; + } - //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); - BlockCrate.addToListWithWeight(crateList, ModItems.grenade_flare, 4); - BlockCrate.addToListWithWeight(crateList, ModItems.ammo_container, 2); - - //Weapon Crate - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_iron, 10); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver, 9); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_gold, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_lead, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_cursed, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_calamity, 3); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_rpg, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_karl, 4); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_panzerschreck, 6); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_hk69, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_stinger, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_mp40, 9); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi, 6); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi_silencer, 5); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uboinik, 8); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_lever_action, 7); - BlockCrate.addToListWithWeight(weaponList, ModItems.gun_bolt_action, 7); - - //Lead Crate - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium, 10); - //BlockCrate.addToListWithWeight(leadList, ModItems.ingot_u235, 5); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_u238, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_plutonium, 7); - //BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu238, 5); - //BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu239, 4); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu240, 6); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_neptunium, 7); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium_fuel, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_plutonium_fuel, 7); - BlockCrate.addToListWithWeight(leadList, ModItems.ingot_mox_fuel, 6); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_uranium, 10); - //BlockCrate.addToListWithWeight(leadList, ModItems.nugget_u235, 5); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_u238, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_plutonium, 7); - //BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu238, 5); - //BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu239, 4); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu240, 6); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_neptunium, 7); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_uranium_fuel, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_plutonium_fuel, 7); - BlockCrate.addToListWithWeight(leadList, ModItems.nugget_mox_fuel, 6); - BlockCrate.addToListWithWeight(leadList, ModItems.cell_deuterium, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.cell_tritium, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.cell_uf6, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.cell_puf6, 8); - BlockCrate.addToListWithWeight(leadList, ModItems.pellet_rtg, 6); - BlockCrate.addToListWithWeight(leadList, ModItems.pellet_rtg_weak, 7); - BlockCrate.addToListWithWeight(leadList, ModItems.tritium_deuterium_cake, 5); - BlockCrate.addToListWithWeight(leadList, ModItems.powder_yellowcake, 10); - - //Metal Crate - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_press), 10); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 9); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), 6); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_coal_off), 10); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_selenium), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembler), 10); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); - BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_drill), 4); - BlockCrate.addToListWithWeight(metalList, ModItems.centrifuge_element, 6); - BlockCrate.addToListWithWeight(metalList, ModItems.motor, 8); - BlockCrate.addToListWithWeight(metalList, ModItems.coil_tungsten, 7); - BlockCrate.addToListWithWeight(metalList, ModItems.photo_panel, 3); - BlockCrate.addToListWithWeight(metalList, ModItems.coil_copper, 10); - BlockCrate.addToListWithWeight(metalList, ModItems.tank_steel, 9); - BlockCrate.addToListWithWeight(metalList, ModItems.blade_titanium, 3); - BlockCrate.addToListWithWeight(metalList, ModItems.bolt_compound, 2); - BlockCrate.addToListWithWeight(metalList, ModItems.piston_selenium, 6); - - //Red Crate - BlockCrate.addToListWithWeight(redList, ModItems.mysteryshovel, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_pip, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_blackjack, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_silver, 1); - BlockCrate.addToListWithWeight(redList, ModItems.ammo_44_pip, 1); - BlockCrate.addToListWithWeight(redList, ModItems.ammo_44_bj, 1); - BlockCrate.addToListWithWeight(redList, ModItems.ammo_44_silver, 1); - BlockCrate.addToListWithWeight(redList, ModItems.battery_spark, 1); - BlockCrate.addToListWithWeight(redList, ModItems.bottle_sparkle, 1); - BlockCrate.addToListWithWeight(redList, ModItems.bottle_rad, 1); - BlockCrate.addToListWithWeight(redList, ModItems.ring_starmetal, 1); - BlockCrate.addToListWithWeight(redList, ModItems.flame_pony, 1); - BlockCrate.addToListWithWeight(redList, Item.getItemFromBlock(ModBlocks.ntm_dirt), 1); - BlockCrate.addToListWithWeight(redList, Item.getItemFromBlock(ModBlocks.broadcaster_pc), 1); - } - - public void dropItems(World world, int x, int y, int z) { - Random rand = new Random(); - - setDrops(); + public void setDrops() { - List list = new ArrayList(); - - int i = rand.nextInt(3) + 3; - - if(this == ModBlocks.crate_weapon) { - i = 1 + rand.nextInt(2); - - if(rand.nextInt(100) == 34) - i = 25; - } - - for(int j = 0; j < i; j++) { + crateList = new ArrayList(); + weaponList = new ArrayList(); + leadList = new ArrayList(); + metalList = new ArrayList(); + redList = new ArrayList(); - if(this == ModBlocks.crate) - list.add(crateList.get(rand.nextInt(crateList.size()))); - if(this == ModBlocks.crate_weapon) - list.add(weaponList.get(rand.nextInt(weaponList.size()))); - if(this == ModBlocks.crate_lead) - list.add(leadList.get(rand.nextInt(leadList.size()))); - if(this == ModBlocks.crate_metal) - list.add(metalList.get(rand.nextInt(metalList.size()))); - if(this == ModBlocks.crate_red) - list.add(redList.get(rand.nextInt(redList.size()))); - } - - if(this == ModBlocks.crate_red) { - list.clear(); - - for(int k = 0; k < redList.size(); k++) { - list.add(redList.get(k)); - } - } - - for(Item stack : list) { - float f = rand.nextFloat() * 0.8F + 0.1F; - float f1 = rand.nextFloat() * 0.8F + 0.1F; - float f2 = rand.nextFloat() * 0.8F + 0.1F; - - EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(stack)); + // 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); + BlockCrate.addToListWithWeight(crateList, ModItems.grenade_flare, 4); + BlockCrate.addToListWithWeight(crateList, ModItems.ammo_container, 2); - float f3 = 0.05F; - entityitem.motionX = (float)rand.nextGaussian() * f3; - entityitem.motionY = (float)rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)rand.nextGaussian() * f3; - if(!world.isRemote) - world.spawnEntityInWorld(entityitem); - } - } - - public static void addToListWithWeight(List list, Item item, int weight) { - for(int i = 0; i < weight; i++) - list.add(item); - } + // Weapon Crate + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_iron, 10); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver, 9); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_gold, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_lead, 8); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_revolver_cursed, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_calamity, 3); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_rpg, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_karl, 4); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_panzerschreck, 6); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_hk69, 8); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_stinger, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_mp40, 9); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi, 6); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uzi_silencer, 5); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_uboinik, 8); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_lever_action, 7); + BlockCrate.addToListWithWeight(weaponList, ModItems.gun_bolt_action, 7); + + // Lead Crate + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium, 10); + // BlockCrate.addToListWithWeight(leadList, ModItems.ingot_u235, 5); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_u238, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_plutonium, 7); + // BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu238, 5); + // BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu239, 4); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu240, 6); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_neptunium, 7); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium_fuel, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_plutonium_fuel, 7); + BlockCrate.addToListWithWeight(leadList, ModItems.ingot_mox_fuel, 6); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_uranium, 10); + // BlockCrate.addToListWithWeight(leadList, ModItems.nugget_u235, 5); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_u238, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_plutonium, 7); + // BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu238, 5); + // BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu239, 4); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu240, 6); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_neptunium, 7); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_uranium_fuel, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_plutonium_fuel, 7); + BlockCrate.addToListWithWeight(leadList, ModItems.nugget_mox_fuel, 6); + BlockCrate.addToListWithWeight(leadList, ModItems.cell_deuterium, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.cell_tritium, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.cell_uf6, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.cell_puf6, 8); + BlockCrate.addToListWithWeight(leadList, ModItems.pellet_rtg, 6); + BlockCrate.addToListWithWeight(leadList, ModItems.pellet_rtg_weak, 7); + BlockCrate.addToListWithWeight(leadList, ModItems.tritium_deuterium_cake, 5); + BlockCrate.addToListWithWeight(leadList, ModItems.powder_yellowcake, 10); + + // Metal Crate + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_press), 10); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 9); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), 6); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 7); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_coal_off), 10); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_selenium), 7); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembler), 10); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7); + BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_drill), 4); + BlockCrate.addToListWithWeight(metalList, ModItems.centrifuge_element, 6); + BlockCrate.addToListWithWeight(metalList, ModItems.motor, 8); + BlockCrate.addToListWithWeight(metalList, ModItems.coil_tungsten, 7); + BlockCrate.addToListWithWeight(metalList, ModItems.photo_panel, 3); + BlockCrate.addToListWithWeight(metalList, ModItems.coil_copper, 10); + BlockCrate.addToListWithWeight(metalList, ModItems.tank_steel, 9); + BlockCrate.addToListWithWeight(metalList, ModItems.blade_titanium, 3); + BlockCrate.addToListWithWeight(metalList, ModItems.bolt_compound, 2); + BlockCrate.addToListWithWeight(metalList, ModItems.piston_selenium, 6); + + // Red Crate + BlockCrate.addToListWithWeight(redList, ModItems.mysteryshovel, 1); + BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_pip, 1); + BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_blackjack, 1); + BlockCrate.addToListWithWeight(redList, ModItems.gun_revolver_silver, 1); + BlockCrate.addToListWithWeight(redList, ModItems.ammo_44.stackFromEnum(Ammo44Magnum.PIP), 1); + BlockCrate.addToListWithWeight(redList, ModItems.ammo_44.stackFromEnum(Ammo44Magnum.BJ), 1); + BlockCrate.addToListWithWeight(redList, ModItems.ammo_44.stackFromEnum(Ammo44Magnum.SILVER), 1); + BlockCrate.addToListWithWeight(redList, ModItems.battery_spark, 1); + BlockCrate.addToListWithWeight(redList, ModItems.bottle_sparkle, 1); + BlockCrate.addToListWithWeight(redList, ModItems.bottle_rad, 1); + BlockCrate.addToListWithWeight(redList, ModItems.ring_starmetal, 1); + BlockCrate.addToListWithWeight(redList, ModItems.flame_pony, 1); + BlockCrate.addToListWithWeight(redList, Item.getItemFromBlock(ModBlocks.ntm_dirt), 1); + BlockCrate.addToListWithWeight(redList, Item.getItemFromBlock(ModBlocks.broadcaster_pc), 1); + } + + public void dropItems(World world, int x, int y, int z) { + Random rand = new Random(); + + setDrops(); + + List list = new ArrayList(); + + int i = rand.nextInt(3) + 3; + + if(this == ModBlocks.crate_weapon) { + i = 1 + rand.nextInt(2); + + if(rand.nextInt(100) == 34) + i = 25; + } + + for(int j = 0; j < i; j++) { + + if(this == ModBlocks.crate) + list.add(crateList.get(rand.nextInt(crateList.size()))); + if(this == ModBlocks.crate_weapon) + list.add(weaponList.get(rand.nextInt(weaponList.size()))); + if(this == ModBlocks.crate_lead) + list.add(leadList.get(rand.nextInt(leadList.size()))); + if(this == ModBlocks.crate_metal) + list.add(metalList.get(rand.nextInt(metalList.size()))); + if(this == ModBlocks.crate_red) + list.add(redList.get(rand.nextInt(redList.size()))); + } + + if(this == ModBlocks.crate_red) { + list.clear(); + + for(int k = 0; k < redList.size(); k++) { + list.add(redList.get(k)); + } + } + + for(ItemStack stack : list) { + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, stack.copy()); + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + if(!world.isRemote) + world.spawnEntityInWorld(entityitem); + } + } + + public static void addToListWithWeight(List list, Item item, int weight) { + for(int i = 0; i < weight; i++) list.add(new ItemStack(item)); + } + + public static void addToListWithWeight(List list, ItemStack item, int weight) { + for(int i = 0; i < weight; i++) list.add(item); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index c96ee03d5..d862c4ea5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -140,10 +140,8 @@ public class BlockOre extends Block { return ModItems.rtg_unit; case 30: return ModItems.gun_spark_ammo; - case 31: - return ModItems.ammo_nuke_low; - case 32: - return ModItems.ammo_mirv; + case 31: case 32: + return ModItems.ammo_nuke; case 33: return ModItems.gun_defabricator_ammo; case 34: diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 7a982340e..466a04d52 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -3,6 +3,7 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ItemEnums; import com.hbm.items.ModItems; import com.hbm.main.CraftingManager; @@ -28,7 +29,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 1), new Object[] { "TTT", "TRT", "TTT", 'T', ModItems.grenade_gascan, 'R', ModItems.detonator_laser }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 2), new Object[] { "TTT", "TRT", "TTT", 'T', ModItems.pellet_gas, 'R', ModItems.detonator_laser }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 3), new Object[] { "TRT", 'T', ModItems.grenade_cloud, 'R', ModItems.detonator_laser }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 4), new Object[] { "TR", 'T', ModItems.ammo_nuke_high, 'R', ModItems.detonator_laser }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_caller, 1, 4), new Object[] { "TR", 'T', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'R', ModItems.detonator_laser }); //Food CraftingManager.addRecipeAuto(new ItemStack(ModItems.bomb_waffle, 1), new Object[] { "WEW", "MPM", "WEW", 'W', Items.wheat, 'E', Items.egg, 'M', Items.milk_bucket, 'P', ModItems.man_core }); @@ -58,6 +59,7 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.coffee_radium), new Object[] { ModItems.coffee, RA226.nugget() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_smore), new Object[] { Items.wheat, new ItemStack(ModItems.marshmallow, 1, 1), new ItemStack(Items.dye, 1, 3) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.marshmallow), new Object[] { Items.stick, Items.sugar, Items.wheat_seeds }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.quesadilla, 3), new Object[] { ModItems.cheese, ModItems.cheese, Items.bread }); //Peas CraftingManager.addRecipeAuto(new ItemStack(ModItems.peas), new Object[] { " S ", "SNS", " S ", 'S', Items.wheat_seeds, 'N', GOLD.nugget() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index e07b5b2b3..df4a1b0ea 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -5,6 +5,8 @@ import com.hbm.inventory.OreDictManager; import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; + +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92Cell; import com.hbm.main.CraftingManager; @@ -24,7 +26,7 @@ public class WeaponRecipes { //Missiles CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_taint, 1), new Object[] { ModItems.missile_assembly, ModItems.bucket_mud, ModItems.powder_spark_mix, ModItems.powder_magic }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.ammo_nuke_high }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_micro, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_bhole, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_black_hole }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.grenade_aschrab }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.missile_schrabidium, 1), new Object[] { ModItems.missile_assembly, ModItems.ducttape, ModItems.cell_sas3, ModItems.circuit_targeting_tier4 }); @@ -174,8 +176,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", " P", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_556_k, 32), new Object[] { "G", "C", "P", 'G', Items.gunpowder, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_556_k, 32), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); + CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", "P", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", " P", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); @@ -183,33 +186,28 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 4), new Object[] { " I ", "GCL", " P ", 'I', Blocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 4), new Object[] { " I ", "GCL", " P ", 'I', Blocks.tnt, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 6), new Object[] { " I ", "GCL", " P ", 'I', ANY_HIGHEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 6), new Object[] { " I ", "GCL", " P ", 'I', ANY_HIGHEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_4gauge_titan, 1), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_explosive, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_explosive, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 6), new Object[] { "I", "C", "P", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + 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", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", "P", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dart, 16), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.ordinal()) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_dart_nerf, 16), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, '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', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44, 'P', ModItems.primer_44); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_9); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 4), 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 }); @@ -221,60 +219,58 @@ public class WeaponRecipes { 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 ", "GCG", " P ", 'T', Blocks.tnt, 'G', ModItems.rocket_fuel, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { " T ", "GCG", " P ", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 3), new Object[] { " T ", "GCG", " P ", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_he, 1), new Object[] { "G", "R", 'G', ANY_HIGHEXPLOSIVE.ingot(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_incendiary, 1), new Object[] { "G", "R", 'G', P_RED.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_phosphorus, 1), new Object[] { "G", "R", 'G', P_WHITE.ingot(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_emp, 1), new Object[] { "G", "R", 'G', DIAMOND.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_shrapnel, 1), new Object[] { "G", "R", 'G', ModItems.pellet_buckshot, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_glare, 1), new Object[] { "GGG", "GRG", "GGG", 'G', REDSTONE.dust(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_toxic, 1), new Object[] { "G", "R", 'G', ModItems.pellet_gas, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_canister, 1), new Object[] { "G", "R", 'G', ModItems.pellet_canister, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_nuclear, 1), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL_CRACK.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket_rpc, 2), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { " T ", "GCG", " P ", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, 'P', ModItems.primer_50 });// I got tired of changing *all* of them, the stock one is always the first one anyway + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { " T ", "GCG", " P ", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, 'P', ModItems.primer_50 }); + 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(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL_CRACK.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); //Stinger Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket_he, 1), new Object[] { "S", "R", 'S', ANY_HIGHEXPLOSIVE.ingot(), 'R', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket_incendiary, 1), new Object[] { "S", "R", 'S', P_RED.dust(), 'R', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket_nuclear, 1), new Object[] { "RPR", "PSP", "RPR", 'R', ModItems.neutron_reflector, 'P', PU239.nugget(), 'S', ModItems.ammo_stinger_rocket }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket_bones, 1), new Object[] { " C ", "SKR", " P ", 'C', ModItems.fallout, 'S', SR90.dust(), 'K', ModItems.ammo_stinger_rocket, 'R', RA226.dust(), 'P', PU.dust() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", "FSF", " P ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium, 'P', ModItems.primer_50); + 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", " P ", 'T', Items.gunpowder, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', Items.gunpowder, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_tracer, 2), new Object[] { " T ", "GCI", " P ", 'T', LAPIS.dust(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_tracer, 2), new Object[] { " T ", "GCI", " P ", 'T', LAPIS.dust(), 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_he, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_incendiary, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_RED.dust() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_phosphorus, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_WHITE.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_toxic, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ModItems.powder_poison }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_concussion, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', Items.glowstone_dust }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_nuclear, 2), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade, 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_finned, 1), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade_kampf, 2), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', ANY_HIGHEXPLOSIVE.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.TRACER), new Object[] { " T ", "GCI", " P ", 'T', LAPIS.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_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 }); //240mm Shells - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', Blocks.tnt, 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', Blocks.tnt, 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 6), new Object[] { " T ", "GHG", "CCC", 'T', Blocks.tnt, 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_explosive, 4), new Object[] { " T ", "GHG", "CCC", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_explosive, 4), new Object[] { " T ", "GHG", "CCC", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_explosive, 6), new Object[] { " T ", "GHG", "CCC", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_apfsds_t, 4), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', Items.gunpowder, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_apfsds_t, 4), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.ballistite, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_apfsds_t, 6), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_apfsds_du, 4), new Object[] { " I ", "GIG", "CCC", 'I', U238.ingot(), 'G', Items.gunpowder, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_apfsds_du, 4), new Object[] { " I ", "GIG", "CCC", 'I', U238.ingot(), 'G', ModItems.ballistite, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_apfsds_du, 6), new Object[] { " I ", "GIG", "CCC", 'I', U238.ingot(), 'G', ModItems.cordite, 'C', CU.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell_w9, 1), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', ModItems.ammo_shell_explosive }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 6), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.ballistite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.EXPLOSIVE), new Object[] { " T ", "GHG", "CCC", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', Items.gunpowder, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.ballistite, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.APFSDS_T), new Object[] { " I ", "GIG", "CCC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_DU), new Object[] { " I ", "GIG", "CCC", 'I', U238.ingot(), 'G', Items.gunpowder, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(4, Ammo240Shell.APFSDS_DU), new Object[] { " I ", "GIG", "CCC", 'I', U238.ingot(), 'G', ModItems.ballistite, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(6, Ammo240Shell.APFSDS_DU), new Object[] { " I ", "GIG", "CCC", 'I', U238.ingot(), 'G', ModItems.cordite, 'C', CU.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE) }); //Artillery Shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 0), new Object[] { "CIC", "CSC", "CCC", 'C', ModItems.cordite, 'I', IRON.block(), 'S', ModItems.hull_small_steel }); @@ -293,38 +289,37 @@ public class WeaponRecipes { //Mini Nuke CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1), new Object[] { "P", "S", "P", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke_low, 1), new Object[] { "P", "S", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke_high, 1), new Object[] { "PPP", "PSP", "PPP", 'P', PU239.nugget(), 'S', ModItems.assembly_nuke }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke_tots, 1), new Object[] { "PPP", "PIP", "PPP", 'P', ModItems.pellet_cluster, 'I', PU239.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke_safe, 1), new Object[] { "G", "N", 'G', Items.glowstone_dust, 'N', ModItems.ammo_nuke_low }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke_pumpkin, 1), new Object[] { " T ", "TST", " T ", 'T', Blocks.tnt, 'S', ModItems.assembly_nuke }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke_barrel, 1), new Object[] { ModItems.nuclear_waste_pearl, ModItems.tank_steel }); + 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_mirv }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke_low, 6), new Object[] { ModItems.ammo_mirv_low }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke_high, 6), new Object[] { ModItems.ammo_mirv_high }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke_safe, 6), new Object[] { ModItems.ammo_mirv_safe }); + 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(new ItemStack(ModItems.ammo_mirv, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_mirv_low, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke_low, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_mirv_high, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke_high, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_mirv_safe, 1), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke_safe, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); - //since the milk part of the recipe isn't realy present in the MIRV's effect, it might as well be replaced with something more sensible, i.e. duct tape - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_mirv_special, 1), new Object[] { "CBC", "MCM", "CBC", 'C', ModItems.canned_jizz, 'B', ModItems.gun_bf_ammo, 'M', ModItems.ammo_mirv }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke, 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); + CraftingManager.addRecipeAuto(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE), new Object[] { "NNN", "CDS", "NNN", 'N', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE), 'C', ModItems.cap_aluminium, 'D', ModBlocks.det_cord, 'S', ModItems.hull_small_steel }); + //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_jizz, 'B', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE), 'M', ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV) }); //Flamer fuel - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_napalm, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_phosphorus, 1), new Object[] { "CPC", "CDC", "CPC", 'C', COAL.dust(), 'P', P_WHITE.ingot(), 'D', ModItems.ammo_fuel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_gas, 1), new Object[] { "PDP", "BDB", "PDP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', ModItems.pellet_gas }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fuel_vaporizer, 1), new Object[] { "PSP", "SNS", "PSP", 'P', P_WHITE.ingot(), 'S', ModItems.crystal_sulfur, 'N', ModItems.ammo_fuel_napalm }); - + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', Fluids.DIESEL.getDict(1000) }); + CraftingManager.addRecipeAuto(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, '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', ModItems.bolt_tungsten, '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', ModItems.bolt_tungsten, 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.ordinal()) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext_foam, 1), new Object[] { " N ", "NFN", " N ", 'N', KNO.dust(), 'F', ModItems.ammo_fireext }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext_sand, 1), new Object[] { "NNN", "NFN", "NNN", 'N', ModBlocks.sand_boron, 'F', ModItems.ammo_fireext }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_fireext, 1), new Object[] { " P ", "BDB", " P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'D', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()) }); + CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM), new Object[] { " N ", "NFN", " N ", 'N', KNO.dust(), 'F', ModItems.ammo_fireext }); + CraftingManager.addRecipeAuto(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND), new Object[] { "NNN", "NFN", "NNN", 'N', ModBlocks.sand_boron, 'F', ModItems.ammo_fireext }); //Grenades CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_generic, 4), new Object[] { "RS ", "ITI", " I ", 'I', IRON.plate(), 'R', ModItems.wire_red_copper, 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt) }); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java index ebf8a4c13..cc0418aa5 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; import net.minecraft.item.ItemStack; @@ -42,7 +43,7 @@ public class EntityMissileMicro extends EntityMissileBaseAdvanced { @Override public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.ammo_nuke_high, 1); + return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java index f03f2948a..89c569ab2 100644 --- a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -7,6 +7,7 @@ import com.hbm.entity.mob.ai.EntityAINuclearCreeperSwell; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -241,7 +242,7 @@ public class EntityNuclearCreeper extends EntityMob { this.dropItem(ModItems.fusion_core, 1); } if(i == 10) - this.dropItem(ModItems.ammo_nuke_high, 1); + this.entityDropItem(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH), 1); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java index f34ce7184..81e67cac1 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java @@ -14,6 +14,8 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.GunConfiguration; +import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -32,6 +34,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IProjectile; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.AxisAlignedBB; @@ -80,14 +83,29 @@ public class EntityBulletBase extends Entity implements IProjectile { this.config = BulletConfigSyncingUtil.pullConfig(config); this.dataWatcher.updateObject(18, config); shooter = entity; + + ItemStack gun = entity.getHeldItem(); + boolean offsetShot = true; + + if(gun != null && gun.getItem() instanceof ItemGunBase) { + GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; + + if(cfg != null && cfg.hasSights && entity.isSneaking()) { + offsetShot = false; + } + } this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch); - double sideOffset = 0.16D; - - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; - this.posY -= 0.1D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + if(offsetShot) { + double sideOffset = 0.16D; + + this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + this.posY -= 0.1D; + this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + } else { + this.posY -= 0.1D; + } this.setPosition(this.posX, this.posY, this.posZ); this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); @@ -97,7 +115,7 @@ public class EntityBulletBase extends Entity implements IProjectile { this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); this.dataWatcher.updateObject(16, (byte)this.config.style); this.dataWatcher.updateObject(17, (byte)this.config.trail); @@ -233,6 +251,10 @@ public class EntityBulletBase extends Entity implements IProjectile { } if(config.maxAge == 0) { + + if(this.config.bUpdate != null) + this.config.bUpdate.behaveUpdate(this); + this.setDead(); return; } @@ -292,10 +314,10 @@ public class EntityBulletBase extends Entity implements IProjectile { boolean didBounce = false; - if (movement != null) { - - //handle entity collision - if(movement.entityHit != null) { + if(movement != null) { + + //handle entity collision + if(movement.entityHit != null) { DamageSource damagesource = this.config.getDamage(this, shooter); @@ -325,7 +347,7 @@ public class EntityBulletBase extends Entity implements IProjectile { } } - if(!victim.attackEntityFrom(damagesource, damage)) { + if(victim != null && !victim.attackEntityFrom(damagesource, damage)) { try { Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); @@ -337,12 +359,12 @@ public class EntityBulletBase extends Entity implements IProjectile { } } catch (Exception x) { } - } - - if(!worldObj.isRemote && headshot) { - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - double head = living.height - living.getEyeHeight(); + } + + if(!worldObj.isRemote && headshot) { + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + double head = living.height - living.getEyeHeight(); NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); data.setInteger("count", 15); diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java new file mode 100644 index 000000000..1c0b0f27c --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java @@ -0,0 +1,18 @@ +package com.hbm.entity.projectile; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.World; + +public class EntityCombineBallNT extends EntityBulletBase { + + public EntityCombineBallNT(World world, int config, EntityLivingBase shooter) { + super(world, config, shooter); + overrideDamage = 1000; + } + + @Override + public void setDead() { + super.setDead(); + worldObj.createExplosion(shooter, posX, posY, posZ, 2, false); + } +} diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 96be61a7f..9dbb1bf00 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -97,18 +97,22 @@ public class ExplosionNukeRayBatched { float y0 = (float) (posY + (vec.yCoord * i)); float z0 = (float) (posZ + (vec.zCoord * i)); + int iX = (int) Math.floor(x0); + int iY = (int) Math.floor(y0); + int iZ = (int) Math.floor(z0); + double fac = 100 - ((double) i) / ((double) length) * 100; fac *= 0.07D; - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); + if(!world.getBlock(iX, iY, iZ).getMaterial().isLiquid()) + res -= Math.pow(world.getBlock(iX, iY, iZ).getExplosionResistance(null), 7.5D - fac); //else // res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); // air is 0, might want to raise that is necessary - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { + if(res > 0 && world.getBlock(iX, iY, iZ) != Blocks.air) { lastPos = new FloatTriplet(x0, y0, z0); //all-air chunks don't need to be buffered at all - ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(((int) x0) >> 4, ((int) z0) >> 4); + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(iX >> 4, iZ >> 4); chunkCoords.add(chunkPos); } @@ -185,9 +189,9 @@ public class ExplosionNukeRayBatched { boolean inChunk = false; for(int i = enter; i < vec.lengthVector(); i++) { - int x0 = (int)(posX + pX * i); - int y0 = (int)(posY + pY * i); - int z0 = (int)(posZ + pZ * i); + int x0 = (int) Math.floor(posX + pX * i); + int y0 = (int) Math.floor(posY + pY * i); + int z0 = (int) Math.floor(posZ + pZ * i); if(x0 >> 4 != chunkX || z0 >> 4 != chunkZ) { if(inChunk) { diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java new file mode 100644 index 000000000..64c4de445 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorCross.java @@ -0,0 +1,125 @@ +package com.hbm.explosion.vanillant.standard; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler; +import com.hbm.explosion.vanillant.interfaces.IEntityProcessor; +import com.hbm.explosion.vanillant.interfaces.IEntityRangeMutator; + +import net.minecraft.enchantment.EnchantmentProtection; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.event.ForgeEventFactory; + +/** The amount of good decisions in NTM is few and far between, but the VNT explosion surely is one of them. */ +public class EntityProcessorCross implements IEntityProcessor { + + protected double nodeDist = 2D; + protected IEntityRangeMutator range; + protected ICustomDamageHandler damage; + + public EntityProcessorCross(double nodeDist) { + this.nodeDist = nodeDist; + } + + @Override + public HashMap process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + + HashMap affectedPlayers = new HashMap(); + + size *= 2.0F; + + if(range != null) { + size = range.mutateRange(explosion, size); + } + + double minX = x - (double) size - 1.0D; + double maxX = x + (double) size + 1.0D; + double minY = y - (double) size - 1.0D; + double maxY = y + (double) size + 1.0D; + double minZ = z - (double) size - 1.0D; + double maxZ = z + (double) size + 1.0D; + + List list = world.getEntitiesWithinAABBExcludingEntity(explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); + + ForgeEventFactory.onExplosionDetonate(world, explosion.compat, list, size); + + Vec3[] nodes = new Vec3[7]; + + for(int i = 0; i < 7; i++) { + ForgeDirection dir = ForgeDirection.getOrientation(i); + nodes[i] = Vec3.createVectorHelper(x + dir.offsetX * nodeDist, y + dir.offsetY * nodeDist, z + dir.offsetZ * nodeDist); + } + + for(int index = 0; index < list.size(); ++index) { + + Entity entity = (Entity) list.get(index); + double distanceScaled = entity.getDistance(x, y, z) / size; + + if(distanceScaled <= 1.0D) { + + double deltaX = entity.posX - x; + double deltaY = entity.posY + entity.getEyeHeight() - y; + double deltaZ = entity.posZ - z; + double distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + + if(distance != 0.0D) { + + deltaX /= distance; + deltaY /= distance; + deltaZ /= distance; + + double density = 0; + + for(Vec3 vec : nodes) { + double d = world.getBlockDensity(vec, entity.boundingBox); + if(d > density) { + density = d; + } + } + + double knockback = (1.0D - distanceScaled) * density; + + entity.attackEntityFrom(DamageSource.setExplosionSource(explosion.compat), (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D))); + double enchKnockback = EnchantmentProtection.func_92092_a(entity, knockback); + + 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)); + } + + if(damage != null) { + damage.handleAttack(explosion, entity, distanceScaled); + } + } + } + } + + return affectedPlayers; + } + + public EntityProcessorCross withRangeMod(float mod) { + range = new IEntityRangeMutator() { + @Override + public float mutateRange(ExplosionVNT explosion, float range) { + return range * mod; + } + }; + return this; + } + + public EntityProcessorCross withDamageMod(ICustomDamageHandler damage) { + this.damage = damage; + return this; + } +} diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 5861bd967..82190a842 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GUIScreenBobmazon.Offer; import com.hbm.inventory.gui.GUIScreenBobmazon.Requirement; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemKitCustom; @@ -122,25 +123,24 @@ public class BobmazonOfferFactory { weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 80 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 60 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 35 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_ammo, 6), Requirement.OIL, 12 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_357_desh, 6), Requirement.OIL, 36 * inflation)); + weapons.add(new Offer(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.LEAD), Requirement.OIL, 12 * inflation)); + weapons.add(new Offer(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.DESH), Requirement.OIL, 36 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.ammo_44, 6), Requirement.OIL, 12 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_44_ap, 6), Requirement.OIL, 18 * inflation)); + weapons.add(new Offer(ModItems.ammo_44.stackFromEnum(6, Ammo44Magnum.AP), Requirement.OIL, 18 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm, 50), Requirement.OIL, 50 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm_du, 50), Requirement.OIL, 75 * inflation)); + weapons.add(new Offer(ModItems.ammo_5mm.stackFromEnum(50, Ammo5mm.DU), Requirement.OIL, 75 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 5 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_incendiary), Requirement.OIL, 8 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_sleek), Requirement.OIL, 12 * inflation)); + weapons.add(new Offer(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY), Requirement.OIL, 8 * inflation)); + weapons.add(new Offer(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SLEEK), Requirement.OIL, 12 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 4 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_incendiary), Requirement.OIL, 6 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek), Requirement.OIL, 10 * inflation)); + weapons.add(new Offer(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.INCENDIARY), Requirement.OIL, 6 * inflation)); + weapons.add(new Offer(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.SLEEK), Requirement.OIL, 10 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr, 32), Requirement.OIL, 24 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap, 32), Requirement.OIL, 32 * inflation)); + weapons.add(new Offer(ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.AP), Requirement.OIL, 32 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 6), Requirement.OIL, 18 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_slug, 6), Requirement.OIL, 20 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_flechette, 6), Requirement.OIL, 22 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.grenade_if_generic, 3), Requirement.CHEMICS, 15 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.grenade_if_he, 3), Requirement.CHEMICS, 25 * inflation)); + weapons.add(new Offer(ModItems.ammo_20gauge.stackFromEnum(6, Ammo20Gauge.SLUG), Requirement.OIL, 20 * inflation)); + weapons.add(new Offer(ModItems.ammo_20gauge.stackFromEnum(6, Ammo20Gauge.FLECHETTE), Requirement.OIL, 22 * inflation)); + weapons.add(new Offer(new ItemStack(ModItems.gun_hp_ammo, 1), Requirement.ASSEMBLY, 1000 * inflation)); tools.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.STEEL, 20 * inflation)); tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 10 * inflation)); @@ -244,23 +244,23 @@ public class BobmazonOfferFactory { special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the hard to reach spots", 0x00ff00, 0x008000, new ItemStack(ModItems.gun_calamity), - new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), - new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), - new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), - new ItemStack(ModItems.ammo_50bmg_star, 64), - new ItemStack(ModItems.ammo_50bmg_star, 64), + ModItems.ammo_50bmg.stackFromEnum(64, Ammo50BMG.CHLOROPHYTE), + ModItems.ammo_50bmg.stackFromEnum(64, Ammo50BMG.CHLOROPHYTE), + ModItems.ammo_50bmg.stackFromEnum(64, Ammo50BMG.CHLOROPHYTE), + ModItems.ammo_50ae.stackFromEnum(64, Ammo50AE.STAR), + ModItems.ammo_50ae.stackFromEnum(64, Ammo50AE.STAR), new ItemStack(ModItems.gun_supershotgun), - new ItemStack(ModItems.ammo_12gauge_du, 64), - new ItemStack(ModItems.ammo_12gauge_du, 64), - new ItemStack(ModItems.ammo_12gauge_shrapnel, 64), - new ItemStack(ModItems.ammo_12gauge_shrapnel, 64), - new ItemStack(ModItems.ammo_12gauge_marauder, 4), + ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.DU), + ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.DU), + ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.SHRAPNEL), + ModItems.ammo_12gauge.stackFromEnum(64, Ammo12Gauge.SHRAPNEL), + ModItems.ammo_12gauge.stackFromEnum(4, Ammo12Gauge.MARAUDER), new ItemStack(ModItems.gun_sauer), new ItemStack(ModItems.ammo_4gauge, 64), - new ItemStack(ModItems.ammo_4gauge_claw, 64), - new ItemStack(ModItems.ammo_4gauge_kampf, 64), - new ItemStack(ModItems.ammo_4gauge_flechette, 64), - new ItemStack(ModItems.ammo_4gauge_void, 64) + ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.CLAW), + ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.KAMPF), + ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.FLECHETTE), + ModItems.ammo_4gauge.stackFromEnum(64, Ammo4Gauge.VOID) ), Requirement.HIDDEN, 64)); special.add(new Offer(ItemKitNBT.create( @@ -276,13 +276,13 @@ public class BobmazonOfferFactory { new ItemStack(ModItems.rpa_legs), new ItemStack(ModItems.rpa_boots), new ItemStack(ModItems.gun_lacunae), - new ItemStack(ModItems.ammo_5mm_star, 64), - new ItemStack(ModItems.ammo_5mm_star, 64), - new ItemStack(ModItems.ammo_5mm_star, 64), - new ItemStack(ModItems.ammo_5mm_star, 64), - new ItemStack(ModItems.ammo_5mm_star, 64), - new ItemStack(ModItems.ammo_5mm_star, 64), - new ItemStack(ModItems.ammo_5mm_star, 64) + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR), + ModItems.ammo_5mm.stackFromEnum(64, Ammo5mm.STAR) ).setStackDisplayName("Frenchman's Reward"), Requirement.HIDDEN, 32)); special.add(new Offer(new ItemStack(ModItems.gun_detonator, 1), Requirement.HIDDEN, 32)); diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 75d8d5188..89860b309 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map.Entry; import com.hbm.handler.guncfg.*; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; public class BulletConfigSyncingUtil { @@ -73,6 +74,7 @@ public class BulletConfigSyncingUtil { public static int G12_DU = i++; public static int G12_AM = i++; public static int G12_SLEEK = i++; + public static int G12_PERCUSSION = i++; public static int LR22_NORMAL = i++; public static int LR22_AP = i++; @@ -94,6 +96,10 @@ public class BulletConfigSyncingUtil { public static int P9_DU = i++; public static int P9_ROCKET = i++; + public static int ACP_45 = i++; + public static int ACP_45_AP = i++; + public static int ACP_45_DU = i++; + public static int BMG50_NORMAL = i++; public static int BMG50_INCENDIARY = i++; public static int BMG50_EXPLOSIVE = i++; @@ -105,6 +111,10 @@ public class BulletConfigSyncingUtil { public static int BMG50_FLECHETTE_NORMAL = i++; public static int BMG50_FLECHETTE_AM = i++; public static int BMG50_FLECHETTE_PO = i++; + + public static int ROUND_LUNA_SNIPER_SABOT = i++; + public static int ROUND_LUNA_SNIPER_INCENDIARY = i++; + public static int ROUND_LUNA_SNIPER_EXPLOSIVE = i++; public static int R5_NORMAL = i++; public static int R5_EXPLOSIVE = i++; @@ -165,6 +175,8 @@ public class BulletConfigSyncingUtil { public static int R556_FLECHETTE_DU = i++; public static int R556_FLECHETTE_SLEEK = i++; public static int R556_K = i++; + + public static int W308 = i++; public static int B75_NORMAL = i++; public static int B75_INCENDIARY = i++; @@ -229,6 +241,10 @@ public class BulletConfigSyncingUtil { public static int NUKE_MIRV_SPECIAL = i++; public static int NUKE_AMAT = i++; + + public static int TWR_RAY = i++; + public static int HLR_NORMAL = i++; + public static int HLR_ALT = i++; public static int ZOMG_BOLT = i++; public static int DET_BOLT = i++; @@ -271,18 +287,18 @@ public class BulletConfigSyncingUtil { configSet.put(TEST_CONFIG, BulletConfigFactory.getTestConfig()); configSet.put(IRON_REVOLVER, Gun357MagnumFactory.getRevIronConfig()); - configSet.put(STEEL_REVOLVER, Gun357MagnumFactory.getRevSteelConfig()); - configSet.put(LEAD_REVOLVER, Gun357MagnumFactory.getRevLeadConfig()); + configSet.put(STEEL_REVOLVER, Gun357MagnumFactory.getRevLeadConfig()); + configSet.put(LEAD_REVOLVER, Gun357MagnumFactory.getRevNuclearConfig()); configSet.put(GOLD_REVOLVER, Gun357MagnumFactory.getRevGoldConfig()); configSet.put(CURSED_REVOLVER, Gun357MagnumFactory.getRevCursedConfig()); configSet.put(SCHRABIDIUM_REVOLVER, Gun357MagnumFactory.getRevSchrabidiumConfig()); - configSet.put(NIGHT_REVOLVER, Gun357MagnumFactory.getRevNightmareConfig()); + configSet.put(NIGHT_REVOLVER, Gun357MagnumFactory.getRevNightmare1Config()); configSet.put(NIGHT2_REVOLVER, Gun357MagnumFactory.getRevNightmare2Config()); - configSet.put(SATURNITE_REVOLVER, Gun357MagnumFactory.getRevSteelConfig().setToFire(3)); + configSet.put(SATURNITE_REVOLVER, Gun357MagnumFactory.getRevLeadConfig().setToFire(3)); configSet.put(DESH_REVOLVER, Gun357MagnumFactory.getRevDeshConfig()); configSet.put(IRON_HS, Gun357MagnumFactory.getRevIronConfig().setHeadshot(3F)); - configSet.put(STEEL_HS, Gun357MagnumFactory.getRevSteelConfig().setHeadshot(3F)); + configSet.put(STEEL_HS, Gun357MagnumFactory.getRevCursedConfig().setHeadshot(3F)); configSet.put(GOLD_HS, Gun357MagnumFactory.getRevGoldConfig().setHeadshot(3F)); configSet.put(DESH_HS, Gun357MagnumFactory.getRevDeshConfig().setHeadshot(3F)); @@ -335,6 +351,7 @@ public class BulletConfigSyncingUtil { configSet.put(G12_DU, Gun12GaugeFactory.get12GaugeDUConfig()); configSet.put(G12_AM, Gun12GaugeFactory.get12GaugeAMConfig()); configSet.put(G12_SLEEK, Gun12GaugeFactory.get12GaugeSleekConfig()); + configSet.put(G12_PERCUSSION, Gun12GaugeFactory.get12GaugePercussionConfig()); configSet.put(LR22_NORMAL, Gun22LRFactory.get22LRConfig()); configSet.put(LR22_AP, Gun22LRFactory.get22LRAPConfig()); @@ -356,6 +373,10 @@ public class BulletConfigSyncingUtil { configSet.put(P9_DU, Gun9mmFactory.get9mmDUConfig()); configSet.put(P9_ROCKET, Gun9mmFactory.get9mmRocketConfig()); + configSet.put(ACP_45, Gun45ACPFactory.get45AutoConfig()); + configSet.put(ACP_45_AP, Gun45ACPFactory.get45AutoAPConfig()); + configSet.put(ACP_45_DU, Gun45ACPFactory.get45AutoDUConfig()); + configSet.put(BMG50_NORMAL, Gun50BMGFactory.get50BMGConfig()); configSet.put(BMG50_INCENDIARY, Gun50BMGFactory.get50BMGFireConfig()); configSet.put(BMG50_PHOSPHORUS, Gun50BMGFactory.get50BMGPhosphorusConfig()); @@ -368,6 +389,10 @@ public class BulletConfigSyncingUtil { configSet.put(BMG50_FLECHETTE_AM, Gun50BMGFactory.get50BMGFlechetteAMConfig()); configSet.put(BMG50_FLECHETTE_PO, Gun50BMGFactory.get50BMGFlechettePOConfig()); + configSet.put(ROUND_LUNA_SNIPER_SABOT, Gun50BMGFactory.getLunaticSabotRound()); + configSet.put(ROUND_LUNA_SNIPER_INCENDIARY, Gun50BMGFactory.getLunaticIncendiaryRound()); + configSet.put(ROUND_LUNA_SNIPER_EXPLOSIVE, Gun50BMGFactory.getLunaticExplosiveRound()); + configSet.put(R5_NORMAL, Gun5mmFactory.get5mmConfig()); configSet.put(R5_EXPLOSIVE, Gun5mmFactory.get5mmExplosiveConfig()); configSet.put(R5_DU, Gun5mmFactory.get5mmDUConfig()); @@ -428,6 +453,8 @@ public class BulletConfigSyncingUtil { configSet.put(R556_FLECHETTE_SLEEK, Gun556mmFactory.get556FlechetteSleekConfig()); configSet.put(R556_K, Gun556mmFactory.get556KConfig()); + configSet.put(W308, Gun762mmFactory.get762NATOConfig()); + configSet.put(B75_NORMAL, Gun75BoltFactory.get75BoltConfig()); configSet.put(B75_INCENDIARY, Gun75BoltFactory.get75BoltIncConfig()); configSet.put(B75_HE, Gun75BoltFactory.get75BoltHEConfig()); @@ -485,6 +512,10 @@ public class BulletConfigSyncingUtil { configSet.put(NUKE_MIRV_SPECIAL, GunFatmanFactory.getMirvSpecialConfig()); configSet.put(NUKE_AMAT, GunFatmanFactory.getBalefireConfig()); + + //configSet.put(TWR_RAY, GunEnergyFactory.getSingConfig()); + //configSet.put(HLR_NORMAL, GunEnergyFactory.getHLRPrecisionConfig()); + //configSet.put(HLR_ALT, GunEnergyFactory.getHLRScatterConfig()); configSet.put(ZOMG_BOLT, GunEnergyFactory.getZOMGBoltConfig()); configSet.put(DET_BOLT, GunDetonatorFactory.getLaserConfig()); @@ -500,16 +531,16 @@ public class BulletConfigSyncingUtil { configSet.put(GLASS_EMGAMMA, GunPoweredFactory.getEMGammaConfig()); - configSet.put(CHL_LR22, Gun22LRFactory.get22LRConfig().setToHoming(ModItems.ammo_22lr_chlorophyte)); - configSet.put(CHL_LR22_FIRE, Gun22LRFactory.get22LRConfig().setToFire(3).setToHoming(ModItems.ammo_22lr_chlorophyte)); - configSet.put(CHL_M44, Gun44MagnumFactory.getNoPipConfig().setToHoming(ModItems.ammo_44_chlorophyte)); - configSet.put(CHL_P9, Gun9mmFactory.get9mmConfig().setToHoming(ModItems.ammo_9mm_chlorophyte)); - configSet.put(CHL_BMG50, Gun50BMGFactory.get50BMGConfig().setToHoming(ModItems.ammo_50bmg_chlorophyte)); - configSet.put(CHL_R5, Gun5mmFactory.get5mmConfig().setToHoming(ModItems.ammo_5mm_chlorophyte)); - configSet.put(CHL_R5_BOLT, Gun5mmFactory.get5mmConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE).setToHoming(ModItems.ammo_5mm_chlorophyte)); - configSet.put(CHL_AE50, Gun50AEFactory.get50AEConfig().setToHoming(ModItems.ammo_50ae_chlorophyte)); - configSet.put(CHL_R556, Gun556mmFactory.get556Config().setToHoming(ModItems.ammo_556_chlorophyte)); - configSet.put(CHL_R556_FLECHETTE, Gun556mmFactory.get556FlechetteConfig().setToHoming(ModItems.ammo_556_flechette_chlorophyte)); + configSet.put(CHL_LR22, Gun22LRFactory.get22LRConfig().setToHoming(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.CHLOROPHYTE))); + configSet.put(CHL_LR22_FIRE, Gun22LRFactory.get22LRConfig().setToFire(3).setToHoming(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.CHLOROPHYTE))); + configSet.put(CHL_M44, Gun44MagnumFactory.getNoPipConfig().setToHoming(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.CHLOROPHYTE))); + configSet.put(CHL_P9, Gun9mmFactory.get9mmConfig().setToHoming(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.CHLOROPHYTE))); + configSet.put(CHL_BMG50, Gun50BMGFactory.get50BMGConfig().setToHoming(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.CHLOROPHYTE))); + configSet.put(CHL_R5, Gun5mmFactory.get5mmConfig().setToHoming(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.CHLOROPHYTE))); + configSet.put(CHL_R5_BOLT, Gun5mmFactory.get5mmConfig().setToBolt(BulletConfiguration.BOLT_LACUNAE).setToHoming(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.CHLOROPHYTE))); + configSet.put(CHL_AE50, Gun50AEFactory.get50AEConfig().setToHoming(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.CHLOROPHYTE))); + configSet.put(CHL_R556, Gun556mmFactory.get556Config().setToHoming(ModItems.ammo_556.stackFromEnum(Ammo556mm.CHLOROPHYTE))); + configSet.put(CHL_R556_FLECHETTE, Gun556mmFactory.get556FlechetteConfig().setToHoming(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_CHLOROPHYTE))); configSet.put(MASKMAN_BULLET, GunNPCFactory.getMaskmanBullet()); configSet.put(MASKMAN_ORB, GunNPCFactory.getMaskmanOrb()); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index d8ba85af4..71c208daa 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -10,19 +10,22 @@ import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletRicochetBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.interfaces.Untested; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; +import com.hbm.particle.SpentCasing; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.EnumChatFormatting; -public class BulletConfiguration { +public class BulletConfiguration implements Cloneable { //what item this specific configuration consumes - public Item ammo; + public ComparableStack ammo; //how many ammo units one item restores public int ammoCount = 1; //how fast the bullet is (in sanics per second, or sps) @@ -98,6 +101,7 @@ public class BulletConfiguration { public int plink; //vanilla particle FX public String vPFX = ""; + public SpentCasing spentCasing; //energy projectiles //power consumed per shot @@ -173,9 +177,7 @@ public class BulletConfiguration { return this; } - public BulletConfiguration setToHoming(Item ammo) { - - this.ammo = ammo; + public BulletConfiguration getChlorophyte() { this.bUpdate = BulletConfigFactory.getHomingBehavior(200, 45); this.dmgMin *= 1.5F; this.dmgMax *= 1.5F; @@ -183,9 +185,27 @@ public class BulletConfiguration { this.doesRicochet = false; this.doesPenetrate = false; this.vPFX = "greendust"; + + if(this.spentCasing != null) { + int[] colors = this.spentCasing.getColors(); + this.spentCasing = this.spentCasing.clone(); + + if(colors != null && colors.length > 0) { + int[] colorClone = new int[colors.length]; + for(int i = 0; i < colors.length; i++) colorClone[i] = colors[i]; + colorClone[colorClone.length - 1] = 0x659750; // <- standard chlorophyte coloring in last place + this.spentCasing.setColor(colorClone).register(this.spentCasing.getName() + "Cl"); + } + } + return this; } + public BulletConfiguration setToHoming(ItemStack ammo) { + this.ammo = new ComparableStack(ammo); + return getChlorophyte(); + } + public BulletConfiguration accuracyMod(float mod) { this.spread *= mod; @@ -214,4 +234,14 @@ public class BulletConfiguration { return dmg; } + + @Override + public BulletConfiguration clone() { + try { + return (BulletConfiguration) super.clone(); + } catch(CloneNotSupportedException e) { + MainRegistry.logger.catching(e); + return new BulletConfiguration(); + } + } } diff --git a/src/main/java/com/hbm/handler/CasingEjector.java b/src/main/java/com/hbm/handler/CasingEjector.java new file mode 100644 index 000000000..72ec13a3a --- /dev/null +++ b/src/main/java/com/hbm/handler/CasingEjector.java @@ -0,0 +1,163 @@ +package com.hbm.handler; + +import java.util.HashMap; +import java.util.Random; + +import org.lwjgl.util.vector.Matrix4f; +import org.lwjgl.util.vector.Vector3f; +import org.lwjgl.util.vector.Vector4f; + +import com.hbm.particle.ParticleSpentCasing; +import com.hbm.particle.SpentCasing; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +/** + * Config for the guns themselves on where to spawn casings and at what angle + * @author uffr, hbm + */ +public class CasingEjector implements Cloneable { + + public static HashMap mappings = new HashMap(); + public static final Random rand = new Random(); + + private int id; + private static int nextId = 0; + private Vec3 posOffset = Vec3.createVectorHelper(0, 0, 0); + private Vec3 initialMotion = Vec3.createVectorHelper(0, 0, 0); + private int casingAmount = 1; + private boolean afterReload = false; + private int delay = 0; + private float randomYaw = 0F; + private float randomPitch = 0F; + + public CasingEjector() { + this.id = nextId; + nextId++; + + mappings.put(id, this); + } + + public CasingEjector setOffset(double x, double y, double z) { + return setOffset(Vec3.createVectorHelper(x, y, z)); + } + + public CasingEjector setOffset(Vec3 vec) { + this.posOffset = vec; + return this; + } + + public CasingEjector setMotion(double x, double y, double z) { + return setMotion(Vec3.createVectorHelper(x, y, z)); + } + + public CasingEjector setMotion(Vec3 vec) { + this.initialMotion = vec; + return this; + } + + public CasingEjector setAmount(int am) { + this.casingAmount = am; + return this; + } + + public CasingEjector setAfterReload() { + this.afterReload = true; + return this; + } + + public CasingEjector setDelay(int delay) { + this.delay = delay; + return this; + } + + public CasingEjector setAngleRange(float yaw, float pitch) { + this.randomYaw = yaw; + this.randomPitch = pitch; + return this; + } + + public int getId() { return this.id; } + public Vec3 getOffset() { return this.posOffset; } + public Vec3 getMotion() { return this.initialMotion; } + public int getAmount() { return this.casingAmount; } + public boolean getAfterReload() { return this.afterReload; } + public int getDelay() { return this.delay; } + public float getYawFactor() { return this.randomYaw; } + public float getPitchFactor() { return this.randomPitch; } + + @SideOnly(Side.CLIENT) + public void spawnCasing(TextureManager textureManager, SpentCasing config, World world, double x, double y, double z, float pitch, float yaw, boolean crouched) { + Vec3 rotatedMotionVec = rotateVector(getMotion(), pitch + (float) rand.nextGaussian() * getPitchFactor(), yaw + (float) rand.nextGaussian() * getPitchFactor(), getPitchFactor(), getPitchFactor()); + ParticleSpentCasing casing = new ParticleSpentCasing(textureManager, world, x, y, z, rotatedMotionVec.xCoord, rotatedMotionVec.yCoord, rotatedMotionVec.zCoord, (float) (getPitchFactor() * rand.nextGaussian()), (float) (getYawFactor() * rand.nextGaussian()), config); + + offsetCasing(casing, getOffset(), pitch, yaw, crouched); + + casing.rotationPitch = (float) Math.toDegrees(pitch); + casing.rotationYaw = (float) Math.toDegrees(yaw); + + Minecraft.getMinecraft().effectRenderer.addEffect(casing); + } + + // Rotate a position + @SideOnly(Side.CLIENT) + private static void offsetCasing(ParticleSpentCasing casing, Vec3 offset, float pitch, float yaw, boolean crouched) { + // x-axis offset, 0 if crouched to center + final float oX = (float) (crouched ? 0 : offset.xCoord); + // Create rotation matrices for pitch and yaw + final Matrix4f pitchMatrix = new Matrix4f(), yawMatrix = new Matrix4f(); + + pitchMatrix.rotate(pitch, new Vector3f(1, 0, 0)); // modify axis of rotation + yawMatrix.rotate(-yaw, new Vector3f(0, 1, 0)); + + // Multiply matrices to get combined rotation matrix + final Matrix4f rotMatrix = Matrix4f.mul(yawMatrix, pitchMatrix, null); + // Create vector representing the offset and apply rotation + final Vector4f offsetVector = new Vector4f(oX, (float) offset.yCoord, (float) offset.zCoord, 1); // set fourth coordinate to 1 + Matrix4f.transform(rotMatrix, offsetVector, offsetVector); + final Vector3f result = new Vector3f(); // create result vector + result.set(offsetVector.x, offsetVector.y, offsetVector.z); // set result vector using transformed coordinates + // Apply rotation + casing.setPosition(casing.posX + result.x, casing.posY + result.y, casing.posZ + result.z); + } + + private static Vec3 rotateVector(Vec3 vector, float pitch, float yaw, float pitchFactor, float yawFactor) { + // Apply randomness to vector + vector.xCoord += rand.nextGaussian() * yawFactor; + vector.yCoord += rand.nextGaussian() * pitchFactor; + vector.zCoord += rand.nextGaussian() * yawFactor; + + final Matrix4f pitchMatrix = new Matrix4f(), yawMatrix = new Matrix4f(); + + pitchMatrix.setIdentity(); + pitchMatrix.rotate(-pitch, new Vector3f(1, 0, 0)); + + yawMatrix.setIdentity(); + yawMatrix.rotate(-yaw, new Vector3f(0, 1, 0)); + + final Vector4f vector4f = new Vector4f((float) vector.xCoord, (float) vector.yCoord, (float) vector.zCoord, 1); + + Matrix4f.transform(pitchMatrix, vector4f, vector4f); + Matrix4f.transform(yawMatrix, vector4f, vector4f); + + return Vec3.createVectorHelper(vector4f.x, vector4f.y, vector4f.z); + } + + public static CasingEjector fromId(int id) { + return mappings.get(id); + } + + @Override + public CasingEjector clone() { + try { + return (CasingEjector) super.clone(); + } catch(CloneNotSupportedException e) { + return new CasingEjector(); + } + } +} diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 1390bb5fb..499af94d0 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -4,11 +4,14 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; -public class GunConfiguration { +import net.minecraft.util.ResourceLocation; + +public class GunConfiguration implements Cloneable { /** * alt function restrictions: @@ -31,8 +34,14 @@ public class GunConfiguration { //animations! public HashMap animations = new HashMap(); - //whether ot not to disable crosshais when sneaking + //whether or not to disable crosshair when sneaking public boolean hasSights; + //texture overlay when sneaking + public ResourceLocation scopeTexture; + //whether the FOV multiplier should be absolute or multiplicative to other modifiers, multiplicative mode is experimental! + public boolean absoluteFOV = true; + //the target FOV/multiplied FOV modifier when sneaking + public float zoomFOV = 0.0F; //how long the reload animation will play //MUST BE GREATER THAN ZERO ! ! ! @@ -46,6 +55,7 @@ public class GunConfiguration { public float firingPitch = 1.0F; //whether the reload sound should be played at the beginning or at the end of the reload public boolean reloadSoundEnd = true; + public String equipSound = ""; //how much ammo the clip can hold, 0 if drawn from inventory public int ammoCap; @@ -58,14 +68,14 @@ public class GunConfiguration { //for electrically powered weapons: //the Maximum capacity of the gun - public int maxCharge; + public long maxCharge; //the rate at which the gun is charged - public int chargeRate; + public long chargeRate; //how much energy is discharged per shot - public int dischargePerShot; + public long dischargePerShot; public String name = ""; - public String manufacturer = ""; + public EnumGunManufacturer manufacturer = EnumGunManufacturer.NONE; public List comment = new ArrayList(); //bullet configs for main and alt fire @@ -73,6 +83,9 @@ public class GunConfiguration { //crosshair public Crosshair crosshair; + + //casing eject behavior + public CasingEjector ejector = null; public static final int MODE_NORMAL = 0; public static final int MODE_RELEASE = 1; diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index f533fc528..60a8ae6b7 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -2,6 +2,7 @@ package com.hbm.handler; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.tool.IItemAbility; import com.hbm.packet.AuxParticlePacketNT; @@ -206,38 +207,27 @@ public abstract class WeaponAbility { if(living.getHealth() <= 0.0F) { WeightedRandomObject[] ammo = new WeightedRandomObject[] { - new WeightedRandomObject(ModItems.ammo_12gauge, 10), - new WeightedRandomObject(ModItems.ammo_12gauge_shrapnel, 5), - new WeightedRandomObject(ModItems.ammo_12gauge_du, 3), - new WeightedRandomObject(ModItems.ammo_20gauge, 10), - new WeightedRandomObject(ModItems.ammo_20gauge_flechette, 5), - new WeightedRandomObject(ModItems.ammo_20gauge_slug, 5), - new WeightedRandomObject(ModItems.ammo_9mm, 10), - new WeightedRandomObject(ModItems.ammo_9mm_ap, 5), - new WeightedRandomObject(ModItems.ammo_5mm, 10), - new WeightedRandomObject(ModItems.ammo_5mm_du, 3), - new WeightedRandomObject(ModItems.ammo_556, 10), - new WeightedRandomObject(ModItems.ammo_556_phosphorus, 5), - new WeightedRandomObject(ModItems.ammo_556_flechette, 10), - new WeightedRandomObject(ModItems.ammo_556_flechette_phosphorus, 5), - new WeightedRandomObject(ModItems.ammo_50bmg, 10), - new WeightedRandomObject(ModItems.ammo_50bmg_incendiary, 5), - new WeightedRandomObject(ModItems.ammo_50bmg_ap, 5), - new WeightedRandomObject(ModItems.ammo_grenade, 5), - new WeightedRandomObject(ModItems.ammo_grenade_concussion, 3), - new WeightedRandomObject(ModItems.ammo_grenade_phosphorus, 3), - new WeightedRandomObject(ModItems.ammo_rocket, 5), - new WeightedRandomObject(ModItems.ammo_rocket_glare, 5), - new WeightedRandomObject(ModItems.ammo_rocket_phosphorus, 5), - new WeightedRandomObject(ModItems.ammo_rocket_rpc, 1), - new WeightedRandomObject(ModItems.syringe_metal_stimpak, 25), + new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.STOCK), 10), + new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SHRAPNEL), 5), + new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.STOCK), 10), + new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.FLECHETTE), 5), + new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLUG), 5), + new WeightedRandomObject(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.STOCK), 10), + new WeightedRandomObject(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STOCK), 10), + new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.STOCK), 10), + new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE), 10), + new WeightedRandomObject(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STOCK), 3), + new WeightedRandomObject(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.STOCK), 3), + new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.STOCK), 1), + new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE), 1), + new WeightedRandomObject(new ItemStack(ModItems.syringe_metal_stimpak), 20), }; int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health for(int i = 0; i < count; i++) { - living.dropItem(((WeightedRandomObject)WeightedRandom.getRandomItem(living.getRNG(), ammo)).asItem(), 1); + living.entityDropItem(((WeightedRandomObject)WeightedRandom.getRandomItem(living.getRNG(), ammo)).asStack(), 1); world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); } diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 4bd0647ce..b60e9b385 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -10,6 +10,8 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; @@ -37,8 +39,8 @@ public class BulletConfigFactory { public static BulletConfiguration getTestConfig() { BulletConfiguration bullet = new BulletConfiguration(); - - bullet.ammo = ModItems.gun_revolver_ammo; + + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); bullet.velocity = 5.0F; bullet.spread = 0.05F; bullet.wear = 10; @@ -62,6 +64,8 @@ public class BulletConfigFactory { } + public static final float defaultSpread = 0.005F; + /// STANDARD CONFIGS /// //do not include damage or ammo public static BulletConfiguration standardBulletConfig() { @@ -69,7 +73,7 @@ public class BulletConfigFactory { BulletConfiguration bullet = new BulletConfiguration(); bullet.velocity = 5.0F; - bullet.spread = 0.005F; + bullet.spread = defaultSpread; bullet.wear = 10; bullet.bulletsMin = 1; bullet.bulletsMax = 1; @@ -101,9 +105,9 @@ public class BulletConfigFactory { BulletConfiguration bullet = new BulletConfiguration(); bullet.velocity = 5.0F; - bullet.spread = 0.05F; + bullet.spread = defaultSpread * 10F; bullet.wear = 10; - bullet.bulletsMin = 5; + bullet.bulletsMin = 6; bullet.bulletsMax = 8; bullet.gravity = 0D; bullet.maxAge = 100; @@ -181,7 +185,7 @@ public class BulletConfigFactory { BulletConfiguration bullet = new BulletConfiguration(); bullet.velocity = 2.0F; - bullet.spread = 0.005F; + bullet.spread = defaultSpread; bullet.wear = 10; bullet.bulletsMin = 1; bullet.bulletsMax = 1; @@ -207,7 +211,7 @@ public class BulletConfigFactory { BulletConfiguration bullet = new BulletConfiguration(); bullet.velocity = 2.0F; - bullet.spread = 0.005F; + bullet.spread = defaultSpread; bullet.wear = 10; bullet.bulletsMin = 1; bullet.bulletsMax = 1; @@ -233,7 +237,7 @@ public class BulletConfigFactory { BulletConfiguration bullet = new BulletConfiguration(); bullet.velocity = 3.0F; - bullet.spread = 0.005F; + bullet.spread = defaultSpread; bullet.wear = 10; bullet.bulletsMin = 1; bullet.bulletsMax = 1; @@ -258,7 +262,7 @@ public class BulletConfigFactory { BulletConfiguration bullet = new BulletConfiguration(); bullet.velocity = 3.0F; - bullet.spread = 0.005F; + bullet.spread = defaultSpread; bullet.wear = 10; bullet.bulletsMin = 1; bullet.bulletsMax = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 1ab0b2d26..12746e4be 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -1,13 +1,22 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; +import java.util.List; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHurtBehavior; +import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.Ammo12Gauge; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; @@ -15,12 +24,31 @@ import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; public class Gun12GaugeFactory { + private static final CasingEjector EJECTOR_SPAS, EJECTOR_SPAS_ALT, EJECTOR_BENELLI, EJECTOR_UBOINIK, EJECTOR_SSG; + private static final SpentCasing CASING12GAUGE; + + static { + EJECTOR_SPAS = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12); + EJECTOR_SPAS_ALT = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, 0, 0.5).setAngleRange(0.01F, 0.03F).setDelay(12).setAmount(2); + EJECTOR_BENELLI = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.3, 1, 0).setAngleRange(0.01F, 0.03F); + EJECTOR_UBOINIK = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.3, 0.5).setAngleRange(0.01F, 0.03F); + EJECTOR_SSG = new CasingEjector().setMotion(0.2, 0, -0.2).setOffset(0.8, 0, 0).setAngleRange(0.05F, 0.02F).setDelay(20).setAmount(2); + + CASING12GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(1.5F).setBounceMotion(0.05F, 0.02F).setupSmoke(0.5F, 0.5D, 60, 20); + } + public static GunConfiguration getSpas12Config() { GunConfiguration config = new GunConfiguration(); @@ -39,18 +67,12 @@ public class Gun12GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.shotgunPump"; - config.name = "Franchi SPAS-12"; - config.manufacturer = "Black Mesa Armory"; + config.name = "spas12"; + config.manufacturer = EnumGunManufacturer.BLACK_MESA; config.comment.add("\"Here, I have a more suitable gun for you. You'll need it - Catch!\""); config.comment.add("Alt-fire with Mouse 2 (Right-click) to fire 2 shells at once"); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G12_NORMAL); - config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G12_DU); - config.config.add(BulletConfigSyncingUtil.G12_AM); - config.config.add(BulletConfigSyncingUtil.G12_SLEEK); + config.config = HbmCollection.twelveGauge; config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SPAS_RECOIL_TRANSLATE", new BusAnimationSequence() @@ -68,10 +90,12 @@ public class Gun12GaugeFactory { ) ); + config.ejector = EJECTOR_SPAS; + return config; } -public static GunConfiguration getSpas12AltConfig() { + public static GunConfiguration getSpas12AltConfig() { GunConfiguration config = new GunConfiguration(); @@ -85,14 +109,9 @@ public static GunConfiguration getSpas12AltConfig() { config.firingSound = "hbm:weapon.shotgunPump"; config.reloadType = GunConfiguration.RELOAD_SINGLE; + config.config = HbmCollection.twelveGauge; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G12_NORMAL); - config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G12_DU); - config.config.add(BulletConfigSyncingUtil.G12_AM); - config.config.add(BulletConfigSyncingUtil.G12_SLEEK); + config.ejector = EJECTOR_SPAS_ALT; return config; } @@ -115,16 +134,12 @@ public static GunConfiguration getSpas12AltConfig() { config.reloadSound = GunConfiguration.RSOUND_REVOLVER; config.firingSound = "hbm:weapon.shotgunShoot"; - config.name = "Uboinik Revolving Shotgun"; - config.manufacturer = "Metro Gunsmiths"; + config.name = "uboinik"; + config.manufacturer = EnumGunManufacturer.METRO; + + config.config = HbmCollection.twelveGauge; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G12_NORMAL); - config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G12_DU); - config.config.add(BulletConfigSyncingUtil.G12_AM); - config.config.add(BulletConfigSyncingUtil.G12_SLEEK); + config.ejector = EJECTOR_UBOINIK; return config; } @@ -171,17 +186,13 @@ public static GunConfiguration getSpas12AltConfig() { ) ); - config.name = "Double-Barreled Combat Shotgun"; - config.manufacturer = "Union Aerospace Corporation"; + config.name = "supershotty"; + config.manufacturer = EnumGunManufacturer.UAC; config.comment.add("God-damned ARCH-VILES!"); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G12_NORMAL); - config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G12_DU); - config.config.add(BulletConfigSyncingUtil.G12_AM); - config.config.add(BulletConfigSyncingUtil.G12_SLEEK); + config.config = HbmCollection.twelveGauge; + + config.ejector = EJECTOR_SSG; return config; } @@ -190,31 +201,35 @@ public static GunConfiguration getSpas12AltConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_12gauge; + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.STOCK)); bullet.dmgMin = 5; bullet.dmgMax = 7; + bullet.spentCasing = CASING12GAUGE.clone().register("12GaStock").setColor(0x2847FF, SpentCasing.COLOR_CASE_12GA); + return bullet; } public static BulletConfiguration get12GaugeFireConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = ModItems.ammo_12gauge_incendiary; + BulletConfiguration bullet = get12GaugeConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.INCENDIARY)); bullet.wear = 15; bullet.dmgMin = 5; bullet.dmgMax = 7; bullet.incendiary = 5; + bullet.spentCasing = CASING12GAUGE.clone().register("12GaInc").setColor(0xFF6329, SpentCasing.COLOR_CASE_12GA).setupSmoke(1F, 0.5D, 60, 40); + return bullet; } public static BulletConfiguration get12GaugeShrapnelConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - - bullet.ammo = ModItems.ammo_12gauge_shrapnel; + BulletConfiguration bullet = get12GaugeConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SHRAPNEL)); bullet.wear = 15; bullet.dmgMin = 10; bullet.dmgMax = 17; @@ -222,6 +237,8 @@ public static GunConfiguration getSpas12AltConfig() { bullet.HBRC = 80; bullet.LBRC = 95; + bullet.spentCasing = CASING12GAUGE.clone().register("12GaShrap").setColor(0xF0E800, SpentCasing.COLOR_CASE_12GA); + return bullet; } @@ -229,13 +246,15 @@ public static GunConfiguration getSpas12AltConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_12gauge_du; + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.DU)); bullet.wear = 20; bullet.dmgMin = 18; bullet.dmgMax = 22; bullet.doesPenetrate = true; bullet.leadChance = 50; + bullet.spentCasing = CASING12GAUGE.clone().register("12GaDU").setColor(0x62A362, SpentCasing.COLOR_CASE_12GA); + return bullet; } @@ -243,7 +262,7 @@ public static GunConfiguration getSpas12AltConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_12gauge_marauder; + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.MARAUDER)); bullet.wear = 20; bullet.dmgMin = 100; bullet.dmgMax = 500; @@ -260,6 +279,8 @@ public static GunConfiguration getSpas12AltConfig() { }; + bullet.spentCasing = CASING12GAUGE.clone().register("12GaAM").setColor(0x416645, SpentCasing.COLOR_CASE_12GA); + return bullet; } @@ -267,7 +288,61 @@ public static GunConfiguration getSpas12AltConfig() { BulletConfiguration bullet = BulletConfigFactory.standardAirstrikeConfig(); - bullet.ammo = ModItems.ammo_12gauge_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SLEEK)); + + bullet.spentCasing = CASING12GAUGE.clone().register("12GaIF").setColor(0x2A2A2A, SpentCasing.COLOR_CASE_12GA); + + return bullet; + } + + public static BulletConfiguration get12GaugePercussionConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.PERCUSSION)); + bullet.velocity = 2F; + bullet.spread = 0F; + bullet.wear = 10; + bullet.dmgMin = 30F; + bullet.dmgMax = 30F; + bullet.maxAge = 0; + + bullet.spentCasing = CASING12GAUGE.clone().register("12GaPerc").setColor(0x9E1616, SpentCasing.COLOR_CASE_12GA).setupSmoke(1F, 0.5D, 60, 40); + + bullet.bUpdate = new IBulletUpdateBehavior() { + + @Override + public void behaveUpdate(EntityBulletBase bullet) { + + if(!bullet.worldObj.isRemote) { + + Vec3 vec = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ); + double radius = 4; + double x = bullet.posX + vec.xCoord; + double y = bullet.posY + vec.yCoord; + double z = bullet.posZ + vec.zCoord; + AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(x, y, z, x, y, z).expand(radius, radius, radius); + List list = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet.shooter, aabb); + + for(Entity e : list) { + DamageSource source = bullet.shooter instanceof EntityPlayer ? DamageSource.causePlayerDamage((EntityPlayer) bullet.shooter) : DamageSource.magic; + e.attackEntityFrom(source, 30F); + } + + 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) -bullet.rotationPitch + 90); + data.setFloat("yaw", (float) bullet.rotationYaw); + data.setFloat("scale", 2F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(bullet.dimension, x, y, z, 100)); + + bullet.setDead(); + } + } + }; return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index 08d3d7ba9..86cbf9aff 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -2,10 +2,16 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo20Gauge; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; @@ -14,9 +20,18 @@ import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; public class Gun20GaugeFactory { + private static final CasingEjector EJECTOR_SHOTGUN; + private static final SpentCasing CASING20GAUGE; + + static { + EJECTOR_SHOTGUN = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.95, 0)).setOffset(Vec3.createVectorHelper(-0.55, 0, 0.5)).setAngleRange(0.01F, 0.05F); + CASING20GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(1.25F).setBounceMotion(0.01F, 0.05F).setupSmoke(0.25F, 0.5D, 60, 20); + } + public static GunConfiguration getShotgunConfig() { GunConfiguration config = new GunConfiguration(); @@ -48,17 +63,9 @@ public class Gun20GaugeFactory { ) ); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G20_NORMAL); - config.config.add(BulletConfigSyncingUtil.G20_SLUG); - config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G20_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC); - config.config.add(BulletConfigSyncingUtil.G20_SHOCK); - config.config.add(BulletConfigSyncingUtil.G20_WITHER); - config.config.add(BulletConfigSyncingUtil.G20_SLEEK); + config.config = HbmCollection.twentyGauge; + + config.ejector = EJECTOR_SHOTGUN; return config; } @@ -72,20 +79,10 @@ public class Gun20GaugeFactory { config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; - config.name = "Winchester Model 1887"; - config.manufacturer = "Winchester Repeating Arms Company"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G20_NORMAL); - config.config.add(BulletConfigSyncingUtil.G20_SLUG); - config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G20_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC); - config.config.add(BulletConfigSyncingUtil.G20_SHOCK); - config.config.add(BulletConfigSyncingUtil.G20_WITHER); - config.config.add(BulletConfigSyncingUtil.G20_SLEEK); + config.name = "win1887"; + config.manufacturer = EnumGunManufacturer.WINCHESTER; + + config.config = HbmCollection.twentyGauge; return config; } @@ -99,20 +96,10 @@ public class Gun20GaugeFactory { config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; - config.name = "Winchester Model 1887 Inox"; - config.manufacturer = "Winchester Repeating Arms Company"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G20_NORMAL); - config.config.add(BulletConfigSyncingUtil.G20_SLUG); - config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G20_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC); - config.config.add(BulletConfigSyncingUtil.G20_SHOCK); - config.config.add(BulletConfigSyncingUtil.G20_WITHER); - config.config.add(BulletConfigSyncingUtil.G20_SLEEK); + config.name = "win1887Inox"; + config.manufacturer = EnumGunManufacturer.WINCHESTER; + + config.config = HbmCollection.twentyGauge; return config; } @@ -145,20 +132,10 @@ public class Gun20GaugeFactory { ) ); - config.name = "Remington Model 700"; - config.manufacturer = "Remington Arms Company"; + config.name = "win20Inox"; + config.manufacturer = EnumGunManufacturer.WINCHESTER; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G20_SLUG); - config.config.add(BulletConfigSyncingUtil.G20_NORMAL); - config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G20_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC); - config.config.add(BulletConfigSyncingUtil.G20_SHOCK); - config.config.add(BulletConfigSyncingUtil.G20_WITHER); - config.config.add(BulletConfigSyncingUtil.G20_SLEEK); + config.config = HbmCollection.twentyGauge; return config; } @@ -191,20 +168,10 @@ public class Gun20GaugeFactory { ) ); - config.name = "Winchester Model 20 Polymer"; - config.manufacturer = "Winchester Repeating Arms Company"; + config.name = "win20Poly"; + config.manufacturer = EnumGunManufacturer.WINCHESTER; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G20_SLUG); - config.config.add(BulletConfigSyncingUtil.G20_NORMAL); - config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G20_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC); - config.config.add(BulletConfigSyncingUtil.G20_SHOCK); - config.config.add(BulletConfigSyncingUtil.G20_WITHER); - config.config.add(BulletConfigSyncingUtil.G20_SLEEK); + config.config = HbmCollection.twentyGauge; return config; } @@ -237,20 +204,10 @@ public class Gun20GaugeFactory { ) ); - config.name = "Winchester Model 20 D-25A"; - config.manufacturer = "Winchester Repeating Arms Company / Big MT"; + config.name = "win20Satur"; + config.manufacturer = EnumGunManufacturer.WINCHESTER_BIGMT; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G20_SLUG_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_NORMAL_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_FLECHETTE_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHRAPNEL); - config.config.add(BulletConfigSyncingUtil.G20_EXPLOSIVE_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_CAUSTIC_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SHOCK_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_WITHER_FIRE); - config.config.add(BulletConfigSyncingUtil.G20_SLEEK); + config.config = HbmCollection.twentyGauge; return config; } @@ -259,10 +216,12 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.STOCK)); bullet.dmgMin = 3; bullet.dmgMax = 5; + bullet.spentCasing = CASING20GAUGE.clone().register("20GaStock").setColor(0xB52B2B, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -270,12 +229,14 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_20gauge_slug; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLUG)); bullet.dmgMin = 18; bullet.dmgMax = 22; bullet.wear = 7; bullet.style = BulletConfiguration.STYLE_NORMAL; + bullet.spentCasing = CASING20GAUGE.clone().register("20GaSlug").setColor(0x2A2A2A, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -283,7 +244,7 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_flechette; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.FLECHETTE)); bullet.dmgMin = 8; bullet.dmgMax = 15; bullet.wear = 15; @@ -291,6 +252,8 @@ public class Gun20GaugeFactory { bullet.HBRC = 2; bullet.LBRC = 95; + bullet.spentCasing = CASING20GAUGE.clone().register("20GaFlech").setColor(0x2847FF, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -298,12 +261,14 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.INCENDIARY)); bullet.dmgMin = 3; bullet.dmgMax = 6; bullet.wear = 15; bullet.incendiary = 5; + bullet.spentCasing = CASING20GAUGE.clone().register("20GaInc").setColor(0xFF6329, SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 40); + return bullet; } @@ -311,7 +276,7 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_shrapnel; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SHRAPNEL)); bullet.wear = 15; bullet.dmgMin = 7; bullet.dmgMax = 12; @@ -319,6 +284,8 @@ public class Gun20GaugeFactory { bullet.HBRC = 80; bullet.LBRC = 95; + bullet.spentCasing = CASING20GAUGE.clone().register("20GaShrap").setColor(0xF0E800, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -326,12 +293,14 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_explosive; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.EXPLOSIVE)); bullet.dmgMin = 7; bullet.dmgMax = 12; bullet.wear = 25; bullet.explosive = 0.5F; + bullet.spentCasing = CASING20GAUGE.clone().register("20GaExp").setColor(0xF0E800, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -339,7 +308,7 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_caustic; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.CAUSTIC)); bullet.dmgMin = 3; bullet.dmgMax = 7; bullet.wear = 25; @@ -351,6 +320,8 @@ public class Gun20GaugeFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(Potion.poison.id, 10 * 20, 1)); + bullet.spentCasing = CASING20GAUGE.clone().register("20GaCaus").setColor(0x64E800, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -358,7 +329,7 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_shock; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SHOCK)); bullet.dmgMin = 4; bullet.dmgMax = 8; bullet.wear = 25; @@ -371,6 +342,8 @@ public class Gun20GaugeFactory { bullet.effects.add(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 1)); bullet.effects.add(new PotionEffect(Potion.weakness.id, 10 * 20, 4)); + bullet.spentCasing = CASING20GAUGE.clone().register("20GaShock").setColor(0x00EFEF, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -378,13 +351,15 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_20gauge_wither; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.WITHER)); bullet.dmgMin = 4; bullet.dmgMax = 8; bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(Potion.wither.id, 10 * 20, 2)); + bullet.spentCasing = CASING20GAUGE.clone().register("20GaWith").setColor(0x391717, SpentCasing.COLOR_CASE_BRASS); + return bullet; } @@ -392,7 +367,9 @@ public class Gun20GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardAirstrikeConfig(); - bullet.ammo = ModItems.ammo_20gauge_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLEEK)); + + bullet.spentCasing = CASING20GAUGE.clone().register("20GaIF").setColor(0x2A2A2A, SpentCasing.COLOR_CASE_BRASS); return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java index aa669affa..9784b8527 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java @@ -1,15 +1,27 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo22LR; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class Gun22LRFactory { + private static final CasingEjector EJECTOR_22LR; + private static final SpentCasing CASING22LR; + + static { + EJECTOR_22LR = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.2, 0.35).setAngleRange(0.01F, 0.03F); + CASING22LR = new SpentCasing(CasingType.STRAIGHT).setScale(0.8F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS); + } + public static GunConfiguration getUziConfig() { GunConfiguration config = new GunConfiguration(); @@ -29,14 +41,13 @@ public class Gun22LRFactory { config.firingSound = "hbm:weapon.uziShoot"; config.reloadSoundEnd = false; - config.name = "IMI Uzi"; - config.manufacturer = "Israel Military Industries"; + config.name = "uzi"; + config.manufacturer = EnumGunManufacturer.IMI; config.comment.add("Mom, where are my mittens?"); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.LR22_NORMAL); - config.config.add(BulletConfigSyncingUtil.LR22_AP); - config.config.add(BulletConfigSyncingUtil.CHL_LR22); + config.config = HbmCollection.twentyTwoLR; + + config.ejector = EJECTOR_22LR; return config; } @@ -47,13 +58,10 @@ public class Gun22LRFactory { config.durability = 4500; - config.name = "IMI Uzi D-25A"; - config.manufacturer = "IMI / Big MT"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.LR22_NORMAL_FIRE); - config.config.add(BulletConfigSyncingUtil.LR22_AP_FIRE); - config.config.add(BulletConfigSyncingUtil.CHL_LR22_FIRE); + config.name = "uziSatur"; + config.manufacturer = EnumGunManufacturer.IMI_BIGMT; + + config.config = HbmCollection.twentyTwoLRFire; return config; } @@ -63,11 +71,13 @@ public class Gun22LRFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_22lr; + bullet.ammo = new ComparableStack(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 6; bullet.dmgMax = 8; + bullet.spentCasing = CASING22LR.clone().register("22LRStock"); + return bullet; } @@ -75,13 +85,15 @@ public class Gun22LRFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_22lr_ap; + bullet.ammo = new ComparableStack(ModItems.ammo_22lr.stackFromEnum(Ammo22LR.AP)); bullet.spread *= inaccuracy; bullet.dmgMin = 12; bullet.dmgMax = 16; bullet.leadChance = 10; bullet.wear = 15; + bullet.spentCasing = CASING22LR.clone().register("22LRAP"); + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java index 7aed32486..1a16da32a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java @@ -4,16 +4,33 @@ import java.util.ArrayList; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; public class Gun357MagnumFactory { + private static final CasingEjector EJECTOR_REVOLVER; + private static final SpentCasing CASING357; + private static final SpentCasing CASINGNM; + + static { + EJECTOR_REVOLVER = new CasingEjector().setMotion(Vec3.createVectorHelper(0, 0, -0.03)).setOffset(Vec3.createVectorHelper(0, -0.15, 0)).setAngleRange(0.01F, 0.05F).setAfterReload().setAmount(6); + CASING357 = new SpentCasing(CasingType.STRAIGHT).setBounceMotion(0.01F, 0.05F); + CASINGNM = new SpentCasing(CasingType.SHOTGUN).setScale(1.25F).setBounceMotion(0.01F, 0.05F).setColor(0xC7AB1C, 0x6D63A6).register("357N2"); + } + public static GunConfiguration getBaseConfig() { GunConfiguration config = new GunConfiguration(); @@ -32,6 +49,8 @@ public class Gun357MagnumFactory { config.firingSound = "hbm:weapon.revolverShoot"; config.reloadSoundEnd = false; + config.ejector = EJECTOR_REVOLVER; + return config; } @@ -41,8 +60,8 @@ public class Gun357MagnumFactory { config.durability = 2000; - config.name = "FFI Viper"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffiV"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.IRON_REVOLVER); @@ -57,8 +76,8 @@ public class Gun357MagnumFactory { config.durability = 3500; - config.name = "FFI Viper Inox"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffiVInox"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.STEEL_REVOLVER); @@ -73,8 +92,8 @@ public class Gun357MagnumFactory { config.durability = 3500; - config.name = "FFI Viper D-25A"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffivSatur"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.SATURNITE_REVOLVER); @@ -89,8 +108,8 @@ public class Gun357MagnumFactory { config.durability = 2000; - config.name = "FFI Viper Lead"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffiVLead"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.LEAD_REVOLVER); @@ -105,8 +124,8 @@ public class Gun357MagnumFactory { config.durability = 2500; - config.name = "FFI Viper Bling"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffivBling"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.GOLD_REVOLVER); @@ -124,8 +143,8 @@ public class Gun357MagnumFactory { config.durability = 5000; config.firingSound = "hbm:weapon.heavyShoot"; - config.name = "Britannia Standard Issue Motorized Handgun"; - config.manufacturer = "BAE Systems plc"; + config.name = "revolverCursed"; + config.manufacturer = EnumGunManufacturer.BAE; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.CURSED_REVOLVER); @@ -141,8 +160,8 @@ public class Gun357MagnumFactory { config.durability = 7500; config.firingSound = "hbm:weapon.schrabidiumShoot"; - config.name = "FFI Viper Ultra"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffiVUltra"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.SCHRABIDIUM_REVOLVER); @@ -158,8 +177,8 @@ public class Gun357MagnumFactory { config.durability = 4000; config.firingSound = "hbm:weapon.schrabidiumShoot"; - config.name = "FFI Viper N1"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffiVN1"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NIGHT_REVOLVER); @@ -176,8 +195,8 @@ public class Gun357MagnumFactory { config.firingSound = "hbm:weapon.schrabidiumShoot"; config.crosshair = Crosshair.NONE; - config.name = "FFI Viper N2"; - config.manufacturer = "FlimFlam Industries"; + config.name = "ffiVN2"; + config.manufacturer = EnumGunManufacturer.FLIMFLAM; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NIGHT2_REVOLVER); @@ -185,27 +204,6 @@ public class Gun357MagnumFactory { return config; } - public static GunConfiguration getRevolverBioConfig() { - - GunConfiguration config = getBaseConfig(); - - config.durability = 100000; - config.firingSound = "hbm:weapon.deagleShoot"; - config.reloadDuration = 53; - config.crosshair = Crosshair.CIRCLE; - - config.name = "RI No. 2 Mark 1"; - config.manufacturer = "Ryan Industries"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.IRON_HS); - config.config.add(BulletConfigSyncingUtil.STEEL_HS); - config.config.add(BulletConfigSyncingUtil.GOLD_HS); - config.config.add(BulletConfigSyncingUtil.DESH_HS); - - return config; - } - //// // // // // ////// ////// ////// // // // // // // // // // //// // // // // //// // ////// @@ -216,20 +214,11 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.gun_revolver_iron_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.IRON)); bullet.dmgMin = 8; bullet.dmgMax = 10; - return bullet; - } - - public static BulletConfiguration getRevSteelConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - - bullet.ammo = ModItems.gun_revolver_ammo; - bullet.dmgMin = 18; - bullet.dmgMax = 22; + bullet.spentCasing = CASING357.clone().register("357Iron").setColor(0xA8A8A8); return bullet; } @@ -238,13 +227,28 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.gun_revolver_lead_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); + bullet.dmgMin = 18; + bullet.dmgMax = 22; + + bullet.spentCasing = CASING357.clone().register("357Lead").setColor(0x646470); + + return bullet; + } + + public static BulletConfiguration getRevNuclearConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NUCLEAR)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(HbmPotion.radiation.id, 10 * 20, 4)); + bullet.spentCasing = CASING357.clone().register("357Nuc").setColor(0xFEFEFE); + return bullet; } @@ -252,10 +256,12 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.gun_revolver_gold_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.GOLD)); bullet.dmgMin = 25; bullet.dmgMax = 28; + bullet.spentCasing = CASING357.clone().register("357Gold").setColor(0xF9FF3E); + return bullet; } @@ -263,10 +269,12 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_357_desh; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.DESH)); bullet.dmgMin = 30; bullet.dmgMax = 33; + bullet.spentCasing = CASING357.clone().register("357Desh").setColor(0xF22929); + return bullet; } @@ -274,11 +282,13 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.gun_revolver_schrabidium_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.SCHRABIDIUM)); bullet.dmgMin = 10000; bullet.dmgMax = 100000; bullet.instakill = true; + bullet.spentCasing = CASING357.clone().register("357Schrab").setColor(0x32FFFF); + return bullet; } @@ -286,21 +296,25 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.gun_revolver_cursed_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.STEEL)); bullet.dmgMin = 18; bullet.dmgMax = 25; + bullet.spentCasing = CASING357.clone().register("357Cursed").setColor(0x565656); + return bullet; } - public static BulletConfiguration getRevNightmareConfig() { + public static BulletConfiguration getRevNightmare1Config() { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.gun_revolver_nightmare_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE1)); bullet.dmgMin = 1; bullet.dmgMax = 100; + bullet.spentCasing = CASING357.clone().register("357N1").setColor(0x3A3A3A); + return bullet; } @@ -308,7 +322,7 @@ public class Gun357MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.gun_revolver_nightmare2_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE2)); bullet.spread *= 10; bullet.bulletsMin = 4; bullet.bulletsMax = 6; @@ -321,6 +335,8 @@ public class Gun357MagnumFactory { bullet.damageType = ModDamageSource.s_laser; + bullet.spentCasing = CASINGNM; + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index af0fc44cd..7520b5c0a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -9,12 +9,20 @@ import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityDuchessGambit; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHitBehavior; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo44Magnum; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.RefStrings; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -22,9 +30,19 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class Gun44MagnumFactory { + private static final CasingEjector EJECTOR_PIP; + private static final SpentCasing CASING44; + + static { + EJECTOR_PIP = new CasingEjector().setMotion(Vec3.createVectorHelper(0, 0, -0.05)).setOffset(Vec3.createVectorHelper(0, -0.15, 0)).setAngleRange(0.01F, 0.05F).setAfterReload().setAmount(6); + CASING44 = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F, 1.0F, 1.5F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_44); + } + public static GunConfiguration getBaseConfig() { GunConfiguration config = new GunConfiguration(); @@ -43,6 +61,10 @@ public class Gun44MagnumFactory { config.firingSound = "hbm:weapon.revolverShootAlt"; config.reloadSoundEnd = false; + config.config.addAll(HbmCollection.fourtyFourMagBasic); + + config.ejector = EJECTOR_PIP; + return config; } @@ -52,41 +74,33 @@ public class Gun44MagnumFactory { config.durability = 2500; - config.name = "IF-18 Horseshoe"; - config.manufacturer = "Ironshod Firearms"; + config.name = "ifHorseshoe"; + config.manufacturer = EnumGunManufacturer.IF; config.comment.add("Fallout New Vegas wasn't THAT good."); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.M44_NORMAL); - config.config.add(BulletConfigSyncingUtil.M44_AP); - config.config.add(BulletConfigSyncingUtil.M44_DU); - config.config.add(BulletConfigSyncingUtil.M44_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.M44_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_M44); - config.config.add(BulletConfigSyncingUtil.M44_ROCKET); - return config; } + public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); + public static GunConfiguration getMacintoshConfig() { GunConfiguration config = getBaseConfig(); config.durability = 4000; - config.name = "IF-18 Horseshoe Scoped"; - config.manufacturer = "Ironshod Firearms"; + config.name = "ifScope"; + config.manufacturer = EnumGunManufacturer.IF; config.comment.add("Poppin' mentats like tic tacs"); + config.hasSights = true; + config.absoluteFOV = true; + config.zoomFOV = 0.25F; + config.scopeTexture = scope_lilmac; + config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.M44_PIP); - config.config.add(BulletConfigSyncingUtil.M44_NORMAL); - config.config.add(BulletConfigSyncingUtil.M44_AP); - config.config.add(BulletConfigSyncingUtil.M44_DU); - config.config.add(BulletConfigSyncingUtil.M44_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.M44_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_M44); - config.config.add(BulletConfigSyncingUtil.M44_ROCKET); + config.config.addAll(HbmCollection.fourtyFourMagBasic); return config; } @@ -98,19 +112,15 @@ public class Gun44MagnumFactory { config.durability = 4000; config.ammoCap = 5; - config.name = "IF-18 Horseshoe Vanity"; - config.manufacturer = "Ironshod Firearms"; + config.name = "ifVanity"; + config.manufacturer = EnumGunManufacturer.IF; config.comment.add("Alcoholism is cool!"); config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.M44_BJ); - config.config.add(BulletConfigSyncingUtil.M44_NORMAL); - config.config.add(BulletConfigSyncingUtil.M44_AP); - config.config.add(BulletConfigSyncingUtil.M44_DU); - config.config.add(BulletConfigSyncingUtil.M44_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.M44_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_M44); - config.config.add(BulletConfigSyncingUtil.M44_ROCKET); + config.config.addAll(HbmCollection.fourtyFourMagBasic); + + config.ejector = EJECTOR_PIP.clone().setAmount(5); return config; } @@ -122,20 +132,14 @@ public class Gun44MagnumFactory { config.durability = 4000; config.ammoCap = 6; - config.name = "IF-18 Horseshoe Silver Storm"; - config.manufacturer = "Ironshod Firearms"; + config.name = "ifStorm"; + config.manufacturer = EnumGunManufacturer.IF; config.comment.add("Our friendship is based on abusive behaviour"); config.comment.add("and mutual hate. It's not that complicated."); config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.M44_SILVER); - config.config.add(BulletConfigSyncingUtil.M44_NORMAL); - config.config.add(BulletConfigSyncingUtil.M44_AP); - config.config.add(BulletConfigSyncingUtil.M44_DU); - config.config.add(BulletConfigSyncingUtil.M44_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.M44_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_M44); - config.config.add(BulletConfigSyncingUtil.M44_ROCKET); + config.config.addAll(HbmCollection.fourtyFourMagBasic); return config; } @@ -147,22 +151,15 @@ public class Gun44MagnumFactory { config.durability = 4000; config.ammoCap = 64; - config.name = "IF-18 Horseshoe Bottomless Pit"; - config.manufacturer = "Ironshod Firearms R&D"; + config.name = "ifPit"; + config.manufacturer = EnumGunManufacturer.IF; config.comment.add("Explore the other side"); config.comment.add("...from afar!"); config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.M44_NORMAL); - config.config.add(BulletConfigSyncingUtil.M44_AP); - config.config.add(BulletConfigSyncingUtil.M44_DU); - config.config.add(BulletConfigSyncingUtil.M44_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.M44_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_M44); - config.config.add(BulletConfigSyncingUtil.M44_PIP); - config.config.add(BulletConfigSyncingUtil.M44_BJ); - config.config.add(BulletConfigSyncingUtil.M44_SILVER); - config.config.add(BulletConfigSyncingUtil.M44_ROCKET); + config.config.addAll(HbmCollection.fourtyFourMagAll); + + config.ejector = EJECTOR_PIP.clone().setAmount(64); return config; } @@ -171,10 +168,12 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.STOCK)); bullet.dmgMin = 18; bullet.dmgMax = 26; + bullet.spentCasing = CASING44.clone().register("44NoPip"); + return bullet; } @@ -182,12 +181,14 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_ap; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.AP)); bullet.dmgMin = 25; bullet.dmgMax = 32; bullet.wear = 15; bullet.leadChance = 10; + bullet.spentCasing = CASING44.clone().register("44AP"); + return bullet; } @@ -195,12 +196,14 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_du; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.DU)); bullet.dmgMin = 28; bullet.dmgMax = 40; bullet.wear = 25; bullet.leadChance = 50; + bullet.spentCasing = CASING44.clone().register("44DU"); + return bullet; } @@ -208,7 +211,7 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.PHOSPHORUS)); bullet.dmgMin = 18; bullet.dmgMax = 26; bullet.wear = 15; @@ -235,6 +238,8 @@ public class Gun44MagnumFactory { } }; + bullet.spentCasing = CASING44.clone().register("44Phos"); + return bullet; } @@ -242,12 +247,14 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_star; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.STAR)); bullet.dmgMin = 42; bullet.dmgMax = 50; bullet.wear = 25; bullet.leadChance = 100; + bullet.spentCasing = CASING44.clone().register("44Star"); + return bullet; } @@ -255,7 +262,7 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_pip; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.PIP)); bullet.dmgMin = 30; bullet.dmgMax = 36; bullet.wear = 25; @@ -285,6 +292,8 @@ public class Gun44MagnumFactory { } }; + bullet.spentCasing = CASING44.clone().register("44Pip").setColor(0x532C64); + return bullet; } @@ -292,7 +301,7 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_bj; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.BJ)); bullet.dmgMin = 30; bullet.dmgMax = 36; bullet.wear = 25; @@ -323,6 +332,8 @@ public class Gun44MagnumFactory { }; + bullet.spentCasing = CASING44.clone().register("44BJ").setColor(0x632B2C); + return bullet; } @@ -330,7 +341,7 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_44_silver; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.SILVER)); bullet.dmgMin = 30; bullet.dmgMax = 36; bullet.wear = 25; @@ -361,6 +372,8 @@ public class Gun44MagnumFactory { }; + bullet.spentCasing = CASING44.clone().register("44Silver").setColor(0x2B5963); + return bullet; } @@ -368,11 +381,13 @@ public class Gun44MagnumFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_44_rocket; + bullet.ammo = new ComparableStack(ModItems.ammo_44.stackFromEnum(Ammo44Magnum.ROCKET)); bullet.velocity = 5; bullet.explosive = 15F; bullet.trail = 1; + bullet.spentCasing = CASING44.clone().register("44Rocket"); + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java new file mode 100644 index 000000000..70891310b --- /dev/null +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -0,0 +1,207 @@ +package com.hbm.handler.guncfg; + +import java.util.ArrayList; + +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; +import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo45ACP; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; + +import net.minecraft.util.Vec3; + +public class Gun45ACPFactory { + + private static final CasingEjector EJECTOR_REVOLVER; + private static final SpentCasing CASING45; + + static { + EJECTOR_REVOLVER = new CasingEjector().setMotion(Vec3.createVectorHelper(0, 0, -0.03)).setOffset(Vec3.createVectorHelper(0, -0.15, 0)).setAngleRange(0.01F, 0.05F).setAfterReload().setAmount(6); + CASING45 = new SpentCasing(CasingType.STRAIGHT).setBounceMotion(0.01F, 0.05F).setScale(1.25F, 1.25F, 1F).setColor(SpentCasing.COLOR_CASE_BRASS).register("45ACP"); + } + + public static GunConfiguration getBaseConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 10; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.reloadDuration = 10; + config.firingDuration = 0; + config.ammoCap = 6; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CLASSIC; + config.reloadSound = GunConfiguration.RSOUND_REVOLVER; + config.firingSound = "hbm:weapon.revolverShoot"; + config.reloadSoundEnd = false; + + config.ejector = EJECTOR_REVOLVER; + + return config; + } + + public static GunConfiguration getThompsonConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 2; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.reloadDuration = 20; + config.firingDuration = 0; + config.ammoCap = 30; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_SPLIT; + config.durability = 5000; + config.reloadSound = GunConfiguration.RSOUND_MAG; + config.firingSound = "hbm:weapon.rifleShoot"; + config.reloadSoundEnd = false; + + config.name = "tommy"; + config.manufacturer = EnumGunManufacturer.AUTO_ORDINANCE; + + config.config = new ArrayList(); + config.config.addAll(HbmCollection.fourtyFiveACP); + + return config; + } + + public static GunConfiguration getRevolverBioConfig() { + + GunConfiguration config = getBaseConfig(); + + config.durability = 100000; + config.firingSound = "hbm:weapon.deagleShoot"; + config.reloadDuration = 53; + config.crosshair = Crosshair.CIRCLE; + + config.name = "bio"; + config.manufacturer = EnumGunManufacturer.RYAN; + + config.config = HbmCollection.fourtyFiveACP; + + return config; + } + + public static GunConfiguration getUACPistolConfig() { + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 4; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.reloadDuration = 10; + config.firingDuration = 8; + config.ammoCap = 16; + config.durability = 10000; + config.reloadType = 1; + config.allowsInfinity = true; + config.hasSights = true; + config.crosshair = Crosshair.CROSS; + config.reloadSound = "hbm:weapon.pistolReloadPB3"; + config.firingSound = "hbm:weapon.pistolFirePB3"; + config.reloadSoundEnd = true; + + config.name = "uacPistol"; + config.manufacturer = EnumGunManufacturer.UAC; + + config.config.addAll(HbmCollection.fourtyFiveACP); + + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("SLIDE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 10))// Wait for hammer + .addKeyframe(new BusAnimationKeyframe(0, 0, -3.5, 40))// Slide back + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))// Return + .addBus("HAMMER", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 10)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))); + + return config; + } + + public static GunConfiguration getUACSMGConfig() { + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 1; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.reloadDuration = 10; + config.firingDuration = 4; + config.ammoCap = 40; + config.durability = 40000; + config.reloadType = 1; + config.allowsInfinity = true; + config.hasSights = true; + config.crosshair = Crosshair.CROSS; + config.reloadSound = "hbm:weapon.SMGMagInPB3"; + config.firingSound = "hbm:weapon.SMGFirePB3"; + config.firingPitch = 1.15F; + config.reloadSoundEnd = true; + + config.name = "uacSMG"; + config.manufacturer = EnumGunManufacturer.UAC; + + config.config.addAll(HbmCollection.fourtyFiveACP); + + return config; + } + + static float inaccuracy = 5; + public static BulletConfiguration get45AutoConfig() { + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_45.stackFromEnum(Ammo45ACP.STOCK)); + bullet.spread *= inaccuracy; + bullet.dmgMax = 12; + bullet.dmgMin = 16; + + bullet.spentCasing = CASING45; + + return bullet; + } + + public static BulletConfiguration get45AutoAPConfig() { + BulletConfiguration bullet = get45AutoConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_45.stackFromEnum(Ammo45ACP.AP)); + bullet.dmgMax = 18; + bullet.dmgMin = 26; + bullet.wear = 15; + bullet.leadChance = 10; + + bullet.spentCasing = CASING45; + + return bullet; + } + + public static BulletConfiguration get45AutoDUConfig() { + BulletConfiguration bullet = get45AutoConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_45.stackFromEnum(Ammo45ACP.DU)); + bullet.dmgMax = 30; + bullet.dmgMin = 44; + bullet.wear = 25; + bullet.leadChance = 50; + + bullet.spentCasing = CASING45; + + return bullet; + } +} diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 00ffda538..941f33097 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -1,6 +1,5 @@ package com.hbm.handler.guncfg; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -11,14 +10,21 @@ import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHurtBehavior; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; @@ -27,17 +33,25 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; import net.minecraftforge.common.IExtendedEntityProperties; public class Gun4GaugeFactory { + private static final CasingEjector EJECTOR_SHOTGUN; + private static final SpentCasing CASING4GAUGE; + + static { + EJECTOR_SHOTGUN = new CasingEjector().setMotion(Vec3.createVectorHelper(-0.4, 0.4, 0)).setOffset(Vec3.createVectorHelper(-0.5, 0, 0.5)).setAngleRange(0.01F, 0.03F); + CASING4GAUGE = new SpentCasing(CasingType.SHOTGUN).setScale(2.5F).setBounceMotion(0.01F, 0.03F); + } + private static GunConfiguration getShotgunConfig() { GunConfiguration config = new GunConfiguration(); @@ -52,9 +66,13 @@ public class Gun4GaugeFactory { config.reloadType = GunConfiguration.RELOAD_SINGLE; config.allowsInfinity = true; config.hasSights = true; + config.absoluteFOV = true; + config.zoomFOV = 0.5F; config.crosshair = Crosshair.L_CIRCLE; config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.ejector = EJECTOR_SHOTGUN; + return config; } @@ -67,24 +85,10 @@ public class Gun4GaugeFactory { config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.65F; - config.name = "KS-23"; - config.manufacturer = "Tulsky Oruzheiny Zavod"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G4_NORMAL); - config.config.add(BulletConfigSyncingUtil.G4_SLUG); - config.config.add(BulletConfigSyncingUtil.G4_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G4_FLECHETTE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.G4_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G4_SEMTEX); - config.config.add(BulletConfigSyncingUtil.G4_BALEFIRE); - config.config.add(BulletConfigSyncingUtil.G4_KAMPF); - config.config.add(BulletConfigSyncingUtil.G4_CANISTER); - config.config.add(BulletConfigSyncingUtil.G4_CLAW); - config.config.add(BulletConfigSyncingUtil.G4_VAMPIRE); - config.config.add(BulletConfigSyncingUtil.G4_VOID); - config.config.add(BulletConfigSyncingUtil.G4_TITAN); - config.config.add(BulletConfigSyncingUtil.G4_SLEEK); + config.name = "ks23"; + config.manufacturer = EnumGunManufacturer.TULSKY; + + config.config = HbmCollection.fourGauge; return config; } @@ -102,8 +106,10 @@ public class Gun4GaugeFactory { config.firingSound = "hbm:weapon.sauergun"; config.firingPitch = 1.0F; - config.name = "Sauer Shotgun"; - config.manufacturer = "Cube 2: Sauerbraten"; + config.ejector = EJECTOR_SHOTGUN.clone().setDelay(12); + + config.name = "sauer"; + config.manufacturer = EnumGunManufacturer.CUBE; config.animations.put(AnimType.CYCLE, new BusAnimation() .addBus("SAUER_RECOIL", new BusAnimationSequence() @@ -129,21 +135,7 @@ public class Gun4GaugeFactory { ) ); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.G4_NORMAL); - config.config.add(BulletConfigSyncingUtil.G4_SLUG); - config.config.add(BulletConfigSyncingUtil.G4_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.G4_FLECHETTE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.G4_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.G4_SEMTEX); - config.config.add(BulletConfigSyncingUtil.G4_BALEFIRE); - config.config.add(BulletConfigSyncingUtil.G4_KAMPF); - config.config.add(BulletConfigSyncingUtil.G4_CANISTER); - config.config.add(BulletConfigSyncingUtil.G4_CLAW); - config.config.add(BulletConfigSyncingUtil.G4_VAMPIRE); - config.config.add(BulletConfigSyncingUtil.G4_VOID); - config.config.add(BulletConfigSyncingUtil.G4_TITAN); - config.config.add(BulletConfigSyncingUtil.G4_SLEEK); + config.config = HbmCollection.fourGauge; return config; } @@ -152,12 +144,14 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_4gauge; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.STOCK)); bullet.dmgMin = 5; bullet.dmgMax = 8; bullet.bulletsMin *= 2; bullet.bulletsMax *= 2; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaStock").setColor(0xFFD800, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -165,12 +159,14 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_4gauge_slug; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.SLUG)); bullet.dmgMin = 25; bullet.dmgMax = 32; bullet.wear = 7; bullet.style = BulletConfiguration.STYLE_NORMAL; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaSlug").setColor(0xE01A1A, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -178,7 +174,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_4gauge_flechette; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.FLECHETTE)); bullet.dmgMin = 8; bullet.dmgMax = 15; bullet.bulletsMin *= 2; @@ -188,6 +184,8 @@ public class Gun4GaugeFactory { bullet.HBRC = 2; bullet.LBRC = 95; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaFlech").setColor(0x1537FF, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -195,7 +193,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_4gauge_flechette; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.FLECHETTE_PHOSPHORUS)); bullet.dmgMin = 8; bullet.dmgMax = 15; bullet.bulletsMin *= 2; @@ -204,8 +202,6 @@ public class Gun4GaugeFactory { bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.HBRC = 2; bullet.LBRC = 95; - - bullet.ammo = ModItems.ammo_4gauge_flechette_phosphorus; bullet.incendiary = 5; PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); @@ -228,6 +224,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaPhos").setColor(0xF6871A, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -235,7 +233,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_4gauge_explosive; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.EXPLOSIVE)); bullet.velocity *= 2; bullet.gravity *= 2; bullet.dmgMin = 20; @@ -243,6 +241,8 @@ public class Gun4GaugeFactory { bullet.wear = 25; bullet.trail = 1; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaExp").setColor(0x3F8243, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -250,7 +250,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_4gauge_semtex; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.MINING)); bullet.velocity *= 2; bullet.gravity *= 2; bullet.dmgMin = 10; @@ -277,6 +277,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaSem").setColor(0x5C5C5C, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -284,7 +286,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_4gauge_balefire; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.BALEFIRE)); bullet.velocity *= 2; bullet.gravity *= 2; bullet.dmgMin = 50; @@ -310,6 +312,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaBale").setColor(0x7BFF44, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -317,7 +321,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_4gauge_kampf; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.KAMPF)); bullet.spread = 0.0F; bullet.gravity = 0.0D; bullet.wear = 15; @@ -326,6 +330,8 @@ public class Gun4GaugeFactory { bullet.trail = 4; bullet.vPFX = "smoke"; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaKampf").setColor(0xE7BA48, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -333,7 +339,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_4gauge_canister; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.CANISTER)); bullet.spread = 0.0F; bullet.gravity = 0.0D; bullet.wear = 15; @@ -364,6 +370,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaCan").setColor(0xCACACA, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -371,16 +379,18 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardAirstrikeConfig(); - bullet.ammo = ModItems.ammo_4gauge_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.SLEEK)); + + bullet.spentCasing = CASING4GAUGE.clone().register("4GaIF").setColor(0x1D1D1D, SpentCasing.COLOR_CASE_4GA); return bullet; } public static BulletConfiguration get4GaugeClawConfig() { - BulletConfiguration bullet = get4GaugeConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_4gauge_claw; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.CLAW)); bullet.dmgMin = 6; bullet.dmgMax = 9; bullet.bulletsMin *= 2; @@ -410,14 +420,16 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaClaw").setColor(0x5E38CC, SpentCasing.COLOR_CASE_4GA); + return bullet; } public static BulletConfiguration get4GaugeVampireConfig() { - BulletConfiguration bullet = get4GaugeConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_4gauge_vampire; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE)); bullet.dmgMin = 6; bullet.dmgMax = 9; bullet.bulletsMin *= 2; @@ -448,14 +460,16 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaVamp").setColor(0x278400, SpentCasing.COLOR_CASE_4GA); + return bullet; } public static BulletConfiguration get4GaugeVoidConfig() { - BulletConfiguration bullet = get4GaugeConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); - bullet.ammo = ModItems.ammo_4gauge_void; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VOID)); bullet.dmgMin = 6; bullet.dmgMax = 9; bullet.bulletsMin *= 2; @@ -479,6 +493,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaVoid").setColor(0x3F3F3F, SpentCasing.COLOR_CASE_4GA); + return bullet; } @@ -486,7 +502,7 @@ public class Gun4GaugeFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_4gauge_titan; + bullet.ammo = new ComparableStack(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK)); bullet.velocity *= 2D; bullet.spread = 0.0F; bullet.gravity = 0.0D; @@ -514,13 +530,6 @@ public class Gun4GaugeFactory { bullet.worldObj.removeEntity(creature); bullet.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); - //creature.isDead = true; - - /*try { - Method m = Class.forName("net.minecraft.entity.deity.EntityDeity").getDeclaredMethod("setTitanHealth", double.class); - m.setAccessible(true); - m.invoke(creature, 0.0D); - } catch (Exception ex) { }*/ } } @@ -529,6 +538,8 @@ public class Gun4GaugeFactory { } }; + bullet.spentCasing = CASING4GAUGE.clone().register("4GaDucc").setColor(0x1E1E1E, SpentCasing.COLOR_CASE_4GA); + return bullet; } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java index 1fe1ce16c..b9c19b9e0 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java @@ -1,15 +1,27 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo50AE; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class Gun50AEFactory { + private static final CasingEjector EJECTOR_PISTOL; + private static final SpentCasing CASING50AE; + + static { + EJECTOR_PISTOL = new CasingEjector().setMotion(-0.3, 0.7, 0).setOffset(-0.5, 0, 0.5).setAngleRange(0.01F, 0.03F); + CASING50AE = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F).setBounceMotion(0.01F, 0.03F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.25F, 0.5D, 60, 20); + } + public static GunConfiguration getBaseConfig() { GunConfiguration config = new GunConfiguration(); @@ -37,30 +49,32 @@ public class Gun50AEFactory { config.durability = 2500; - config.name = "IMI Desert Eagle"; - config.manufacturer = "Magnum Research / Israel Military Industries"; + config.name = "deagle"; + config.manufacturer = EnumGunManufacturer.MAGNUM_R_IMI; + + config.absoluteFOV = true; + config.zoomFOV = 0.5F; config.hasSights = true; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.AE50_NORMAL); - config.config.add(BulletConfigSyncingUtil.AE50_AP); - config.config.add(BulletConfigSyncingUtil.AE50_DU); - config.config.add(BulletConfigSyncingUtil.AE50_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_AE50); + config.config = HbmCollection.fiftyAE; + + config.ejector = EJECTOR_PISTOL; return config; } - static float inaccuracy = 0.0005F; + private static float inaccuracy = 0.0005F; public static BulletConfiguration get50AEConfig() { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_50ae; + bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 28; bullet.dmgMax = 32; + bullet.spentCasing = CASING50AE.clone().register("50AEStock"); + return bullet; } @@ -68,13 +82,15 @@ public class Gun50AEFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_50ae_ap; + bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.AP)); bullet.spread *= inaccuracy; bullet.dmgMin = 30; bullet.dmgMax = 36; bullet.leadChance = 10; bullet.wear = 15; + bullet.spentCasing = CASING50AE.clone().register("50AEAP"); + return bullet; } @@ -82,13 +98,15 @@ public class Gun50AEFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_50ae_du; + bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.DU)); bullet.spread *= inaccuracy; bullet.dmgMin = 38; bullet.dmgMax = 46; bullet.leadChance = 50; bullet.wear = 25; + bullet.spentCasing = CASING50AE.clone().register("50AEDU"); + return bullet; } @@ -96,13 +114,15 @@ public class Gun50AEFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_50ae_star; + bullet.ammo = new ComparableStack(ModItems.ammo_50ae.stackFromEnum(Ammo50AE.STAR)); bullet.spread *= inaccuracy; bullet.dmgMin = 52; bullet.dmgMax = 60; bullet.leadChance = 100; bullet.wear = 25; + bullet.spentCasing = CASING50AE.clone().register("50AEStar"); + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index cde95e131..930b38c01 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -5,12 +5,20 @@ import java.util.ArrayList; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHitBehavior; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo50BMG; +import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; @@ -29,6 +37,18 @@ import net.minecraft.potion.PotionEffect; public class Gun50BMGFactory { + private static final CasingEjector EJECTOR_BMG; + private static final CasingEjector EJECTOR_SNIPER; + private static final SpentCasing CASING50BMG; + private static final SpentCasing CASINGLUNA; + + static { + EJECTOR_BMG = new CasingEjector().setMotion(-0.35, 0.9, 0).setOffset(-0.45, -0.2, 0.35).setAngleRange(0.01F, 0.05F); + EJECTOR_SNIPER = new CasingEjector().setMotion(-2, 0.15, 0).setOffset(-0.45, -0.2, 0.35).setAngleRange(0.02F, 0.05F); + CASING50BMG = new SpentCasing(CasingType.BOTTLENECK).setScale(3F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.125F, 0.5D, 60, 20); + CASINGLUNA = new SpentCasing(CasingType.BOTTLENECK).setScale(4F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.125F, 0.5D, 60, 30); + } + public static GunConfiguration getCalamityConfig() { GunConfiguration config = new GunConfiguration(); @@ -62,19 +82,12 @@ public class Gun50BMGFactory { ) ); - config.name = "Universal-Maschinengewehr Modell 42 - .50 Mod"; - config.manufacturer = "Wilhelm-Gustloff-Werke"; + config.name = "mg42"; + config.manufacturer = EnumGunManufacturer.WGW; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.BMG50_NORMAL); - config.config.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.BMG50_AP); - config.config.add(BulletConfigSyncingUtil.BMG50_DU); - config.config.add(BulletConfigSyncingUtil.BMG50_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_BMG50); - config.config.add(BulletConfigSyncingUtil.BMG50_SLEEK); + config.config = HbmCollection.fiftyBMG; + + config.ejector = EJECTOR_BMG; return config; } @@ -97,22 +110,64 @@ public class Gun50BMGFactory { config.reloadSound = GunConfiguration.RSOUND_MAG; config.firingSound = "hbm:weapon.calShoot"; - config.name = "Double Maxim gun"; - config.manufacturer = "???"; + config.name = "maximDouble"; + config.manufacturer = EnumGunManufacturer.UNKNOWN; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.BMG50_NORMAL); - config.config.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.BMG50_AP); - config.config.add(BulletConfigSyncingUtil.BMG50_DU); - config.config.add(BulletConfigSyncingUtil.BMG50_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_BMG50); - config.config.add(BulletConfigSyncingUtil.BMG50_SLEEK); + config.config = HbmCollection.fiftyBMG; + + config.ejector = EJECTOR_BMG; return config; } + + public static BulletConfiguration getLunaticSabotRound() { + BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); + bullet.spread = 0.0F; + bullet.dmgMax = 500F; + bullet.dmgMin = 450F; + bullet.headshotMult = 2.5f; + bullet.wear = 2000; + bullet.velocity = 100; + bullet.doesPenetrate = true; + bullet.leadChance = 20; + bullet.incendiary = 10; + + bullet.blockDamage = true; + bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); + + bullet.spentCasing = CASINGLUNA.clone().register("LunaStock"); + + return bullet; + } + + public static BulletConfiguration getLunaticIncendiaryRound() { + BulletConfiguration bullet = getLunaticSabotRound().clone(); + + bullet.ammo = new ComparableStack(ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.INCENDIARY)); + + bullet.ammo.meta = 1; + bullet.incendiary = 50; + + bullet.spentCasing = CASINGLUNA.clone().register("LunaInc"); + + return bullet; + } + + public static BulletConfiguration getLunaticExplosiveRound() { + BulletConfiguration bullet = getLunaticSabotRound().clone(); + + bullet.ammo = new ComparableStack(ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.EXPLOSIVE)); + + bullet.ammo.meta = 2; + bullet.explosive = 25; + bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); + + bullet.spentCasing = CASINGLUNA.clone().register("LunaExp"); + + return bullet; + } public static GunConfiguration getAR15Config() { @@ -132,8 +187,8 @@ public class Gun50BMGFactory { config.reloadSound = GunConfiguration.RSOUND_MAG; config.firingSound = "hbm:turret.howard_fire"; - config.name = "AR-15 .50 BMG Mod"; - config.manufacturer = "Armalite"; + config.name = "ar15_50"; + config.manufacturer = EnumGunManufacturer.ARMALITE; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.BMG50_FLECHETTE_AM); @@ -149,6 +204,8 @@ public class Gun50BMGFactory { config.config.add(BulletConfigSyncingUtil.CHL_BMG50); config.config.add(BulletConfigSyncingUtil.BMG50_SLEEK); + config.ejector = EJECTOR_BMG; + return config; } @@ -157,11 +214,13 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 30; bullet.dmgMax = 36; + bullet.spentCasing = CASING50BMG.clone().register("50BMGStock"); + return bullet; } @@ -169,13 +228,15 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.INCENDIARY)); bullet.spread *= inaccuracy; bullet.dmgMin = 30; bullet.dmgMax = 36; bullet.wear = 15; bullet.incendiary = 5; + bullet.spentCasing = CASING50BMG.clone().register("50BMGInc"); + return bullet; } @@ -183,7 +244,7 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.PHOSPHORUS)); bullet.spread *= inaccuracy; bullet.dmgMin = 30; bullet.dmgMax = 36; @@ -211,6 +272,8 @@ public class Gun50BMGFactory { } }; + bullet.spentCasing = CASING50BMG.clone().register("50BMGPhos"); + return bullet; } @@ -218,13 +281,15 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_explosive; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.EXPLOSIVE)); bullet.spread *= inaccuracy; bullet.dmgMin = 60; bullet.dmgMax = 64; bullet.wear = 25; bullet.explosive = 1; + bullet.spentCasing = CASING50BMG.clone().register("50BMGExp"); + return bullet; } @@ -232,13 +297,15 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_ap; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.AP)); bullet.spread *= inaccuracy; bullet.dmgMin = 62; bullet.dmgMax = 68; bullet.wear = 15; bullet.leadChance = 10; + bullet.spentCasing = CASING50BMG.clone().register("50BMGAP"); + return bullet; } @@ -246,13 +313,15 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_du; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.DU)); bullet.spread *= inaccuracy; bullet.dmgMin = 80; bullet.dmgMax = 86; bullet.wear = 25; bullet.leadChance = 50; + bullet.spentCasing = CASING50BMG.clone().register("50BMGDU"); + return bullet; } @@ -260,13 +329,15 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_star; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STAR)); bullet.spread *= inaccuracy; bullet.dmgMin = 98; bullet.dmgMax = 102; bullet.wear = 25; bullet.leadChance = 100; + bullet.spentCasing = CASING50BMG.clone().register("50BMGStar"); + return bullet; } @@ -274,7 +345,7 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.SLEEK)); bullet.spread *= inaccuracy; bullet.dmgMin = 50; bullet.dmgMax = 70; @@ -317,6 +388,8 @@ public class Gun50BMGFactory { } }; + bullet.spentCasing = CASING50BMG.clone().register("50BMGIF"); + return bullet; } @@ -324,20 +397,22 @@ public class Gun50BMGFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_50bmg_flechette; + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.FLECHETTE)); bullet.spread *= inaccuracy; bullet.dmgMin = 50; bullet.dmgMax = 54; bullet.style = bullet.STYLE_FLECHETTE; + bullet.spentCasing = CASING50BMG.clone().register("50BMGFlech"); + return bullet; } public static BulletConfiguration get50BMGFlechetteAMConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = ModItems.ammo_50bmg_flechette_am; + + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.FLECHETTE_AM)); bullet.spread *= inaccuracy; bullet.dmgMin = 60; bullet.dmgMax = 64; @@ -357,14 +432,16 @@ public class Gun50BMGFactory { } }; + bullet.spentCasing = CASING50BMG.clone().register("50BMGAM"); + return bullet; } public static BulletConfiguration get50BMGFlechettePOConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - - bullet.ammo = ModItems.ammo_50bmg_flechette_po; + + bullet.ammo = new ComparableStack(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.FLECHETTE_PO)); bullet.spread *= inaccuracy; bullet.dmgMin = 60; bullet.dmgMax = 64; @@ -384,6 +461,8 @@ public class Gun50BMGFactory { } }; + bullet.spentCasing = CASING50BMG.clone().register("50BMGPO"); + return bullet; } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index 49198fa4c..dfb332281 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -5,12 +5,19 @@ import java.util.ArrayList; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHitBehavior; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.Ammo556mm; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; @@ -25,6 +32,16 @@ import net.minecraft.potion.PotionEffect; public class Gun556mmFactory { + private static final CasingEjector EJECTOR_RIFLE; + private static final CasingEjector EJECTOR_GRENADE; + private static final SpentCasing CASING556; + + static { + EJECTOR_RIFLE = new CasingEjector().setMotion(-0.35, 0.6, 0).setOffset(-0.35, 0, 0.35).setAngleRange(0.01F, 0.03F); + EJECTOR_GRENADE = new CasingEjector().setAngleRange(0.02F, 0.03F).setDelay(30); + CASING556 = new SpentCasing(CasingType.BOTTLENECK).setScale(1.25F).setBounceMotion(0.01F, 0.03F).setColor(SpentCasing.COLOR_CASE_BRASS); + } + public static GunConfiguration getEuphieConfig() { GunConfiguration config = new GunConfiguration(); @@ -45,22 +62,15 @@ public class Gun556mmFactory { config.firingSound = "hbm:weapon.hksShoot"; config.reloadSoundEnd = false; - config.name = "Britannian Standard Issue Assault Rifle"; - config.manufacturer = "BAE Systems plc"; + config.name = "baeAR"; + config.manufacturer = EnumGunManufacturer.BAE; config.comment.add("Why is this gun so sticky?"); - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.R556_NORMAL); - config.config.add(BulletConfigSyncingUtil.R556_GOLD); - config.config.add(BulletConfigSyncingUtil.R556_TRACER); - config.config.add(BulletConfigSyncingUtil.R556_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.R556_AP); - config.config.add(BulletConfigSyncingUtil.R556_DU); - config.config.add(BulletConfigSyncingUtil.R556_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_R556); - config.config.add(BulletConfigSyncingUtil.R556_SLEEK); - config.config.add(BulletConfigSyncingUtil.R556_K); + //config.config = new ArrayList(); + //config.config.add(BulletConfigSyncingUtil.R556_GOLD); + + config.config = HbmCollection.NATO; return config; } @@ -92,21 +102,16 @@ public class Gun556mmFactory { ) ); - config.name = "H&R SPIW"; - config.manufacturer = "Harrington & Richardson"; + config.name = "spiw"; + config.manufacturer = EnumGunManufacturer.H_AND_R; config.comment.add("Launch some flechettes in the breeze"); config.comment.add("Find his arms nailed to the trees"); config.comment.add("Napalm sticks to kids"); + + config.config = HbmCollection.NATOFlechette; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_DU); - config.config.add(BulletConfigSyncingUtil.CHL_R556_FLECHETTE); - config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_SLEEK); - config.config.add(BulletConfigSyncingUtil.R556_K); + config.ejector = EJECTOR_RIFLE; return config; } @@ -130,32 +135,25 @@ public class Gun556mmFactory { config.reloadSound = GunConfiguration.RSOUND_GRENADE; config.reloadSoundEnd = false; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_HE); - config.config.add(BulletConfigSyncingUtil.GRENADE_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.GRENADE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.GRENADE_CHEMICAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_CONCUSSION); - config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); - config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); - config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); - config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); + config.config = HbmCollection.grenade; + + config.ejector = EJECTOR_GRENADE; return config; } - static float inaccuracy = 2.5F; + private static float inaccuracy = 2.5F; public static BulletConfiguration get556Config() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_556; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 16; bullet.dmgMax = 20; + bullet.spentCasing = CASING556.clone().register("556Stock"); + return bullet; } @@ -163,11 +161,13 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_566_gold; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.GOLD)); bullet.dmgMin = 250; bullet.dmgMax = 320; bullet.spread = 0.0F; + bullet.spentCasing = null; + return bullet; } @@ -175,7 +175,7 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.PHOSPHORUS)); bullet.wear = 15; bullet.incendiary = 5; bullet.doesPenetrate = false; @@ -200,6 +200,8 @@ public class Gun556mmFactory { } }; + bullet.spentCasing = CASING556.clone().register("556Phos"); + return bullet; } @@ -207,12 +209,14 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_ap; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.AP)); bullet.dmgMin = 20; bullet.dmgMax = 26; bullet.wear = 15; bullet.leadChance = 10; + bullet.spentCasing = CASING556.clone().register("556AP"); + return bullet; } @@ -220,12 +224,14 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_du; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.DU)); bullet.dmgMin = 24; bullet.dmgMax = 32; bullet.wear = 25; bullet.leadChance = 50; + bullet.spentCasing = CASING556.clone().register("556DU"); + return bullet; } @@ -233,12 +239,14 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_star; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.STAR)); bullet.dmgMin = 30; bullet.dmgMax = 36; bullet.wear = 25; bullet.leadChance = 100; + bullet.spentCasing = CASING556.clone().register("556Star"); + return bullet; } @@ -246,7 +254,7 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.SLEEK)); bullet.dmgMin = 45; bullet.dmgMax = 50; bullet.wear = 10; @@ -288,6 +296,8 @@ public class Gun556mmFactory { } }; + bullet.spentCasing = CASING556.clone().register("556IF"); + return bullet; } @@ -295,9 +305,11 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_tracer; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.TRACER)); bullet.vPFX = "reddust"; + bullet.spentCasing = CASING556.clone().register("556Trac"); + return bullet; } @@ -305,7 +317,7 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556Config(); - bullet.ammo = ModItems.ammo_556_flechette; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE)); bullet.dmgMin = 26; bullet.dmgMax = 32; bullet.HBRC = 2; @@ -314,6 +326,8 @@ public class Gun556mmFactory { bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.doesPenetrate = false; + bullet.spentCasing = CASING556.clone().register("556Flec"); + return bullet; } @@ -321,9 +335,11 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556FlechetteConfig(); - bullet.ammo = ModItems.ammo_556_flechette_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_INCENDIARY)); bullet.incendiary = 5; + bullet.spentCasing = CASING556.clone().register("556FlecInc"); + return bullet; } @@ -331,7 +347,7 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556FlechetteConfig(); - bullet.ammo = ModItems.ammo_556_flechette_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_PHOSPHORUS)); bullet.incendiary = 5; PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); @@ -354,6 +370,8 @@ public class Gun556mmFactory { } }; + bullet.spentCasing = CASING556.clone().register("556FlecPhos"); + return bullet; } @@ -361,13 +379,15 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556FlechetteConfig(); - bullet.ammo = ModItems.ammo_556_flechette_du; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_DU)); bullet.dmgMin = 46; bullet.dmgMax = 52; bullet.wear = 25; bullet.leadChance = 50; bullet.doesPenetrate = true; + bullet.spentCasing = CASING556.clone().register("556FlecDU"); + return bullet; } @@ -375,7 +395,7 @@ public class Gun556mmFactory { BulletConfiguration bullet = get556FlechetteConfig(); - bullet.ammo = ModItems.ammo_556_flechette_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_SLEEK)); bullet.dmgMin = 45; bullet.dmgMax = 50; bullet.wear = 10; @@ -417,6 +437,8 @@ public class Gun556mmFactory { } }; + bullet.spentCasing = CASING556.clone().register("556FlecIF"); + return bullet; } @@ -424,7 +446,7 @@ public class Gun556mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_556_k; + bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.K)); bullet.dmgMin = 0; bullet.dmgMax = 0; bullet.maxAge = 0; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java index fb5890a7e..5e159190b 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun5mmFactory.java @@ -1,15 +1,27 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class Gun5mmFactory { + private static final CasingEjector EJECTOR_MINIGUN; + private static final SpentCasing CASING5MM; + + static { + EJECTOR_MINIGUN = new CasingEjector().setMotion(-0.4, 0.1, 0).setOffset(-0.35, -0.2, 0.35).setAngleRange(0.01F, 0.03F).setAmount(5); + CASING5MM = new SpentCasing(CasingType.STRAIGHT).setScale(1.25F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS).setMaxAge(100); + } + public static GunConfiguration getMinigunConfig() { GunConfiguration config = new GunConfiguration(); @@ -27,12 +39,9 @@ public class Gun5mmFactory { config.durability = 10000; config.firingSound = "hbm:weapon.lacunaeShoot"; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.R5_NORMAL); - config.config.add(BulletConfigSyncingUtil.R5_EXPLOSIVE); - config.config.add(BulletConfigSyncingUtil.R5_DU); - config.config.add(BulletConfigSyncingUtil.R5_STAR); - config.config.add(BulletConfigSyncingUtil.CHL_R5); + config.config = HbmCollection.fiveMM; + + config.ejector = EJECTOR_MINIGUN; return config; } @@ -41,8 +50,8 @@ public class Gun5mmFactory { GunConfiguration config = getMinigunConfig(); - config.name = "CZ53 Personal Minigun"; - config.manufacturer = "Rockwell International Corporation"; + config.name = "cz53"; + config.manufacturer = EnumGunManufacturer.ROCKWELL; return config; } @@ -52,8 +61,8 @@ public class Gun5mmFactory { GunConfiguration config = getMinigunConfig(); config.durability = 15000; - config.name = "CZ57 Avenger Minigun"; - config.manufacturer = "Rockwell International Corporation"; + config.name = "cz57"; + config.manufacturer = EnumGunManufacturer.ROCKWELL; return config; } @@ -63,29 +72,26 @@ public class Gun5mmFactory { GunConfiguration config = getMinigunConfig(); config.durability = 25000; - config.name = "Auntie Lacunae"; - config.manufacturer = "Rockwell International Corporation?"; + config.name = "lacunae"; + config.manufacturer = EnumGunManufacturer.ROCKWELL_U; - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.R5_NORMAL_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_EXPLOSIVE_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_DU_BOLT); - config.config.add(BulletConfigSyncingUtil.R5_STAR_BOLT); - config.config.add(BulletConfigSyncingUtil.CHL_R5_BOLT); + config.config = HbmCollection.fiveMMBolt; return config; } - static float inaccuracy = 10; + private static float inaccuracy = 10; public static BulletConfiguration get5mmConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_5mm; + bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 12; bullet.dmgMax = 14; + bullet.spentCasing = CASING5MM.clone().register("5mmStock"); + return bullet; } @@ -93,13 +99,15 @@ public class Gun5mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_5mm_explosive; + bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.EXPLOSIVE)); bullet.spread *= inaccuracy; bullet.dmgMin = 30; bullet.dmgMax = 32; bullet.explosive = 1F; bullet.wear = 25; + bullet.spentCasing = CASING5MM.clone().register("5mmExp"); + return bullet; } @@ -107,13 +115,15 @@ public class Gun5mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_5mm_du; + bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.DU)); bullet.spread *= inaccuracy; bullet.dmgMin = 36; bullet.dmgMax = 40; bullet.wear = 25; bullet.leadChance = 50; + bullet.spentCasing = CASING5MM.clone().register("5mmDU"); + return bullet; } @@ -121,13 +131,15 @@ public class Gun5mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_5mm_star; + bullet.ammo = new ComparableStack(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STAR)); bullet.spread *= inaccuracy; bullet.dmgMin = 46; bullet.dmgMax = 50; bullet.wear = 25; bullet.leadChance = 100; + bullet.spentCasing = CASING5MM.clone().register("5mmStar"); + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index 6a2ceb71b..95d478fa0 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -3,12 +3,15 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHurtBehavior; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.Ammo75Bolt; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -72,23 +75,20 @@ public class Gun75BoltFactory { ) ); - config.name = "Manticora Pattern Boltgun"; - config.manufacturer = "Cerix Magnus"; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.B75_NORMAL); - config.config.add(BulletConfigSyncingUtil.B75_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.B75_HE); + config.name = "bolter"; + config.manufacturer = EnumGunManufacturer.CERIX; + + config.config = HbmCollection.seventyFive; return config; } - static float inaccuracy = 0.5F; + private static float inaccuracy = 0.5F; public static BulletConfiguration get75BoltConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_75bolt; + bullet.ammo = new ComparableStack(ModItems.ammo_75bolt.stackFromEnum(Ammo75Bolt.STOCK)); bullet.ammoCount = 30; bullet.spread *= inaccuracy; bullet.dmgMin = 74; @@ -126,7 +126,7 @@ public class Gun75BoltFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_75bolt_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_75bolt.stackFromEnum(Ammo75Bolt.INCENDIARY)); bullet.ammoCount = 30; bullet.spread *= inaccuracy; bullet.dmgMin = 72; @@ -164,7 +164,7 @@ public class Gun75BoltFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_75bolt_he; + bullet.ammo = new ComparableStack(ModItems.ammo_75bolt.stackFromEnum(Ammo75Bolt.HE)); bullet.ammoCount = 30; bullet.spread *= inaccuracy; bullet.dmgMin = 94; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java new file mode 100644 index 000000000..13f5f1d63 --- /dev/null +++ b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java @@ -0,0 +1,192 @@ +package com.hbm.handler.guncfg; + +import java.util.ArrayList; + +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; +import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo762NATO; +import com.hbm.lib.HbmCollection; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.potion.HbmPotion; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; + +import net.minecraft.potion.PotionEffect; + +public class Gun762mmFactory { + + private static final CasingEjector EJECTOR_RIFLE; + private static final SpentCasing CASING762NATO; + + static { + EJECTOR_RIFLE = new CasingEjector().setMotion(-0.35, 0.6, 0).setOffset(-0.35, 0, 0.35).setAngleRange(0.01F, 0.03F); + CASING762NATO = new SpentCasing(CasingType.BOTTLENECK).setScale(1.7F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS); + } + + public static GunConfiguration getUACDMRConfig() { + final GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 4; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.reloadDuration = 30; + config.firingDuration = 8; + config.ammoCap = 30; + config.durability = 30000; + config.reloadType = 1; + config.allowsInfinity = true; + config.hasSights = true; + config.crosshair = Crosshair.CROSS; + config.reloadSound = "hbm:weapon.DMRMagInPB3"; + config.firingSound = "hbm:weapon.DMRShootPB3Alt"; + config.reloadSoundEnd = true; + + config.name = "uacDMR"; + config.manufacturer = EnumGunManufacturer.UAC; + + config.config.addAll(HbmCollection.threeZeroEight); + + config.ejector = EJECTOR_RIFLE; + + return config; + } + + public static GunConfiguration getUACCarbineConfig() { + final GunConfiguration config = getUACDMRConfig(); + + config.rateOfFire = 2; + config.reloadDuration = 20; + config.ammoCap = 40; + config.durability = 40000; + config.crosshair = Crosshair.SPLIT; + config.reloadSound = "hbm:weapon.carbineMagInPB3"; + config.firingSound = "hbm:weapon.carbineShootPB3"; + + config.name = "uacCarbine"; + + return config; + } + + public static GunConfiguration getUACLMGConfig() { + final GunConfiguration config = getUACCarbineConfig(); + + config.ammoCap = 60; + config.durability = 50000; + config.crosshair = Crosshair.BOX; + config.reloadSound = "hbm:weapon.LMGMagInPB3"; + config.firingSound = "hbm:weapon.LMGShootPB3Alt"; + + config.name = "uacLMG"; + + return config; + } + + public static GunConfiguration getM60Config() { + final GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 2; + config.durability = 10000; + config.roundsPerCycle = 1; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.reloadType = GunConfiguration.RELOAD_NONE; + config.ammoCap = 0; + config.allowsInfinity = true; + config.hasSights = true; + config.crosshair = Crosshair.L_BOX; + config.firingSound = "hbm:weapon.LMGShootPB3"; + + config.name = "m60"; + config.manufacturer = EnumGunManufacturer.SACO; + config.comment.add("\"Get some!\""); + config.comment.add(" ~ Stuart Brown (aka Ahoy)"); + config.config.addAll(HbmCollection.threeZeroEight); + + config.ejector = EJECTOR_RIFLE; + + return config; + } + + public static BulletConfiguration get762NATOConfig() { + final BulletConfiguration bullet = Gun556mmFactory.get556Config().clone(); + + bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.STOCK)); + bullet.dmgMax *= 2; + bullet.dmgMin *= 2; + bullet.velocity *= 2.5; + bullet.maxAge *= 2; + bullet.spread /= 2; + + bullet.spentCasing = CASING762NATO.clone().register("762NATOStock"); + + return bullet; + } + + public static BulletConfiguration get762APConfig() { + final BulletConfiguration bullet = get762NATOConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.AP)); + bullet.dmgMax *= 1.5; + bullet.dmgMin *= 1.5; + + bullet.spentCasing = CASING762NATO.clone().register("762NATOAP"); + + return bullet; + } + + public static BulletConfiguration get762DUConfig() { + final BulletConfiguration bullet = get762NATOConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.DU)); + bullet.dmgMax *= 2; + bullet.dmgMin *= 2; + + bullet.spentCasing = CASING762NATO.clone().register("762NATODU"); + + return bullet; + } + + public static BulletConfiguration get762TracerConfig() { + final BulletConfiguration bullet = get762NATOConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.TRACER)); + bullet.vPFX = "reddust"; + + bullet.spentCasing = CASING762NATO.clone().register("762NATOTrac"); + + return bullet; + } + + public static BulletConfiguration get762WPConfig() { + final BulletConfiguration bullet = get762NATOConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.PHOSPHORUS)); + bullet.setToFire(20 * 5); + bullet.vPFX = "reddust"; + final PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); + eff.getCurativeItems().clear(); + bullet.effects = new ArrayList(); + bullet.effects.add(new PotionEffect(eff)); + + bullet.spentCasing = CASING762NATO.clone().register("762NATOPhos"); + + return bullet; + } + + public static BulletConfiguration get762BlankConfig() { + final BulletConfiguration bullet = get762NATOConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_762.stackFromEnum(Ammo762NATO.BLANK)); + bullet.dmgMax = 0; + bullet.dmgMin = 0; + bullet.maxAge = 0; + + bullet.spentCasing = CASING762NATO.clone().register("762NATOK"); + + return bullet; + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java index 5b3e4370d..827950fd8 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java @@ -4,12 +4,26 @@ import java.util.ArrayList; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo9mm; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class Gun9mmFactory { + private static final CasingEjector EJECTOR_SMG; + private static final SpentCasing CASING9MM; + + static { + EJECTOR_SMG = new CasingEjector().setMotion(-0.3, 0.6, 0).setOffset(-0.35, -0.2, 0.55).setAngleRange(0.01F, 0.03F); + CASING9MM = new SpentCasing(CasingType.STRAIGHT).setScale(1F, 1F, 0.6F).setBounceMotion(0.01F, 0.03F).setColor(SpentCasing.COLOR_CASE_BRASS); + } + public static GunConfiguration getMP40Config() { GunConfiguration config = new GunConfiguration(); @@ -29,8 +43,8 @@ public class Gun9mmFactory { config.firingSound = "hbm:weapon.rifleShoot"; config.reloadSoundEnd = false; - config.name = "Maschinenpistole 40"; - config.manufacturer = "Erfurter Maschinenfabrik Geipel"; + config.name = "mp40"; + config.manufacturer = EnumGunManufacturer.NAZI; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.P9_NORMAL); @@ -39,10 +53,13 @@ public class Gun9mmFactory { config.config.add(BulletConfigSyncingUtil.CHL_P9); config.config.add(BulletConfigSyncingUtil.P9_ROCKET); + config.ejector = EJECTOR_SMG; + return config; } - public static GunConfiguration getThompsonConfig() { + //rechambered to .45 + /*public static GunConfiguration getThompsonConfig() { GunConfiguration config = new GunConfiguration(); @@ -61,8 +78,8 @@ public class Gun9mmFactory { config.firingSound = "hbm:weapon.rifleShoot"; config.reloadSoundEnd = false; - config.name = "M1A1 Submachine Gun 9mm Mod"; - config.manufacturer = "Auto-Ordnance Corporation"; + config.name = "tommy9"; + config.manufacturer = EnumGunManufacturer.AUTO_ORDINANCE; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.P9_NORMAL); @@ -72,18 +89,20 @@ public class Gun9mmFactory { config.config.add(BulletConfigSyncingUtil.P9_ROCKET); return config; - } + }*/ static float inaccuracy = 5; public static BulletConfiguration get9mmConfig() { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_9mm; + bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.STOCK)); bullet.spread *= inaccuracy; bullet.dmgMin = 10; bullet.dmgMax = 14; + bullet.spentCasing = CASING9MM.clone().register("9MMStock"); + return bullet; } @@ -91,13 +110,15 @@ public class Gun9mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_9mm_ap; + bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.AP)); bullet.spread *= inaccuracy; bullet.dmgMin = 18; bullet.dmgMax = 20; bullet.leadChance = 10; bullet.wear = 15; + bullet.spentCasing = CASING9MM.clone().register("9MMAP"); + return bullet; } @@ -105,13 +126,15 @@ public class Gun9mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); - bullet.ammo = ModItems.ammo_9mm_du; + bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.DU)); bullet.spread *= inaccuracy; bullet.dmgMin = 22; bullet.dmgMax = 26; bullet.leadChance = 50; bullet.wear = 25; + bullet.spentCasing = CASING9MM.clone().register("9MMDU"); + return bullet; } @@ -119,11 +142,13 @@ public class Gun9mmFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_9mm_rocket; + bullet.ammo = new ComparableStack(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.ROCKET)); bullet.velocity = 5; bullet.explosive = 7.5F; bullet.trail = 5; + bullet.spentCasing = CASING9MM.clone().register("9MMRocket"); + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java index 743d9a22e..50c0fdff2 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java @@ -3,20 +3,32 @@ package com.hbm.handler.guncfg; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.Ammo240Shell; import com.hbm.items.ModItems; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; public class GunCannonFactory { + + protected static SpentCasing CASINNG240MM; + + static { + CASINNG240MM = new SpentCasing(CasingType.BOTTLENECK).setScale(7.5F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); + } public static BulletConfiguration getShellConfig() { BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - bullet.ammo = ModItems.ammo_shell; + bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.STOCK)); bullet.dmgMin = 25; bullet.dmgMax = 35; bullet.explosive = 4F; bullet.blockDamage = false; + bullet.spentCasing = CASINNG240MM.register("240MM"); //same instance everywhere, only register once + return bullet; } @@ -24,12 +36,14 @@ public class GunCannonFactory { BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - bullet.ammo = ModItems.ammo_shell_explosive; + bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE)); bullet.dmgMin = 35; bullet.dmgMax = 45; bullet.explosive = 4F; bullet.blockDamage = true; + bullet.spentCasing = CASINNG240MM; + return bullet; } @@ -37,12 +51,14 @@ public class GunCannonFactory { BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - bullet.ammo = ModItems.ammo_shell_apfsds_t; + bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)); bullet.dmgMin = 50; bullet.dmgMax = 55; bullet.doesPenetrate = true; bullet.style = BulletConfiguration.STYLE_APDS; + bullet.spentCasing = CASINNG240MM; + return bullet; } @@ -50,12 +66,14 @@ public class GunCannonFactory { BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - bullet.ammo = ModItems.ammo_shell_apfsds_du; + bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)); bullet.dmgMin = 70; bullet.dmgMax = 80; bullet.doesPenetrate = true; bullet.style = BulletConfiguration.STYLE_APDS; + bullet.spentCasing = CASINNG240MM; + return bullet; } @@ -63,7 +81,7 @@ public class GunCannonFactory { BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - bullet.ammo = ModItems.ammo_shell_w9; + bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)); bullet.dmgMin = 100; bullet.dmgMax = 150; @@ -75,6 +93,8 @@ public class GunCannonFactory { } }; + bullet.spentCasing = CASINNG240MM; + return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java index 86321e2e0..86bc1bb2f 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDGKFactory.java @@ -1,14 +1,24 @@ package com.hbm.handler.guncfg; import com.hbm.handler.BulletConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; public class GunDGKFactory { + + public static final SpentCasing CASINGDGK; + + static { + CASINGDGK = new SpentCasing(CasingType.STRAIGHT).setScale(1.5F).setBounceMotion(0.05F, 0.02F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(0.02F, 0.5D, 60, 20).setMaxAge(60); //3 instead of 12 seconds + } public static BulletConfiguration getDGKConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_dgk; + bullet.ammo = new ComparableStack(ModItems.ammo_dgk); + bullet.spentCasing = CASINGDGK.register("DGK"); return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java index b4f4b9cd8..70c743232 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java @@ -8,8 +8,11 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletHurtBehavior; +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.lib.HbmCollection.EnumGunManufacturer; import com.hbm.main.MainRegistry; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -42,8 +45,8 @@ public class GunDartFactory { config.reloadSoundEnd = false; config.showAmmo = true; - config.name = "Needle Gun"; - config.manufacturer = "-"; + config.name = "dart"; + config.manufacturer = EnumGunManufacturer.NONE; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NEEDLE_GPS); @@ -73,8 +76,8 @@ public class GunDartFactory { config.reloadSoundEnd = false; config.showAmmo = true; - config.name = "NERF blaster of unknown design"; - config.manufacturer = "Hasbro"; + config.name = "nerf"; + config.manufacturer = EnumGunManufacturer.HASBRO; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.DART_NORMAL); @@ -87,7 +90,7 @@ public class GunDartFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_dart; + bullet.ammo = new ComparableStack(ModItems.ammo_dart.stackFromEnum(AmmoDart.GPS)); bullet.velocity = 5.0F; bullet.spread = 0; bullet.dmgMin = 1; @@ -133,7 +136,7 @@ public class GunDartFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_dart_nuclear; + bullet.ammo = new ComparableStack(ModItems.ammo_dart.stackFromEnum(AmmoDart.NUCLEAR)); bullet.velocity = 5.0F; bullet.spread = 0; bullet.dmgMin = 1; @@ -170,7 +173,7 @@ public class GunDartFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.ammo_dart_nerf; + bullet.ammo = new ComparableStack(ModItems.ammo_dart.stackFromEnum(AmmoDart.NERF)); bullet.velocity = 1.0F; bullet.gravity = 0.04D; bullet.dmgMin = 0; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index 2d373c7ad..dad35a32a 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -10,6 +10,8 @@ import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb.BombReturnCode; import com.hbm.main.MainRegistry; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -44,8 +46,8 @@ public class GunDetonatorFactory { config.reloadSoundEnd = false; config.showAmmo = true; - config.name = "Hopeville Laser Detonator"; - config.manufacturer = "WestTek"; + config.name = "laserDet"; + config.manufacturer = EnumGunManufacturer.WESTTEK; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.DET_BOLT); @@ -79,7 +81,7 @@ public class GunDetonatorFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = Items.redstone; + bullet.ammo = new ComparableStack(Items.redstone); bullet.spread = 0.0F; bullet.maxAge = 100; bullet.dmgMin = 0; diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 5b52257b3..27bc4ad4e 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -11,7 +11,11 @@ import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.AmmoFireExt; +import com.hbm.items.ItemAmmoEnums.AmmoFlamethrower; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -42,7 +46,7 @@ public class GunEnergyFactory { config.crosshair = Crosshair.CIRCLE; config.name = "Chemical Thrower"; - config.manufacturer = "Langford Research Laboratories"; + config.manufacturer = EnumGunManufacturer.LANGFORD; config.config = new ArrayList(); @@ -67,7 +71,7 @@ public class GunEnergyFactory { config.firingSound = "hbm:weapon.teslaShoot"; config.name = "EMP Orb Projector"; - config.manufacturer = "MWT Prototype Labs"; + config.manufacturer = EnumGunManufacturer.MWT; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.SPECIAL_EMP); @@ -95,7 +99,7 @@ public class GunEnergyFactory { config.reloadSound = "hbm:weapon.flamerReload"; config.name = "Heavy Duty Flamer"; - config.manufacturer = "MWT Prototype Labs"; + config.manufacturer = EnumGunManufacturer.MWT; config.comment.add("Dragon-slaying: Advanced techniques, part 1:"); config.comment.add("Try not to get eaten by the dragon."); @@ -132,7 +136,7 @@ public class GunEnergyFactory { config.reloadSound = "hbm:weapon.b92Reload"; config.name = "EMC101 Prismatic Negative Energy Cannon"; - config.manufacturer = "MWT Prototype Labs"; + config.manufacturer = EnumGunManufacturer.MWT; config.comment.add("Taste the rainbow!"); @@ -162,7 +166,7 @@ public class GunEnergyFactory { config.reloadSound = "hbm:weapon.flamerReload"; config.name = "PROTEX Fire Exinguisher 6kg"; - config.manufacturer = "Gloria GmbH"; + config.manufacturer = EnumGunManufacturer.GLORIA; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.FEXT_NORMAL); @@ -184,7 +188,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = ModItems.gun_emp_ammo; + bullet.ammo = new ComparableStack(ModItems.gun_emp_ammo); bullet.velocity = 1F; bullet.spread = 0.0F; @@ -217,7 +221,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = ModItems.ammo_fuel; + bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.DIESEL)); bullet.ammoCount = 100; bullet.velocity = 0.75F; @@ -265,7 +269,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = getFlameConfig(); - bullet.ammo = ModItems.ammo_fuel_napalm; + bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.NAPALM)); bullet.wear = 2; bullet.dmgMin = 4; bullet.dmgMax = 6; @@ -278,7 +282,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = getFlameConfig(); - bullet.ammo = ModItems.ammo_fuel_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.PHOSPHORUS)); bullet.wear = 2; bullet.spread = 0.0F; bullet.bulletsMin = 1; @@ -297,7 +301,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = getFlameConfig(); - bullet.ammo = ModItems.ammo_fuel_vaporizer; + bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.VAPORIZER)); bullet.wear = 4; bullet.spread = 0.25F; bullet.bulletsMin = 8; @@ -322,7 +326,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = getFlameConfig(); - bullet.ammo = ModItems.ammo_fuel_gas; + bullet.ammo = new ComparableStack(ModItems.ammo_fuel.stackFromEnum(AmmoFlamethrower.CHLORINE)); bullet.wear = 1; bullet.spread = 0.05F; bullet.gravity = 0D; @@ -344,7 +348,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = ModItems.ammo_fireext; + bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.WATER)); bullet.ammoCount = 300; bullet.velocity = 0.75F; @@ -432,7 +436,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = getFextConfig(); - bullet.ammo = ModItems.ammo_fireext_foam; + bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM)); bullet.spread = 0.05F; bullet.bImpact = new IBulletImpactBehavior() { @@ -513,7 +517,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = getFextConfig(); - bullet.ammo = ModItems.ammo_fireext_sand; + bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND)); bullet.spread = 0.1F; bullet.bImpact = new IBulletImpactBehavior() { @@ -578,7 +582,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = ModItems.nugget_euphemium; + bullet.ammo = new ComparableStack(ModItems.nugget_euphemium); bullet.ammoCount = 1000; bullet.wear = 1; bullet.velocity = 1F; @@ -621,7 +625,7 @@ public class GunEnergyFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = ModItems.nothing; + bullet.ammo = new ComparableStack(ModItems.nothing); bullet.dmgMin = 100; bullet.dmgMax = 150; bullet.velocity = 1F; diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index cbd5ad9bd..b11625a66 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -13,7 +13,10 @@ import com.hbm.handler.GunConfiguration; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -43,8 +46,8 @@ public class GunFatmanFactory { config.reloadSound = GunConfiguration.RSOUND_FATMAN; config.reloadSoundEnd = false; - config.name = "M-42 Tactical Nuclear Catapult"; - config.manufacturer = "Fort Strong"; + config.name = "m42"; + config.manufacturer = EnumGunManufacturer.F_STRONG; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL); @@ -63,8 +66,8 @@ public class GunFatmanFactory { GunConfiguration config = getFatmanConfig(); - config.name = "M-42 Experimental MIRV"; - config.manufacturer = "Fort Strong"; + config.name = "m42MIRV"; + config.manufacturer = EnumGunManufacturer.F_STRONG; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL); @@ -81,8 +84,8 @@ public class GunFatmanFactory { GunConfiguration config = getFatmanConfig(); - config.name = "Balefire Egg Launcher"; - config.manufacturer = "Fort Strong"; + config.name = "bel"; + config.manufacturer = EnumGunManufacturer.F_STRONG; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NUKE_AMAT); @@ -108,8 +111,8 @@ public class GunFatmanFactory { config.reloadSound = GunConfiguration.RSOUND_FATMAN; config.reloadSoundEnd = false; - config.name = "M-42 Tactical Nuclear Catapult"; - config.manufacturer = "Fort Strong"; + config.name = "m42"; + config.manufacturer = EnumGunManufacturer.F_STRONG; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.NUKE_PROTO_NORMAL); @@ -127,7 +130,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukeConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.STOCK)); bullet.bImpact = new IBulletImpactBehavior() { @@ -143,7 +146,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukeLowConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke_low; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW)); bullet.bImpact = new IBulletImpactBehavior() { @@ -159,7 +162,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukeHighConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke_high; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH)); bullet.bImpact = new IBulletImpactBehavior() { @@ -175,7 +178,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukeTotsConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke_tots; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.TOTS)); bullet.bulletsMin = 8; bullet.bulletsMax = 8; bullet.spread = 0.1F; @@ -195,7 +198,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukeSafeConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke_safe; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE)); bullet.bImpact = new IBulletImpactBehavior() { @@ -211,7 +214,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukePumpkinConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke_pumpkin; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.PUMPKIN)); bullet.explosive = 10F; bullet.bImpact = new IBulletImpactBehavior() { @@ -242,7 +245,7 @@ public class GunFatmanFactory { public static BulletConfiguration getNukeBarrelConfig() { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.ammo_nuke_barrel; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BARREL)); bullet.explosive = 3F; bullet.style = bullet.STYLE_BARREL; @@ -300,7 +303,7 @@ public class GunFatmanFactory { BulletConfiguration bullet = getNukeConfig(); - bullet.ammo = ModItems.ammo_mirv; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV)); bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; @@ -337,7 +340,7 @@ public class GunFatmanFactory { BulletConfiguration bullet = getNukeLowConfig(); - bullet.ammo = ModItems.ammo_mirv_low; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_LOW)); bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; @@ -374,7 +377,7 @@ public class GunFatmanFactory { BulletConfiguration bullet = getNukeHighConfig(); - bullet.ammo = ModItems.ammo_mirv_high; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_HIGH)); bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; @@ -411,7 +414,7 @@ public class GunFatmanFactory { BulletConfiguration bullet = getNukeSafeConfig(); - bullet.ammo = ModItems.ammo_mirv_safe; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SAFE)); bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; @@ -448,7 +451,7 @@ public class GunFatmanFactory { BulletConfiguration bullet = getNukeConfig(); - bullet.ammo = ModItems.ammo_mirv_special; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.MIRV_SPECIAL)); bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; @@ -496,7 +499,7 @@ public class GunFatmanFactory { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); - bullet.ammo = ModItems.gun_bf_ammo; + bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE)); bullet.style = BulletConfiguration.STYLE_BF; bullet.bImpact = new IBulletImpactBehavior() { diff --git a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java index ce49391a9..159171a0f 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGaussFactory.java @@ -5,7 +5,9 @@ import java.util.ArrayList; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class GunGaussFactory { @@ -27,8 +29,8 @@ public class GunGaussFactory { config.durability = 6000; config.firingSound = "hbm:weapon.tauShoot"; - config.name = "XVL1456 Tau Cannon"; - config.manufacturer = "Black Mesa Research Facility"; + config.name = "tau"; + config.manufacturer = EnumGunManufacturer.BLACK_MESA; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.SPECIAL_GAUSS); @@ -60,7 +62,7 @@ public class GunGaussFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.gun_xvl1456_ammo; + bullet.ammo = new ComparableStack(ModItems.gun_xvl1456_ammo); bullet.dmgMin = 6; bullet.dmgMax = 9; bullet.trail = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 0044ab409..f8393e634 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -5,13 +5,27 @@ import java.util.ArrayList; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoGrenade; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; public class GunGrenadeFactory { + private static final CasingEjector EJECTOR_LAUNCHER; + private static final SpentCasing CASING40MM; + + static { + EJECTOR_LAUNCHER = new CasingEjector().setAngleRange(0.02F, 0.03F).setAfterReload(); + CASING40MM = new SpentCasing(CasingType.STRAIGHT).setScale(4F, 4F, 3F).setBounceMotion(0.02F, 0.03F).setColor(0x777777).setupSmoke(1F, 0.5D, 60, 40); + } + public static GunConfiguration getHK69Config() { GunConfiguration config = new GunConfiguration(); @@ -31,8 +45,8 @@ public class GunGrenadeFactory { config.reloadSound = GunConfiguration.RSOUND_GRENADE; config.reloadSoundEnd = false; - config.name = "Granatpistole HK69"; - config.manufacturer = "Heckler & Koch"; + config.name = "gPistol"; + config.manufacturer = EnumGunManufacturer.H_AND_K; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); @@ -48,6 +62,8 @@ public class GunGrenadeFactory { config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); config.durability = 300; + config.ejector = EJECTOR_LAUNCHER; + return config; } @@ -55,13 +71,15 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.STOCK)); bullet.velocity = 2.0F; bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.wear = 10; bullet.trail = 0; + bullet.spentCasing = CASING40MM.clone().register("40MMStock"); + return bullet; } @@ -69,7 +87,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_he; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE)); bullet.velocity = 2.0F; bullet.dmgMin = 20; bullet.dmgMax = 15; @@ -77,6 +95,8 @@ public class GunGrenadeFactory { bullet.explosive = 5.0F; bullet.trail = 1; + bullet.spentCasing = CASING40MM.clone().register("40MMHE"); + return bullet; } @@ -84,7 +104,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.INCENDIARY)); bullet.velocity = 2.0F; bullet.dmgMin = 15; bullet.dmgMax = 15; @@ -92,6 +112,8 @@ public class GunGrenadeFactory { bullet.trail = 0; bullet.incendiary = 2; + bullet.spentCasing = CASING40MM.clone().register("40MMInc"); + return bullet; } @@ -99,7 +121,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.PHOSPHORUS)); bullet.velocity = 2.0F; bullet.dmgMin = 15; bullet.dmgMax = 15; @@ -109,6 +131,8 @@ public class GunGrenadeFactory { bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); + bullet.spentCasing = CASING40MM.clone().register("40MMPhos"); + return bullet; } @@ -116,7 +140,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_toxic; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.CHLORINE)); bullet.velocity = 2.0F; bullet.dmgMin = 10; bullet.dmgMax = 15; @@ -125,6 +149,8 @@ public class GunGrenadeFactory { bullet.explosive = 0; bullet.chlorine = 50; + bullet.spentCasing = CASING40MM.clone().register("40MMTox"); + return bullet; } @@ -132,7 +158,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.SLEEK)); bullet.velocity = 2.0F; bullet.dmgMin = 10; bullet.dmgMax = 15; @@ -141,6 +167,8 @@ public class GunGrenadeFactory { bullet.explosive = 7.5F; bullet.jolt = 6.5D; + bullet.spentCasing = CASING40MM.clone().register("40MMIF"); + return bullet; } @@ -148,7 +176,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_concussion; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.CONCUSSION)); bullet.velocity = 2.0F; bullet.dmgMin = 15; bullet.dmgMax = 20; @@ -156,6 +184,8 @@ public class GunGrenadeFactory { bullet.explosive = 10.0F; bullet.trail = 3; + bullet.spentCasing = CASING40MM.clone().register("40MMCon"); + return bullet; } @@ -163,11 +193,13 @@ public class GunGrenadeFactory { BulletConfiguration bullet = getGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_finned; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED)); bullet.gravity = 0.02; bullet.explosive = 1.5F; bullet.trail = 5; + bullet.spentCasing = CASING40MM.clone().register("40MMFin"); + return bullet; } @@ -175,7 +207,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = getGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_nuclear; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.NUCLEAR)); bullet.velocity = 4; bullet.explosive = 0.0F; @@ -187,6 +219,8 @@ public class GunGrenadeFactory { } }; + bullet.spentCasing = CASING40MM.clone().register("40MMNuke"); + return bullet; } @@ -194,13 +228,15 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.ammo_grenade_tracer; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.TRACER)); bullet.velocity = 2.0F; bullet.wear = 10; bullet.explosive = 0F; bullet.trail = 5; bullet.vPFX = "bluedust"; + bullet.spentCasing = CASING40MM.clone().register("40MMTrac").setColor(0xEEEEEE); + return bullet; } @@ -208,7 +244,7 @@ public class GunGrenadeFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_grenade_kampf; + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF)); bullet.spread = 0.0F; bullet.gravity = 0.0D; bullet.wear = 15; @@ -217,6 +253,8 @@ public class GunGrenadeFactory { bullet.trail = 4; bullet.vPFX = "smoke"; + //bullet.spentCasing = CASING40MM.clone().register("40MMKampf").setColor(0xEBC35E); //does not eject, whole cartridge leaves the gun + return bullet; } } diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index d9c8407e3..b0935be11 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -9,6 +9,7 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -29,7 +30,7 @@ public class GunNPCFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = ModItems.coin_maskman; + bullet.ammo = new ComparableStack(ModItems.coin_maskman); bullet.velocity = 0.25F; bullet.spread = 0.000F; bullet.wear = 10; @@ -84,7 +85,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.coin_maskman; + bullet.ammo = new ComparableStack(ModItems.coin_maskman); bullet.spread = 0.0F; bullet.dmgMin = 15; bullet.dmgMax = 20; @@ -102,7 +103,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.coin_maskman; + bullet.ammo = new ComparableStack(ModItems.coin_maskman); bullet.spread = 0.0F; bullet.dmgMin = 5; bullet.dmgMax = 10; @@ -118,7 +119,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.coin_maskman; + bullet.ammo = new ComparableStack(ModItems.coin_maskman); bullet.spread = 0.0F; bullet.dmgMin = 15; bullet.dmgMax = 20; @@ -151,7 +152,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.coin_maskman; + bullet.ammo = new ComparableStack(ModItems.coin_maskman); bullet.gravity = 0.1D; bullet.velocity = 1.0F; bullet.dmgMin = 15; @@ -167,7 +168,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); - bullet.ammo = ModItems.coin_maskman; + bullet.ammo = new ComparableStack(ModItems.coin_maskman); bullet.gravity = 0.1D; bullet.velocity = 1.0F; bullet.dmgMin = 20; @@ -205,7 +206,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.coin_worm; + bullet.ammo = new ComparableStack(ModItems.coin_worm); bullet.spread = 0.0F; bullet.maxAge = 60; bullet.dmgMin = 15; @@ -222,7 +223,7 @@ public class GunNPCFactory { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.coin_worm; + bullet.ammo = new ComparableStack(ModItems.coin_worm); bullet.spread = 0.0F; bullet.maxAge = 100; bullet.dmgMin = 35; diff --git a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java index 4d2a0a50e..db093f702 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java @@ -2,12 +2,21 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; +import com.hbm.blocks.generic.RedBarrel; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.lib.ModDamageSource; +import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.potion.PotionEffect; + public class GunOSIPRFactory { public static GunConfiguration getOSIPRConfig() { @@ -24,13 +33,13 @@ public class GunOSIPRFactory { config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.L_ARROWS; - config.durability = 10000; + config.durability = 50_000; config.reloadSound = "hbm:weapon.osiprReload"; config.firingSound = "hbm:weapon.osiprShoot"; config.reloadSoundEnd = false; - config.name = "Overwatch Standard Issue Pulse Rifle"; - config.manufacturer = "The Universal Union"; + config.name = "osipr"; + config.manufacturer = EnumGunManufacturer.COMBINE; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.SPECIAL_OSIPR); @@ -59,24 +68,71 @@ public class GunOSIPRFactory { return config; } - static float inaccuracy = 5; + static float inaccuracy = 1.25F; public static BulletConfiguration getPulseConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.gun_osipr_ammo; + bullet.ammo = new ComparableStack(ModItems.gun_osipr_ammo); + bullet.ammoCount = 30; + bullet.doesRicochet = false; bullet.spread *= inaccuracy; - bullet.dmgMin = 3; - bullet.dmgMax = 5; + bullet.dmgMin = 15; + bullet.dmgMax = 21; bullet.trail = 2; return bullet; } + public static BulletConfiguration getPulseChargedConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); - bullet.ammo = ModItems.gun_osipr_ammo2; + bullet.ammo = new ComparableStack(ModItems.gun_osipr_ammo2); + bullet.ricochetAngle = 360; + bullet.LBRC = 100; + bullet.HBRC = 100; + bullet.bounceMod = 1; + bullet.style = BulletConfiguration.STYLE_ORB; + bullet.damageType = ModDamageSource.s_combineball; + bullet.liveAfterImpact = true; + bullet.spread = 0; + bullet.gravity = 0; + bullet.maxAge = 150; + bullet.velocity = 2; + + bullet.bHurt = (ball, entity) -> { + if(entity instanceof EntityLivingBase) { + EntityLivingBase entityLiving = (EntityLivingBase) entity; + entity.addVelocity(ball.motionX / 2, ball.motionY / 2, ball.motionZ / 2); + + if(entity == ball.shooter) + return; + + if(entityLiving.getHealth() <= 1000) { + entityLiving.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 1, 0)); + entityLiving.setLastAttacker(ball.shooter); + } else if(entityLiving.getHealth() > 1000) { + ball.setDead(); + return; + } + + } + }; + + bullet.bRicochet = (ball, x, y, z) -> { + Block block = ball.worldObj.getBlock(x, y, z); + if(block instanceof RedBarrel) + ((RedBarrel) block).explode(ball.worldObj, x, y, z); + + }; + + bullet.bImpact = (ball, x, y, z) -> { + final Block block = ball.worldObj.getBlock(x, y, z); + if(block instanceof RedBarrel) + ((RedBarrel) block).explode(ball.worldObj, x, y, z); + + }; return bullet; } diff --git a/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java b/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java index 52514d76b..c80cb8f1d 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunPoweredFactory.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.util.EnumChatFormatting; @@ -27,7 +28,7 @@ public class GunPoweredFactory { config.chargeRate = 2500; config.name = "LIY2001 Anti-Material Electromagnetic Rifle Prototype"; - config.manufacturer = "OxfordEM technologies"; + config.manufacturer = EnumGunManufacturer.OXFORD; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.GLASS_EMRADIO); @@ -41,35 +42,6 @@ public class GunPoweredFactory { return config; } - /*public static BulletConfiguration getGlassBoltConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 2.0F; - bullet.spread = 0F; - bullet.dmgMin = 30; - bullet.dmgMax = 40; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 90; - bullet.HBRC = 2; - bullet.LBRC = 90; - bullet.bounceMod = 1; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_BOLT; - bullet.plink = BulletConfiguration.PLINK_ENERGY; - bullet.trail = BulletConfiguration.BOLT_LASER; - bullet.dischargePerShot = 1000; - bullet.firingRate = 5; - bullet.modeName = "testMode"; - bullet.chatColour = EnumChatFormatting.RED; - - return bullet; - }*/ - public static BulletConfiguration getEMRadioConfig() { BulletConfiguration bullet = new BulletConfiguration(); diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index c18b8a9d7..42df5aa30 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -10,7 +10,10 @@ import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletRicochetBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoRocket; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationKeyframe; import com.hbm.render.anim.BusAnimationSequence; @@ -40,8 +43,8 @@ public class GunRocketFactory { config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; config.reloadSoundEnd = false; - config.name = "Carl Gustav Recoilless Rifle M1"; - config.manufacturer = "Saab Bofors Dynamics"; + config.name = "gustav"; + config.manufacturer = EnumGunManufacturer.SAAB; config.comment.add("Fun fact of the day: Recoilless"); config.comment.add("rifles don't actually fire rockets."); @@ -103,8 +106,8 @@ public class GunRocketFactory { ) ); - config.name = "OpenQuadro Guided Man-Portable Missile Launcher"; - config.manufacturer = "Open Mann Co."; + config.name = "quadro"; + config.manufacturer = EnumGunManufacturer.MANN; config.comment.add("For the next three hundred years, people who needed to get to the second"); config.comment.add("floor used the only method available to them, which was rocket jumping."); config.comment.add("This persisted until 1857, when the young bearded inventor named"); @@ -134,8 +137,8 @@ public class GunRocketFactory { config.reloadDuration = 20; - config.name = "M1 Karl-Gerät"; - config.manufacturer = "???"; + config.name = "karl"; + config.manufacturer = EnumGunManufacturer.UNKNOWN; config.comment.clear(); config.config = new ArrayList(); @@ -159,8 +162,8 @@ public class GunRocketFactory { config.reloadDuration = 25; config.hasSights = true; - config.name = "Raketenpanzerbüchse 54"; - config.manufacturer = "Enzinger Union"; + config.name = "panz"; + config.manufacturer = EnumGunManufacturer.ENZINGER; config.comment.clear(); config.comment.add("Panzer-Shrek"); @@ -173,7 +176,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.STOCK)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.explosive = 4F; @@ -186,7 +189,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_he; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.HE)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.wear = 15; @@ -200,7 +203,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.wear = 15; @@ -215,7 +218,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_emp; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.EMP)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.explosive = 2.5F; @@ -229,7 +232,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_sleek; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SLEEK)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.explosive = 10F; @@ -244,7 +247,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_shrapnel; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.SHRAPNEL)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.explosive = 4F; @@ -258,7 +261,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_glare; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE)); bullet.velocity = 5.0F; bullet.dmgMin = 10; bullet.dmgMax = 15; @@ -274,7 +277,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_nuclear; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR)); bullet.velocity = 1.5F; bullet.dmgMin = 10; bullet.dmgMax = 15; @@ -298,7 +301,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_toxic; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CHLORINE)); bullet.velocity = 1.5F; bullet.dmgMin = 10; bullet.dmgMax = 15; @@ -314,7 +317,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_rpc; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.RPC)); bullet.velocity = 3.0F; bullet.dmgMin = 20; bullet.dmgMax = 25; @@ -328,7 +331,8 @@ public class GunRocketFactory { bullet.doesPenetrate = true; bullet.bRicochet = new IBulletRicochetBehavior() { - + + @Override public void behaveBlockRicochet(EntityBulletBase bullet, int bX, int bY, int bZ) { World worldObj = bullet.worldObj; if(!worldObj.isRemote && @@ -347,7 +351,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_phosphorus; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.PHOSPHORUS)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.wear = 15; @@ -364,7 +368,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_canister; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CANISTER)); bullet.dmgMin = 10; bullet.dmgMax = 15; bullet.explosive = 2F; @@ -399,7 +403,7 @@ public class GunRocketFactory { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_rocket_digamma; + bullet.ammo = new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.DIGAMMA)); bullet.velocity = 0.5F; bullet.dmgMin = 10; bullet.dmgMax = 15; @@ -422,22 +426,6 @@ public class GunRocketFactory { spear.posY = bullet.posY + 100; bullet.worldObj.spawnEntityInWorld(spear); - - /*for(int i = 0; i < 250; i++) { - - double ix = bullet.posX + bullet.worldObj.rand.nextGaussian() * 15; - double iy = bullet.posY + bullet.worldObj.rand.nextGaussian() * 2; - double iz = bullet.posZ + bullet.worldObj.rand.nextGaussian() * 15; - - ExAttrib at = Vec3.createVectorHelper(ix - bullet.posX, 0, iz - bullet.posZ).lengthVector() < 20 ? ExAttrib.DIGAMMA_CIRCUIT : ExAttrib.DIGAMMA; - - new ExplosionNT(bullet.worldObj, bullet, ix, iy, iz, 7.5F) - .addAttrib(ExAttrib.NOHURT) - .addAttrib(ExAttrib.NOPARTICLE) - .addAttrib(ExAttrib.NODROP) - .addAttrib(ExAttrib.NOSOUND) - .addAttrib(at).explode(); - }*/ } }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java index 4a4b1f43a..9ace3b45f 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java @@ -3,13 +3,15 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.entity.projectile.EntityRocket; import com.hbm.entity.projectile.EntityRocketHoming; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.AmmoStinger; import com.hbm.items.ModItems; +import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.entity.player.EntityPlayer; @@ -34,8 +36,8 @@ public class GunRocketHomingFactory { config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; config.reloadSoundEnd = false; - config.name = "FIM-92 Stinger man-portable air-defense system"; - config.manufacturer = "Raytheon Missile Systems"; + config.name = "stinger"; + config.manufacturer = EnumGunManufacturer.RAYTHEON; config.comment.add("Woosh, beep-beep-beep!"); config.config = new ArrayList(); @@ -66,8 +68,8 @@ GunConfiguration config = new GunConfiguration(); config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; config.reloadSoundEnd = false; - config.name = "The One Sky Stinger"; - config.manufacturer = "Equestria Missile Systems"; + config.name = "stingerOneSky"; + config.manufacturer = EnumGunManufacturer.EQUESTRIA; config.comment.add("Oh, I get it, because of the...nyeees!"); config.comment.add("It all makes sense now!"); config.comment.add(""); @@ -90,7 +92,7 @@ GunConfiguration config = new GunConfiguration(); public static BulletConfiguration getRocketStingerConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_stinger_rocket; + bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.STOCK)); bullet.dmgMin = 20; bullet.dmgMax = 25; bullet.explosive = 4F; @@ -126,7 +128,7 @@ GunConfiguration config = new GunConfiguration(); public static BulletConfiguration getRocketStingerHEConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_stinger_rocket_he; + bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE)); bullet.dmgMin = 30; bullet.dmgMax = 35; bullet.explosive = 8F; @@ -163,7 +165,7 @@ GunConfiguration config = new GunConfiguration(); public static BulletConfiguration getRocketStingerIncendiaryConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_stinger_rocket_incendiary; + bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY)); bullet.dmgMin = 15; bullet.dmgMax = 20; bullet.explosive = 4F; @@ -200,7 +202,7 @@ GunConfiguration config = new GunConfiguration(); public static BulletConfiguration getRocketStingerNuclearConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_stinger_rocket_nuclear; + bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR)); bullet.dmgMin = 50; bullet.dmgMax = 55; bullet.explosive = 15F; @@ -214,18 +216,21 @@ GunConfiguration config = new GunConfiguration(); if(!bullet.worldObj.isRemote) { - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 4); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); + EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); + + if(player.getDistanceToEntity(bullet) < 16) { + EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 4); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); + rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bullet.worldObj.spawnEntityInWorld(rocket2); + } + rocket.homingMod = 5; + rocket.homingRadius = 25; + bullet.worldObj.spawnEntityInWorld(rocket); } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); bullet.setDead(); } @@ -237,7 +242,7 @@ GunConfiguration config = new GunConfiguration(); public static BulletConfiguration getRocketStingerBonesConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); - bullet.ammo = ModItems.ammo_stinger_rocket_bones; + bullet.ammo = new ComparableStack(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.BONES)); bullet.dmgMin = 20; bullet.dmgMax = 25; bullet.explosive = 8F; @@ -250,18 +255,21 @@ GunConfiguration config = new GunConfiguration(); if(!bullet.worldObj.isRemote) { - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 42); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); + EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); + + if(player.getDistanceToEntity(bullet) < 16) { + EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 42); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); + rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bullet.worldObj.spawnEntityInWorld(rocket2); + } + rocket.homingMod = 5; + rocket.homingRadius = 25; + bullet.worldObj.spawnEntityInWorld(rocket); } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); bullet.setDead(); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 653294ec1..e2e252cc2 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -26,6 +26,7 @@ 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.items.ItemAmmoEnums; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; @@ -612,7 +613,7 @@ public class AssemblerRecipes { new OreDictStack(ASBESTOS.ingot(), 8) }, 200); - makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2), new AStack[] { + makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.STOCK.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 1), new ComparableStack(ModItems.primer_50, 5), @@ -622,7 +623,7 @@ public class AssemblerRecipes { new OreDictStack(U238.ingot(), 1) }, 60); - makeRecipe(new ComparableStack(ModItems.ammo_75bolt_incendiary, 2), new AStack[] { + makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.INCENDIARY.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 1), new ComparableStack(ModItems.primer_50, 5), @@ -632,7 +633,7 @@ public class AssemblerRecipes { new OreDictStack(P_WHITE.ingot(), 3) }, 60); - makeRecipe(new ComparableStack(ModItems.ammo_75bolt_he, 2), new AStack[] { + makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.HE.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 1), new ComparableStack(ModItems.primer_50, 5), diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index ada0f7399..39fc4c54b 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -8,6 +8,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 net.minecraft.init.Items; @@ -44,17 +45,17 @@ public class MagicRecipes { 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_pip), + 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_bj), + 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_silver), + 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), @@ -90,7 +91,7 @@ public class MagicRecipes { new ComparableStack(ModItems.ingot_polymer), new OreDictStack("plateGold"))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart_nuclear, 4), + recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.nugget_pu239), new ComparableStack(ModItems.circuit_aluminium))); diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 2dcf5d555..b0dcb263b 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -8,6 +8,9 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ItemEnums.EnumBriquetteType; +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.ItemStamp.StampType; @@ -76,30 +79,33 @@ public class PressRecipes { makeRecipe(StampType.WIRE, new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.wire_advanced_alloy, 8)); makeRecipe(StampType.WIRE, new OreDictStack(MAGTUNG.ingot()), new ItemStack(ModItems.wire_magnetized_tungsten, 8)); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_raw), ModItems.circuit_aluminium); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_bismuth_raw), ModItems.circuit_bismuth); - makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic); + makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_raw), ModItems.circuit_aluminium); + makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_bismuth_raw), ModItems.circuit_bismuth); + makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic); makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), ModItems.circuit_tantalium); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.gun_revolver_iron_ammo); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.gun_revolver_ammo); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.gun_revolver_lead_ammo); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.gun_revolver_gold_ammo); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.gun_revolver_schrabidium_ammo); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.gun_revolver_nightmare_ammo); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357_desh); - makeRecipe(StampType.C357, new OreDictStack(STEEL.ingot()), ModItems.gun_revolver_cursed_ammo); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.IRON)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NUCLEAR)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.GOLD)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.SCHRABIDIUM)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE1)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.DESH)); + makeRecipe(StampType.C357, new OreDictStack(STEEL.ingot()), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.STEEL)); - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), ModItems.ammo_44); + makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), ModItems.ammo_44); + makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), ModItems.ammo_45); makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), ModItems.ammo_9mm); makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), ModItems.ammo_22lr); - makeRecipe(StampType.C9, new OreDictStack(GOLD.ingot()), ModItems.ammo_566_gold); + makeRecipe(StampType.C9, new OreDictStack(GOLD.ingot()), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.GOLD)); makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), ModItems.ammo_5mm); makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), ModItems.ammo_556); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), ModItems.ammo_50bmg); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), ModItems.ammo_50ae); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), ModItems.ammo_762); } public static void makeRecipe(StampType type, AStack in, Item out) { 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 eae8949c5..d0f854555 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -11,6 +11,7 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.food.ItemFlask.EnumInfusion; @@ -499,86 +500,95 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_buckshot))).setTier(1)); Object[][] recs = new Object[][] { - {ModItems.ammo_12gauge, P_RED.dust(), ModItems.ammo_12gauge_incendiary, 20, 2}, - {ModItems.ammo_12gauge, Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge_shrapnel, 20, 2}, - {ModItems.ammo_12gauge, U238.ingot(), ModItems.ammo_12gauge_du, 20, 3}, - {ModItems.ammo_12gauge, ModItems.coin_maskman, ModItems.ammo_12gauge_sleek, 100, 4}, - - {ModItems.ammo_20gauge, P_RED.dust(), ModItems.ammo_20gauge_incendiary, 20, 2}, - {ModItems.ammo_20gauge, Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge_shrapnel, 20, 2}, - {ModItems.ammo_20gauge, ModItems.powder_poison, ModItems.ammo_20gauge_caustic, 20, 2}, - {ModItems.ammo_20gauge, DIAMOND.dust(), ModItems.ammo_20gauge_shock, 20, 2}, - {ModItems.ammo_20gauge, Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge_wither, 10, 3}, - {ModItems.ammo_20gauge, ModItems.coin_maskman, ModItems.ammo_20gauge_sleek, 100, 4}, + {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.INCENDIARY), 2}, + {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.SHRAPNEL), 2}, + {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.DU), 3}, + {ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.SLEEK), 4}, - {ModItems.ammo_4gauge_flechette, P_WHITE.ingot(), ModItems.ammo_4gauge_flechette_phosphorus, 20, 2}, - {ModItems.ammo_4gauge_explosive, ModItems.egg_balefire_shard, ModItems.ammo_4gauge_balefire, 10, 4}, - {ModItems.ammo_4gauge_explosive, ModItems.ammo_rocket, ModItems.ammo_4gauge_kampf, 4, 2}, - {ModItems.ammo_4gauge_kampf, ModItems.pellet_canister, ModItems.ammo_4gauge_canister, 10, 3}, - {ModItems.ammo_4gauge, ModItems.pellet_claws, ModItems.ammo_4gauge_claw, 4, 5}, - {ModItems.ammo_4gauge, ModItems.toothpicks, ModItems.ammo_4gauge_vampire, 4, 5}, - {ModItems.ammo_4gauge, ModItems.pellet_charged, ModItems.ammo_4gauge_void, 1, 5}, - {ModItems.ammo_4gauge, ModItems.coin_maskman, ModItems.ammo_4gauge_sleek, 100, 4}, + {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.INCENDIARY), 2}, + {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHRAPNEL), 2}, + {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.CAUSTIC), 2}, + {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHOCK), 2}, + {ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.WITHER), 3}, + {ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.SLEEK), 4}, - {ModItems.ammo_44, DURA.ingot(), ModItems.ammo_44_ap, 20, 2}, - {ModItems.ammo_44, U238.ingot(), ModItems.ammo_44_du, 20, 2}, - {ModItems.ammo_44, P_WHITE.ingot(), ModItems.ammo_44_phosphorus, 20, 2}, - {ModItems.ammo_44_du, STAR.ingot(), ModItems.ammo_44_star, 10, 3}, - {ModItems.ammo_44, ModItems.pellet_chlorophyte, ModItems.ammo_44_chlorophyte, 10, 3}, + {ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2}, + {ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(10, 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(10, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(10, 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(100, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.SLEEK), 4}, - {ModItems.ammo_5mm, ANY_HIGHEXPLOSIVE.ingot(), ModItems.ammo_5mm_explosive, 20, 2}, - {ModItems.ammo_5mm, U238.ingot(), ModItems.ammo_5mm_du, 20, 2}, - {ModItems.ammo_5mm, STAR.ingot(), ModItems.ammo_5mm_star, 10, 3}, - {ModItems.ammo_5mm, ModItems.pellet_chlorophyte, ModItems.ammo_5mm_chlorophyte, 10, 3}, + {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.AP), 2}, + {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.DU), 2}, + {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.PHOSPHORUS), 2}, + {ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STAR), 3}, + {ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.CHLOROPHYTE), 3}, - {ModItems.ammo_9mm, DURA.ingot(), ModItems.ammo_9mm_ap, 20, 2}, - {ModItems.ammo_9mm, U238.ingot(), ModItems.ammo_9mm_du, 20, 2}, - {ModItems.ammo_9mm, ModItems.pellet_chlorophyte, ModItems.ammo_9mm_chlorophyte, 10, 3}, - - {ModItems.ammo_22lr, DURA.ingot(), ModItems.ammo_22lr_ap, 20, 2}, - {ModItems.ammo_22lr, ModItems.pellet_chlorophyte, ModItems.ammo_22lr_chlorophyte, 10, 3}, + {ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.AP), 3}, + {ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), U238.ingot(), ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), 3}, - {ModItems.ammo_50bmg, P_RED.dust(), ModItems.ammo_50bmg_incendiary, 20, 2}, - {ModItems.ammo_50bmg, P_WHITE.ingot(), ModItems.ammo_50bmg_phosphorus, 20, 2}, - {ModItems.ammo_50bmg, ANY_HIGHEXPLOSIVE.ingot(), ModItems.ammo_50bmg_explosive, 20, 2}, - {ModItems.ammo_50bmg, DURA.ingot(), ModItems.ammo_50bmg_ap, 20, 2}, - {ModItems.ammo_50bmg, U238.ingot(), ModItems.ammo_50bmg_du, 20, 2}, - {ModItems.ammo_50bmg_du, STAR.ingot(), ModItems.ammo_50bmg_star, 10, 3}, - {ModItems.ammo_50bmg, ModItems.pellet_chlorophyte, ModItems.ammo_50bmg_chlorophyte, 10, 3}, - {ModItems.ammo_50bmg, ModItems.coin_maskman, ModItems.ammo_50bmg_sleek, 100, 4}, - {ModItems.ammo_50bmg, ModItems.pellet_flechette, ModItems.ammo_50bmg_flechette, 20, 2}, - {ModItems.ammo_50bmg_flechette, ModItems.nugget_am_mix, ModItems.ammo_50bmg_flechette_am, 10, 3}, - {ModItems.ammo_50bmg_flechette, ModItems.powder_polonium, ModItems.ammo_50bmg_flechette_po, 20, 3}, + {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.EXPLOSIVE), 2}, + {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.DU), 2}, + {ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.STAR), 3}, + {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.CHLOROPHYTE), 3}, - {ModItems.ammo_50ae, DURA.ingot(), ModItems.ammo_50ae_ap, 20, 2}, - {ModItems.ammo_50ae, U238.ingot(), ModItems.ammo_50ae_du, 20, 2}, - {ModItems.ammo_50ae_du, STAR.ingot(), ModItems.ammo_50ae_star, 10, 3}, - {ModItems.ammo_50ae, ModItems.pellet_chlorophyte, ModItems.ammo_50ae_chlorophyte, 10, 3}, + {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.AP), 2}, + {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.DU), 2}, + {ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.CHLOROPHYTE), 3}, - {ModItems.ammo_556, P_WHITE.ingot(), ModItems.ammo_556_phosphorus, 20, 2}, - {ModItems.ammo_556, DURA.ingot(), ModItems.ammo_556_ap, 20, 2}, - {ModItems.ammo_556, U238.ingot(), ModItems.ammo_556_du, 20, 2}, - {ModItems.ammo_556_du, STAR.ingot(), ModItems.ammo_556_star, 10, 3}, - {ModItems.ammo_556, ModItems.pellet_chlorophyte, ModItems.ammo_556_chlorophyte, 10, 3}, - {ModItems.ammo_556, ModItems.coin_maskman, ModItems.ammo_556_sleek, 100, 4}, - {ModItems.ammo_556, Items.redstone, ModItems.ammo_556_tracer, 20, 2}, - {ModItems.ammo_556, ModItems.pellet_flechette, ModItems.ammo_556_flechette, 20, 2}, - {ModItems.ammo_556_flechette, P_RED.dust(), ModItems.ammo_556_flechette_incendiary, 20, 2}, - {ModItems.ammo_556_flechette, P_WHITE.ingot(), ModItems.ammo_556_flechette_phosphorus, 20, 2}, - {ModItems.ammo_556_flechette, U238.ingot(), ModItems.ammo_556_flechette_du, 20, 2}, - {ModItems.ammo_556_flechette, ModItems.coin_maskman, ModItems.ammo_556_flechette_sleek, 100, 4}, - {ModItems.ammo_556_flechette, ModItems.pellet_chlorophyte, ModItems.ammo_556_flechette_chlorophyte, 10, 3}, + {ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.AP), 2}, + {ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.CHLOROPHYTE), 3}, + + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.INCENDIARY), 2}, + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.PHOSPHORUS), 2}, + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.EXPLOSIVE), 2}, + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.AP), 2}, + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.DU), 2}, + {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STAR), 3}, + {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.CHLOROPHYTE), 3}, + {ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.SLEEK), 4}, + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), 2}, + {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE_AM), 3}, + {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE_PO), 3}, + + {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.AP), 2}, + {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.DU), 2}, + {ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STAR), 3}, + {ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.CHLOROPHYTE), 3}, + + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.PHOSPHORUS), 2}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.AP), 2}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.DU), 2}, + {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STAR), 3}, + {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.CHLOROPHYTE), 3}, + {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.SLEEK), 4}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.TRACER), 2}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), 2}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_INCENDIARY), 2}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_PHOSPHORUS), 2}, + {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_DU), 2}, + {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE_SLEEK), 4}, + {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3}, + + {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.TRACER), 2}, + {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.AP), 2}, + {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.PHOSPHORUS), 2}, + {ModItems.ammo_762.stackFromEnum(10, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(20, 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[] { new ComparableStack((Item)objs[0], (int)objs[3]), new ComparableStack((Item)objs[1], 1) }, - new AnvilOutput(new ItemStack((Item)objs[2], (int)objs[3]))).setTier((int)objs[4])); + 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[] { new ComparableStack((Item)objs[0], (int)objs[3]), new OreDictStack((String)objs[1], 1) }, - new AnvilOutput(new ItemStack((Item)objs[2], (int)objs[3]))).setTier((int)objs[4])); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new OreDictStack((String)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); } } } diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java new file mode 100644 index 000000000..d42eb4015 --- /dev/null +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -0,0 +1,759 @@ +package com.hbm.items; + +import java.util.Set; + +import com.google.common.collect.ImmutableSet; +import com.hbm.items.weapon.ItemAmmo.AmmoItemTrait; +import com.hbm.lib.HbmCollection; + +public class ItemAmmoEnums { + + public enum AmmoLunaticSniper implements IAmmoItemEnum { + SABOT("ammo_luna"), + INCENDIARY("ammo_luna_incendiary"), + EXPLOSIVE("ammo_luna_explosive"); + + private final Set traits; + private final String unloc; + + private AmmoLunaticSniper(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoFireExt implements IAmmoItemEnum { + WATER("ammo_fireext"), + FOAM("ammo_fireext_foam"), + SAND("ammo_fireext_sand"); + + private final Set traits; + private final String unloc; + + private AmmoFireExt(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoFlamethrower implements IAmmoItemEnum { + DIESEL("ammo_fuel"), + NAPALM("ammo_fuel_napalm", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), + PHOSPHORUS("ammo_fuel_phosphorus", AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_SING_PROJECTILE, AmmoItemTrait.CON_HEAVY_WEAR), + VAPORIZER("ammo_fuel_vaporizer", AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.PRO_FLAMES, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_ERASER, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RANGE2, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_LING_FIRE), + CHLORINE("ammo_fuel_gas", AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.PRO_POISON_GAS, AmmoItemTrait.CON_NO_DAMAGE, AmmoItemTrait.CON_NO_FIRE); + + private final Set traits; + private final String unloc; + + private AmmoFlamethrower(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoMisc implements IAmmoItemEnum { + //LUNA_SNIPER("ammo_lunar", Gun50BMGFactory.getLunaticSabotRound(), AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.NEU_HEAVY_METAL), + DGK("ammo_dkg"); + + private final Set traits; + private final String unloc; + + private AmmoMisc(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoStinger implements IAmmoItemEnum { + STOCK("ammo_stinger_rocket"), + HE("ammo_stinger_rocket_he", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), + INCENDIARY("ammo_stinger_rocket_incendiary", HbmCollection.IncendiaryType), + NUCLEAR("ammo_stinger_rocket_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR), + BONES("ammo_stinger_rocket_bones"); + + private final Set traits; + private final String unloc; + + private AmmoStinger(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private AmmoStinger(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoRocket implements IAmmoItemEnum { + STOCK("ammo_rocket"), + HE("ammo_rocket_he", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), + INCENDIARY("ammo_rocket_incendiary", HbmCollection.IncendiaryType), + EMP("ammo_rocket_emp", AmmoItemTrait.PRO_EMP, AmmoItemTrait.CON_RADIUS), + SLEEK("ammo_rocket_sleek", AmmoItemTrait.PRO_RADIUS_HIGH, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_SPEED), + SHRAPNEL("ammo_rocket_shrapnel", AmmoItemTrait.PRO_SHRAPNEL), + GLARE("ammo_rocket_glare", AmmoItemTrait.PRO_SPEED, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + NUCLEAR("ammo_rocket_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR, AmmoItemTrait.CON_SPEED), + CHLORINE("ammo_rocket_toxic", AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.CON_SPEED), + RPC("ammo_rocket_rpc", AmmoItemTrait.PRO_CHAINSAW, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.NEU_UHH ), + PHOSPHORUS("ammo_rocket_phosphorus", HbmCollection.PhosphorusTypeSpecial), + CANISTER("ammo_rocket_canister"), + DIGAMMA("ammo_rocket_digamma"); + + private final Set traits; + private final String unloc; + + private AmmoRocket(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private AmmoRocket(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoGrenade implements IAmmoItemEnum { + STOCK("ammo_grenade"), + HE("ammo_grenade_he", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), + INCENDIARY("ammo_grenade_incendiary", AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + PHOSPHORUS("ammo_grenade_phosphorus", AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR), + CHLORINE("ammo_grenade_toxic", AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1), + SLEEK("ammo_grenade_sleek", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.NEU_JOLT), + CONCUSSION("ammo_grenade_concussion", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), + FINNED("ammo_grenade_finned", AmmoItemTrait.PRO_GRAVITY, AmmoItemTrait.CON_RADIUS), + NUCLEAR("ammo_grenade_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), + TRACER("ammo_grenade_tracer", AmmoItemTrait.NEU_BLANK), + KAMPF("ammo_grenade_kampf", AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR); + + private final Set traits; + private final String unloc; + + private AmmoGrenade(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoFatman implements IAmmoItemEnum { + STOCK("ammo_nuke"), + LOW("ammo_nuke_low", AmmoItemTrait.CON_RADIUS), + HIGH("ammo_nuke_high", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), + TOTS("ammo_nuke_tots", AmmoItemTrait.PRO_BOMB_COUNT, AmmoItemTrait.NEU_FUN, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_MIRV), + SAFE("ammo_nuke_safe", AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), + PUMPKIN("ammo_nuke_pumpkin", AmmoItemTrait.CON_NN), + MIRV("ammo_mirv"), + MIRV_LOW("ammo_mirv_low", AmmoItemTrait.CON_RADIUS), + MIRV_HIGH("ammo_mirv_high", AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), + MIRV_SAFE("ammo_mirv_safe", AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), + MIRV_SPECIAL("ammo_mirv_special"), + BALEFIRE("gun_bf_ammo"), + BARREL("ammo_nuke_barrel"); + + private final Set traits; + private final String unloc; + + private AmmoFatman(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoDart implements IAmmoItemEnum { + GPS("ammo_dart"), + NUCLEAR("ammo_dart_nuclear"), + NERF("ammo_dart_nerf"); + + private final Set traits; + private final String unloc; + + private AmmoDart(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo240Shell implements IAmmoItemEnum { + STOCK("ammo_shell"), + EXPLOSIVE("ammo_shell_explosive"), + APFSDS_T("ammo_shell_apfsds_t"), + APFSDS_DU("ammo_shell_apfsds_du"), + W9("ammo_shell_w9"); + + private final Set traits; + private final String unloc; + + private Ammo240Shell(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo9mm implements IAmmoItemEnum { + STOCK("ammo_9mm"), + AP("ammo_9mm_ap", HbmCollection.APType), + DU("ammo_9mm_du", HbmCollection.DUType), + CHLOROPHYTE("ammo_9mm_chlorophyte", HbmCollection.ChlorophyteType), + ROCKET("ammo_9mm_rocket", AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); + + private final Set traits; + private final String unloc; + + private Ammo9mm(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo9mm(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo762NATO implements IAmmoItemEnum { + STOCK("ammo_762"), + AP("ammo_762_ap", HbmCollection.APType), + DU("ammo_762_du", HbmCollection.DUType), + TRACER("ammo_762_tracer", AmmoItemTrait.NEU_TRACER), + PHOSPHORUS("ammo_762_phosphorus", HbmCollection.PhosphorusType), + BLANK("ammo_762_k", AmmoItemTrait.NEU_BLANK); + + private final Set traits; + private final String unloc; + + private Ammo762NATO(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo762NATO(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo75Bolt implements IAmmoItemEnum { + STOCK("ammo_75bolt"), + INCENDIARY("ammo_75bolt_incendiary"), + HE("ammo_75bolt_he"); + + private final Set traits; + private final String unloc; + + private Ammo75Bolt(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo5mm implements IAmmoItemEnum { + STOCK("ammo_5mm"), + EXPLOSIVE("ammo_5mm_explosive", HbmCollection.ExplosiveType), + DU("ammo_5mm_du", HbmCollection.DUType), + STAR("ammo_5mm_star", HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_5mm_chlorophyte", HbmCollection.ChlorophyteType); + + private final Set traits; + private final String unloc; + + private Ammo5mm(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo5mm(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo556mm implements IAmmoItemEnum { + STOCK("ammo_556"), + GOLD("gun_pm_ammo"), + PHOSPHORUS("ammo_556_phosphorus", HbmCollection.PhosphorusType), + AP("ammo_556_ap", HbmCollection.APType), + DU("ammo_556_du", HbmCollection.DUType), + STAR("ammo_556_star", HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_556_chlorophyte", HbmCollection.ChlorophyteType), + SLEEK("ammo_556_sleek", AmmoItemTrait.NEU_MASKMAN_METEORITE), + TRACER("ammo_556_tracer", AmmoItemTrait.NEU_TRACER), + FLECHETTE("ammo_556_flechette", HbmCollection.FlechetteType), + FLECHETTE_INCENDIARY("ammo_556_flechette_incendiary", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), + FLECHETTE_PHOSPHORUS("ammo_556_flechette_phosphorus", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), + FLECHETTE_DU("ammo_556_flechette_du", AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_HEAVY_WEAR), + FLECHETTE_CHLOROPHYTE("ammo_556_flechette_chlorophyte", HbmCollection.ChlorophyteType), + FLECHETTE_SLEEK("ammo_556_flechette_sleek", AmmoItemTrait.NEU_MASKMAN_METEORITE), + K("ammo_556_k", AmmoItemTrait.NEU_BLANK); + + private final Set traits; + private final String unloc; + + private Ammo556mm(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo556mm(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo50BMG implements IAmmoItemEnum { + STOCK("ammo_50bmg"), + INCENDIARY("ammo_50bmg_incendiary", HbmCollection.IncendiaryType), + PHOSPHORUS("ammo_50bmg_phosphorus", HbmCollection.PhosphorusType), + EXPLOSIVE("ammo_50bmg_explosive", HbmCollection.ExplosiveType), + AP("ammo_50bmg_ap", HbmCollection.APType), + DU("ammo_50bmg_du", HbmCollection.DUType), + STAR("ammo_50bmg_star", HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_50bmg_chlorophyte", HbmCollection.ChlorophyteType), + SLEEK("ammo_50bmg_sleek", AmmoItemTrait.NEU_MASKMAN_METEORITE), + FLECHETTE("ammo_50bmg_flechette", AmmoItemTrait.PRO_DAMAGE), + FLECHETTE_AM("ammo_50bmg_flechette_am", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH), + FLECHETTE_PO("ammo_50bmg_flechette_po", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH); + + private final Set traits; + private final String unloc; + + private Ammo50BMG(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo50BMG(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo50AE implements IAmmoItemEnum { + STOCK("ammo_50ae"), + AP("ammo_50ae_ap", HbmCollection.APType), + DU("ammo_50ae_du", HbmCollection.DUType), + STAR("ammo_50ae_star", HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_50ae_chlorophyte", HbmCollection.ChlorophyteType); + + private final Set traits; + private final String unloc; + + private Ammo50AE(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo50AE(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo4Gauge implements IAmmoItemEnum { + STOCK("ammo_4gauge"), + SLUG("ammo_4gauge_slug", AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + FLECHETTE("ammo_4gauge_flechette", HbmCollection.FlechetteType), + FLECHETTE_PHOSPHORUS("ammo_4gauge_flechette_phosphorus", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR), + EXPLOSIVE("ammo_4gauge_explosive", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_40MM, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + MINING("ammo_4gauge_semtex", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_MINING, AmmoItemTrait.CON_NO_EXPLODE3, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + BALEFIRE("ammo_4gauge_balefire", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_BALEFIRE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + KAMPF("ammo_4gauge_kampf", AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + CANISTER("ammo_4gauge_canister"), + SLEEK("ammo_4gauge_sleek", AmmoItemTrait.NEU_MASKMAN_FLECHETTE), + CLAW("ammo_4gauge_claw"), + VAMPIRE("ammo_4gauge_vampire"), + VOID("ammo_4gauge_void"), + QUACK("ammo_4gauge_titan", AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON); + + private final Set traits; + private final String unloc; + + private Ammo4Gauge(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo4Gauge(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo45ACP implements IAmmoItemEnum { + STOCK("ammo_45"), + AP("ammo_45_ap", HbmCollection.APType), + DU("ammo_45_du", HbmCollection.DUType); + + private final Set traits; + private final String unloc; + + private Ammo45ACP(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo45ACP(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo44Magnum implements IAmmoItemEnum { + STOCK("ammo_44"), + AP("ammo_44_ap", HbmCollection.APType), + DU("ammo_44_du", HbmCollection.DUType), + PHOSPHORUS("ammo_44_phosphorus", HbmCollection.PhosphorusType), + STAR("ammo_44_star", HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_44_chlorophyte", HbmCollection.ChlorophyteType), + PIP("ammo_44_pip", AmmoItemTrait.NEU_BOXCAR, AmmoItemTrait.CON_DAMAGE), + BJ("ammo_44_bj", AmmoItemTrait.NEU_BOAT, AmmoItemTrait.CON_DAMAGE), + SILVER("ammo_44_silver", AmmoItemTrait.NEU_BUILDING, AmmoItemTrait.CON_DAMAGE), + ROCKET("ammo_44_rocket", AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); + + private final Set traits; + private final String unloc; + + private Ammo44Magnum(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo44Magnum(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo357Magnum implements IAmmoItemEnum { + IRON("gun_revolver_iron_ammo"), + LEAD("gun_revolver_ammo"), + NUCLEAR("gun_revolver_lead_ammo"), + GOLD("gun_revolver_gold_ammo"), + DESH("ammo_357_desh", AmmoItemTrait.PRO_FIT_357, AmmoItemTrait.PRO_DAMAGE_SLIGHT), + SCHRABIDIUM("gun_revolver_schrabidium_ammo"), + STEEL("gun_revolver_cursed_ammo"), + NIGHTMARE1("gun_revolver_nightmare_ammo"), + NIGHTMARE2("gun_revolver_nightmare2_ammo"); + + private final Set traits; + private final String unloc; + + private Ammo357Magnum(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo22LR implements IAmmoItemEnum { + STOCK("ammo_22lr"), + AP("ammo_22lr_ap", HbmCollection.APType), + CHLOROPHYTE("ammo_22lr_chlorophyte", HbmCollection.ChlorophyteType); + + private final Set traits; + private final String unloc; + + private Ammo22LR(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo22LR(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo20Gauge implements IAmmoItemEnum { + STOCK("ammo_20gauge"), + SLUG("ammo_20gauge_slug", AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + FLECHETTE("ammo_20gauge_flechette", HbmCollection.FlechetteType), + INCENDIARY("ammo_20gauge_incendiary", AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + SHRAPNEL("ammo_20gauge_shrapnel", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), + EXPLOSIVE("ammo_20gauge_explosive", HbmCollection.ExplosiveType), + CAUSTIC("ammo_20gauge_caustic", AmmoItemTrait.PRO_TOXIC, AmmoItemTrait.PRO_CAUSTIC, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), + SHOCK("ammo_20gauge_shock", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_STUNNING, AmmoItemTrait.PRO_EMP, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), + WITHER("ammo_20gauge_wither", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WITHERING), + SLEEK("ammo_20gauge_sleek", AmmoItemTrait.NEU_MASKMAN_FLECHETTE); + + private final Set traits; + private final String unloc; + + private Ammo20Gauge(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private Ammo20Gauge(String unloc, Set traits) { + this.traits = traits; + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum Ammo12Gauge implements IAmmoItemEnum { + STOCK("ammo_12gauge"), + INCENDIARY("ammo_12gauge_incendiary", AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + SHRAPNEL("ammo_12gauge_shrapnel", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), + DU("ammo_12gauge_du", AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR), + MARAUDER("ammo_12gauge_marauder", AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON), + SLEEK("ammo_12gauge_sleek", AmmoItemTrait.NEU_MASKMAN_FLECHETTE), + PERCUSSION("ammo_12gauge_percussion", AmmoItemTrait.PRO_PERCUSSION, AmmoItemTrait.CON_NO_PROJECTILE); + + private final Set traits; + private final String unloc; + + private Ammo12Gauge(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { + return traits; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public interface IAmmoItemEnum { + public Set getTraits(); + public String getInternalName(); + } + + static Set safeAssign(AmmoItemTrait[] traits) { + return traits == null ? ImmutableSet.of() : ImmutableSet.copyOf(traits); + } +} diff --git a/src/main/java/com/hbm/items/ItemCustomLore.java b/src/main/java/com/hbm/items/ItemCustomLore.java index 883be3ee6..8ca98815c 100644 --- a/src/main/java/com/hbm/items/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/ItemCustomLore.java @@ -3,9 +3,8 @@ package com.hbm.items; import java.util.List; import java.util.Random; -import com.hbm.config.GeneralConfig; +import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -74,30 +73,32 @@ public class ItemCustomLore extends Item { static int setSize = 0; - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - return this.rarity != null ? rarity : super.getRarity(p_77613_1_); - } + @Override + public EnumRarity getRarity(ItemStack stack) { + return this.rarity != null ? rarity : super.getRarity(stack); + } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) - { - if(this == ModItems.rune_isa || - this == ModItems.rune_dagaz || - this == ModItems.rune_hagalaz || - this == ModItems.rune_jera || - this == ModItems.rune_thurisaz || - this == ModItems.egg_balefire_shard || - this == ModItems.egg_balefire) { - return true; - } - - return false; - } - - public ItemCustomLore setRarity(EnumRarity rarity) { - this.rarity = rarity; + public boolean hasEffect(ItemStack p_77636_1_) { + if(this == ModItems.rune_isa || this == ModItems.rune_dagaz || + this == ModItems.rune_hagalaz || this == ModItems.rune_jera || + this == ModItems.rune_thurisaz || this == ModItems.egg_balefire_shard || + this == ModItems.egg_balefire) { + return true; + } + + return false; + } + + public ItemCustomLore setRarity(EnumRarity rarity) { + this.rarity = rarity; return this; - } + } + + @Override + public Item setUnlocalizedName(String uloc) { + setTextureName(RefStrings.MODID + ':' + uloc); + return super.setUnlocalizedName(uloc); + } } diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index 762634440..269fae35d 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -71,9 +71,7 @@ public class ItemEnumMulti extends Item { } } - /* - * Returns null when the wrong enum is passed. Only really used for recipes anyway so it's good. - */ + /** Returns null when the wrong enum is passed. Only really used for recipes anyway so it's good. */ public ItemStack stackFromEnum(int count, Enum num) { if(num.getClass() != this.theEnum) diff --git a/src/main/java/com/hbm/items/ItemRemap.java b/src/main/java/com/hbm/items/ItemRemap.java new file mode 100644 index 000000000..e763e8f43 --- /dev/null +++ b/src/main/java/com/hbm/items/ItemRemap.java @@ -0,0 +1,41 @@ +package com.hbm.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class ItemRemap extends Item { + + Item remapItem; + int remapMeta; + + public ItemRemap(Item item, int meta) { + this.remapItem = item; + this.remapMeta = meta; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + return this.remapItem.getIconFromDamage(this.remapMeta); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean held) { + + if(!(entity instanceof EntityPlayer)) return; + + EntityPlayer player = (EntityPlayer) entity; + player.inventory.setInventorySlotContents(slot, new ItemStack(this.remapItem, stack.stackSize, this.remapMeta)); + } + + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + return 0xFF8080; + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 32c22a1bb..730342c49 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -9,6 +9,7 @@ import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.*; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ItemEnums.*; import com.hbm.items.armor.*; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; @@ -602,11 +603,14 @@ public class ModItems { public static Item assembly_nopip; public static Item assembly_smg; public static Item assembly_556; + public static Item assembly_762; + public static Item assembly_45; public static Item assembly_uzi; public static Item assembly_actionexpress; public static Item assembly_calamity; public static Item assembly_lacunae; public static Item assembly_nuke; + public static Item assembly_luna; public static Item folly_shell; public static Item folly_bullet; @@ -874,6 +878,7 @@ public class ModItems { public static Item particle_lutece; public static Item pellet_antimatter; + public static Item singularity_micro; public static Item singularity; public static Item singularity_counter_resonant; public static Item singularity_super_heated; @@ -1471,8 +1476,35 @@ public class ModItems { public static Item sat_interface; public static Item sat_coord; public static Item sat_designator; + + public static ItemEnumMulti ammo_misc; + public static ItemEnumMulti ammo_12gauge; + public static ItemEnumMulti ammo_20gauge; + public static ItemEnumMulti ammo_4gauge; + public static ItemEnumMulti ammo_357; + public static ItemEnumMulti ammo_44; + public static ItemEnumMulti ammo_5mm; + public static ItemEnumMulti ammo_9mm; + public static ItemEnumMulti ammo_45; + public static ItemEnumMulti ammo_556; + public static ItemEnumMulti ammo_762; + public static ItemEnumMulti ammo_22lr; + public static ItemEnumMulti ammo_50ae; + public static ItemEnumMulti ammo_50bmg; + public static ItemEnumMulti ammo_75bolt; + public static ItemEnumMulti ammo_rocket; + public static ItemEnumMulti ammo_grenade; + public static ItemEnumMulti ammo_shell; + public static ItemEnumMulti ammo_nuke; + public static ItemEnumMulti ammo_fuel; + public static ItemEnumMulti ammo_fireext; + public static ItemEnumMulti ammo_dart; + public static ItemEnumMulti ammo_stinger_rocket; + public static ItemEnumMulti ammo_luna_sniper; - public static Item ammo_12gauge; + public static Item ammo_cell; + + /*public static Item ammo_12gauge; public static Item ammo_12gauge_incendiary; public static Item ammo_12gauge_shrapnel; public static Item ammo_12gauge_du; @@ -1561,11 +1593,11 @@ public class ModItems { public static Item ammo_50bmg_sleek; public static Item ammo_75bolt; public static Item ammo_75bolt_incendiary; - public static Item ammo_75bolt_he; + public static Item ammo_75bolt_he;*/ public static Item ammo_folly; public static Item ammo_folly_nuclear; public static Item ammo_folly_du; - public static Item ammo_rocket; + /*public static Item ammo_rocket; public static Item ammo_rocket_he; public static Item ammo_rocket_incendiary; public static Item ammo_rocket_phosphorus; @@ -1593,11 +1625,11 @@ public class ModItems { public static Item ammo_shell_explosive; public static Item ammo_shell_apfsds_t; public static Item ammo_shell_apfsds_du; - public static Item ammo_shell_w9; + public static Item ammo_shell_w9;*/ public static Item ammo_dgk; public static Item ammo_arty; public static Item ammo_himars; - public static Item ammo_nuke; + /*public static Item ammo_nuke; public static Item ammo_nuke_low; public static Item ammo_nuke_high; public static Item ammo_nuke_tots; @@ -1625,7 +1657,7 @@ public class ModItems { public static Item ammo_stinger_rocket_he; public static Item ammo_stinger_rocket_incendiary; public static Item ammo_stinger_rocket_nuclear; - public static Item ammo_stinger_rocket_bones; + public static Item ammo_stinger_rocket_bones;*/ public static Item gun_rpg; //public static Item gun_rpg_ammo; @@ -1638,21 +1670,21 @@ public class ModItems { //public static Item gun_stinger_ammo; public static Item gun_revolver; public static Item gun_revolver_saturnite; - public static Item gun_revolver_ammo; + //public static Item gun_revolver_ammo; public static Item gun_revolver_iron; - public static Item gun_revolver_iron_ammo; + //public static Item gun_revolver_iron_ammo; public static Item gun_revolver_gold; - public static Item gun_revolver_gold_ammo; + //public static Item gun_revolver_gold_ammo; public static Item gun_revolver_lead; - public static Item gun_revolver_lead_ammo; + //public static Item gun_revolver_lead_ammo; public static Item gun_revolver_schrabidium; - public static Item gun_revolver_schrabidium_ammo; + //public static Item gun_revolver_schrabidium_ammo; public static Item gun_revolver_cursed; - public static Item gun_revolver_cursed_ammo; + //public static Item gun_revolver_cursed_ammo; public static Item gun_revolver_nightmare; - public static Item gun_revolver_nightmare_ammo; + //public static Item gun_revolver_nightmare_ammo; public static Item gun_revolver_nightmare2; - public static Item gun_revolver_nightmare2_ammo; + //public static Item gun_revolver_nightmare2_ammo; public static Item gun_revolver_pip; //public static Item gun_revolver_pip_ammo; public static Item gun_revolver_nopip; @@ -1720,7 +1752,6 @@ public class ModItems { public static Item gun_mp; public static Item gun_bolter; public static Item gun_bolter_digamma; - public static Item gun_brimstone; public static Item gun_zomg; public static Item gun_super_shotgun; public static Item gun_moist_nugget; @@ -1748,6 +1779,11 @@ public class ModItems { public static Item gun_detonator; public static Item gun_glass_cannon; + // We'll figure this part out later + //public static Item gun_llr, gun_mlr, gun_hlr, gun_twr, gun_lunatic, gun_lunatic_shotty, gun_lunatic_marksman; + //public static Item gun_uac_pistol, gun_uac_dmr, gun_uac_carbine, gun_uac_lmg; + //public static Item gun_m2, gun_benelli, gun_benelli_mod, gun_g36, spear_bishamonten, pagoda; + public static Item crucible; public static Item stick_dynamite; @@ -1828,6 +1864,7 @@ public class ModItems { public static Item peas; public static Item marshmallow; public static Item cheese; + public static Item quesadilla; public static Item med_ipecac; public static Item med_ptsd; @@ -3231,11 +3268,14 @@ public class ModItems { assembly_nopip = new Item().setUnlocalizedName("assembly_nopip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nopip"); assembly_smg = new Item().setUnlocalizedName("assembly_smg").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_smg"); assembly_556 = new Item().setUnlocalizedName("assembly_556").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_556"); + assembly_762 = new Item().setUnlocalizedName("assembly_762").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_762"); + assembly_45 = new Item().setUnlocalizedName("assembly_45").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_45"); assembly_uzi = new Item().setUnlocalizedName("assembly_uzi").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_uzi"); assembly_actionexpress = new Item().setUnlocalizedName("assembly_actionexpress").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_actionexpress"); assembly_calamity = new Item().setUnlocalizedName("assembly_calamity").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_calamity"); 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"); @@ -3319,6 +3359,7 @@ public class ModItems { particle_sparkticle = new Item().setUnlocalizedName("particle_sparkticle").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_sparkticle"); particle_digamma = new ItemDigamma(60).setUnlocalizedName("particle_digamma").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_digamma"); particle_lutece = new Item().setUnlocalizedName("particle_lutece").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lutece"); + singularity_micro = new ItemDrop().setUnlocalizedName("singularity_micro").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_micro"); singularity = new ItemDrop().setUnlocalizedName("singularity").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity"); singularity_counter_resonant = new ItemDrop().setUnlocalizedName("singularity_counter_resonant").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_alt"); @@ -3449,7 +3490,7 @@ public class ModItems { iv_xp_empty = new ItemSimpleConsumable().setUseActionServer((stack, user) -> { if(user.experienceTotal >= 100) { ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.syringe", new ItemStack(ModItems.iv_xp)); - EnchantmentUtil.setExperience(user, user.experienceTotal - 100); + EnchantmentUtil.setExperience(user, EnchantmentUtil.getTotalExperience(user) - 100); } }).setUnlocalizedName("iv_xp_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_xp_empty"); @@ -4241,7 +4282,34 @@ public class ModItems { missile_skin_soviet_stank = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank"); missile_skin_metal = new ItemCustomLore().setUnlocalizedName("missile_skin_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_metal"); - ammo_12gauge = new ItemAmmo().setUnlocalizedName("ammo_12gauge"); + ammo_12gauge = new ItemAmmo(Ammo12Gauge.class).setUnlocalizedName("ammo_12gauge"); + ammo_20gauge = new ItemAmmo(Ammo20Gauge.class).setUnlocalizedName("ammo_20gauge"); + ammo_4gauge = new ItemAmmo(Ammo4Gauge.class).setUnlocalizedName("ammo_4gauge"); + ammo_5mm = new ItemAmmo(Ammo5mm.class).setUnlocalizedName("ammo_5mm"); + ammo_9mm = new ItemAmmo(Ammo9mm.class).setUnlocalizedName("ammo_9mm"); + ammo_45 = new ItemAmmo(Ammo45ACP.class).setUnlocalizedName("ammo_45"); + ammo_556 = new ItemAmmo(Ammo556mm.class).setUnlocalizedName("ammo_556"); + ammo_762 = new ItemAmmo(Ammo762NATO.class).setUnlocalizedName("ammo_762"); + ammo_50ae = new ItemAmmo(Ammo50AE.class).setUnlocalizedName("ammo_50ae"); + ammo_50bmg = new ItemAmmo(Ammo50BMG.class).setUnlocalizedName("ammo_50bmg"); + ammo_75bolt = new ItemAmmo(Ammo75Bolt.class).setUnlocalizedName("ammo_75bolt"); + ammo_357 = new ItemAmmo(Ammo357Magnum.class).setUnlocalizedName("ammo_357"); + ammo_44 = new ItemAmmo(Ammo44Magnum.class).setUnlocalizedName("ammo_44"); + ammo_22lr = new ItemAmmo(Ammo22LR.class).setUnlocalizedName("ammo_22lr"); + ammo_rocket = new ItemAmmo(AmmoRocket.class).setUnlocalizedName("ammo_rocket"); + ammo_grenade = new ItemAmmo(AmmoGrenade.class).setUnlocalizedName("ammo_grenade"); + ammo_shell = new ItemAmmo(Ammo240Shell.class).setUnlocalizedName("ammo_shell"); + 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_cell = new ItemCustomLore().setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_cell").setMaxStackSize(16); + 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_12gauge = new ItemAmmo().setUnlocalizedName("ammo_12gauge"); ammo_12gauge_incendiary = new ItemAmmo().setUnlocalizedName("ammo_12gauge_incendiary"); ammo_12gauge_shrapnel = new ItemAmmo().setUnlocalizedName("ammo_12gauge_shrapnel"); ammo_12gauge_du = new ItemAmmo().setUnlocalizedName("ammo_12gauge_du"); @@ -4361,11 +4429,14 @@ public class ModItems { ammo_shell_explosive = new ItemAmmo().setUnlocalizedName("ammo_shell_explosive"); ammo_shell_apfsds_t = new ItemAmmo().setUnlocalizedName("ammo_shell_apfsds_t"); ammo_shell_apfsds_du = new ItemAmmo().setUnlocalizedName("ammo_shell_apfsds_du"); - ammo_shell_w9 = new ItemAmmo().setUnlocalizedName("ammo_shell_w9"); - ammo_dgk = new ItemAmmo().setUnlocalizedName("ammo_dgk"); + ammo_shell_w9 = new ItemAmmo().setUnlocalizedName("ammo_shell_w9");*/ + 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_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk"); ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); ammo_himars = new ItemAmmoHIMARS().setUnlocalizedName("ammo_himars"); - ammo_nuke = new ItemAmmo().setUnlocalizedName("ammo_nuke"); + /*ammo_nuke = new ItemAmmo().setUnlocalizedName("ammo_nuke"); ammo_nuke_low = new ItemAmmo().setUnlocalizedName("ammo_nuke_low"); ammo_nuke_high = new ItemAmmo().setUnlocalizedName("ammo_nuke_high"); ammo_nuke_tots = new ItemAmmo().setUnlocalizedName("ammo_nuke_tots"); @@ -4393,7 +4464,7 @@ public class ModItems { ammo_stinger_rocket_he = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_he"); ammo_stinger_rocket_incendiary = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_incendiary"); ammo_stinger_rocket_nuclear = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_nuclear"); - ammo_stinger_rocket_bones = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_bones"); + ammo_stinger_rocket_bones = new ItemAmmo().setUnlocalizedName("ammo_stinger_rocket_bones");*/ 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"); @@ -4404,22 +4475,22 @@ public class ModItems { gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); //gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_stinger_ammo"); - gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo"); + //gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo"); gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite"); - gun_revolver_iron_ammo = new Item().setUnlocalizedName("gun_revolver_iron_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron_ammo"); + //gun_revolver_iron_ammo = new Item().setUnlocalizedName("gun_revolver_iron_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron_ammo"); gun_revolver_iron = new ItemGunBase(Gun357MagnumFactory.getRevolverIronConfig()).setUnlocalizedName("gun_revolver_iron").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_iron"); - gun_revolver_gold_ammo = new Item().setUnlocalizedName("gun_revolver_gold_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold_ammo"); + //gun_revolver_gold_ammo = new Item().setUnlocalizedName("gun_revolver_gold_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold_ammo"); gun_revolver_gold = new ItemGunBase(Gun357MagnumFactory.getRevolverGoldConfig()).setUnlocalizedName("gun_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_gold"); - gun_revolver_lead_ammo = new Item().setUnlocalizedName("gun_revolver_lead_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_lead_ammo"); + //gun_revolver_lead_ammo = new Item().setUnlocalizedName("gun_revolver_lead_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_lead_ammo"); gun_revolver_lead = new ItemGunBase(Gun357MagnumFactory.getRevolverLeadConfig()).setUnlocalizedName("gun_revolver_lead").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_lead"); - gun_revolver_schrabidium_ammo = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("gun_revolver_schrabidium_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium_ammo"); + //gun_revolver_schrabidium_ammo = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("gun_revolver_schrabidium_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium_ammo"); gun_revolver_schrabidium = new ItemGunBase(Gun357MagnumFactory.getRevolverSchrabidiumConfig()).setUnlocalizedName("gun_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_schrabidium"); - gun_revolver_cursed_ammo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gun_revolver_cursed_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed_ammo"); + //gun_revolver_cursed_ammo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gun_revolver_cursed_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed_ammo"); gun_revolver_cursed = new ItemGunBase(Gun357MagnumFactory.getRevolverCursedConfig()).setUnlocalizedName("gun_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_cursed"); - gun_revolver_nightmare_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare_ammo"); + //gun_revolver_nightmare_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare_ammo"); gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); - gun_revolver_nightmare2_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare2_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2_ammo"); + //gun_revolver_nightmare2_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare2_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2_ammo"); gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); //gun_revolver_pip_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_pip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip_ammo"); gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); @@ -4429,7 +4500,7 @@ public class ModItems { 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_bio_revolver = new ItemGunBio(Gun45ACPFactory.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()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); //gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); @@ -4450,7 +4521,7 @@ public class ModItems { gun_chemthrower = new ItemGunChemthrower().setUnlocalizedName("gun_chemthrower").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); //gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); - gun_thompson = new ItemGunBase(Gun9mmFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); + gun_thompson = new ItemGunBase(Gun45ACPFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); //gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); gun_uzi = new ItemGunBase(Gun22LRFactory.getUziConfig()).setUnlocalizedName("gun_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi"); gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); @@ -4485,11 +4556,10 @@ public class ModItems { 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_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); - ammo_566_gold = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gun_mp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm_ammo"); + //ammo_566_gold = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gun_mp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm_ammo"); 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_brimstone = new GunBrimstone().setUnlocalizedName("gun_brimstone").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_brimstone"); 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"); @@ -4602,6 +4672,7 @@ public class ModItems { peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas"); marshmallow = new ItemMarshmallow().setUnlocalizedName("marshmallow").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":marshmallow"); cheese = new ItemLemon(5, 10, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); + quesadilla = new ItemLemon(8, 10, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango"); defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); @@ -4809,39 +4880,39 @@ public class ModItems { 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().setUnlocalizedName("clip_revolver_iron").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_iron"); - clip_revolver = new ItemClip().setUnlocalizedName("clip_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver"); - clip_revolver_gold = new ItemClip().setUnlocalizedName("clip_revolver_gold").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_gold"); - clip_revolver_lead = new ItemClip().setUnlocalizedName("clip_revolver_lead").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_lead"); - clip_revolver_schrabidium = new ItemClip().setUnlocalizedName("clip_revolver_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_schrabidium"); - clip_revolver_cursed = new ItemClip().setUnlocalizedName("clip_revolver_cursed").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_cursed"); - clip_revolver_nightmare = new ItemClip().setUnlocalizedName("clip_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare"); - clip_revolver_nightmare2 = new ItemClip().setUnlocalizedName("clip_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nightmare2"); - clip_revolver_pip = new ItemClip().setUnlocalizedName("clip_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_pip"); - clip_revolver_nopip = new ItemClip().setUnlocalizedName("clip_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_revolver_nopip"); - clip_rpg = new ItemClip().setUnlocalizedName("clip_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_rpg_alt"); - clip_stinger = new ItemClip().setUnlocalizedName("clip_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_stinger"); - clip_fatman = new ItemClip().setUnlocalizedName("clip_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_fatman"); - clip_mirv = new ItemClip().setUnlocalizedName("clip_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mirv"); - clip_bf = new ItemClip().setUnlocalizedName("clip_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clip_bf"); - clip_mp40 = new ItemClip().setUnlocalizedName("clip_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mp40"); - clip_uzi = new ItemClip().setUnlocalizedName("clip_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_uzi"); - clip_uboinik = new ItemClip().setUnlocalizedName("clip_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_uboinik"); - clip_lever_action = new ItemClip().setUnlocalizedName("clip_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_lever_action"); - clip_bolt_action = new ItemClip().setUnlocalizedName("clip_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_bolt_action"); - clip_osipr = new ItemClip().setUnlocalizedName("clip_osipr").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_osipr"); - clip_immolator = new ItemClip().setUnlocalizedName("clip_immolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_immolator"); - clip_cryolator = new ItemClip().setUnlocalizedName("clip_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_cryolator"); - clip_mp = new ItemClip().setUnlocalizedName("clip_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_mp"); - clip_xvl1456 = new ItemClip().setUnlocalizedName("clip_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_xvl1456"); - clip_emp = new ItemClip().setUnlocalizedName("clip_emp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_emp"); - clip_jack = new ItemClip().setUnlocalizedName("clip_jack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_jack"); - clip_spark = new ItemClip().setUnlocalizedName("clip_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_spark"); - clip_hp = new ItemClip().setUnlocalizedName("clip_hp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_hp"); - clip_euthanasia = new ItemClip().setUnlocalizedName("clip_euthanasia").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_euthanasia"); - clip_defabricator = new ItemClip().setUnlocalizedName("clip_defabricator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":clip_defabricator"); + 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 ItemClip().setUnlocalizedName("ammo_container").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_container"); + ammo_container = new ItemAmmoContainer().setUnlocalizedName("ammo_container").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_container"); ingot_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_euphemium"); nugget_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_euphemium"); @@ -6435,11 +6506,14 @@ public class ModItems { GameRegistry.registerItem(assembly_nopip, assembly_nopip.getUnlocalizedName()); GameRegistry.registerItem(assembly_smg, assembly_smg.getUnlocalizedName()); GameRegistry.registerItem(assembly_556, assembly_556.getUnlocalizedName()); + GameRegistry.registerItem(assembly_762, assembly_762.getUnlocalizedName()); + GameRegistry.registerItem(assembly_45, assembly_45.getUnlocalizedName()); GameRegistry.registerItem(assembly_uzi, assembly_uzi.getUnlocalizedName()); GameRegistry.registerItem(assembly_lacunae, assembly_lacunae.getUnlocalizedName()); GameRegistry.registerItem(assembly_actionexpress, assembly_actionexpress.getUnlocalizedName()); GameRegistry.registerItem(assembly_calamity, assembly_calamity.getUnlocalizedName()); GameRegistry.registerItem(assembly_nuke, assembly_nuke.getUnlocalizedName()); + GameRegistry.registerItem(assembly_luna, assembly_luna.getUnlocalizedName()); //Folly Parts GameRegistry.registerItem(folly_shell, folly_shell.getUnlocalizedName()); @@ -6533,7 +6607,8 @@ public class ModItems { GameRegistry.registerItem(particle_digamma, particle_digamma.getUnlocalizedName()); GameRegistry.registerItem(particle_lutece, particle_lutece.getUnlocalizedName()); - //OMG how the hell is that even possible!? + //Singularities, black holes and other cosmic horrors + GameRegistry.registerItem(singularity_micro, singularity_micro.getUnlocalizedName()); GameRegistry.registerItem(singularity, singularity.getUnlocalizedName()); GameRegistry.registerItem(singularity_counter_resonant, singularity_counter_resonant.getUnlocalizedName()); GameRegistry.registerItem(singularity_super_heated, singularity_super_heated.getUnlocalizedName()); @@ -7286,7 +7361,6 @@ public class ModItems { 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_brimstone, gun_brimstone.getUnlocalizedName()); GameRegistry.registerItem(gun_zomg, gun_zomg.getUnlocalizedName()); GameRegistry.registerItem(gun_emp, gun_emp.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_inverted, gun_revolver_inverted.getUnlocalizedName()); @@ -7308,7 +7382,7 @@ public class ModItems { GameRegistry.registerItem(gun_glass_cannon, gun_glass_cannon.getUnlocalizedName()); //Ammo - GameRegistry.registerItem(gun_revolver_iron_ammo, gun_revolver_iron_ammo.getUnlocalizedName()); + /*GameRegistry.registerItem(gun_revolver_iron_ammo, gun_revolver_iron_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_ammo, gun_revolver_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_gold_ammo, gun_revolver_gold_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_lead_ammo, gun_revolver_lead_ammo.getUnlocalizedName()); @@ -7316,7 +7390,7 @@ public class ModItems { GameRegistry.registerItem(gun_revolver_cursed_ammo, gun_revolver_cursed_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_nightmare_ammo, gun_revolver_nightmare_ammo.getUnlocalizedName()); GameRegistry.registerItem(ammo_357_desh, ammo_357_desh.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nightmare2_ammo, gun_revolver_nightmare2_ammo.getUnlocalizedName()); + GameRegistry.registerItem(gun_revolver_nightmare2_ammo, gun_revolver_nightmare2_ammo.getUnlocalizedName());*/ //GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); @@ -7345,6 +7419,31 @@ public class ModItems { GameRegistry.registerItem(gun_euthanasia_ammo, gun_euthanasia_ammo.getUnlocalizedName()); GameRegistry.registerItem(ammo_12gauge, ammo_12gauge.getUnlocalizedName()); + GameRegistry.registerItem(ammo_20gauge, ammo_20gauge.getUnlocalizedName()); + GameRegistry.registerItem(ammo_4gauge, ammo_4gauge.getUnlocalizedName()); + GameRegistry.registerItem(ammo_357, ammo_357.getUnlocalizedName()); + GameRegistry.registerItem(ammo_44, ammo_44.getUnlocalizedName()); + GameRegistry.registerItem(ammo_45, ammo_45.getUnlocalizedName()); + GameRegistry.registerItem(ammo_5mm, ammo_5mm.getUnlocalizedName()); + GameRegistry.registerItem(ammo_9mm, ammo_9mm.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556, ammo_556.getUnlocalizedName()); + GameRegistry.registerItem(ammo_762, ammo_762.getUnlocalizedName()); + GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName()); + GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName()); + GameRegistry.registerItem(ammo_50bmg, ammo_50bmg.getUnlocalizedName()); + GameRegistry.registerItem(ammo_75bolt, ammo_75bolt.getUnlocalizedName()); + GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); + GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); + GameRegistry.registerItem(ammo_cell, ammo_cell.getUnlocalizedName()); + GameRegistry.registerItem(ammo_dart, ammo_dart.getUnlocalizedName()); + GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName()); + GameRegistry.registerItem(ammo_stinger_rocket, ammo_stinger_rocket.getUnlocalizedName()); + GameRegistry.registerItem(ammo_luna_sniper, ammo_luna_sniper.getUnlocalizedName()); + GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName()); + GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); + + /*GameRegistry.registerItem(ammo_12gauge, ammo_12gauge.getUnlocalizedName()); GameRegistry.registerItem(ammo_12gauge_incendiary, ammo_12gauge_incendiary.getUnlocalizedName()); GameRegistry.registerItem(ammo_12gauge_shrapnel, ammo_12gauge_shrapnel.getUnlocalizedName()); GameRegistry.registerItem(ammo_12gauge_du, ammo_12gauge_du.getUnlocalizedName()); @@ -7478,11 +7577,11 @@ public class ModItems { GameRegistry.registerItem(ammo_shell_explosive, ammo_shell_explosive.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell_apfsds_t, ammo_shell_apfsds_t.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell_apfsds_du, ammo_shell_apfsds_du.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell_w9, ammo_shell_w9.getUnlocalizedName()); + GameRegistry.registerItem(ammo_shell_w9, ammo_shell_w9.getUnlocalizedName());*/ GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); GameRegistry.registerItem(ammo_himars, ammo_himars.getUnlocalizedName()); - GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); + /*GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_low, ammo_nuke_low.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_high, ammo_nuke_high.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_tots, ammo_nuke_tots.getUnlocalizedName()); @@ -7493,7 +7592,7 @@ public class ModItems { GameRegistry.registerItem(ammo_mirv_low, ammo_mirv_low.getUnlocalizedName()); GameRegistry.registerItem(ammo_mirv_high, ammo_mirv_high.getUnlocalizedName()); GameRegistry.registerItem(ammo_mirv_safe, ammo_mirv_safe.getUnlocalizedName()); - GameRegistry.registerItem(ammo_mirv_special, ammo_mirv_special.getUnlocalizedName()); + GameRegistry.registerItem(ammo_mirv_special, ammo_mirv_special.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()); @@ -7765,6 +7864,7 @@ public class ModItems { GameRegistry.registerItem(peas, peas.getUnlocalizedName()); GameRegistry.registerItem(marshmallow, marshmallow.getUnlocalizedName()); GameRegistry.registerItem(cheese, cheese.getUnlocalizedName()); + GameRegistry.registerItem(quesadilla, quesadilla.getUnlocalizedName()); GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); GameRegistry.registerItem(canteen_13, canteen_13.getUnlocalizedName()); @@ -8329,5 +8429,151 @@ public class ModItems { GameRegistry.registerItem(digamma_up_on_top, digamma_up_on_top.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); + + addRemap("ammo_nuke_tots", 5594, ammo_nuke, AmmoFatman.TOTS); + addRemap("ammo_12gauge_incendiary", 5455, ammo_12gauge, Ammo12Gauge.INCENDIARY); + addRemap("ammo_12gauge_shrapnel", 5456, ammo_12gauge, Ammo12Gauge.SHRAPNEL); + addRemap("ammo_stinger_rocket_bones", 5572, ammo_stinger_rocket, AmmoStinger.BONES); + addRemap("ammo_556_flechette_phosphorus", 5515, ammo_556, Ammo556mm.FLECHETTE_PHOSPHORUS); + addRemap("ammo_50ae_chlorophyte", 5527, ammo_50ae, Ammo50AE.CHLOROPHYTE); + addRemap("gun_revolver_nightmare2_ammo", 5440, ammo_357, Ammo357Magnum.NIGHTMARE2); + addRemap("gun_revolver_iron_ammo", 5432, ammo_357, Ammo357Magnum.IRON); + addRemap("ammo_50bmg_star", 5534, ammo_50bmg, Ammo50BMG.STAR); + addRemap("ammo_556_star", 5509, ammo_556, Ammo556mm.STAR); + addRemap("ammo_556_flechette", 5513, ammo_556, Ammo556mm.FLECHETTE); + addRemap("ammo_12gauge_du", 5457, ammo_12gauge, Ammo12Gauge.DU); + addRemap("ammo_shell_apfsds_t", 5586, ammo_shell, Ammo240Shell.APFSDS_T); + addRemap("ammo_4gauge_void", 5481, ammo_4gauge, Ammo4Gauge.VOID); + addRemap("ammo_shell_apfsds_du", 5587, ammo_shell, Ammo240Shell.APFSDS_DU); + addRemap("ammo_fireext_foam", 5549, ammo_fireext, AmmoFireExt.FOAM); + addRemap("ammo_556_flechette_chlorophyte", 5517, ammo_556, Ammo556mm.FLECHETTE_CHLOROPHYTE); + addRemap("ammo_fuel_vaporizer", 5546, ammo_fuel, AmmoFlamethrower.VAPORIZER); + addRemap("ammo_4gauge_titan", 5482, ammo_4gauge, Ammo4Gauge.QUACK); + addRemap("ammo_556_phosphorus", 5506, ammo_556, Ammo556mm.PHOSPHORUS); + addRemap("ammo_4gauge_flechette_phosphorus", 5473, ammo_4gauge, Ammo4Gauge.FLECHETTE_PHOSPHORUS); + addRemap("ammo_shell_w9", 5588, ammo_shell, Ammo240Shell.W9); + addRemap("gun_revolver_gold_ammo", 5434, ammo_357, Ammo357Magnum.GOLD); + addRemap("ammo_556_flechette_du", 5516, ammo_556, Ammo556mm.FLECHETTE_DU); + addRemap("ammo_20gauge_incendiary", 5463, ammo_20gauge, Ammo20Gauge.INCENDIARY); + addRemap("ammo_shell_explosive", 5585, ammo_shell, Ammo240Shell.EXPLOSIVE); + addRemap("ammo_20gauge_explosive", 5465, ammo_20gauge, Ammo20Gauge.EXPLOSIVE); + addRemap("ammo_556_k", 5519, ammo_556, Ammo556mm.K); + addRemap("ammo_44_phosphorus", 5487, ammo_44, Ammo44Magnum.PHOSPHORUS); + addRemap("gun_revolver_cursed_ammo", 5437, ammo_357, Ammo357Magnum.STEEL); + addRemap("ammo_556_flechette_incendiary", 5514, ammo_556, Ammo556mm.FLECHETTE_INCENDIARY); + addRemap("ammo_75bolt_he", 5542, ammo_75bolt, Ammo75Bolt.HE); + addRemap("ammo_20gauge_flechette", 5462, ammo_20gauge, Ammo20Gauge.FLECHETTE); + addRemap("ammo_rocket_shrapnel", 5559, ammo_rocket, AmmoRocket.SHRAPNEL); + addRemap("ammo_556_chlorophyte", 5510, ammo_556, Ammo556mm.CHLOROPHYTE); + addRemap("ammo_12gauge_marauder", 5459, ammo_12gauge, Ammo12Gauge.MARAUDER); + addRemap("ammo_50bmg_chlorophyte", 5535, ammo_50bmg, Ammo50BMG.CHLOROPHYTE); + addRemap("ammo_rocket_emp", 5560, ammo_rocket, AmmoRocket.EMP); + addRemap("ammo_4gauge_vampire", 5480, ammo_4gauge, Ammo4Gauge.VAMPIRE); + addRemap("ammo_5mm_du", 5496, ammo_5mm, Ammo5mm.DU); + addRemap("ammo_9mm_rocket", 5503, ammo_9mm, Ammo9mm.ROCKET); + addRemap("gun_revolver_ammo", 5433, ammo_357, Ammo357Magnum.LEAD); + addRemap("ammo_grenade_sleek", 5580, ammo_grenade, AmmoGrenade.SLEEK); + addRemap("ammo_4gauge_slug", 5471, ammo_4gauge, Ammo4Gauge.SLUG); + addRemap("ammo_4gauge_kampf", 5477, ammo_4gauge, Ammo4Gauge.KAMPF); + addRemap("ammo_20gauge_shrapnel", 5464, ammo_20gauge, Ammo20Gauge.SHRAPNEL); + addRemap("ammo_5mm_explosive", 5495, ammo_5mm, Ammo5mm.EXPLOSIVE); + addRemap("gun_revolver_nightmare_ammo", 5438, ammo_357, Ammo357Magnum.NIGHTMARE1); + addRemap("ammo_stinger_rocket_he", 5569, ammo_stinger_rocket, AmmoStinger.HE); + addRemap("ammo_20gauge_caustic", 5466, ammo_20gauge, Ammo20Gauge.CAUSTIC); + addRemap("ammo_4gauge_semtex", 5475, ammo_4gauge, Ammo4Gauge.MINING); + addRemap("ammo_grenade_kampf", 5583, ammo_grenade, AmmoGrenade.KAMPF); + addRemap("ammo_556_flechette_sleek", 5518, ammo_556, Ammo556mm.FLECHETTE_SLEEK); + addRemap("ammo_mirv_special", 5602, ammo_nuke, AmmoFatman.MIRV_SPECIAL); + addRemap("ammo_50bmg_flechette", 5536, ammo_50bmg, Ammo50BMG.FLECHETTE); + addRemap("ammo_556_sleek", 5511, ammo_556, Ammo556mm.SLEEK); + addRemap("ammo_9mm_chlorophyte", 5502, ammo_9mm, Ammo9mm.CHLOROPHYTE); + addRemap("ammo_nuke_barrel", 5597, ammo_nuke, AmmoFatman.BARREL); + addRemap("ammo_nuke_low", 5592, ammo_nuke, AmmoFatman.LOW); + addRemap("ammo_fireext_sand", 5550, ammo_fireext, AmmoFireExt.SAND); + addRemap("ammo_44_silver", 5492, ammo_44, Ammo44Magnum.SILVER); + addRemap("ammo_grenade_concussion", 5578, ammo_grenade, AmmoGrenade.CONCUSSION); + addRemap("ammo_20gauge_shock", 5467, ammo_20gauge, Ammo20Gauge.SHOCK); + addRemap("ammo_4gauge_flechette", 5472, ammo_4gauge, Ammo4Gauge.FLECHETTE); + addRemap("ammo_rocket_toxic", 5562, ammo_rocket, AmmoRocket.CHLORINE); + addRemap("ammo_50bmg_explosive", 5531, ammo_50bmg, Ammo50BMG.EXPLOSIVE); + addRemap("ammo_grenade_finned", 5579, ammo_grenade, AmmoGrenade.FINNED); + addRemap("ammo_dart_nuclear", 5553, ammo_dart, AmmoDart.NUCLEAR); + addRemap("ammo_grenade_phosphorus", 5576, ammo_grenade, AmmoGrenade.PHOSPHORUS); + addRemap("ammo_5mm_star", 5497, ammo_5mm, Ammo5mm.STAR); + addRemap("ammo_4gauge_sleek", 5483, ammo_4gauge, Ammo4Gauge.SLEEK); + addRemap("ammo_mirv_high", 5600, ammo_nuke, AmmoFatman.MIRV_HIGH); + addRemap("ammo_5mm_chlorophyte", 5498, ammo_5mm, Ammo5mm.CHLOROPHYTE); + addRemap("ammo_50bmg_flechette_po", 5538, ammo_50bmg, Ammo50BMG.FLECHETTE_PO); + addRemap("ammo_50ae_star", 5526, ammo_50ae, Ammo50AE.STAR); + addRemap("ammo_50bmg_flechette_am", 5537, ammo_50bmg, Ammo50BMG.FLECHETTE_AM); + addRemap("ammo_9mm_ap", 5500, ammo_9mm, Ammo9mm.AP); + addRemap("ammo_mirv", 5598, ammo_nuke, AmmoFatman.MIRV); + addRemap("ammo_4gauge_claw", 5479, ammo_4gauge, Ammo4Gauge.CLAW); + addRemap("ammo_rocket_glare", 5561, ammo_rocket, AmmoRocket.GLARE); + addRemap("ammo_stinger_rocket_incendiary", 5570, ammo_stinger_rocket, AmmoStinger.INCENDIARY); + addRemap("ammo_rocket_incendiary", 5557, ammo_rocket, AmmoRocket.INCENDIARY); + addRemap("ammo_50ae_ap", 5524, ammo_50ae, Ammo50AE.AP); + addRemap("ammo_mirv_safe", 5601, ammo_nuke, AmmoFatman.MIRV_SAFE); + addRemap("ammo_4gauge_canister", 5478, ammo_4gauge, Ammo4Gauge.CANISTER); + addRemap("ammo_50ae_du", 5525, ammo_50ae, Ammo50AE.DU); + addRemap("ammo_44_ap", 5485, ammo_44, Ammo44Magnum.AP); + addRemap("ammo_44_bj", 5491, ammo_44, Ammo44Magnum.BJ); + addRemap("ammo_rocket_sleek", 5564, ammo_rocket, AmmoRocket.SLEEK); + addRemap("ammo_nuke_high", 5593, ammo_nuke, AmmoFatman.HIGH); + addRemap("ammo_grenade_incendiary", 5575, ammo_grenade, AmmoGrenade.INCENDIARY); + addRemap("ammo_44_du", 5486, ammo_44, Ammo44Magnum.DU); + addRemap("ammo_50bmg_ap", 5532, ammo_50bmg, Ammo50BMG.AP); + addRemap("ammo_50bmg_du", 5533, ammo_50bmg, Ammo50BMG.DU); + addRemap("ammo_9mm_du", 5501, ammo_9mm, Ammo9mm.DU); + addRemap("ammo_20gauge_slug", 5461, ammo_20gauge, Ammo20Gauge.SLUG); + addRemap("ammo_grenade_tracer", 5582, ammo_grenade, AmmoGrenade.TRACER); + addRemap("ammo_fuel_phosphorus", 5545, ammo_fuel, AmmoFlamethrower.PHOSPHORUS); + addRemap("ammo_44_pip", 5490, ammo_44, Ammo44Magnum.PIP); + addRemap("ammo_grenade_toxic", 5577, ammo_grenade, AmmoGrenade.CHLORINE); + addRemap("ammo_nuke_safe", 5595, ammo_nuke, AmmoFatman.SAFE); + addRemap("gun_mp_ammo", 5505, ammo_556, Ammo556mm.GOLD); + addRemap("gun_revolver_lead_ammo", 5435, ammo_357, Ammo357Magnum.NUCLEAR); + addRemap("ammo_stinger_rocket_nuclear", 5571, ammo_stinger_rocket, AmmoStinger.NUCLEAR); + addRemap("ammo_grenade_nuclear", 5581, ammo_grenade, AmmoGrenade.NUCLEAR); + addRemap("ammo_rocket_digamma", 5567, ammo_rocket, AmmoRocket.DIGAMMA); + addRemap("ammo_rocket_nuclear", 5565, ammo_rocket, AmmoRocket.NUCLEAR); + addRemap("ammo_mirv_low", 5599, ammo_nuke, AmmoFatman.MIRV_LOW); + addRemap("ammo_44_chlorophyte", 5489, ammo_44, Ammo44Magnum.CHLOROPHYTE); + addRemap("ammo_22lr_chlorophyte", 5522, ammo_22lr, Ammo22LR.CHLOROPHYTE); + addRemap("ammo_12gauge_sleek", 5458, ammo_12gauge, Ammo12Gauge.SLEEK); + addRemap("ammo_20gauge_sleek", 5469, ammo_20gauge, Ammo20Gauge.SLEEK); + addRemap("ammo_4gauge_explosive", 5474, ammo_4gauge, Ammo4Gauge.EXPLOSIVE); + addRemap("ammo_50bmg_incendiary", 5529, ammo_50bmg, Ammo50BMG.INCENDIARY); + addRemap("ammo_556_du", 5508, ammo_556, Ammo556mm.DU); + addRemap("ammo_fuel_napalm", 5544, ammo_fuel, AmmoFlamethrower.NAPALM); + addRemap("gun_revolver_schrabidium_ammo", 5436, ammo_357, Ammo357Magnum.SCHRABIDIUM); + addRemap("ammo_556_ap", 5507, ammo_556, Ammo556mm.AP); + addRemap("ammo_20gauge_wither", 5468, ammo_20gauge, Ammo20Gauge.WITHER); + addRemap("ammo_rocket_rpc", 5566, ammo_rocket, AmmoRocket.RPC); + addRemap("ammo_fuel_gas", 5547, ammo_fuel, AmmoFlamethrower.CHLORINE); + addRemap("ammo_22lr_ap", 5521, ammo_22lr, Ammo22LR.AP); + addRemap("ammo_grenade_he", 5574, ammo_grenade, AmmoGrenade.HE); + addRemap("ammo_4gauge_balefire", 5476, ammo_4gauge, Ammo4Gauge.BALEFIRE); + addRemap("ammo_357_desh", 5439, ammo_357, Ammo357Magnum.DESH); + addRemap("ammo_nuke_pumpkin", 5596, ammo_nuke, AmmoFatman.PUMPKIN); + addRemap("ammo_44_star", 5488, ammo_44, Ammo44Magnum.STAR); + addRemap("ammo_50bmg_sleek", 5539, ammo_50bmg, Ammo50BMG.SLEEK); + addRemap("ammo_dart_nerf", 5554, ammo_dart, AmmoDart.NERF); + addRemap("ammo_50bmg_phosphorus", 5530, ammo_50bmg, Ammo50BMG.PHOSPHORUS); + addRemap("ammo_44_rocket", 5493, ammo_44, Ammo44Magnum.ROCKET); + addRemap("ammo_rocket_he", 5556, ammo_rocket, AmmoRocket.HE); + addRemap("ammo_556_tracer", 5512, ammo_556, Ammo556mm.TRACER); + addRemap("ammo_75bolt_incendiary", 5541, ammo_75bolt, Ammo75Bolt.INCENDIARY); + addRemap("ammo_rocket_canister", 5563, ammo_rocket, AmmoRocket.CANISTER); + addRemap("ammo_rocket_phosphorus", 5558, ammo_rocket, AmmoRocket.PHOSPHORUS); + } + + public static void addRemap(String unloc, int removoingTheseWouldTakeForever, Item item, Enum sub) { + addRemap(unloc, item, sub.ordinal()); + } + + public static void addRemap(String unloc, Item item, int meta) { + Item remap = new ItemRemap(item, meta).setUnlocalizedName(unloc).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); + GameRegistry.registerItem(remap, remap.getUnlocalizedName()); } } diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index 661661140..abfd05a2c 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -220,6 +220,10 @@ public class ItemLemon extends ItemFood { if(this == ModItems.peas) { list.add("He accepts your offering."); } + + if(this == ModItems.quesadilla) { + list.add("That's what a 50 year old yeast infection does to you."); + } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index 276a3d72e..f15d2ad05 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -9,13 +9,13 @@ import com.hbm.items.ModItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; public class ItemFluidIcon extends Item { @@ -71,8 +71,9 @@ public class ItemFluidIcon extends Item { return stack.getTagCompound().getInteger("fill"); } + @Override public String getItemStackDisplayName(ItemStack stack) { - String s = (I18n.format(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); if(s != null) { return s; @@ -81,27 +82,6 @@ public class ItemFluidIcon extends Item { return "Unknown"; } - /* - * @Override - * - * @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { - * return true; } - * - * @Override - * - * @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister - * p_94581_1_) { super.registerIcons(p_94581_1_); - * - * this.overlayIcon = - * p_94581_1_.registerIcon("hbm:fluid_identifier_overlay"); } - * - * @Override - * - * @SideOnly(Side.CLIENT) public IIcon getIconFromDamageForRenderPass(int - * p_77618_1_, int p_77618_2_) { return p_77618_2_ == 1 ? this.overlayIcon : - * super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_); } - */ - @Override @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack stack, int p_82790_2_) { diff --git a/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java b/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java new file mode 100644 index 000000000..2657bb7fe --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemAmmoContainer.java @@ -0,0 +1,67 @@ +package com.hbm.items.tool; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.GunConfiguration; +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemGunBase; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemAmmoContainer extends Item { + + public static final List configBlacklist = new ArrayList(); + + public ItemAmmoContainer() { + this.setMaxDamage(1); + + configBlacklist.add(BulletConfigSyncingUtil.SCHRABIDIUM_REVOLVER); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + for(ItemStack slot : player.inventory.mainInventory) { + + if(slot == null || !(slot.getItem() instanceof ItemGunBase)) continue; + List cfgs = new ArrayList(); + ItemGunBase gun = (ItemGunBase) slot.getItem(); + if(gun.mainConfig != null) cfgs.add(gun.mainConfig); + if(gun.altConfig != null) cfgs.add(gun.altConfig); + + for(GunConfiguration cfg : cfgs) { + if(cfg.config.isEmpty()) continue; + Integer first = cfg.config.get(0); + if(configBlacklist.contains(first)) continue; + BulletConfiguration bullet = BulletConfigSyncingUtil.pullConfig(first); + if(bullet == null) continue; + if(bullet.ammo == null) continue; + + ItemStack ammo = bullet.ammo.toStack(); + //for belt-fed guns: 64 is main config, 1 if alt config + //for reloaded guns: mag capacity divided by reload amount (equals one stack) + ammo.stackSize = cfg.reloadType == cfg.RELOAD_NONE ? cfg == gun.mainConfig ? 64 : 1 : (int) Math.ceil((double) cfg.ammoCap / (double) bullet.ammoCount); + player.inventory.addItemStackToInventory(ammo); + } + } + + stack.stackSize--; + if(stack.stackSize <= 0) + stack.damageItem(5, player); + + return stack; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.ammo_container) { + list.add("Gives ammo for most held weapons."); + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/GunBoltAction.java b/src/main/java/com/hbm/items/weapon/GunBoltAction.java deleted file mode 100644 index 31997695e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunBoltAction.java +++ /dev/null @@ -1,281 +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.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 GunBoltAction extends Item { - - Random rand = new Random(); - - public int dmgMin = 16; - public int dmgMax = 28; - - public GunBoltAction() { - - this.maxStackSize = 1; - - if(this == ModItems.gun_bolt_action) - this.setMaxDamage(750); - if(this == ModItems.gun_bolt_action_green) - this.setMaxDamage(500); - if(this == ModItems.gun_bolt_action_saturnite) { - this.setMaxDamage(2500); - dmgMin = 24; - dmgMax = 36; - } - } - - /** - * 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_slug)) { - 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; - } - EntityBullet entityarrow1; - entityarrow1 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F, dmgMin, dmgMax, false, false); - entityarrow1.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - if(this == ModItems.gun_bolt_action_saturnite) - entityarrow1.fire = true; - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShoot", 5.0F, 0.75F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_20gauge_slug); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow1); - } - - 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; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_bolt_action) { - list.add("-Star in a movie"); - list.add("-Have a laugh with a horse"); - list.add("-Ride a tipping train"); - list.add("-Lose friend to native americans"); - } - if(this == ModItems.gun_bolt_action_green) { - list.add("Floppy disks and pink, flashy orbs."); - } - if(this == ModItems.gun_bolt_action_saturnite) { - list.add("Shiny shooter made from D-25A alloy."); - } - list.add(""); - list.add("Ammo: 12x74 Slug"); - - if(this == ModItems.gun_bolt_action_saturnite) { - list.add("Damage: 24 - 36"); - list.add("Sets enemy on fire."); - } else { - list.add("Damage: 16 - 28"); - } - } - - @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 getLevRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 10F; - 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.1F; - - if(i > 9 && i < 15) - return (10 * 0.1F) - ((i - 5) * 0.1F); - - return 0; - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - if(this == ModItems.gun_bolt_action_saturnite) - return EnumRarity.rare; - - return EnumRarity.uncommon; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunBrimstone.java b/src/main/java/com/hbm/items/weapon/GunBrimstone.java deleted file mode 100644 index 861143919..000000000 --- a/src/main/java/com/hbm/items/weapon/GunBrimstone.java +++ /dev/null @@ -1,90 +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.EntityLaser; -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 GunBrimstone extends Item { - - Random rand = new Random(); - - public GunBrimstone() { - 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.ammo_566_gold)) && count % 1 == 0) { - - - EntityLaser laser = new EntityLaser(world, player); - - //world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (!flag) { - player.inventory.consumeInventoryItem(ModItems.gun_dash_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(laser); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @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", 5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunMP.java b/src/main/java/com/hbm/items/weapon/GunMP.java deleted file mode 100644 index 84834d36a..000000000 --- a/src/main/java/com/hbm/items/weapon/GunMP.java +++ /dev/null @@ -1,102 +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 GunMP extends Item { - - Random rand = new Random(); - - public GunMP() { - 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.ammo_566_gold)) && count % 3 == 0) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 100, 150, false, false); - entityarrow.setDamage(100 + rand.nextInt(50)); - - // 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.ammo_566_gold); - } - - 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("Isn't that name a little contrary,"); - list.add("you can't be a pacifist AND"); - list.add("shoot people. Logic errors aside,"); - list.add("whose blood is that? The former"); - list.add("user's? The victim's? Both?"); - list.add(""); - list.add("Ammo: Small Propellantless Machine Gun Round"); - list.add("Damage: 100 - 150"); - 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", 5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunNightmare.java b/src/main/java/com/hbm/items/weapon/GunNightmare.java deleted file mode 100644 index c1d6e1086..000000000 --- a/src/main/java/com/hbm/items/weapon/GunNightmare.java +++ /dev/null @@ -1,237 +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.entity.projectile.EntityNightmareBlast; -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.EnumRarity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -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 GunNightmare extends Item { - private int dmgMin; - private int dmgMax; - public Item ammo; - Random rand = new Random(); - - public GunNightmare() { - - this.maxStackSize = 1; - - if (this == ModItems.gun_revolver_nightmare) { - this.dmgMin = 1; - this.dmgMax = 100; - this.ammo = ModItems.gun_revolver_nightmare_ammo; - } - if (this == ModItems.gun_revolver_nightmare2) { - this.dmgMin = 25; - this.dmgMax = 150; - this.ammo = ModItems.gun_revolver_nightmare2_ammo; - } - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - return EnumRarity.uncommon; - } - - @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; - 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 (this == ModItems.gun_revolver_nightmare) { - EntityBullet entityarrow; - entityarrow = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F, dmgMin, dmgMax, false, false); - entityarrow.setDamage(1 + rand.nextInt(99)); - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow); - } - } - - if (this == ModItems.gun_revolver_nightmare2) { - EntityNightmareBlast entityarrow0; - EntityNightmareBlast entityarrow1; - EntityNightmareBlast entityarrow2; - EntityNightmareBlast entityarrow3; - EntityNightmareBlast entityarrow4; - EntityNightmareBlast entityarrow5; - EntityNightmareBlast entityarrow6; - EntityNightmareBlast entityarrow7; - EntityNightmareBlast entityarrow8; - EntityNightmareBlast entityarrow9; - entityarrow0 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow0.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow1 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow2 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow2.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow3 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow3.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow4 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow4.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow5 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow5.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow6 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow6.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow7 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow7.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow8 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow8.setDamage(25 + rand.nextInt(150 - 25)); - entityarrow9 = new EntityNightmareBlast(p_77615_2_, p_77615_3_, 3.0F); - entityarrow9.setDamage(25 + rand.nextInt(150 - 25)); - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow0); - p_77615_2_.spawnEntityInWorld(entityarrow1); - p_77615_2_.spawnEntityInWorld(entityarrow2); - p_77615_2_.spawnEntityInWorld(entityarrow3); - p_77615_2_.spawnEntityInWorld(entityarrow4); - p_77615_2_.spawnEntityInWorld(entityarrow5); - p_77615_2_.spawnEntityInWorld(entityarrow6); - p_77615_2_.spawnEntityInWorld(entityarrow7); - p_77615_2_.spawnEntityInWorld(entityarrow8); - p_77615_2_.spawnEntityInWorld(entityarrow9); - } - } - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.schrabidiumShoot", 1.0F, 1.0F); - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (!flag) - p_77615_1_.setItemDamage(p_77615_1_.getItemDamage() + 1); - } - - @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_.isSneaking()) { - - if (p_77659_1_.getItemDamage() < 6) { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - } else { - if(p_77659_2_.isRemote) - p_77659_3_.addChatMessage(new ChatComponentText("[Nightmare] Out of ammo! Shift right-click to reload!")); - } - } else if(p_77659_1_.getItemDamage() > 0) { - - int j = 0; - - for(int i = 0; i < 6; i++) { - if(p_77659_1_.getItem() == ModItems.gun_revolver_nightmare && p_77659_3_.inventory.consumeInventoryItem(ModItems.gun_revolver_nightmare_ammo)) { - p_77659_1_.setItemDamage(p_77659_1_.getItemDamage() - 1); - j++; - } - if(p_77659_1_.getItem() == ModItems.gun_revolver_nightmare2 && p_77659_3_.inventory.consumeInventoryItem(ModItems.gun_revolver_nightmare2_ammo)) { - p_77659_1_.setItemDamage(p_77659_1_.getItemDamage() - 1); - j++; - } - if(p_77659_1_.getItemDamage() == 0) - break; - } - - if(j > 0) { - if(p_77659_2_.isRemote) - p_77659_3_.addChatMessage(new ChatComponentText("[Nightmare] Reloaded!")); - p_77659_3_.swingItem(); - } - } - - 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) { - - if (this == ModItems.gun_revolver_nightmare) { - list.add("Never let a cat doze on your belly when you sleep."); - list.add(""); - list.add("Ammo: Nightmare Bullets"); - list.add("Damage: 1 - 100"); - } - if (this == ModItems.gun_revolver_nightmare2) { - list.add("Ominous references. *shivers*"); - list.add(""); - list.add("Ammo: Laser Buckshot"); - list.add("Damage: 25 - 150"); - } - } - - @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; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/GunSuicide.java b/src/main/java/com/hbm/items/weapon/GunSuicide.java index 792f608dc..b2a1d10b6 100644 --- a/src/main/java/com/hbm/items/weapon/GunSuicide.java +++ b/src/main/java/com/hbm/items/weapon/GunSuicide.java @@ -40,7 +40,7 @@ public class GunSuicide extends Item { this.setMaxDamage(500); } - this.ammo = ModItems.gun_revolver_ammo; + this.ammo = ModItems.ammo_357; } /** diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index 5246dc19a..1917cfa1c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -1,22 +1,29 @@ package com.hbm.items.weapon; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; -import java.util.Random; +import java.util.Set; -import com.hbm.handler.indexing.AmmoIndex; -import com.hbm.handler.indexing.AmmoIndex.AmmoTrait; +import com.hbm.items.ItemAmmoEnums.AmmoRocket; +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; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; -public class ItemAmmo extends Item { +public class ItemAmmo extends ItemEnumMulti { - //TODO: implement all this public enum AmmoItemTrait { CON_ACCURACY2, CON_DAMAGE, @@ -29,6 +36,7 @@ public class ItemAmmo extends Item { CON_NO_EXPLODE3, CON_NO_FIRE, CON_NO_MIRV, + CON_NO_PROJECTILE, CON_PENETRATION, CON_RADIUS, CON_RANGE2, @@ -81,6 +89,7 @@ public class ItemAmmo extends Item { PRO_NO_GRAVITY, PRO_NUCLEAR, PRO_PENETRATION, + PRO_PERCUSSION, PRO_PHOSPHORUS, PRO_PHOSPHORUS_SPLASH, PRO_POISON_GAS, @@ -103,659 +112,68 @@ public class ItemAmmo extends Item { } } - private AmmoItemTrait[] traits; + private final String altName; - public ItemAmmo(AmmoItemTrait... traits) { - this.traits = traits; - this.setCreativeTab(MainRegistry.weaponTab); + public ItemAmmo(Class> clazz) { + this(clazz, ""); } - @Override - public Item setUnlocalizedName(String unlocalizedName) { - super.setUnlocalizedName(unlocalizedName); - this.setTextureName(RefStrings.MODID + ":"+ unlocalizedName); - return this; - } - - public ItemAmmo index(AmmoTrait... traits) { - AmmoIndex.registerAmmo(this, traits); - return this; + public ItemAmmo(Class> clazz, String altName) { + super(clazz, true, true); + setCreativeTab(MainRegistry.weaponTab); + this.altName = altName; } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + if(!altName.isEmpty()) list.add(EnumChatFormatting.ITALIC + I18nUtil.resolveKey(altName)); - - //12 GAUGE - if(this == ModItems.ammo_12gauge_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Incendiary"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_12gauge_shrapnel) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Extra bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_12gauge_du) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Penetrating"); - list.add(EnumChatFormatting.YELLOW + "* Heavy Metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_12gauge_marauder) { - list.add(EnumChatFormatting.BLUE + "+ Instantly removes annoying and unbalanced enemies"); - list.add(EnumChatFormatting.YELLOW + "* No drawbacks lole"); - } - if(this == ModItems.ammo_12gauge_sleek) { - list.add(EnumChatFormatting.YELLOW + "* Fires a tracer which summons a storm of DU-flechettes"); - } - - //20 GAUGE - if(this == ModItems.ammo_20gauge_flechette) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_20gauge_slug) { - list.add(EnumChatFormatting.BLUE + "+ Near-perfect accuracy"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - } - if(this == ModItems.ammo_20gauge_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Incendiary"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_20gauge_shrapnel) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Extra bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_20gauge_explosive) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_20gauge_caustic) { - list.add(EnumChatFormatting.BLUE + "+ Toxic"); - list.add(EnumChatFormatting.BLUE + "+ Caustic"); - list.add(EnumChatFormatting.YELLOW + "* Not bouncy"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_20gauge_shock) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Stunning"); - list.add(EnumChatFormatting.BLUE + "+ EMP"); - list.add(EnumChatFormatting.YELLOW + "* Not bouncy"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_20gauge_wither) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Withering"); - } - if(this == ModItems.ammo_20gauge_sleek) { - list.add(EnumChatFormatting.YELLOW + "* Fires a tracer which summons a storm of DU-flechettes"); - } - - //23mm - if(this == ModItems.ammo_4gauge_flechette) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_4gauge_flechette_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); - list.add(EnumChatFormatting.YELLOW + "* Twice the warcrime in a single round!"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_4gauge_slug) { - list.add(EnumChatFormatting.BLUE + "+ Near-perfect accuracy"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - } - if(this == ModItems.ammo_4gauge_explosive) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* It's a 40mm grenade that we squeezed to fit the barrel!"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - } - if(this == ModItems.ammo_4gauge_semtex) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Explosion drops all blocks"); - list.add(EnumChatFormatting.RED + "- No splash damage"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - } - if(this == ModItems.ammo_4gauge_balefire) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Balefire"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - } - if(this == ModItems.ammo_4gauge_kampf) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Rocket Propelled"); - list.add(EnumChatFormatting.BLUE + "+ Increased accuracy"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - } - if(this == ModItems.ammo_4gauge_sleek) { - list.add(EnumChatFormatting.YELLOW + "* Fires a tracer which summons a storm of DU-flechettes"); - } - - //.357 MAGNUM - if(this == ModItems.ammo_357_desh) { - list.add(EnumChatFormatting.BLUE + "+ Fits every .357 model"); - list.add(EnumChatFormatting.BLUE + "+ Above-average damage"); + if(stack.getItem() == ModItems.ammo_rocket && stack.getItemDamage() == AmmoRocket.DIGAMMA.ordinal()) { + list.add(player.worldObj.rand.nextInt(3) < 2 ? EnumChatFormatting.RED + "COVER YOURSELF IN OIL" : EnumChatFormatting.RED + "" + EnumChatFormatting.OBFUSCATED + "COVER YOURSELF IN OIL"); } - //.44 MAGNUM - if(this == ModItems.ammo_44_ap) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_44_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_44_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); - list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_44_pip) { - list.add(EnumChatFormatting.BLUE + "+ Boxcar"); - list.add(EnumChatFormatting.RED + "- Highly decreased damage"); - } - if(this == ModItems.ammo_44_bj) { - list.add(EnumChatFormatting.BLUE + "+ Boat"); - list.add(EnumChatFormatting.RED + "- Highly decreased damage"); - } - if(this == ModItems.ammo_44_silver) { - list.add(EnumChatFormatting.BLUE + "+ Building"); - list.add(EnumChatFormatting.RED + "- Highly decreased damage"); - } - if(this == ModItems.ammo_44_rocket) { - list.add(EnumChatFormatting.BLUE + "+ Rocket"); - list.add(EnumChatFormatting.YELLOW + "* Uhhhh"); - } - if(this == ModItems.ammo_44_star) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Starmetal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_44_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - - //5mm - if(this == ModItems.ammo_5mm_explosive) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_5mm_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_5mm_star) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Starmetal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_5mm_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - - //9mm - if(this == ModItems.ammo_9mm_ap) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_9mm_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_9mm_rocket) { - list.add(EnumChatFormatting.BLUE + "+ Rocket"); - list.add(EnumChatFormatting.YELLOW + "* Uhhhh"); - } - if(this == ModItems.ammo_9mm_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - - //.22LR - if(this == ModItems.ammo_22lr_ap) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_22lr_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - - //.50 BMG - if(this == ModItems.ammo_50bmg) { - list.add(EnumChatFormatting.YELLOW + "12.7mm anti-materiel round"); - list.add(EnumChatFormatting.YELLOW + "You shoot down planes with these, using"); - list.add(EnumChatFormatting.YELLOW + "them against people would be nasty."); - } - if(this == ModItems.ammo_50bmg_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Incendiary"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_50bmg_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); - list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_50bmg_explosive) { - list.add(EnumChatFormatting.BLUE + "+ Explosive"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_50bmg_ap) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_50bmg_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_50bmg_star) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Starmetal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_50bmg_sleek) { - list.add(EnumChatFormatting.YELLOW + "* Fires a high-damage round that summons a small meteorite"); - } - if(this == ModItems.ammo_50bmg_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_50bmg_flechette) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - } - if(this == ModItems.ammo_50bmg_flechette_am) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.GREEN + "+ Highly Radioactive"); - list.add(EnumChatFormatting.YELLOW + "* Yes."); - } - if(this == ModItems.ammo_50bmg_flechette_po) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.GREEN + "+ Highly Radioactive"); - list.add(EnumChatFormatting.YELLOW + "* Maybe?"); - } - - //.50 AE - if(this == ModItems.ammo_50ae_ap) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_50ae_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_50ae_star) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Starmetal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_50ae_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - - //84mm ROCKETS - if(this == ModItems.ammo_rocket_he) { - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_rocket_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Incendiary explosion"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_rocket_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Phosphorus splash"); - list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_rocket_shrapnel) { - list.add(EnumChatFormatting.BLUE + "+ Shrapnel"); - } - if(this == ModItems.ammo_rocket_emp) { - list.add(EnumChatFormatting.BLUE + "+ EMP"); - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - } - if(this == ModItems.ammo_rocket_glare) { - list.add(EnumChatFormatting.BLUE + "+ Increased projectile speed"); - list.add(EnumChatFormatting.BLUE + "+ Incendiary explosion"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_rocket_toxic) { - list.add(EnumChatFormatting.BLUE + "+ Chlorine gas"); - list.add(EnumChatFormatting.RED + "- No explosion"); - list.add(EnumChatFormatting.RED + "- Decreased projectile speed"); - } - if(this == ModItems.ammo_rocket_sleek) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased blast radius"); - list.add(EnumChatFormatting.BLUE + "+ Not affected by gravity"); - list.add(EnumChatFormatting.YELLOW + "* Jolt"); - } - if(this == ModItems.ammo_rocket_nuclear) { - list.add(EnumChatFormatting.BLUE + "+ Nuclear"); - list.add(EnumChatFormatting.RED + "- Very highly increased wear"); - list.add(EnumChatFormatting.RED + "- Decreased projectile speed"); - } - if(this == ModItems.ammo_rocket_rpc) { - list.add(EnumChatFormatting.BLUE + "+ Chainsaw"); - list.add(EnumChatFormatting.BLUE + "+ Penetrating"); - list.add(EnumChatFormatting.BLUE + "+ Not affected by gravity"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Non-explosive"); - list.add(EnumChatFormatting.YELLOW + "* Uhhhh"); - } - if(this == ModItems.ammo_rocket_digamma) { + IAmmoItemEnum item = (IAmmoItemEnum) EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + Set ammoTraits = item.getTraits(); + + if(ammoTraits.size() > 0) { - if(new Random().nextInt(3) < 2) - list.add(EnumChatFormatting.RED + "COVER YOURSELF IN OIL"); - else - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.OBFUSCATED + "COVER YOURSELF IN OIL"); - } - - //40mm GRENADES - if(this == ModItems.ammo_grenade_he) { - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_grenade_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Incendiary explosion"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_grenade_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Phosphorus splash"); - list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_grenade_toxic) { - list.add(EnumChatFormatting.BLUE + "+ Chlorine gas"); - list.add(EnumChatFormatting.RED + "- No explosion"); - } - if(this == ModItems.ammo_grenade_concussion) { - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.RED + "- No block damage"); - } - if(this == ModItems.ammo_grenade_finned) { - list.add(EnumChatFormatting.BLUE + "+ Decreased gravity"); - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - } - if(this == ModItems.ammo_grenade_sleek) { - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.YELLOW + "* Jolt"); - } - if(this == ModItems.ammo_grenade_nuclear) { - list.add(EnumChatFormatting.BLUE + "+ Nuclear"); - list.add(EnumChatFormatting.BLUE + "+ Increased range"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_grenade_kampf) { - list.add(EnumChatFormatting.BLUE + "+ Rocket Propelled"); - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.BLUE + "+ Increased accuracy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - - //FUEL - if(this == ModItems.ammo_fuel_napalm) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Increased range"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_fuel_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Phosphorus splash"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Increased range"); - list.add(EnumChatFormatting.BLUE + "+ Increased accuracy"); - list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); - list.add(EnumChatFormatting.RED + "- Single projectile"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_fuel_vaporizer) { - list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); - list.add(EnumChatFormatting.BLUE + "+ Increased flame count"); - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* For removing big mistakes"); - list.add(EnumChatFormatting.RED + "- Highly decreased accuracy"); - list.add(EnumChatFormatting.RED + "- Highly decreased range"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - list.add(EnumChatFormatting.RED + "- No lingering fire"); - } - if(this == ModItems.ammo_fuel_gas) { - list.add(EnumChatFormatting.BLUE + "+ No gravity"); - list.add(EnumChatFormatting.BLUE + "+ Poison splash"); - list.add(EnumChatFormatting.RED + "- No damage"); - list.add(EnumChatFormatting.RED + "- Not incendiary"); - } - - //FIRE EXT - if(this == ModItems.ammo_fireext_foam) { - list.add(EnumChatFormatting.BLUE + "+ Can put out any fire type"); - list.add(EnumChatFormatting.BLUE + "+ Creates protective foam layer"); - list.add(EnumChatFormatting.YELLOW + "* Broader spray"); - } - if(this == ModItems.ammo_fireext_sand) { - list.add(EnumChatFormatting.BLUE + "+ Creates protective sand layer"); - list.add(EnumChatFormatting.YELLOW + "* Very broad spray"); - list.add(EnumChatFormatting.RED + "- No extinguishing AoE"); - } - - //5.56mm - if(this == ModItems.ammo_556_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); - list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_556_ap) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - } - if(this == ModItems.ammo_556_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_556_star) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Starmetal"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_556_sleek) { - list.add(EnumChatFormatting.YELLOW + "* Fires a high-damage round that summons a small meteorite"); - } - if(this == ModItems.ammo_556_flechette) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_556_flechette_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Incendiary"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_556_flechette_phosphorus) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); - list.add(EnumChatFormatting.YELLOW + "* Twice the warcrime in a single round!"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Increased wear"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_556_flechette_du) { - list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Penetrating"); - list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); - list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); - list.add(EnumChatFormatting.RED + "- Highly increased wear"); - } - if(this == ModItems.ammo_556_flechette_sleek) { - list.add(EnumChatFormatting.YELLOW + "* Fires a high-damage round that summons a small meteorite"); - } - if(this == ModItems.ammo_556_tracer) { - list.add(EnumChatFormatting.YELLOW + "* Tracer"); - } - if(this == ModItems.ammo_556_k) { - list.add(EnumChatFormatting.YELLOW + "* It's a blank"); - } - if(this == ModItems.ammo_556_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - if(this == ModItems.ammo_556_flechette_chlorophyte) { - list.add(EnumChatFormatting.BLUE + "+ Increased damage"); - list.add(EnumChatFormatting.BLUE + "+ Decreased wear"); - list.add(EnumChatFormatting.DARK_GREEN + "* Chlorophyte"); - list.add(EnumChatFormatting.YELLOW + "* Homing"); - list.add(EnumChatFormatting.RED + "- Not penetrating"); - } - - //BOLTS - if(this == ModItems.ammo_75bolt) { - list.add(EnumChatFormatting.YELLOW + "Gyro-stabilized armor-piercing"); - list.add(EnumChatFormatting.YELLOW + "DU round with tandem charge"); - } - if(this == ModItems.ammo_75bolt_incendiary) { - list.add(EnumChatFormatting.YELLOW + "Armor-piercing explosive round"); - list.add(EnumChatFormatting.YELLOW + "filled with oxy-phosphorous gel"); - } - if(this == ModItems.ammo_75bolt_he) { - list.add(EnumChatFormatting.YELLOW + "Armor-piercing penetrator filled"); - list.add(EnumChatFormatting.YELLOW + "with a powerful explosive charge"); - } - - //NUKES - if(this== ModItems.ammo_nuke_low) { - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - } - if(this== ModItems.ammo_nuke_high) { - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.BLUE + "+ Fallout"); - } - if(this== ModItems.ammo_nuke_tots) { - list.add(EnumChatFormatting.BLUE + "+ Increased bomb count"); - list.add(EnumChatFormatting.YELLOW + "* Fun for the whole family!"); - list.add(EnumChatFormatting.RED + "- Highly decreased accuracy"); - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - list.add(EnumChatFormatting.RED + "- Not recommended for the Proto MIRV"); - } - if(this== ModItems.ammo_nuke_safe) { - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - list.add(EnumChatFormatting.RED + "- No block damage"); - } - if(this== ModItems.ammo_nuke_pumpkin) { - list.add(EnumChatFormatting.RED + "- Not even a nuke"); - } - - //MIRV - if(this== ModItems.ammo_mirv_low) { - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - } - if(this== ModItems.ammo_mirv_high) { - list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); - list.add(EnumChatFormatting.BLUE + "+ Fallout"); - } - if(this== ModItems.ammo_mirv_safe) { - list.add(EnumChatFormatting.RED + "- Decreased blast radius"); - list.add(EnumChatFormatting.RED + "- No block damage"); - } - if(this== ModItems.ammo_mirv_special) { - list.add(EnumChatFormatting.BLUE + "+ 6 Low-yield mini nukes"); - list.add(EnumChatFormatting.BLUE + "+ 6 Mini nukes"); - list.add(EnumChatFormatting.BLUE + "+ 6 Tiny tots"); - list.add(EnumChatFormatting.BLUE + "+ 6 Balefire shells"); - list.add(EnumChatFormatting.WHITE + "* Sticky!"); - } - - //FOLLY - if(this == ModItems.ammo_folly) { - list.add(EnumChatFormatting.BLUE + "+ Focused starmetal reaction blast"); - } - if(this == ModItems.ammo_folly_nuclear) { - list.add(EnumChatFormatting.BLUE + "+ Howitzer mini nuke shell"); - } - if(this == ModItems.ammo_folly_du) { - list.add(EnumChatFormatting.BLUE + "+ Howitzer 17kg U238 shell"); - } - - //STINGER - if(this == ModItems.ammo_stinger_rocket) { - list.add(EnumChatFormatting.BLUE + "+ Homing"); - } - if(this == ModItems.ammo_stinger_rocket_he) { - list.add(EnumChatFormatting.BLUE + "+ Homing"); - list.add(EnumChatFormatting.BLUE + "+ Increased Blast Radius"); - list.add(EnumChatFormatting.RED + "- Increased Wear"); - } - if(this == ModItems.ammo_stinger_rocket_incendiary) { - list.add(EnumChatFormatting.BLUE + "+ Homing"); - list.add(EnumChatFormatting.BLUE + "+ Incendiary explosion"); - list.add(EnumChatFormatting.RED + "- Slightly Increased wear"); - } - if(this == ModItems.ammo_stinger_rocket_nuclear) { - list.add(EnumChatFormatting.BLUE + "+ Homing"); - list.add(EnumChatFormatting.BLUE + "+ Nuclear"); - list.add(EnumChatFormatting.RED + "- Highly Increased wear"); - } - if(this == ModItems.ammo_stinger_rocket_bones) { - list.add(EnumChatFormatting.BLUE + "+ Homing"); - list.add(EnumChatFormatting.YELLOW + "* RATTLE ME BONES"); - list.add(EnumChatFormatting.YELLOW + "* WELCOME ABOARD MATEYS!"); - list.add(EnumChatFormatting.YELLOW + "* RATTLE ME BONES"); - list.add(EnumChatFormatting.YELLOW + "* RATTLE ME BONES"); - list.add(EnumChatFormatting.YELLOW + "* SPIN THE WHEEL FOR THE TREASURE TO TAKE"); - } + ArrayList sortedTraits = new ArrayList(ammoTraits); + sortedTraits.sort(Comparator.reverseOrder()); + for(AmmoItemTrait trait : sortedTraits) { + final EnumChatFormatting color; + switch(trait.toString().substring(0, 3)) { + case "PRO": color = EnumChatFormatting.BLUE; break; + case "NEU": color = EnumChatFormatting.YELLOW; break; + case "CON": color = EnumChatFormatting.RED; break; + default: color = EnumChatFormatting.DARK_GRAY; break; + } + list.add(color + I18nUtil.resolveKey(trait.key)); + } + } } + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + IAmmoItemEnum num = (IAmmoItemEnum) enums[i]; + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + num.getInternalName()); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + IAmmoItemEnum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return "item." + num.getInternalName(); + } + + @Override + public ItemEnumMulti setUnlocalizedName(String uloc) { + setTextureName(RefStrings.MODID + ':' + uloc); + return (ItemEnumMulti) super.setUnlocalizedName(uloc); + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 1b9b64709..44a668afc 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -13,13 +13,15 @@ import com.hbm.explosion.ExplosionNukeSmall; 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.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; +import com.hbm.particle.SpentCasing.CasingType; import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -171,14 +173,16 @@ public class ItemAmmoArty extends Item { return "item." + itemTypes[Math.abs(stack.getItemDamage()) % itemTypes.length].name; } + protected static SpentCasing SIXTEEN_INCH_CASE = new SpentCasing(CasingType.STRAIGHT).setScale(15F, 15F, 10F).setupSmoke(1F, 1D, 200, 60).setMaxAge(300); + public abstract class ArtilleryShell { String name; + public SpentCasing casing; - public ArtilleryShell() { } - - public ArtilleryShell(String name) { + public ArtilleryShell(String name, int casingColor) { this.name = name; + this.casing = SIXTEEN_INCH_CASE.clone().register(name).setColor(casingColor); } public abstract void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop); @@ -193,7 +197,7 @@ public class ItemAmmoArty extends Item { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); } - xnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(rangeMod)); + xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); @@ -231,12 +235,12 @@ public class ItemAmmoArty extends Item { private void init() { /* STANDARD SHELLS */ - this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty") { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); }}; - this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic") { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); }}; - this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he") { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); }}; + this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); }}; + this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); }}; + this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); }}; /* MINI NUKE */ - this.itemTypes[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke") { + this.itemTypes[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.killAndClear(); Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); @@ -245,7 +249,7 @@ public class ItemAmmoArty extends Item { }; /* FULL NUKE */ - this.itemTypes[NUKE] = new ArtilleryShell("ammo_arty_nuke") { + this.itemTypes[NUKE] = new ArtilleryShell("ammo_arty_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(shell.worldObj, BombConfig.missileRadius, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(shell.worldObj, 1000, BombConfig.missileRadius * 0.005F); @@ -258,7 +262,7 @@ public class ItemAmmoArty extends Item { }; /* PHOSPHORUS */ - this.itemTypes[PHOSPHORUS] = new ArtilleryShell("ammo_arty_phosphorus") { + this.itemTypes[PHOSPHORUS] = new ArtilleryShell("ammo_arty_phosphorus", SpentCasing.COLOR_CASE_16INCH_PHOS) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + shell.worldObj.rand.nextFloat() * 0.2F); @@ -287,7 +291,7 @@ public class ItemAmmoArty extends Item { }; /* THIS DOOFUS */ - this.itemTypes[CARGO] = new ArtilleryShell("ammo_arty_cargo") { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + this.itemTypes[CARGO] = new ArtilleryShell("ammo_arty_cargo", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { if(mop.typeOfHit == MovingObjectType.BLOCK) { shell.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); shell.getStuck(mop.blockX, mop.blockY, mop.blockZ); @@ -295,11 +299,11 @@ public class ItemAmmoArty extends Item { }}; /* CLUSTER SHELLS */ - this.itemTypes[PHOSPHORUS_MULTI] = new ArtilleryShell("ammo_arty_phosphorus_multi") { + this.itemTypes[PHOSPHORUS_MULTI] = new ArtilleryShell("ammo_arty_phosphorus_multi", SpentCasing.COLOR_CASE_16INCH_PHOS) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { ItemAmmoArty.this.itemTypes[PHOSPHORUS].onImpact(shell, mop); } public void onUpdate(EntityArtilleryShell shell) { standardCluster(shell, PHOSPHORUS, 10, 300, 5); } }; - this.itemTypes[MINI_NUKE_MULTI] = new ArtilleryShell("ammo_arty_mini_nuke_multi") { + this.itemTypes[MINI_NUKE_MULTI] = new ArtilleryShell("ammo_arty_mini_nuke_multi", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { ItemAmmoArty.this.itemTypes[MINI_NUKE].onImpact(shell, mop); } public void onUpdate(EntityArtilleryShell shell) { standardCluster(shell, MINI_NUKE, 5, 300, 5); } }; diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index 0a76f7cd9..1af138e0a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -6,7 +6,7 @@ import com.hbm.entity.projectile.EntityArtilleryRocket; 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.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.RefStrings; @@ -74,7 +74,7 @@ public class ItemAmmoHIMARS extends Item { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); } - xnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(rangeMod)); + xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); diff --git a/src/main/java/com/hbm/items/weapon/ItemClip.java b/src/main/java/com/hbm/items/weapon/ItemClip.java index a77b89528..eca5c4e73 100644 --- a/src/main/java/com/hbm/items/weapon/ItemClip.java +++ b/src/main/java/com/hbm/items/weapon/ItemClip.java @@ -1,402 +1,32 @@ package com.hbm.items.weapon; -import java.util.List; - -import com.hbm.items.ModItems; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class ItemClip extends Item { + + private ItemStack toGive; - public ItemClip() - { - this.setMaxDamage(1); - } - + public ItemClip(ItemStack stack) { + toGive = stack; + this.setMaxDamage(1); + } + @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(toGive == null) return stack; + + ItemStack ammo = toGive.copy(); + + player.inventory.addItemStackToInventory(ammo); + stack.stackSize--; if(stack.stackSize <= 0) stack.damageItem(5, player); - if(this == ModItems.clip_revolver_iron) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_iron_ammo, 20))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_iron_ammo, 20), false); - } - } - - if(this == ModItems.clip_revolver) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_ammo, 12), false); - } - } - - if(this == ModItems.clip_revolver_gold) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo, 4))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_gold_ammo, 4), false); - } - } - - if(this == ModItems.clip_revolver_schrabidium) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2), false); - } - } - - if(this == ModItems.clip_rpg) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_rocket, 3))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_rpg_ammo, 3), false); - } - } - - if(this == ModItems.clip_osipr) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo, 30))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_osipr_ammo, 30), false); - } - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo2, 1))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_osipr_ammo2, 1), false); - } - } - - if(this == ModItems.clip_xvl1456) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_xvl1456_ammo, 60))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_xvl1456_ammo, 60), false); - } - } - - if(this == ModItems.clip_revolver_lead) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_lead_ammo, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_lead_ammo, 12), false); - } - } - - if(this == ModItems.clip_revolver_cursed) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_cursed_ammo, 17))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_revolver_cursed_ammo, 17), false); - } - } - - if(this == ModItems.clip_fatman) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_nuke, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_fatman_ammo, 6), false); - } - } - - if(this == ModItems.clip_mp) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_566_gold, 30))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp_ammo, 30), false); - } - } - - if(this == ModItems.clip_mp40) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_9mm, 32))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_uzi) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_uzi_ammo, 32), false); - } - } - - if(this == ModItems.clip_uboinik) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_12gauge, 24))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_uboinik_ammo, 24), false); - } - } - - if(this == ModItems.clip_lever_action) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 24))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_lever_action_ammo, 24), false); - } - } - - if(this == ModItems.clip_bolt_action) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge_slug, 24))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_bolt_action_ammo, 24), false); - } - } - - if(this == ModItems.clip_mirv) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_mirv, 3))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_bf) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 2))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_immolator) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_immolator_ammo, 60))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_cryolator) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_cryolator_ammo, 60))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_emp) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_emp_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_revolver_nightmare) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_revolver_nightmare2) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_revolver_pip) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44_pip, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_revolver_nopip) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_stinger) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_stinger_rocket, 3))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_jack) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_jack_ammo, 6))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_spark) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_spark_ammo, 4))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_hp) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_hp_ammo, 8))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_euthanasia) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_euthanasia_ammo, 16))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.clip_defabricator) - { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_defabricator_ammo, 12))) - { - //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp40_ammo, 32), false); - } - } - - if(this == ModItems.ammo_container) - { - if(player.inventory.hasItem(ModItems.gun_revolver_iron)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_iron_ammo, 24)); - if(player.inventory.hasItem(ModItems.gun_revolver)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 12)); - if(player.inventory.hasItem(ModItems.gun_revolver_gold)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_gold_ammo, 4)); - if(player.inventory.hasItem(ModItems.gun_revolver_lead)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_lead_ammo, 6)); - if(player.inventory.hasItem(ModItems.gun_revolver_schrabidium)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 2)); - if(player.inventory.hasItem(ModItems.gun_revolver_cursed)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_cursed_ammo, 8)); - if(player.inventory.hasItem(ModItems.gun_revolver_nightmare)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare_ammo, 6)); - if(player.inventory.hasItem(ModItems.gun_revolver_nightmare2)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 3)); - if(player.inventory.hasItem(ModItems.gun_revolver_pip)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44_pip, 12)); - if(player.inventory.hasItem(ModItems.gun_revolver_nopip)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44, 12)); - if(player.inventory.hasItem(ModItems.gun_revolver_blackjack)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44_bj, 12)); - if(player.inventory.hasItem(ModItems.gun_revolver_red)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_44, 12)); - if(player.inventory.hasItem(ModItems.gun_calamity)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_50bmg, 16)); - if(player.inventory.hasItem(ModItems.gun_calamity_dual)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_50bmg, 32)); - if(player.inventory.hasItem(ModItems.gun_minigun)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - } - if(player.inventory.hasItem(ModItems.gun_avenger)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - } - if(player.inventory.hasItem(ModItems.gun_lacunae)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_5mm, 64)); - } - if(player.inventory.hasItem(ModItems.gun_rpg)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_rocket, 3)); - if(player.inventory.hasItem(ModItems.gun_stinger)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_stinger_rocket, 2)); - if(player.inventory.hasItem(ModItems.gun_skystinger)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_stinger_rocket_he, 2)); - if(player.inventory.hasItem(ModItems.gun_fatman)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_nuke, 2)); - if(player.inventory.hasItem(ModItems.gun_proto)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_nuke, 8)); - if(player.inventory.hasItem(ModItems.gun_mirv)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_mirv, 1)); - if(player.inventory.hasItem(ModItems.gun_bf)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 1)); - if(player.inventory.hasItem(ModItems.gun_mp40)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_9mm, 32)); - if(player.inventory.hasItem(ModItems.gun_uzi)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); - if(player.inventory.hasItem(ModItems.gun_uzi_silencer)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); - if(player.inventory.hasItem(ModItems.gun_uzi_saturnite)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); - if(player.inventory.hasItem(ModItems.gun_uzi_saturnite_silencer)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_22lr, 32)); - if(player.inventory.hasItem(ModItems.gun_uboinik)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_12gauge, 12)); - if(player.inventory.hasItem(ModItems.gun_lever_action)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); - if(player.inventory.hasItem(ModItems.gun_lever_action_dark)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); - if(player.inventory.hasItem(ModItems.gun_lever_action_sonata)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 1)); - if(player.inventory.hasItem(ModItems.gun_bolt_action)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge_flechette, 12)); - if(player.inventory.hasItem(ModItems.gun_bolt_action_green)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge_flechette, 12)); - if(player.inventory.hasItem(ModItems.gun_xvl1456)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_xvl1456_ammo, 40)); - if(player.inventory.hasItem(ModItems.gun_osipr)) { - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo, 30)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_osipr_ammo2, 1)); - } - if(player.inventory.hasItem(ModItems.gun_immolator)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_immolator_ammo, 40)); - if(player.inventory.hasItem(ModItems.gun_cryolator)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_cryolator_ammo, 40)); - if(player.inventory.hasItem(ModItems.gun_mp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_566_gold, 34)); - if(player.inventory.hasItem(ModItems.gun_zomg)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.nugget_euphemium, 1)); - if(player.inventory.hasItem(ModItems.gun_emp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_emp_ammo, 8)); - if(player.inventory.hasItem(ModItems.gun_revolver_inverted)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 1)); - if(player.inventory.hasItem(ModItems.gun_revolver_inverted)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_ammo, 1)); - if(player.inventory.hasItem(ModItems.gun_jack)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_jack_ammo, 3)); - if(player.inventory.hasItem(ModItems.gun_spark)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_spark_ammo, 2)); - if(player.inventory.hasItem(ModItems.gun_hp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_hp_ammo, 6)); - if(player.inventory.hasItem(ModItems.gun_euthanasia)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_euthanasia_ammo, 8)); - if(player.inventory.hasItem(ModItems.gun_defabricator)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_defabricator_ammo, 6)); - } - return stack; - - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - if(this == ModItems.ammo_container) - { - list.add("Gives ammo for all held weapons."); - } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 91629717a..b60ec1d14 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -8,10 +8,15 @@ import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; import com.hbm.handler.HbmKeybinds; import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.IEquipReceiver; +import com.hbm.lib.HbmCollection; +import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; @@ -19,12 +24,14 @@ import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import com.hbm.util.I18nUtil; +import com.hbm.util.InventoryUtil; import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; import net.minecraft.client.settings.GameSettings; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -39,7 +46,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { +public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEquipReceiver { public GunConfiguration mainConfig; public GunConfiguration altConfig; @@ -107,7 +114,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { - if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { + if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && Minecraft.getMinecraft().currentScreen == null && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); setIsReloading(stack, true); resetReloadCycle(stack); @@ -138,6 +145,20 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(getIsReloading(stack) && isCurrentItem) { reload2(stack, world, player); } + + BulletConfiguration queued = getCasing(stack); + int timer = getCasingTimer(stack); + + if(queued != null && timer > 0) { + + timer--; + + if(timer <= 0) { + trySpawnCasing(player, mainConfig.ejector, queued, stack); + } + + setCasingTimer(stack, timer); + } } //whether or not the gun can shoot in its current state @@ -204,6 +225,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { } world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); + + if(mainConfig.ejector != null && !mainConfig.ejector.getAfterReload()) + queueCasing(player, mainConfig.ejector, config, stack); } //unlike fire(), being called does not automatically imply success, some things may still have to be handled before spawning the projectile @@ -214,8 +238,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { BulletConfiguration config = altConfig.reloadType == altConfig.RELOAD_NONE ? getBeltCfg(player, stack, false) : BulletConfigSyncingUtil.pullConfig(altConfig.config.get(getMagType(stack))); - //System.out.println(config.ammo.getUnlocalizedName()); - int bullets = config.bulletsMin; for(int k = 0; k < altConfig.roundsPerCycle; k++) { @@ -237,6 +259,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { } world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, altConfig.firingPitch); + + if(altConfig.ejector != null) + queueCasing(player, altConfig.ejector, config, stack); } //spawns the actual projectile, can be overridden to change projectile entity @@ -278,160 +303,52 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { //called on click release (client side, called by update cycle) public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { } - //reload action, if existent - protected void reload(ItemStack stack, World world, EntityPlayer player) { - - if(getReloadCycle(stack) < 0 && stack == player.getHeldItem()) { - - //if the mag has bullet in them -> load only the same type - if(getMag(stack) > 0) { - - BulletConfiguration bulletCfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - Item ammo = bulletCfg.ammo; - - //how many bullets to load - int count = 1; - - if(mainConfig.reloadType == 1) { - - count = mainConfig.ammoCap - getMag(stack); - } - - if(count == 0) - setIsReloading(stack, false); - - for(int i = 0; i < count; i++) { - - if(getMag(stack) < mainConfig.ammoCap) { - - if(player.inventory.hasItem(ammo)) { - player.inventory.consumeInventoryItem(ammo); - setMag(stack, Math.min(getMag(stack) + bulletCfg.ammoCount, mainConfig.ammoCap)); - } else { - setIsReloading(stack, false); - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); - break; - } - } - - if(getMag(stack) == mainConfig.ammoCap) { - setIsReloading(stack, false); - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); - break; - } else { - resetReloadCycle(stack); - } - } - - //if the mag has no bullets in them -> load new type - } else { - - BulletConfiguration bulletCfg = null; - - //determine new type - for(Integer config : mainConfig.config) { - - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - - if(player.inventory.hasItem(cfg.ammo)) { - bulletCfg = cfg; - setMagType(stack, mainConfig.config.indexOf(config)); - break; - } - } - - //load new type if bullets are present - if(bulletCfg != null) { - - int count = 1; - - if(mainConfig.reloadType == 1) { - - count = mainConfig.ammoCap - getMag(stack); - } - - for(int i = 0; i < count; i++) { - - if(getMag(stack) < mainConfig.ammoCap) { - - if(player.inventory.hasItem(bulletCfg.ammo)) { - player.inventory.consumeInventoryItem(bulletCfg.ammo); - setMag(stack, Math.min(getMag(stack) + bulletCfg.ammoCount, mainConfig.ammoCap)); - } else { - setIsReloading(stack, false); - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); - break; - } - } - - if(getMag(stack) == mainConfig.ammoCap) { - setIsReloading(stack, false); - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); - break; - } else { - resetReloadCycle(stack); - } - } - } - } - } else { - setReloadCycle(stack, getReloadCycle(stack) - 1); - } - - if(stack != player.getHeldItem()) { - setReloadCycle(stack, 0); - setIsReloading(stack, false); - } - } - - //martin 2 reload algorithm - //now with less WET and more DRY - //compact, readable and most importantly, FUNCTIONAL + //current reload protected void reload2(ItemStack stack, World world, EntityPlayer player) { if(getMag(stack) >= mainConfig.ammoCap) { setIsReloading(stack, false); return; } + + if(getReloadCycle(stack) <= 0) { + - if(getReloadCycle(stack) < 0) { + BulletConfiguration prevCfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - if(getMag(stack) == 0) + if (getMag(stack) == 0) resetAmmoType(stack, world, player); - - int count = 1; - - if(mainConfig.reloadType == mainConfig.RELOAD_FULL) { - - count = mainConfig.ammoCap - getMag(stack); - } - - boolean hasLoaded = false; BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - Item ammo = cfg.ammo; + ComparableStack ammo = (ComparableStack) cfg.ammo.copy(); - for(int i = 0; i < count; i++) { - - if(player.inventory.hasItem(ammo) && getMag(stack) < mainConfig.ammoCap) { - player.inventory.consumeInventoryItem(ammo); - setMag(stack, Math.min(getMag(stack) + cfg.ammoCount, mainConfig.ammoCap)); - hasLoaded = true; - } else { - setIsReloading(stack, false); - break; - } - } + final int countNeeded = (mainConfig.reloadType == GunConfiguration.RELOAD_FULL) ? mainConfig.ammoCap - getMag(stack) : 1; + final int availableStacks = InventoryUtil.countAStackMatches(player, ammo, true); + final int availableFills = availableStacks * cfg.ammoCount; + final boolean hasLoaded = availableFills > 0; + final int toAdd = Math.min(availableFills * cfg.ammoCount, countNeeded); + final int toConsume = (int) Math.ceil((double) toAdd / cfg.ammoCount); - if(getMag(stack) >= mainConfig.ammoCap) { + // Skip logic if cannot reload + if(availableFills == 0) { setIsReloading(stack, false); - } else { - resetReloadCycle(stack); + return; } + ammo.stacksize = toConsume; + setMag(stack, getMag(stack) + toAdd); + if (getMag(stack) >= mainConfig.ammoCap) + setIsReloading(stack, false); + else + resetReloadCycle(stack); + if(hasLoaded && mainConfig.reloadSoundEnd) world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); + if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) + queueCasing(player, mainConfig.ejector, prevCfg, stack); + + InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length, ammo); } else { setReloadCycle(stack, getReloadCycle(stack) - 1); } @@ -479,20 +396,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(getMag(stack) == 0) { - for(Integer config : mainConfig.config) { - - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - - if(player.inventory.hasItem(cfg.ammo)) { + for(int config : mainConfig.config) { + if(InventoryUtil.doesPlayerHaveAStack(player, BulletConfigSyncingUtil.pullConfig(config).ammo, false, false)) { return true; } } } else { - - Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; - if(player.inventory.hasItem(ammo)) - return true; + ComparableStack ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; + return InventoryUtil.doesPlayerHaveAStack(player, ammo, false, false); } return false; @@ -501,11 +413,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { //searches the player's inv for next fitting ammo type and changes the gun's mag protected void resetAmmoType(ItemStack stack, World world, EntityPlayer player) { - for(Integer config : mainConfig.config) { - + for(int config : mainConfig.config) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - if(player.inventory.hasItem(cfg.ammo)) { + if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, false, false)) { setMagType(stack, mainConfig.config.indexOf(config)); break; } @@ -516,40 +427,46 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - Item ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; + ComparableStack ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; - if(mainConfig.ammoCap > 0) - list.add("Ammo: " + getMag(stack) + " / " + mainConfig.ammoCap); - else - list.add("Ammo: Belt"); + list.add(I18nUtil.resolveKey(HbmCollection.ammo, mainConfig.ammoCap > 0 ? I18nUtil.resolveKey(HbmCollection.ammoMag, getMag(stack), mainConfig.ammoCap) : I18nUtil.resolveKey(HbmCollection.ammoBelt))); - list.add("Ammo Type: " + I18n.format(ammo.getUnlocalizedName() + ".name")); - - if(altConfig != null && altConfig.ammoCap == 0) { - Item ammo2 = BulletConfigSyncingUtil.pullConfig(altConfig.config.get(0)).ammo; - if(ammo != ammo2) - list.add("Secondary Ammo: " + I18n.format(ammo2.getUnlocalizedName() + ".name")); + try { + list.add(I18nUtil.resolveKey(HbmCollection.ammoType, ammo.toStack().getDisplayName())); + + if(altConfig != null && altConfig.ammoCap == 0) { + ComparableStack ammo2 = BulletConfigSyncingUtil.pullConfig(altConfig.config.get(0)).ammo; + if(!ammo.isApplicable(ammo2)) { + list.add(I18nUtil.resolveKey(HbmCollection.altAmmoType, ammo2.toStack().getDisplayName())); + } + } } + catch (Exception e) + { + e.printStackTrace(); + list.add("Error: " + e + " has occurred!"); + } + + addAdditionalInformation(stack, list); + } + + protected void addAdditionalInformation(ItemStack stack, List list) + { + final BulletConfiguration bulletConfig = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); + list.add(I18nUtil.resolveKey(HbmCollection.gunDamage, bulletConfig.dmgMin, bulletConfig.dmgMax)); + int dura = Math.max(mainConfig.durability - getItemWear(stack), 0); - int dura = mainConfig.durability - getItemWear(stack); + list.add(I18nUtil.resolveKey(HbmCollection.durability, dura + " / " + mainConfig.durability)); - if(dura < 0) - dura = 0; - - list.add("Durability: " + dura + " / " + mainConfig.durability); - - //if(MainRegistry.enableDebugMode) { - list.add(""); - list.add("Name: " + mainConfig.name); - list.add("Manufacturer: " + mainConfig.manufacturer); - //} + list.add(""); + list.add(I18nUtil.resolveKey(HbmCollection.gunName, I18nUtil.resolveKey("gun.name." + mainConfig.name))); + list.add(I18nUtil.resolveKey(HbmCollection.gunMaker, I18nUtil.resolveKey(mainConfig.manufacturer.getKey()))); if(!mainConfig.comment.isEmpty()) { list.add(""); for(String s : mainConfig.comment) list.add(EnumChatFormatting.ITALIC + s); } - if(GeneralConfig.enableExtendedLogging) { list.add(""); list.add("Type: " + getMagType(stack)); @@ -560,52 +477,49 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { } //returns ammo item of belt-weapons - public static Item getBeltType(EntityPlayer player, ItemStack stack, boolean main) { - + public static ComparableStack getBeltType(EntityPlayer player, ItemStack stack, boolean main) { ItemGunBase gun = (ItemGunBase)stack.getItem(); GunConfiguration guncfg = main ? gun.mainConfig : (gun.altConfig != null ? gun.altConfig : gun.mainConfig); - Item ammo = BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)).ammo; for(Integer config : guncfg.config) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - if(player.inventory.hasItem(cfg.ammo)) { - ammo = cfg.ammo; - break; + if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, false, true)) { + return cfg.ammo; } } - return ammo; + return BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)).ammo; } //returns BCFG of belt-weapons public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stack, boolean main) { - ItemGunBase gun = (ItemGunBase)stack.getItem(); GunConfiguration guncfg = main ? gun.mainConfig : (gun.altConfig != null ? gun.altConfig : gun.mainConfig); getBeltType(player, stack, main); - - for(Integer config : guncfg.config) { + + for(int config : guncfg.config) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - if(player.inventory.hasItem(cfg.ammo)) { + if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, false, false)) { return cfg; } } - + return BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)); } //returns ammo capacity of belt-weapons for current ammo - public static int getBeltSize(EntityPlayer player, Item ammo) { + public static int getBeltSize(EntityPlayer player, ComparableStack ammo) { int amount = 0; for(ItemStack stack : player.inventory.mainInventory) { - if(stack != null && stack.getItem() == ammo) + if(stack != null && ammo.matchesRecipe(stack, true)) { amount += stack.stackSize; + } } return amount; @@ -625,11 +539,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(hasInfinity(stack, config)) return; - - if(config.reloadType != mainConfig.RELOAD_NONE) { + if(config.reloadType != GunConfiguration.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); } else { - player.inventory.consumeInventoryItem(getBeltType(player, stack, main)); + InventoryUtil.doesPlayerHaveAStack(player, getBeltType(player, stack, main), true, false); } } @@ -637,16 +550,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { return config.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; } - /*//returns main config from itemstack - public static GunConfiguration extractConfig(ItemStack stack) { - - if(stack != null && stack.getItem() instanceof ItemGunBase) { - return ((ItemGunBase)stack.getItem()).mainConfig; - } - - return null; - }*/ - /// sets reload cycle to config defult /// public static void resetReloadCycle(ItemStack stack) { writeNBT(stack, "reload", ((ItemGunBase)stack.getItem()).mainConfig.reloadDuration); @@ -733,6 +636,24 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { return readNBT(stack, "magazineType"); } + /// queued casing for ejection /// + public static void setCasing(ItemStack stack, BulletConfiguration bullet) { + writeNBT(stack, "casing", BulletConfigSyncingUtil.getKey(bullet)); + } + + public static BulletConfiguration getCasing(ItemStack stack) { + return BulletConfigSyncingUtil.pullConfig(readNBT(stack, "casing")); + } + + /// timer for ejecting casing /// + public static void setCasingTimer(ItemStack stack, int i) { + writeNBT(stack, "casingTimer", i); + } + + public static int getCasingTimer(ItemStack stack) { + return readNBT(stack, "casingTimer"); + } + /// NBT utility /// public static void writeNBT(ItemStack stack, String key, int value) { @@ -769,7 +690,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { return; } - Item ammo = bcfg.ammo; + ComparableStack ammo = bcfg.ammo; int count = ItemGunBase.getMag(stack); int max = gcfg.ammoCap; boolean showammo = gcfg.showAmmo; @@ -782,15 +703,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { int dura = ItemGunBase.getItemWear(stack) * 50 / gcfg.durability; - RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, new ItemStack(ammo), count, max, dura, showammo); + RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo.toStack(), count, max, dura, showammo); if(gun.altConfig != null && gun.altConfig.reloadType == GunConfiguration.RELOAD_NONE) { - Item oldAmmo = ammo; + ComparableStack oldAmmo = ammo; ammo = ItemGunBase.getBeltType(player, stack, false); - if(ammo != oldAmmo) { + if(!ammo.isApplicable(oldAmmo)) { count = ItemGunBase.getBeltSize(player, ammo); - RenderScreenOverlay.renderAmmoAlt(event.resolution, Minecraft.getMinecraft().ingameGUI, new ItemStack(ammo), count); + RenderScreenOverlay.renderAmmoAlt(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo.toStack(), count); } } } @@ -811,4 +732,39 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; return config.animations.get(type); } + + @Override + public void onEquip(EntityPlayer player) { + if(!mainConfig.equipSound.isEmpty() && !player.worldObj.isRemote) { + player.worldObj.playSoundAtEntity(player, mainConfig.equipSound, 1, 1); + } + } + + protected static void queueCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { + + if(ejector == null || bullet == null || bullet.spentCasing == null) return; + + if(ejector.getDelay() <= 0) { + trySpawnCasing(entity, ejector, bullet, stack); + } else { + setCasing(stack, bullet); + setCasingTimer(stack, ejector.getDelay()); + } + } + + protected static void trySpawnCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { + + if(ejector == null) return; //abort if the gun can't eject bullets at all + if(bullet == null) return; //abort if there's no valid bullet cfg + if(bullet.spentCasing == null) return; //abort if the bullet is caseless + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "casing"); + data.setFloat("pitch", -(float) Math.toRadians(entity.rotationPitch)); + data.setFloat("yaw", (float) Math.toRadians(entity.rotationYaw)); + data.setBoolean("crouched", entity.isSneaking()); + data.setString("name", bullet.spentCasing.getName()); + data.setInteger("ej", ejector.getId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); + } } diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index 04f029d2a..880813acd 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -76,13 +76,8 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { if(hasInfinity(stack, config)) return; - - if(config.reloadType != mainConfig.RELOAD_NONE) { - setMag(stack, getMag(stack) - this.getConsumption(stack)); - } else { - player.inventory.consumeInventoryItem(getBeltType(player, stack, main)); - } + setMag(stack, getMag(stack) - this.getConsumption(stack)); } @Override diff --git a/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java b/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java index e24eead2d..7f8d76a53 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunOSIPR.java @@ -1,6 +1,8 @@ package com.hbm.items.weapon; import com.hbm.entity.projectile.EntityCombineBall; +import com.hbm.entity.projectile.EntityCombineBallNT; +import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.GunConfiguration; import com.hbm.items.ModItems; @@ -20,7 +22,8 @@ public class ItemGunOSIPR extends ItemGunBase { 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); @@ -32,9 +35,8 @@ public class ItemGunOSIPR extends ItemGunBase { int i = getCharge(stack); if(i >= 20) { - EntityCombineBall entityarrow = new EntityCombineBall(player.worldObj, player, 3.0F); - entityarrow.setDamage(1000); - world.spawnEntityInWorld(entityarrow); + 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); @@ -43,7 +45,8 @@ public class ItemGunOSIPR extends ItemGunBase { } 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; diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index d1ef25af6..21dc8448a 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -9,32 +9,22 @@ import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.handler.HbmKeybinds; import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.BobMathUtil; import com.hbm.util.ChatBuilder; -import com.hbm.util.I18nUtil; import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.settings.GameSettings; import net.minecraft.creativetab.CreativeTabs; -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.Item; @@ -56,28 +46,11 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } @Override -public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add("Energy Stored: " + BobMathUtil.getShortNumber(getCharge(stack)) + "/" + BobMathUtil.getShortNumber(mainConfig.maxCharge) + "HE"); list.add("Charge rate: " + BobMathUtil.getShortNumber(mainConfig.chargeRate) + "HE/t"); - BulletConfiguration config = getConfig(stack); - - list.add(""); - list.add("Mode: " + I18nUtil.resolveKey(config.modeName)); - list.add("Mode info:"); - list.add("Average damage: " + ((float)(config.dmgMax + config.dmgMin) / 2F)); - list.add("Firing Rate: " + BobMathUtil.roundDecimal((1F / (((float)config.firingRate) / 20F)), 2) + " rounds per second"); - list.add("Power Consumption per Shot: " + BobMathUtil.getShortNumber(config.dischargePerShot) + "HE"); - - 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); - } + addAdditionalInformation(stack, list); } @Override diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index db7e34abc..c405dab26 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -2,6 +2,8 @@ package com.hbm.lib; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; import com.hbm.items.special.ItemBookLore.BookLoreType; @@ -21,7 +23,7 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.ingot_titanium, 0, 1, 1, 3), new WeightedRandomChestContent(ModItems.circuit_targeting_tier1, 0, 1, 1, 5), new WeightedRandomChestContent(ModItems.gun_revolver, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.gun_revolver_ammo, 0, 2, 6, 4), + new WeightedRandomChestContent(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 2, 6, 4), new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 3, 4), new WeightedRandomChestContent(ModItems.gun_lever_action, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.ammo_20gauge, 0, 2, 6, 3), @@ -102,9 +104,9 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.gun_rpg, 0, 1, 1, 4), new WeightedRandomChestContent(ModItems.ammo_rocket, 0, 1, 4, 5), new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke_safe, 0, 1, 2, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke_low, 0, 1, 2, 1), - new WeightedRandomChestContent(ModItems.ammo_nuke_pumpkin, 0, 1, 2, 1), + new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), + new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.LOW.ordinal(), 1, 2, 1), + new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 2, 1), new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.grenade_smart, 0, 1, 3, 3), new WeightedRandomChestContent(ModItems.grenade_mirv, 0, 1, 1, 2), @@ -204,14 +206,14 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.t45_kit, 0, 1, 1, 3), new WeightedRandomChestContent(ModItems.fusion_core, 0, 1, 1, 10), new WeightedRandomChestContent(ModItems.gun_revolver, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.gun_revolver_ammo, 0, 1, 24, 4), + new WeightedRandomChestContent(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 1, 24, 4), new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 2, 3, 4), new WeightedRandomChestContent(ModItems.gun_rpg, 0, 1, 1, 3), new WeightedRandomChestContent(ModItems.ammo_rocket, 0, 1, 6, 3), new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 2), new WeightedRandomChestContent(ModItems.billet_uranium_fuel, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.ingot_uranium_fuel, 0, 1, 1, 2), - new WeightedRandomChestContent(ModItems.ammo_nuke_safe, 0, 1, 2, 1), + new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.SAFE.ordinal(), 1, 2, 1), new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.bottle_nuka, 0, 1, 3, 6), new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 3), @@ -321,7 +323,7 @@ public class HbmChestContents { public static WeightedRandomChestContent[] vault4 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.ammo_container, 0, 3, 6, 1), new WeightedRandomChestContent(ModItems.clip_fatman, 0, 2, 3, 1), - new WeightedRandomChestContent(ModItems.ammo_mirv, 0, 2, 3, 1), + new WeightedRandomChestContent(ModItems.ammo_nuke, AmmoFatman.MIRV.ordinal(), 2, 3, 1), new WeightedRandomChestContent(ModItems.gun_mirv, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_proto, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java new file mode 100644 index 000000000..7fa984f47 --- /dev/null +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -0,0 +1,190 @@ +package com.hbm.lib; + +import java.util.List; +import java.util.Set; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.items.weapon.ItemAmmo.AmmoItemTrait; + +public class HbmCollection { + + public static final Set APType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_WEAR); + public static final Set FlechetteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR); + public static final Set IncendiaryType = ImmutableSet.of(AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR); + public static final Set PhosphorusType = ImmutableSet.of(AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION); + public static final Set PhosphorusTypeSpecial = ImmutableSet.of(AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR); + public static final Set ExplosiveType = ImmutableSet.of(AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR); + public static final Set DUType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR); + public static final Set StarmetalType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_STARMETAL, AmmoItemTrait.CON_HEAVY_WEAR); + public static final Set ChlorophyteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.NEU_CHLOROPHYTE, AmmoItemTrait.NEU_HOMING, AmmoItemTrait.CON_PENETRATION); + + /// BULLET COLLECTIONS + // SHOTGUNS + /** 12 GAUGE **/ + public static final List twelveGauge = ImmutableList.of(BulletConfigSyncingUtil.G12_NORMAL, BulletConfigSyncingUtil.G12_INCENDIARY, BulletConfigSyncingUtil.G12_SHRAPNEL, BulletConfigSyncingUtil.G12_DU, BulletConfigSyncingUtil.G12_AM, BulletConfigSyncingUtil.G12_SLEEK, BulletConfigSyncingUtil.G12_PERCUSSION); + /** 20 GAUGE **/ + public static final List twentyGauge = ImmutableList.of(BulletConfigSyncingUtil.G20_NORMAL, BulletConfigSyncingUtil.G20_SLUG, BulletConfigSyncingUtil.G20_FLECHETTE, BulletConfigSyncingUtil.G20_FIRE, BulletConfigSyncingUtil.G20_SHRAPNEL, BulletConfigSyncingUtil.G20_EXPLOSIVE, BulletConfigSyncingUtil.G20_CAUSTIC, BulletConfigSyncingUtil.G20_SHOCK, BulletConfigSyncingUtil.G20_WITHER, BulletConfigSyncingUtil.G20_SLEEK); + /** 4 GAUGE **/ + public static final List fourGauge = ImmutableList.of(BulletConfigSyncingUtil.G4_NORMAL, BulletConfigSyncingUtil.G4_SLUG, BulletConfigSyncingUtil.G4_FLECHETTE, BulletConfigSyncingUtil.G4_FLECHETTE_PHOSPHORUS, BulletConfigSyncingUtil.G4_EXPLOSIVE, BulletConfigSyncingUtil.G4_SEMTEX, BulletConfigSyncingUtil.G4_BALEFIRE, BulletConfigSyncingUtil.G4_KAMPF, BulletConfigSyncingUtil.G4_CANISTER, BulletConfigSyncingUtil.G4_CLAW, BulletConfigSyncingUtil.G4_VAMPIRE, BulletConfigSyncingUtil.G4_VOID, BulletConfigSyncingUtil.G4_TITAN, BulletConfigSyncingUtil.G4_SLEEK); + // PISTOL CALIBER + /** .22 LONG RIFLE **/ + public static final List twentyTwoLR = ImmutableList.of(BulletConfigSyncingUtil.LR22_NORMAL, BulletConfigSyncingUtil.LR22_AP, BulletConfigSyncingUtil.CHL_LR22); + public static final List twentyTwoLRFire = ImmutableList.of(BulletConfigSyncingUtil.LR22_NORMAL_FIRE, BulletConfigSyncingUtil.LR22_AP_FIRE, BulletConfigSyncingUtil.CHL_LR22_FIRE); + /** .44 MAGNUM (BASIC) **/ + public static final List fourtyFourMagBasic = ImmutableList.of(BulletConfigSyncingUtil.M44_NORMAL, BulletConfigSyncingUtil.M44_AP, BulletConfigSyncingUtil.M44_DU, BulletConfigSyncingUtil.M44_PHOSPHORUS, BulletConfigSyncingUtil.M44_STAR, BulletConfigSyncingUtil.CHL_M44, BulletConfigSyncingUtil.M44_ROCKET); + /** .44 MAGNUM (ALL) **/ + public static final List fourtyFourMagAll = ImmutableList.of(BulletConfigSyncingUtil.M44_NORMAL, BulletConfigSyncingUtil.M44_AP, BulletConfigSyncingUtil.M44_DU, BulletConfigSyncingUtil.M44_PHOSPHORUS, BulletConfigSyncingUtil.M44_STAR, BulletConfigSyncingUtil.CHL_M44, BulletConfigSyncingUtil.M44_ROCKET, BulletConfigSyncingUtil.M44_PIP, BulletConfigSyncingUtil.M44_BJ, BulletConfigSyncingUtil.M44_SILVER); + /** .50 ACTION EXPRESS **/ + public static final List fiftyAE = ImmutableList.of(BulletConfigSyncingUtil.AE50_NORMAL, BulletConfigSyncingUtil.AE50_AP, BulletConfigSyncingUtil.AE50_DU, BulletConfigSyncingUtil.AE50_STAR, BulletConfigSyncingUtil.CHL_AE50); + /** 9MM Parabellum **/ + public static final List nineMM = ImmutableList.of(BulletConfigSyncingUtil.P9_NORMAL, BulletConfigSyncingUtil.P9_AP, BulletConfigSyncingUtil.P9_DU, BulletConfigSyncingUtil.CHL_P9, BulletConfigSyncingUtil.P9_ROCKET); + /** .45 AUTOMATIC COLT PISTOL **/ + public static final List fourtyFiveACP = ImmutableList.of(BulletConfigSyncingUtil.ACP_45, BulletConfigSyncingUtil.ACP_45_AP, BulletConfigSyncingUtil.ACP_45_DU); + // RIFLE CALIBER + /** .50 BROWNING MACHINE GUN **/ + public static final List fiftyBMG = ImmutableList.of(BulletConfigSyncingUtil.BMG50_NORMAL, BulletConfigSyncingUtil.BMG50_INCENDIARY, BulletConfigSyncingUtil.BMG50_PHOSPHORUS, BulletConfigSyncingUtil.BMG50_EXPLOSIVE, BulletConfigSyncingUtil.BMG50_AP, BulletConfigSyncingUtil.BMG50_DU, BulletConfigSyncingUtil.BMG50_STAR, BulletConfigSyncingUtil.CHL_BMG50, BulletConfigSyncingUtil.BMG50_SLEEK); + /** .50 BROWNING MACHINE GUN (FLECHETTE) **/ + public static final List fiftyBMGFlechette = ImmutableList.of(BulletConfigSyncingUtil.BMG50_FLECHETTE_AM, BulletConfigSyncingUtil.BMG50_FLECHETTE_NORMAL, BulletConfigSyncingUtil.BMG50_FLECHETTE_PO); + /** 5.56MMx45 NATO (BASIC) **/ + public static final List NATO = ImmutableList.of(BulletConfigSyncingUtil.R556_NORMAL, BulletConfigSyncingUtil.R556_TRACER, BulletConfigSyncingUtil.R556_PHOSPHORUS, BulletConfigSyncingUtil.R556_AP, BulletConfigSyncingUtil.R556_DU, BulletConfigSyncingUtil.R556_STAR, BulletConfigSyncingUtil.CHL_R556, BulletConfigSyncingUtil.R556_SLEEK, BulletConfigSyncingUtil.R556_K, BulletConfigSyncingUtil.R556_GOLD); + /** 5.56MMx45 NATO (FLECHETTE) **/ + public static final List NATOFlechette = ImmutableList.of(BulletConfigSyncingUtil.R556_FLECHETTE, BulletConfigSyncingUtil.R556_FLECHETTE_INCENDIARY, BulletConfigSyncingUtil.R556_FLECHETTE_PHOSPHORUS, BulletConfigSyncingUtil.R556_FLECHETTE_DU, BulletConfigSyncingUtil.CHL_R556_FLECHETTE, BulletConfigSyncingUtil.R556_FLECHETTE_SLEEK, BulletConfigSyncingUtil.R556_K); + /** 7.62x51mm NATO **/ + public static final List threeZeroEight = ImmutableList.of(BulletConfigSyncingUtil.W308); + /** 5MM **/ + public static final List fiveMM = ImmutableList.of(BulletConfigSyncingUtil.R5_NORMAL, BulletConfigSyncingUtil.R5_EXPLOSIVE, BulletConfigSyncingUtil.R5_DU, BulletConfigSyncingUtil.R5_STAR, BulletConfigSyncingUtil.CHL_R5); + /** 5MM LACUNAE **/ + public static final List fiveMMBolt = ImmutableList.of(BulletConfigSyncingUtil.R5_NORMAL_BOLT, BulletConfigSyncingUtil.R5_EXPLOSIVE_BOLT, BulletConfigSyncingUtil.R5_DU_BOLT, BulletConfigSyncingUtil.R5_STAR_BOLT, BulletConfigSyncingUtil.CHL_R5_BOLT); + // MISC + /** .75 **/ + public static final List seventyFive = ImmutableList.of(BulletConfigSyncingUtil.B75_NORMAL, BulletConfigSyncingUtil.B75_INCENDIARY, BulletConfigSyncingUtil.B75_HE); + /** 240MM SHELL **/ + public static final List cannon = ImmutableList.of(BulletConfigSyncingUtil.SHELL_NORMAL, BulletConfigSyncingUtil.SHELL_EXPLOSIVE, BulletConfigSyncingUtil.SHELL_AP, BulletConfigSyncingUtil.SHELL_DU, BulletConfigSyncingUtil.SHELL_W9); + /** FLAMETHROWER FUEL **/ + public static final List flamer = ImmutableList.of(BulletConfigSyncingUtil.FLAMER_NORMAL, BulletConfigSyncingUtil.FLAMER_NAPALM, BulletConfigSyncingUtil.FLAMER_WP, BulletConfigSyncingUtil.FLAMER_VAPORIZER, BulletConfigSyncingUtil.FLAMER_GAS); + /** MINI-NUKES **/ + public static final List fatman = ImmutableList.of(BulletConfigSyncingUtil.NUKE_NORMAL, BulletConfigSyncingUtil.NUKE_LOW, BulletConfigSyncingUtil.NUKE_HIGH, BulletConfigSyncingUtil.NUKE_TOTS, BulletConfigSyncingUtil.NUKE_SAFE, BulletConfigSyncingUtil.NUKE_PUMPKIN, BulletConfigSyncingUtil.NUKE_BARREL); + /** MIRV MINI-NUKES **/ + public static final List fatmanMIRV = ImmutableList.of(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL, BulletConfigSyncingUtil.NUKE_MIRV_LOW, BulletConfigSyncingUtil.NUKE_MIRV_HIGH, BulletConfigSyncingUtil.NUKE_MIRV_SAFE, BulletConfigSyncingUtil.NUKE_MIRV_SPECIAL); + /** 40MM GRENADE **/ + public static final List grenade = ImmutableList.of(BulletConfigSyncingUtil.GRENADE_NORMAL, BulletConfigSyncingUtil.GRENADE_HE, BulletConfigSyncingUtil.GRENADE_INCENDIARY, BulletConfigSyncingUtil.GRENADE_PHOSPHORUS, BulletConfigSyncingUtil.GRENADE_CHEMICAL, BulletConfigSyncingUtil.GRENADE_CONCUSSION, BulletConfigSyncingUtil.GRENADE_FINNED, BulletConfigSyncingUtil.GRENADE_SLEEK, BulletConfigSyncingUtil.GRENADE_NUCLEAR, BulletConfigSyncingUtil.GRENADE_TRACER, BulletConfigSyncingUtil.GRENADE_KAMPF); + /** 84MM ROCKET **/ + public static final List rocket = ImmutableList.of(BulletConfigSyncingUtil.ROCKET_NORMAL, BulletConfigSyncingUtil.ROCKET_HE, BulletConfigSyncingUtil.ROCKET_INCENDIARY, BulletConfigSyncingUtil.ROCKET_PHOSPHORUS, BulletConfigSyncingUtil.ROCKET_SHRAPNEL, BulletConfigSyncingUtil.ROCKET_EMP, BulletConfigSyncingUtil.ROCKET_GLARE, BulletConfigSyncingUtil.ROCKET_TOXIC, BulletConfigSyncingUtil.ROCKET_CANISTER, BulletConfigSyncingUtil.ROCKET_SLEEK, BulletConfigSyncingUtil.ROCKET_NUKE, BulletConfigSyncingUtil.ROCKET_CHAINSAW); + + /// FREQUENTLY USED TRANSLATION KEYS + // GUN MANUFACTURERS + public static enum EnumGunManufacturer { + /**Armalite**/ + ARMALITE, + /**Auto-Ordnance Corporation**/ + AUTO_ORDINANCE, + /**BAE Systems plc**/ + BAE, + /**Benelli Armi SpA**/ + BENELLI, + /**Black Mesa Research Facility**/ + BLACK_MESA, + /**Cerix Magnus**/ + CERIX, + /**Colt's Manufacturing Company**/ + COLT, + /**The Universal Union**/ + COMBINE, + /**Cube 2: Sauerbraten**/ + CUBE, + /**Enzinger Union**/ + ENZINGER, + /**Equestria Missile Systems**/ + EQUESTRIA, + /**Fisher Price**/ + F_PRICE, + /**Fort Strong**/ + F_STRONG, + /**FlimFlam Industries**/ + FLIMFLAM, + /**Gloria GmbH**/ + GLORIA, + /**Heckler & Koch**/ + H_AND_K, + /**Harrington & Richardson**/ + H_AND_R, + /**Hasbro**/ + HASBRO, + /**Ironshod Firearms**/ + IF, + /**Israel Military Industries**/ + IMI, + /**IMI / Big MT**/ + IMI_BIGMT, + /**Langford Research Laboratories**/ + LANGFORD, + /**Magnum Research / Israel Military Industries**/ + MAGNUM_R_IMI, + /**Open Mann Co.**/ + MANN, + /**Hiram Maxim**/ + MAXIM, + /**Metro Gunsmiths**/ + METRO, + /**MWT Prototype Labs**/ + MWT, + /**Erfurter Maschinenfabrik Geipel**/ + NAZI, + /**No manufacturer, just puts "-" **/ + NONE, + /**OxfordEM Technologies**/ + OXFORD, + /**Lunar Defense Corp**/ + LUNA, + /**Raytheon Missile Systems**/ + RAYTHEON, + /**Rockwell International Corporation**/ + ROCKWELL, + /**Rockwell International Corporation?**/ + ROCKWELL_U, + /**Ryan Industries**/ + RYAN, + /**Saab Bofors Dynamics**/ + SAAB, + /**Saco Defense / US Ordnance**/ + SACO, + /**Tulsky Oruzheiny Zavod**/ + TULSKY, + /**Union Aerospace Corporation**/ + UAC, + /**Unknown manufacturer, puts "???"**/ + UNKNOWN, + /**WestTek**/ + WESTTEK, + /**Wilhelm-Gustloff-Werke**/ + WGW, + /**Winchester Repeating Arms Company**/ + WINCHESTER, + /**Winchester Repeating Arms Company / Big MT**/ + WINCHESTER_BIGMT; + + public String getKey() { + return "gun.make." + toString(); + } + } + + // GUN DETAILS + public static final String ammo = "desc.item.gun.ammo"; + public static final String ammoMag = "desc.item.gun.ammoMag"; + public static final String ammoBelt = "desc.item.gun.ammoBelt"; + public static final String ammoEnergy = "desc.item.gun.ammoEnergy"; + public static final String altAmmoEnergy = "desc.item.gun.ammoEnergyAlt"; + public static final String ammoType = "desc.item.gun.ammoType"; + public static final String altAmmoType = "desc.item.gun.ammoTypeAlt"; + public static final String gunName = "desc.item.gun.name"; + public static final String gunMaker = "desc.item.gun.manufacturer"; + public static final String gunDamage = "desc.item.gun.damage"; + // MISC + public static final String capacity = "desc.block.barrel.capacity"; + public static final String durability = "desc.item.durability"; + public static final String meltPoint = "desc.misc.meltPoint"; + public static final String lctrl = "desc.misc.lctrl"; + public static final String lshift = "desc.misc.lshift"; +} diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 70e7fc984..c07a242e8 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 (4480)"; + public static final String VERSION = "1.0.27 BETA (4501)"; //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 44a786906..9bfd5e61a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -58,6 +58,7 @@ import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; +import com.hbm.handler.CasingEjector; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; @@ -475,7 +476,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_avenger, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lacunae, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_folly, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_brimstone, new ItemRenderObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_hk69, new ItemRenderWeaponObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bio_revolver, new ItemRenderBioRevolver()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_deagle, new ItemRenderWeaponObj()); @@ -1790,6 +1790,17 @@ public class ClientProxy extends ServerProxy { RenderOverhead.queuedMarkers.put(new BlockPos(x, y, z), new Marker(color).setDist(dist).setExpire(expires > 0 ? System.currentTimeMillis() + expires : 0).withLabel(label.isEmpty() ? null : label)); } + + if("casing".equals(type)) { + CasingEjector ejector = CasingEjector.fromId(data.getInteger("ej")); + if(ejector == null) return; + SpentCasing casingConfig = SpentCasing.fromName((data.getString("name"))); + if(casingConfig == null) return; + + for(int i = 0; i < ejector.getAmount(); i++) { + ejector.spawnCasing(man, casingConfig, world, x, y, z, data.getFloat("pitch"), data.getFloat("yaw"), data.getBoolean("crouched")); + } + } } private HashMap vanished = new HashMap(); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5e1b46faa..bef737701 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -17,6 +17,8 @@ import com.hbm.inventory.fluid.Fluids; 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.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; @@ -229,7 +231,7 @@ public class CraftingManager { ItemStack infinity = new ItemStack(Items.enchanted_book); EnchantmentUtil.addEnchantment(infinity, Enchantment.infinity, 1); - addRecipeAuto(infinity, new Object[] { "SBS", "BDB", "SBS", 'S', ModItems.ammo_50bmg_star, 'B', ModItems.ammo_5mm_star, 'D', ModItems.powder_magic }); + 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 }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e54a82927..422279c90 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -60,6 +60,7 @@ import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; @@ -617,7 +618,7 @@ public class MainRegistry { achStratum = new Achievement("achievement.stratum", "stratum", -4, -2, new ItemStack(ModBlocks.stone_gneiss), null).initIndependentStat().setSpecial().registerStat(); achOmega12 = new Achievement("achievement.omega12", "omega12", 17, -1, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - achWitchtaunter = new Achievement("achievement.witchtaunter", "witchtaunter", -8, 7, ModItems.ammo_4gauge_vampire, null).initIndependentStat().setSpecial().registerStat(); + achWitchtaunter = new Achievement("achievement.witchtaunter", "witchtaunter", -8, 7, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE), null).initIndependentStat().setSpecial().registerStat(); achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, Items.slime_ball, null).initIndependentStat().registerStat(); achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, ModItems.bucket_sulfuric_acid, achSlimeball).initIndependentStat().setSpecial().registerStat(); @@ -997,6 +998,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.pirfenidone"); ignoreMappings.add("hbm:item.coin_siege"); ignoreMappings.add("hbm:item.source"); + ignoreMappings.add("hbm:item.gun_brimstone"); /// 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 f375b7a72..e7c1cbbe5 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -19,6 +19,7 @@ import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; +import com.hbm.handler.GunConfiguration; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; import com.hbm.handler.ImpactWorldHandler; @@ -113,6 +114,7 @@ import net.minecraft.world.World; import net.minecraft.world.WorldProviderSurface; import net.minecraftforge.client.GuiIngameForge; import net.minecraftforge.client.IRenderHandler; +import net.minecraftforge.client.event.FOVUpdateEvent; import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; @@ -219,6 +221,18 @@ public class ModEventHandlerClient { PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(0, 0, 0, 999, 0)); } + /// HANDLE SCOPE OVERLAY /// + ItemStack held = player.getHeldItem(); + + if(player.isSneaking() && held != null && held.getItem() instanceof ItemGunBase && event.type == event.type.HOTBAR) { + GunConfiguration config = ((ItemGunBase) held.getItem()).mainConfig; + + if(config.scopeTexture != null) { + ScaledResolution resolution = event.resolution; + RenderScreenOverlay.renderScope(resolution, config.scopeTexture); + } + } + /// HANDLE FSB HUD /// ItemStack helmet = player.inventory.armorInventory[3]; @@ -327,6 +341,27 @@ public class ModEventHandlerClient { } } + @SubscribeEvent + public void setupFOV(FOVUpdateEvent event) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack held = player.getHeldItem(); + + if(held == null) return; + if(!(held.getItem() instanceof ItemGunBase)) return; + + GunConfiguration config = ((ItemGunBase) held.getItem()).mainConfig; + + if(config == null) return; + if(config.zoomFOV == 0F || !player.isSneaking()) return; + + if(config.absoluteFOV) { + event.newfov = config.zoomFOV; + } else { + event.newfov += config.zoomFOV; + } + } + public static boolean ducked = false; @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index bd328c11d..7945004f4 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -21,29 +21,6 @@ public class ResourceManager { ////Obj TEs //Turrets - public static final IModelCustom turret_heavy_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_base.obj")); - public static final IModelCustom turret_heavy_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_rotor.obj")); - - public static final IModelCustom turret_spitfire_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_spitfire_base.obj")); - public static final IModelCustom turret_spitfire_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_spitfire_rotor.obj")); - - public static final IModelCustom turret_cwis_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_base.obj")); - public static final IModelCustom turret_cwis_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_rotor.obj")); - - public static final IModelCustom turret_cheapo_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_base.obj")); - public static final IModelCustom turret_cheapo_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_rotor.obj")); - - public static final IModelCustom turret_heavy_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_gun.obj")); - public static final IModelCustom turret_rocket_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_rocket_gun.obj")); - public static final IModelCustom turret_light_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_light_gun.obj")); - public static final IModelCustom turret_flamer_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_flamer_gun.obj")); - public static final IModelCustom turret_tau_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_tau_gun.obj")); - public static final IModelCustom turret_spitfire_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_spitfire_gun.obj")); - public static final IModelCustom turret_cwis_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_head.obj")); - public static final IModelCustom turret_cwis_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_gun.obj")); - public static final IModelCustom turret_cheapo_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_head.obj")); - public static final IModelCustom turret_cheapo_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_gun.obj")); - public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")); public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")); public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")); @@ -339,28 +316,7 @@ public class ResourceManager { public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); public static final ResourceLocation universal_bright = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); - - public static final ResourceLocation turret_heavy_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_base.png"); - public static final ResourceLocation turret_heavy_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_rotor.png"); - public static final ResourceLocation turret_heavy_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_gun.png"); - public static final ResourceLocation turret_light_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_light_rotor.png"); - public static final ResourceLocation turret_light_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_light_gun.png"); - public static final ResourceLocation turret_rocket_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_rocket_rotor.png"); - public static final ResourceLocation turret_rocket_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_rocket_gun.png"); - public static final ResourceLocation turret_flamer_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_flamer_rotor.png"); - public static final ResourceLocation turret_flamer_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_flamer_gun.png"); - public static final ResourceLocation turret_tau_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_tau_rotor.png"); - public static final ResourceLocation turret_tau_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_tau_gun.png"); - public static final ResourceLocation turret_ciws_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_base.png"); - public static final ResourceLocation turret_ciws_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_rotor.png"); - public static final ResourceLocation turret_ciws_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_head.png"); - public static final ResourceLocation turret_ciws_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_gun.png"); - public static final ResourceLocation turret_cheapo_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_base.png"); - public static final ResourceLocation turret_cheapo_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_rotor.png"); - public static final ResourceLocation turret_cheapo_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_head.png"); - public static final ResourceLocation turret_cheapo_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_gun.png"); - public static final ResourceLocation turret_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base.png"); public static final ResourceLocation turret_base_friendly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base_friendly.png"); public static final ResourceLocation turret_carriage_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/carriage.png"); @@ -699,7 +655,6 @@ public class ResourceManager { public static final IModelCustom crucible = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/crucible.obj")); public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj"), false); - public static final IModelCustom brimstone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/brimstone.obj")); public static final IModelCustom hk69 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/hk69.obj")); public static final IModelCustom deagle = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/deagle.obj")); public static final IModelCustom shotty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/supershotty.obj")); @@ -770,7 +725,6 @@ public class ResourceManager { public static final ResourceLocation crucible_blade = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/crucible_blade.png"); public static final ResourceLocation chainsaw_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/chainsaw.png"); - public static final ResourceLocation brimstone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/brimstone.png"); public static final ResourceLocation hk69_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hk69.png"); public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png"); public static final ResourceLocation ks23_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ks23.png"); @@ -911,6 +865,7 @@ public class ResourceManager { //Projectiles public static final IModelCustom projectiles = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/projectiles.obj")); + public static final IModelCustom casings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/casings.obj")); //Bomber public static final IModelCustom dornier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/dornier.obj")); @@ -1036,6 +991,7 @@ public class ResourceManager { public static final ResourceLocation rocket_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/rocket_mirv.png"); public static final ResourceLocation mini_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_nuke.png"); public static final ResourceLocation mini_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_mirv.png"); + 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"); diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index c851d34b5..bc1719702 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; +import com.hbm.items.ItemAmmoEnums; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.util.InventoryUtil; @@ -52,7 +53,7 @@ public class AnvilCraftPacket implements IMessage { if(!(p.openContainer instanceof ContainerAnvil)) //player isn't even using an anvil -> bad return null; - ContainerAnvil anvil = (ContainerAnvil)p.openContainer; + ContainerAnvil anvil = (ContainerAnvil) p.openContainer; AnvilConstructionRecipe recipe = AnvilRecipes.getConstruction().get(m.recipeIndex); if(!recipe.isTierValid(anvil.tier)) //player is using the wrong type of anvil -> bad @@ -71,7 +72,7 @@ public class AnvilCraftPacket implements IMessage { p.triggerAchievement(MainRegistry.achAssembly); if(recipe.output.get(0).stack.getItem() == ModItems.billet_pu_mix) p.triggerAchievement(MainRegistry.achChicagoPile); - if(recipe.output.get(0).stack.getItem() == ModItems.ammo_4gauge_vampire) + if(recipe.output.get(0).stack.getItem() == ModItems.ammo_4gauge && recipe.output.get(0).stack.getItemDamage() == ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()) p.triggerAchievement(MainRegistry.achWitchtaunter); } else { diff --git a/src/main/java/com/hbm/particle/ParticleAmatFlash.java b/src/main/java/com/hbm/particle/ParticleAmatFlash.java index e01a28dca..4dbba4363 100644 --- a/src/main/java/com/hbm/particle/ParticleAmatFlash.java +++ b/src/main/java/com/hbm/particle/ParticleAmatFlash.java @@ -6,9 +6,11 @@ import org.lwjgl.opengl.GL11; 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.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; @SideOnly(Side.CLIENT) @@ -25,10 +27,15 @@ public class ParticleAmatFlash extends EntityFX { } public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + 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; - 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)); + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) interp - dX)); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY)); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ)); GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/particle/ParticleGiblet.java b/src/main/java/com/hbm/particle/ParticleGiblet.java index f61a9ad2e..c09a00799 100644 --- a/src/main/java/com/hbm/particle/ParticleGiblet.java +++ b/src/main/java/com/hbm/particle/ParticleGiblet.java @@ -11,6 +11,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; 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.ResourceLocation; import net.minecraft.world.World; @@ -66,11 +67,17 @@ public class ParticleGiblet extends EntityFX { GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); 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 */ + 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; float f10 = this.particleScale * 0.1F; - float f11 = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); - float f12 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); - float f13 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + float f11 = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - dX); + float f12 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY); + float f13 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ); tess.startDrawingQuads(); tess.setNormal(0.0F, 1.0F, 0.0F); diff --git a/src/main/java/com/hbm/particle/ParticleSpentCasing.java b/src/main/java/com/hbm/particle/ParticleSpentCasing.java new file mode 100644 index 000000000..59e6ae201 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleSpentCasing.java @@ -0,0 +1,294 @@ +package com.hbm.particle; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.main.ResourceManager; +import com.hbm.util.Tuple.Pair; + +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.Vec3; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleSpentCasing extends EntityFX { + + public static final Random rand = new Random(); + private static float dScale = 0.05F, smokeJitter = 0.001F; + + private int maxSmokeGen = 120; + private double smokeLift = 0.5D; + private int nodeLife = 30; + + private final List> smokeNodes = new ArrayList(); + + private final TextureManager textureManager; + + private final SpentCasing config; + private boolean isSmoking; + + private float momentumPitch, momentumYaw; + private boolean onGroundPreviously = false; + private double maxHeight; + + public ParticleSpentCasing(TextureManager textureManager, World world, double x, double y, double z, double mx, double my, double mz, float momentumPitch, float momentumYaw, SpentCasing config) { + super(world, x, y, z, 0, 0, 0); + this.textureManager = textureManager; + this.momentumPitch = momentumPitch; + this.momentumYaw = momentumYaw; + this.config = config; + + this.particleMaxAge = config.getMaxAge(); + this.isSmoking = rand.nextFloat() < config.getSmokeChance(); + this.maxSmokeGen = config.getSmokeDuration(); + this.smokeLift = config.getSmokeLift(); + this.nodeLife = config.getSmokeNodeLife(); + + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + + this.motionX = mx; + this.motionY = my; + this.motionZ = mz; + + particleGravity = 8F; + + maxHeight = y; + } + + @Override + public int getFXLayer() { + return 3; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(motionY > 0 && posY > maxHeight) + maxHeight = posY; + + if(!onGroundPreviously && onGround) + tryPlayBounceSound(); + + if(!onGroundPreviously && onGround) { + + onGroundPreviously = true; + motionY = Math.log10(maxHeight - posY + 2); + momentumPitch = (float) rand.nextGaussian() * config.getBouncePitch(); + momentumYaw = (float) rand.nextGaussian() * config.getBounceYaw(); + maxHeight = posY; + + } else if(onGroundPreviously && !onGround) { + onGroundPreviously = false; + } + + if(particleAge > maxSmokeGen && !smokeNodes.isEmpty()) + smokeNodes.clear(); + + if(isSmoking && particleAge <= maxSmokeGen) { + + for(Pair pair : smokeNodes) { + Vec3 node = pair.getKey(); + + node.xCoord += rand.nextGaussian() * smokeJitter; + node.zCoord += rand.nextGaussian() * smokeJitter; + node.yCoord += smokeLift * dScale; + + pair.value = Math.max(0, pair.value - (1D / (double) nodeLife)); + } + + if(particleAge < maxSmokeGen || inWater) { + smokeNodes.add(new Pair(Vec3.createVectorHelper(0, 0, 0), smokeNodes.isEmpty() ? 0.0D : 1D)); + } + } + + prevRotationPitch = rotationPitch; + prevRotationYaw = rotationYaw; + + if(onGround) { + rotationPitch = 0; + } else { + rotationPitch += momentumPitch; + rotationYaw += momentumYaw; + } + } + + /** Used for frame-perfect translation of smoke */ + private boolean setupDeltas = false; + private double prevRenderX; + private double prevRenderY; + private double prevRenderZ; + + @Override + public void renderParticle(Tessellator tessellator, float interp, float x, float y, float z, float tx, float tz) { + + GL11.glPushMatrix(); + RenderHelper.enableStandardItemLighting(); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glDepthMask(true); + + double pX = prevPosX + (posX - prevPosX) * interp; + double pY = prevPosY + (posY - prevPosY) * interp; + double pZ = prevPosZ + (posZ - prevPosZ) * interp; + + if(!setupDeltas) { + prevRenderX = pX; + prevRenderY = pY; + prevRenderZ = pZ; + setupDeltas = true; + } + + 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); + + textureManager.bindTexture(ResourceManager.casings_tex); + + 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 - this.height / 4 + config.getScaleY() * 0.01, pZ - dZ); + + GL11.glScalef(dScale, dScale, dScale); + + GL11.glRotatef(180 - rotationYaw, 0, 1, 0); + GL11.glRotatef(-rotationPitch, 1, 0, 0); + + GL11.glScalef(config.getScaleX(), config.getScaleY(), config.getScaleZ()); + + int index = 0; + for(String name : config.getType().partNames) { + int col = this.config.getColors()[index]; //unsafe on purpose, set your colors properly or else...! + Color color = new Color(col); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + ResourceManager.casings.renderPart(name); + index++; + } + + GL11.glColor3f(1F, 1F, 1F); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(pX - dX, pY - dY - this.height / 4, pZ - dZ); + //GL11.glScalef(dScale, dScale, dScale); + //GL11.glScalef(config.getScaleX(), config.getScaleY(), config.getScaleZ()); + + if(!smokeNodes.isEmpty()) { + tessellator.startDrawingQuads(); + tessellator.setNormal(0F, 1F, 0F); + + float scale = config.getScaleX() * 0.5F * dScale; + Vec3 vec = Vec3.createVectorHelper(scale, 0, 0); + float yaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp; + vec.rotateAroundY((float) Math.toRadians(-yaw)); + + double deltaX = prevRenderX - pX; + double deltaY = prevRenderY - pY; + double deltaZ = prevRenderZ - pZ; + + for(Pair pair : smokeNodes) { + Vec3 pos = pair.getKey(); + double mult = 1D; + pos.xCoord += deltaX * mult; + pos.yCoord += deltaY * mult; + pos.zCoord += deltaZ * mult; + } + + for(int i = 0; i < smokeNodes.size() - 1; i++) { + final Pair node = smokeNodes.get(i), past = smokeNodes.get(i + 1); + final Vec3 nodeLoc = node.getKey(), pastLoc = past.getKey(); + float nodeAlpha = node.getValue().floatValue(); + float pastAlpha = past.getValue().floatValue(); + + double timeAlpha = 1D - (double) particleAge / (double) maxSmokeGen; + nodeAlpha *= timeAlpha; + pastAlpha *= timeAlpha; + + tessellator.setNormal(0F, 1F, 0F); + tessellator.setColorRGBA_F(1F, 1F, 1F, nodeAlpha); + tessellator.addVertex(nodeLoc.xCoord, nodeLoc.yCoord, nodeLoc.zCoord); + tessellator.setColorRGBA_F(1F, 1F, 1F, 0F); + tessellator.addVertex(nodeLoc.xCoord + vec.xCoord, nodeLoc.yCoord, nodeLoc.zCoord + vec.zCoord); + tessellator.setColorRGBA_F(1F, 1F, 1F, 0F); + tessellator.addVertex(pastLoc.xCoord + vec.xCoord, pastLoc.yCoord, pastLoc.zCoord + vec.zCoord); + tessellator.setColorRGBA_F(1F, 1F, 1F, pastAlpha); + tessellator.addVertex(pastLoc.xCoord, pastLoc.yCoord, pastLoc.zCoord); + + tessellator.setColorRGBA_F(1F, 1F, 1F, nodeAlpha); + tessellator.addVertex(nodeLoc.xCoord, nodeLoc.yCoord, nodeLoc.zCoord); + tessellator.setColorRGBA_F(1F, 1F, 1F, 0F); + tessellator.addVertex(nodeLoc.xCoord - vec.xCoord, nodeLoc.yCoord, nodeLoc.zCoord - vec.zCoord); + tessellator.setColorRGBA_F(1F, 1F, 1F, 0F); + tessellator.addVertex(pastLoc.xCoord - vec.xCoord, pastLoc.yCoord, pastLoc.zCoord - vec.zCoord); + tessellator.setColorRGBA_F(1F, 1F, 1F, pastAlpha); + tessellator.addVertex(pastLoc.xCoord, pastLoc.yCoord, pastLoc.zCoord); + } + + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_CULL_FACE); + tessellator.draw(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); + } + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + + RenderHelper.disableStandardItemLighting(); + + prevRenderX = pX; + prevRenderY = pY; + prevRenderZ = pZ; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + int i = MathHelper.floor_double(this.posX); + int j = MathHelper.floor_double(this.posZ); + + if(this.worldObj.blockExists(i, 0, j)) { + double d0 = (this.boundingBox.maxY - this.boundingBox.minY) * 0.66D; + int k = MathHelper.floor_double(this.posY - (double) this.yOffset + d0); + return this.worldObj.getLightBrightnessForSkyBlocks(i, k, j, 0); + } else { + return 0; + } + } + + private void tryPlayBounceSound() { + + String sound = config.getSound(); + + if(sound != null && !sound.isEmpty()) { + worldObj.playSoundAtEntity(this, sound, 2, 1); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/particle/SpentCasing.java b/src/main/java/com/hbm/particle/SpentCasing.java new file mode 100644 index 000000000..a44534a3f --- /dev/null +++ b/src/main/java/com/hbm/particle/SpentCasing.java @@ -0,0 +1,131 @@ +package com.hbm.particle; + +import java.util.HashMap; + +/** + * Definition for spent casing particles, what style and color they should use + * @author uffr, hbm + */ +public class SpentCasing implements Cloneable { + + public static final int COLOR_CASE_BRASS = 0xEBC35E; + public static final int COLOR_CASE_12GA = 0x757575; + public static final int COLOR_CASE_4GA = 0xD8D8D8; + public static final int COLOR_CASE_44 = 0x3E3E3E; + public static final int COLOR_CASE_16INCH = 0xD89128; + public static final int COLOR_CASE_16INCH_PHOS = 0xC8C8C8; + public static final int COLOR_CASE_16INCH_NUKE = 0x495443; + + public static final HashMap casingMap = new HashMap(); + + public enum CasingType { + STRAIGHT("Straight"), + BOTTLENECK("Bottleneck"), + SHOTGUN("Shotgun", "ShotgunCase"), //plastic shell, brass case + AR2("AR2", "AR2Highlight"); //plug, back detailing + + public final String[] partNames; + + private CasingType(String... names) { + this.partNames = names; + } + } + + private String registryName; + private float scaleX = 1F; + private float scaleY = 1F; + private float scaleZ = 1F; + private int[] colors; + private CasingType type; + private String bounceSound; + private float smokeChance; + private int smokeDuration; + private double smokeLift; + private int smokeNodeLife; + private float bounceYaw = 0F; + private float bouncePitch = 0F; + private int maxAge = 240; + + public SpentCasing(CasingType type) { + this.type = type; + } + + /** Separated from the ctor to allow for easy creation of new casings from templates that don't need to be registered */ + public SpentCasing register(String name) { + this.registryName = name; + casingMap.put(name, this); + return this; + } + + public SpentCasing setScale(float scale) { + this.scaleX = scale; + this.scaleY = scale; + this.scaleZ = scale; + return this; + } + + public SpentCasing setScale(float x, float y, float z) { + this.scaleX = x; + this.scaleY = y; + this.scaleZ = z; + return this; + } + + /** The number of colors has to match the number of objects of the chosen casing type. Brass/metal casing color has to come last to comply with the chorophyte coloring. */ + public SpentCasing setColor(int... color) { + this.colors = color; + return this; + } + + public SpentCasing setSound(String bounce) { + this.bounceSound = bounce; + return this; + } + + public SpentCasing setupSmoke(float chance, double lift, int duration, int nodeLife) { + this.smokeChance = chance; + this.smokeDuration = duration; + this.smokeLift = lift; + this.smokeNodeLife = nodeLife; + return this; + } + + public static SpentCasing fromName(String name) { + return casingMap.get(name); + } + + public SpentCasing setBounceMotion(float yaw, float pitch) { + this.bounceYaw = yaw; + this.bouncePitch = pitch; + return this; + } + + public SpentCasing setMaxAge(int age) { + this.maxAge = age; + return this; + } + + public String getName() { return this.registryName; } + public float getScaleX() { return this.scaleX; } + public float getScaleY() { return this.scaleY; } + public float getScaleZ() { return this.scaleZ; } + public int[] getColors() { return this.colors; } + public CasingType getType() { return this.type; } + public String getSound() { return this.bounceSound; } + public float getSmokeChance() { return this.smokeChance; } + public float getBounceYaw() { return this.bounceYaw; } + public float getBouncePitch() { return this.bouncePitch; } + public int getMaxAge() { return this.maxAge; } + public int getSmokeDuration() { return this.smokeDuration; } + public double getSmokeLift() { return this.smokeLift; } + public int getSmokeNodeLife() { return this.smokeNodeLife; } + + @Override + public SpentCasing clone() { + try { + return (SpentCasing) super.clone(); + } catch(CloneNotSupportedException e) { + return new SpentCasing(this.type); + } + } +} diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 9e36909fc..084826705 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -36,7 +36,7 @@ public class HbmPotion extends Potion { public static HbmPotion radx; public static HbmPotion lead; public static HbmPotion radaway; - public static HbmPotion telekinesis; + //public static HbmPotion telekinesis; public static HbmPotion phosphorus; public static HbmPotion stability; public static HbmPotion potionsickness; @@ -54,7 +54,7 @@ public class HbmPotion extends Potion { radx = registerPotion(PotionConfig.radxID, false, 0xBB4B00, "potion.hbm_radx", 5, 0); lead = registerPotion(PotionConfig.leadID, true, 0x767682, "potion.hbm_lead", 6, 0); radaway = registerPotion(PotionConfig.radawayID, false, 0xBB4B00, "potion.hbm_radaway", 7, 0); - telekinesis = registerPotion(PotionConfig.telekinesisID, true, 0x00F3FF, "potion.hbm_telekinesis", 0, 1); + //telekinesis = registerPotion(PotionConfig.telekinesisID, true, 0x00F3FF, "potion.hbm_telekinesis", 0, 1); phosphorus = registerPotion(PotionConfig.phosphorusID, true, 0xFFFF00, "potion.hbm_phosphorus", 1, 1); stability = registerPotion(PotionConfig.stabilityID, false, 0xD0D0D0, "potion.hbm_stability", 2, 1); potionsickness = registerPotion(PotionConfig.potionsicknessID, false, 0xff8080, "potion.hbm_potionsickness", 3, 1); @@ -148,7 +148,7 @@ public class HbmPotion extends Potion { entity.attackEntityFrom(ModDamageSource.lead, (level + 1)); } - if(this == telekinesis) { + /*if(this == telekinesis) { int remaining = entity.getActivePotionEffect(this).getDuration(); @@ -158,7 +158,7 @@ public class HbmPotion extends Potion { entity.motionY = -2; entity.fallDistance = 50; } - } + }*/ if(this == phosphorus && !entity.worldObj.isRemote) { entity.setFire(1); @@ -171,7 +171,7 @@ public class HbmPotion extends Potion { return par1 % 2 == 0; } - if(this == radiation || this == radaway || this == telekinesis || this == phosphorus) { + if(this == radiation || this == radaway || /*this == telekinesis ||*/ this == phosphorus) { return true; } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java index d4101f5af..012294910 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java @@ -8,8 +8,8 @@ import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemRenderFireExt implements IItemRenderer { @@ -43,14 +43,14 @@ public class ItemRenderFireExt implements IItemRenderer { int magType = ItemGunBase.getMagType(item); int config = ((ItemGunBase)ModItems.gun_fireext).mainConfig.config.get(magType); - Item ammo = BulletConfigSyncingUtil.pullConfig(config).ammo; - - if(ammo == ModItems.ammo_fireext_foam) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_foam_tex); - else if(ammo == ModItems.ammo_fireext_sand) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_sand_tex); - else - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_tex); + int ammo = BulletConfigSyncingUtil.pullConfig(config).ammo.meta; + ResourceLocation tex; + switch (ammo) { + case 0: tex = ResourceManager.fireext_foam_tex; break; + case 1: tex = ResourceManager.fireext_sand_tex; break; + default: tex = ResourceManager.fireext_tex; break; + } + Minecraft.getMinecraft().renderEngine.bindTexture(tex); switch(type) { 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 568debf84..492a2be44 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderGunAnim.java @@ -4,14 +4,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.items.weapon.GunB92; -import com.hbm.items.weapon.GunBoltAction; -import com.hbm.items.weapon.GunLeverAction; import com.hbm.items.weapon.GunLeverActionS; import com.hbm.lib.RefStrings; -import com.hbm.render.anim.HbmAnimations; import com.hbm.render.model.ModelB92; import com.hbm.render.model.ModelB93; -import com.hbm.render.model.ModelBoltAction; import com.hbm.render.model.ModelLeverAction; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; @@ -21,14 +17,12 @@ import net.minecraftforge.client.IItemRenderer; public class ItemRenderGunAnim implements IItemRenderer { - protected ModelLeverAction leveraction; - protected ModelBoltAction boltaction; + protected ModelLeverAction flippedGun; protected ModelB92 b92; protected ModelB93 b93; public ItemRenderGunAnim() { - leveraction = new ModelLeverAction(); - boltaction = new ModelBoltAction(); + flippedGun = new ModelLeverAction(); b92 = new ModelB92(); b93 = new ModelB93(); } @@ -52,24 +46,14 @@ public class ItemRenderGunAnim implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - float lever = 0; - switch(type) { case EQUIPPED_FIRST_PERSON: GL11.glPushMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_sonata) + if(item.getItem() == ModItems.gun_lever_action_sonata) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverAction.png")); - if(item.getItem() == ModItems.gun_bolt_action) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionDark.png")); - if(item.getItem() == ModItems.gun_lever_action_dark) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelLeverActionDark.png")); - if(item.getItem() == ModItems.gun_bolt_action_green) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionGreen.png")); - if(item.getItem() == ModItems.gun_bolt_action_saturnite) - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelBoltActionSaturnite.png")); if(item.getItem() == ModItems.gun_b92) Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelB92SM.png")); if(item.getItem() == ModItems.gun_b93) @@ -87,29 +71,12 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(2.3F, 0.2F, 0.8F); } - if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark) { - - double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL"); - GL11.glTranslated(recoil[0], recoil[1] * 4, recoil[2]); - - GL11.glTranslatef(-1.5F, 0, 0); - double[] rotation = HbmAnimations.getRelevantTransformation("LEVER_ROTATE"); - GL11.glRotated(rotation[2], 0.0, 0.0, 1.0); - lever = (float) Math.toRadians(rotation[2] * 2); - GL11.glTranslatef(1.5F, 0, 0); - } - 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_bolt_action || item.getItem() == ModItems.gun_bolt_action_green || item.getItem() == ModItems.gun_bolt_action_saturnite) && GunBoltAction.getRotationFromAnim(item) > 0) { - GL11.glRotatef(GunBoltAction.getRotationFromAnim(item) * 10, 2.5F, 0.0F, 1.5F); - GL11.glTranslatef(GunBoltAction.getOffsetFromAnim(item) * -1.75F, 0.0F, 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); @@ -122,21 +89,8 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(off * -0.5F, off * -0.5F, 0.0F); } - if(item.getItem() == ModItems.gun_bolt_action || item.getItem() == ModItems.gun_bolt_action_green || - item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark - || item.getItem() == ModItems.gun_bolt_action_saturnite) { - GL11.glTranslatef(0.0F, -0.4F, 0.0F); - 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_lever_action || item.getItem() == ModItems.gun_lever_action_dark) - leveraction.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, lever); if(item.getItem() == ModItems.gun_lever_action_sonata) - leveraction.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverActionS.getRotationFromAnim(item)); - if(item.getItem() == ModItems.gun_bolt_action || item.getItem() == ModItems.gun_bolt_action_green || item.getItem() == ModItems.gun_bolt_action_saturnite) - boltaction.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunBoltAction.getLevRotationFromAnim(item), GunBoltAction.getTransFromAnim(item)); + 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) @@ -177,12 +131,8 @@ public class ItemRenderGunAnim implements IItemRenderer { GL11.glTranslatef(2.3F, 0.2F, 0.8F); } - if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark) - leveraction.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverAction.getRotationFromAnim(item)); if(item.getItem() == ModItems.gun_lever_action_sonata) - leveraction.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunLeverActionS.getRotationFromAnim(item)); - if(item.getItem() == ModItems.gun_bolt_action || item.getItem() == ModItems.gun_bolt_action_green || item.getItem() == ModItems.gun_bolt_action_saturnite) - boltaction.renderAnim((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, GunBoltAction.getLevRotationFromAnim(item), GunBoltAction.getTransFromAnim(item)); + 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/ItemRenderObj.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderObj.java deleted file mode 100644 index b6c9b5b14..000000000 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderObj.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hbm.render.item.weapon; - -import org.lwjgl.opengl.GL11; - -import com.hbm.items.ModItems; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -public class ItemRenderObj implements IItemRenderer { - - public ItemRenderObj() { } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch(type) { - case EQUIPPED: - case EQUIPPED_FIRST_PERSON: - case ENTITY: - return true; - default: return false; - } - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch(type) { - case EQUIPPED_FIRST_PERSON: - GL11.glRotatef(70F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-50F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(-0.6F, -0.9F, 0.2F); - case EQUIPPED: - case ENTITY: - default: - GL11.glPushMatrix(); - if(item.getItem() == ModItems.gun_brimstone) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.brimstone_tex); - //GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(190F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-0.7F, -0.4F, -1.1F); - GL11.glDisable(GL11.GL_CULL_FACE); - if(item.getItem() == ModItems.gun_brimstone) - ResourceManager.brimstone.renderAll(); - GL11.glPopMatrix(); break; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java index 0df9e0b12..f99591f9d 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java @@ -3,6 +3,7 @@ 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 net.minecraft.client.Minecraft; @@ -34,6 +35,9 @@ public class ItemRenderWeaponNovac implements IItemRenderer { @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); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index 5abd38f7a..d25492de0 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -38,9 +38,7 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(item.getX(), item.getY(), item.getZ()); - if(stack.getItem() == ModItems.ammo_nuke || stack.getItem() == ModItems.ammo_nuke_low || - stack.getItem() == ModItems.ammo_nuke_high || stack.getItem() == ModItems.ammo_nuke_safe || - stack.getItem() == ModItems.ammo_nuke_pumpkin) { + if(stack.getItem() == ModItems.ammo_nuke) { renderNuke(); } else if(stack.getItem() == ModItems.gun_fatman || stack.getItem() == ModItems.gun_proto || stack.getItem() == ModItems.gun_mirv) { diff --git a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java index d4283cc03..50ef61541 100644 --- a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java +++ b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL12; import com.hbm.extprop.HbmPlayerProps; import com.hbm.interfaces.Spaghetti; +import com.hbm.interfaces.Untested; import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; @@ -13,6 +14,7 @@ import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -34,59 +36,56 @@ public class RenderScreenOverlay { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - - float radiation = 0; - - radiation = lastResult - prevResult; - - if(System.currentTimeMillis() >= lastSurvey + 1000) { - lastSurvey = System.currentTimeMillis(); - prevResult = lastResult; - lastResult = in; - } - + // GL11.glDisable(GL11.GL_DEPTH_TEST); + // GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + + float radiation = 0; + + radiation = lastResult - prevResult; + + if(System.currentTimeMillis() >= lastSurvey + 1000) { + lastSurvey = System.currentTimeMillis(); + prevResult = lastResult; + lastResult = in; + } + int length = 74; int maxRad = 1000; - + int bar = getScaled(in, maxRad, 74); - - //if(radiation >= 1 && radiation <= 999) - // bar -= (1 + Minecraft.getMinecraft().theWorld.rand.nextInt(3)); - + int posX = 16; int posY = resolution.getScaledHeight() - 18 - 2; Minecraft.getMinecraft().renderEngine.bindTexture(misc); - gui.drawTexturedModalRect(posX, posY, 0, 0, 94, 18); - gui.drawTexturedModalRect(posX + 1, posY + 1, 1, 19, bar, 16); - - if(radiation >= 25) { - gui.drawTexturedModalRect(posX + length + 2, posY - 18, 36, 36, 18, 18); - - } else if(radiation >= 10) { - gui.drawTexturedModalRect(posX + length + 2, posY - 18, 18, 36, 18, 18); - - } else if(radiation >= 2.5) { - gui.drawTexturedModalRect(posX + length + 2, posY - 18, 0, 36, 18, 18); - - } - + gui.drawTexturedModalRect(posX, posY, 0, 0, 94, 18); + gui.drawTexturedModalRect(posX + 1, posY + 1, 1, 19, bar, 16); + + if(radiation >= 25) { + gui.drawTexturedModalRect(posX + length + 2, posY - 18, 36, 36, 18, 18); + + } else if(radiation >= 10) { + gui.drawTexturedModalRect(posX + length + 2, posY - 18, 18, 36, 18, 18); + + } else if(radiation >= 2.5) { + gui.drawTexturedModalRect(posX + length + 2, posY - 18, 0, 36, 18, 18); + + } + if(radiation > 1000) { Minecraft.getMinecraft().fontRenderer.drawString(">1000 RAD/s", posX, posY - 8, 0xFF0000); } else if(radiation >= 1) { - Minecraft.getMinecraft().fontRenderer.drawString(((int)Math.round(radiation)) + " RAD/s", posX, posY - 8, 0xFF0000); + Minecraft.getMinecraft().fontRenderer.drawString(((int) Math.round(radiation)) + " RAD/s", posX, posY - 8, 0xFF0000); } else if(radiation > 0) { Minecraft.getMinecraft().fontRenderer.drawString("<1 RAD/s", posX, posY - 8, 0xFF0000); } - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(true); - GL11.glPopMatrix(); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(true); + GL11.glPopMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } @@ -313,6 +312,48 @@ public class RenderScreenOverlay { Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } + @Untested + public static void renderScope(ScaledResolution res, ResourceLocation tex) { + + GL11.glEnable(GL11.GL_BLEND); + //GL11.glDisable(GL11.GL_DEPTH_TEST); + //GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + + Minecraft.getMinecraft().renderEngine.bindTexture(tex); + Tessellator tess = Tessellator.instance; + + double w = res.getScaledWidth(); + double h = res.getScaledHeight(); + + double smallest = Math.min(w, h); + double divisor = smallest / (9D / 16D); + smallest = 9D / 16D; + double largest = Math.max(w, h) / divisor; + + double hMin = h < w ? 0.5 - smallest / 2D : 0.5 - largest / 2D; + double hMax = h < w ? 0.5 + smallest / 2D : 0.5 + largest / 2D; + double wMin = w < h ? 0.5 - smallest / 2D : 0.5 - largest / 2D; + double wMax = w < h ? 0.5 + smallest / 2D : 0.5 + largest / 2D; + + double depth = -300D; + + tess.startDrawingQuads(); + + tess.addVertexWithUV(0, h, depth, wMin, hMax); + tess.addVertexWithUV(w, h, depth, wMax, hMax); + tess.addVertexWithUV(w, 0, depth, wMax, hMin); + tess.addVertexWithUV(0, 0, depth, wMin, hMin); + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } + public enum Crosshair { NONE(0, 0, 0), diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index 73769b3b3..bc36ef189 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.items.tool.ItemKeyPin; import net.minecraft.entity.player.EntityPlayer; @@ -186,7 +187,7 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven //DEBUG, remove later if(slots[2] != null && slots[2].getItem() == ModItems.ammo_4gauge) { - slots[2] = new ItemStack(ModItems.ammo_4gauge_titan, slots[2].stackSize); + slots[2] = ModItems.ammo_4gauge.stackFromEnum(slots[2].stackSize, Ammo4Gauge.QUACK); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 7adb7a7c6..ed3e44148 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -348,6 +348,8 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen for(EntityItem item : items) { + if(item.isDead) continue; + if(nullifier && bad.contains(item.getEntityItem().getItem())) { item.setDead(); continue; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 4ad7a19ee..a32914fc3 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -5,9 +5,11 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityArtilleryShell; +import com.hbm.handler.CasingEjector; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretArty; import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemAmmoArty; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -210,6 +212,13 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen proj.setWhistle(true); worldObj.spawnEntityInWorld(proj); + + casingDelay = this.casingDelay(); + } + + @Override + public int casingDelay() { + return 7; } protected void updateConnections() { @@ -333,6 +342,12 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen this.didJustShoot = false; + if(casingDelay > 0) { + casingDelay--; + } else { + spawnCasing(); + } + } else { Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); @@ -364,6 +379,7 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen ItemStack conf = this.getShellLoaded(); if(conf != null) { + cachedCasingConfig = ItemAmmoArty.itemTypes[conf.getItemDamage()].casing; this.spawnShell(conf); this.conusmeAmmo(ModItems.ammo_arty); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 25.0F, 1.0F); @@ -388,6 +404,18 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen } } + protected static CasingEjector ejector = new CasingEjector().setMotion(0, 0.6, -1).setAngleRange(0.1F, 0.1F); + + @Override + protected CasingEjector getEjector() { + return ejector; + } + + @Override + protected Vec3 getCasingSpawnPos() { + return this.getTurretPos(); + } + @Override public void handleButtonPacket(int value, int meta) { if(meta == 5) { @@ -433,6 +461,25 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen nbt.setShort("mode", this.mode); } + + @Override + protected void spawnCasing() { + + if(cachedCasingConfig == null) return; + CasingEjector ej = getEjector(); + + Vec3 spawn = this.getCasingSpawnPos(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "casing"); + data.setFloat("pitch", (float) 0); + data.setFloat("yaw", (float) rotationYaw); + data.setBoolean("crouched", false); + data.setString("name", cachedCasingConfig.getName()); + if(ej != null) data.setInteger("ej", ej.getId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, spawn.xCoord, spawn.yCoord, spawn.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + cachedCasingConfig = null; + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index b6ad4f7b4..6d54d6a3a 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -12,13 +12,19 @@ import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemTurretBiometry; import com.hbm.lib.Library; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -31,7 +37,6 @@ import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.monster.IMob; import net.minecraft.entity.passive.IAnimals; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; @@ -90,6 +95,8 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple //tally marks! public int stattrak; + public int casingDelay; + protected SpentCasing cachedCasingConfig = null; /** * X @@ -212,6 +219,14 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple NBTTagCompound data = this.writePacket(); this.networkPack(data, 250); + if(usesCasings() && this.casingDelay() > 0) { + if(casingDelay > 0) { + casingDelay--; + } else { + spawnCasing(); + } + } + } else { Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); @@ -298,6 +313,9 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public abstract void updateFiringTick(); + public boolean usesCasings() { return false; } + public int casingDelay() { return 0; } + public BulletConfiguration getFirstConfigLoaded() { List list = getAmmoList(); @@ -315,7 +333,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(c); - if(conf.ammo == slots[i].getItem()) + if(conf.ammo != null && conf.ammo.matchesRecipe(slots[i], true)) return conf; } } @@ -336,13 +354,21 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity, bullet.spread); worldObj.spawnEntityInWorld(proj); + + if(usesCasings()) { + if(this.casingDelay() == 0) { + spawnCasing(); + } else { + casingDelay = this.casingDelay(); + } + } } - public void conusmeAmmo(Item ammo) { + public void conusmeAmmo(ComparableStack ammo) { for(int i = 1; i < 10; i++) { - if(slots[i] != null && slots[i].getItem() == ammo) { + if(slots[i] != null && ammo.matchesRecipe(slots[i], true)) { this.decrStackSize(i, 1); return; @@ -756,7 +782,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple BulletConfiguration config = BulletConfigSyncingUtil.pullConfig(i); if(config != null && config.ammo != null) { - ammoStacks.add(new ItemStack(config.ammo)); + ammoStacks.add(config.ammo.toStack()); } } @@ -781,10 +807,12 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple return this.isOn; } + @Override public void setPower(long i) { this.power = i; } - + + @Override public long getPower() { return this.power; } @@ -817,4 +845,30 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple public void closeInventory() { this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.closeC", 1.0F, 1.0F); } + + protected Vec3 getCasingSpawnPos() { + return this.getTurretPos(); + } + + protected CasingEjector getEjector() { + return null; + } + + protected void spawnCasing() { + + if(cachedCasingConfig == null) return; + CasingEjector ej = getEjector(); + + Vec3 spawn = this.getCasingSpawnPos(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "casing"); + data.setFloat("pitch", (float) -rotationPitch); + data.setFloat("yaw", (float) rotationYaw); + data.setBoolean("crouched", false); + data.setString("name", cachedCasingConfig.getName()); + if(ej != null) data.setInteger("ej", ej.getId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, spawn.xCoord, spawn.yCoord, spawn.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + cachedCasingConfig = null; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java index 80f5da180..7e2af2be1 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretChekhov.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -73,6 +74,7 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { BulletConfiguration conf = this.getFirstConfigLoaded(); if(conf != null) { + this.cachedCasingConfig = conf.spentCasing; this.spawnBullet(conf); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.chekhov_fire", 2.0F, 1.0F); @@ -91,6 +93,24 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { } } } + + @Override + protected Vec3 getCasingSpawnPos() { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(-1.125, 0.125, 0.25); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord); + } + + protected static CasingEjector ejector = new CasingEjector().setMotion(-0.8, 0.8, 0).setAngleRange(0.1F, 0.1F); + + @Override + protected CasingEjector getEjector() { + return ejector; + } public int getDelay() { return 2; @@ -139,7 +159,11 @@ public class TileEntityTurretChekhov extends TileEntityTurretBaseNT { @Override public void manualSetup() { - manual = true; } + + @Override + public boolean usesCasings() { + return true; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java index cadfc4c94..8a0b679b1 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFriendly.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.CasingEjector; public class TileEntityTurretFriendly extends TileEntityTurretChekhov { @@ -31,4 +32,11 @@ public class TileEntityTurretFriendly extends TileEntityTurretChekhov { public int getDelay() { return 5; } + + protected static CasingEjector ejector = new CasingEjector().setMotion(-0.3, 0.6, 0).setAngleRange(0.02F, 0.05F); + + @Override + protected CasingEjector getEjector() { + return ejector; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 6e57f56b5..0b0718d44 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.entity.projectile.EntityArtilleryRocket; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretHIMARS; import com.hbm.items.ModItems; @@ -198,7 +199,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem HIMARSRocket type = ItemAmmoHIMARS.itemTypes[available]; this.typeLoaded = available; this.ammo = type.amount; - this.conusmeAmmo(ModItems.ammo_himars); + this.conusmeAmmo(new ComparableStack(ModItems.ammo_himars, 1, available)); } } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java index 94df68742..a295b1487 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHoward.java @@ -6,9 +6,12 @@ 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.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.SpentCasing; import com.hbm.util.EntityDamageUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -126,9 +129,16 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { if(loaded > 0 && this.tPos != null) { + SpentCasing cfg = GunDGKFactory.CASINGDGK; + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.howard_fire", 4.0F, 0.9F + worldObj.rand.nextFloat() * 0.3F); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.howard_fire", 4.0F, 1F + worldObj.rand.nextFloat() * 0.3F); + for(int i = 0; i < 2; i++) { + this.cachedCasingConfig = cfg; + this.spawnCasing(); + } + if(timer % 2 == 0) { loaded--; @@ -174,4 +184,27 @@ public class TileEntityTurretHoward extends TileEntityTurretBaseNT { super.writeToNBT(nbt); nbt.setInteger("loaded", loaded); } + + @Override + protected Vec3 getCasingSpawnPos() { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(-0.875, 0.2, -0.125); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord); + } + + protected static CasingEjector ejector = new CasingEjector().setAngleRange(0.01F, 0.01F).setMotion(0, 0, -0.1); + + @Override + protected CasingEjector getEjector() { + return ejector.setMotion(0.4, 0, 0).setAngleRange(0.02F, 0.03F); + } + + @Override + public boolean usesCasings() { + return true; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java index 284706ca9..92066229d 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.turret; import com.hbm.config.WeaponConfig; +import com.hbm.handler.guncfg.GunDGKFactory; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -70,6 +71,9 @@ public class TileEntityTurretHowardDamaged extends TileEntityTurretHoward { this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.howard_fire", 4.0F, 0.7F + worldObj.rand.nextFloat() * 0.3F); + this.cachedCasingConfig = GunDGKFactory.CASINGDGK; + this.spawnCasing(); + if(worldObj.rand.nextInt(100) + 1 <= WeaponConfig.ciwsHitrate * 0.5) EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.shrapnel, 2F + worldObj.rand.nextInt(2)); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java index feddb8f2c..1e344c870 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretJeremy.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.CasingEjector; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -84,6 +85,7 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { BulletConfiguration conf = this.getFirstConfigLoaded(); if(conf != null) { + this.cachedCasingConfig = conf.spentCasing; this.spawnBullet(conf); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 4.0F, 1.0F); @@ -103,4 +105,32 @@ public class TileEntityTurretJeremy extends TileEntityTurretBaseNT { } } } + + @Override + protected Vec3 getCasingSpawnPos() { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(-2, 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord); + } + + protected static CasingEjector ejector = new CasingEjector().setAngleRange(0.01F, 0.01F).setMotion(0, 0, -0.2); + + @Override + protected CasingEjector getEjector() { + return ejector; + } + + @Override + public boolean usesCasings() { + return true; + } + + @Override + public int casingDelay() { + return 22; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java index e40b9093b..04521c296 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java @@ -6,6 +6,8 @@ import java.util.List; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.AmmoRocket; import com.hbm.items.ModItems; import net.minecraft.nbt.NBTTagCompound; @@ -128,7 +130,7 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.richard_fire", 2.0F, 1.0F); this.loaded--; - if(conf.ammo == ModItems.ammo_rocket_nuclear) + if(conf.ammo.equals(new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR)))) timer = -50; } else { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java index 1b8bd59e2..5a1a1326b 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretSentry.java @@ -5,6 +5,7 @@ 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.packet.AuxParticlePacketNT; @@ -164,6 +165,7 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG BulletConfiguration conf = this.getFirstConfigLoaded(); if(conf != null) { + this.cachedCasingConfig = conf.spentCasing; this.spawnBullet(conf); this.conusmeAmmo(conf.ammo); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.sentry_fire", 2.0F, 1.0F); @@ -192,6 +194,29 @@ public class TileEntityTurretSentry extends TileEntityTurretBaseNT implements IG } } } + + @Override + protected Vec3 getCasingSpawnPos() { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(0, 0.25,-0.125); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + return Vec3.createVectorHelper(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord); + } + + protected static CasingEjector ejector = new CasingEjector().setMotion(-0.3, 0.6, 0).setAngleRange(0.01F, 0.01F); + + @Override + protected CasingEjector getEjector() { + return ejector.setMotion(0.3, 0.6, 0); + } + + @Override + public boolean usesCasings() { + return true; + } @Override protected void seekNewTarget() { diff --git a/src/main/java/com/hbm/util/EnchantmentUtil.java b/src/main/java/com/hbm/util/EnchantmentUtil.java index b64ce08ab..8007924ae 100644 --- a/src/main/java/com/hbm/util/EnchantmentUtil.java +++ b/src/main/java/com/hbm/util/EnchantmentUtil.java @@ -75,42 +75,56 @@ public class EnchantmentUtil { * @param player * @param xp */ - public static void addExperience(EntityPlayer player, int xp, boolean silent) { - - int j = Integer.MAX_VALUE - player.experienceTotal; + public static void addExperience(EntityPlayer player, int xp, boolean silent) { - if(xp > j) { - xp = j; - } + int j = Integer.MAX_VALUE - player.experienceTotal; - player.experience += (float)xp / (float)player.xpBarCap(); + if(xp > j) { + xp = j; + } - for(player.experienceTotal += xp; player.experience >= 1.0F; player.experience /= (float)player.xpBarCap()) { - player.experience = (player.experience - 1.0F) * (float)player.xpBarCap(); - - if(silent) - addExperienceLevelSilent(player, 1); - else - player.addExperienceLevel(1); - } - } - - public static void setExperience(EntityPlayer player, int xp) { - - player.experienceLevel = 0; - player.experience = 0.0F; - player.experienceTotal = 0; - - addExperience(player, xp, true); - } - - public static void addExperienceLevelSilent(EntityPlayer player, int level) { - player.experienceLevel += level; + player.experience += (float) xp / (float) player.xpBarCap(); - if (player.experienceLevel < 0) { - player.experienceLevel = 0; - player.experience = 0.0F; - player.experienceTotal = 0; - } - } + for(player.experienceTotal += xp; player.experience >= 1.0F; player.experience /= (float) player.xpBarCap()) { + player.experience = (player.experience - 1.0F) * (float) player.xpBarCap(); + + if(silent) + addExperienceLevelSilent(player, 1); + else + player.addExperienceLevel(1); + } + } + + public static void setExperience(EntityPlayer player, int xp) { + + player.experienceLevel = 0; + player.experience = 0.0F; + player.experienceTotal = 0; + + addExperience(player, xp, true); + } + + public static void addExperienceLevelSilent(EntityPlayer player, int level) { + player.experienceLevel += level; + + if(player.experienceLevel < 0) { + player.experienceLevel = 0; + player.experience = 0.0F; + player.experienceTotal = 0; + } + } + + /** Fun fact: experienceTotal lies and has no actual purpose other than misleading people! */ + public static int getTotalExperience(EntityPlayer player) { + int xp = 0; + + /* count only completed levels */ + for(int i = 0; i < player.experienceLevel; i++) { + xp += xpBarCap(i); + } + + xp += xpBarCap(player.experienceLevel) * player.experience; + + return xp; + } } diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 4db264b7a..802c270b5 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -561,4 +561,53 @@ public class InventoryUtil { return success; } + + public static int countAStackMatches(ItemStack[] inventory, AStack stack, boolean ignoreSize) { + int count = 0; + + for(ItemStack itemStack : inventory) { + if(itemStack != null) { + if(stack.matchesRecipe(itemStack, true)) { + count += itemStack.stackSize; + } + } + } + return ignoreSize ? count : count / stack.stacksize; + } + + public static int countAStackMatches(EntityPlayer player, AStack stack, boolean ignoreSize) { + return countAStackMatches(player.inventory.mainInventory, stack, ignoreSize); + } + + public static boolean doesPlayerHaveAStack(EntityPlayer player, AStack stack, boolean shouldRemove, boolean ignoreSize) { + return doesInventoryHaveAStack(player.inventory.mainInventory, stack, shouldRemove, ignoreSize); + } + + public static boolean doesInventoryHaveAStack(ItemStack[] inventory, AStack stack, boolean shouldRemove, boolean ignoreSize) { + final int totalMatches; + int totalStacks = 0; + for(ItemStack itemStack : inventory) { + if(itemStack != null && stack.matchesRecipe(itemStack, ignoreSize)) + totalStacks += itemStack.stackSize; + if(!shouldRemove && ignoreSize && totalStacks > 0) + return true; + } + + totalMatches = ignoreSize ? totalStacks : totalStacks / stack.stacksize; + + if(shouldRemove) { + int consumedStacks = 0, requiredStacks = ignoreSize ? 1 : stack.stacksize; + for(ItemStack itemStack : inventory) { + if(consumedStacks > requiredStacks) + break; + if(itemStack != null && stack.matchesRecipe(itemStack, true)) { + final int toConsume = Math.min(itemStack.stackSize, requiredStacks - consumedStacks); + itemStack.stackSize -= toConsume; + consumedStacks += toConsume; + } + } + } + + return totalMatches > 0; + } } diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 519c4c428..fd95b1c4c 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -27,7 +28,7 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { if(world.rand.nextInt(5) == 0) - loot.addItem(new ItemStack(ModItems.ammo_nuke_low), -0.25, 0, -0.125); + loot.addItem(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), -0.25, 0, -0.125); else loot.addItem(new ItemStack(ModItems.ammo_rocket), -0.25, 0, -0.25); @@ -122,8 +123,8 @@ public class LootGenerator { if(world.rand.nextBoolean() || memes) { int type = world.rand.nextInt(11); - Item nuke = memes ? ModItems.ammo_nuke_pumpkin : type == 0 ? ModItems.ammo_nuke : type <= 5 ? ModItems.ammo_nuke_low : ModItems.ammo_nuke_safe; - loot.addItem(new ItemStack(nuke), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); + AmmoFatman nuke = memes ? AmmoFatman.PUMPKIN : type == 0 ? AmmoFatman.STOCK : type <= 5 ? AmmoFatman.LOW : AmmoFatman.SAFE; + loot.addItem(ModItems.ammo_nuke.stackFromEnum(nuke), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); } } } diff --git a/src/main/java/com/hbm/util/Tuple.java b/src/main/java/com/hbm/util/Tuple.java index 250989cc5..cd69db973 100644 --- a/src/main/java/com/hbm/util/Tuple.java +++ b/src/main/java/com/hbm/util/Tuple.java @@ -12,8 +12,8 @@ public class Tuple { public static class Pair { - X key; - Y value; + public X key; + public Y value; //because fuck you public Pair(X x, Y y) { this.key = x; diff --git a/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java index 5219e255f..4bb3ea17b 100644 --- a/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java @@ -22,7 +22,7 @@ import net.minecraft.world.gen.structure.StructureStart; public class MapGenNTMFeatures extends MapGenStructure { //BiomeDictionary could be /very/ useful, since it automatically sorts *all* biomes into predefined categories - private static List biomelist = Arrays.asList(new BiomeGenBase[] {BiomeGenBase.ocean, BiomeGenBase.river, BiomeGenBase.frozenOcean, BiomeGenBase.frozenRiver, BiomeGenBase.deepOcean}); + private static List biomelist; /** Maximum distance between structures */ private int maxDistanceBetweenScatteredFeatures; /** Minimum distance between structures */ @@ -64,6 +64,11 @@ public class MapGenNTMFeatures extends MapGenStructure { if(k == i1 && l == j1) { BiomeGenBase biomegenbase = this.worldObj.getWorldChunkManager().getBiomeGenAt(k * 16 + 8, l * 16 + 8); + + if(biomelist == null) { + biomelist = Arrays.asList(new BiomeGenBase[] {BiomeGenBase.ocean, BiomeGenBase.river, BiomeGenBase.frozenOcean, BiomeGenBase.frozenRiver, BiomeGenBase.deepOcean}); + } + Iterator iterator = biomelist.iterator(); while(iterator.hasNext()) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b2e15f7cc..659be366e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -789,6 +789,7 @@ item.ammo_12gauge.name=Kaliber 12 Schrot item.ammo_12gauge_du.name=Kaliber 12 Schrot (Uranbeschichtung) item.ammo_12gauge_incendiary.name=Kaliber 12 Schrot (Brand) item.ammo_12gauge_marauder.name=Kaliber 12 Taktische Anti-Marauder Schrotpatrone +item.ammo_12gauge_percussion.name=Kaliber 12 Sprengkapsel item.ammo_12gauge_shrapnel.name=Kaliber 12 Schrot (Schrapnell) item.ammo_12gauge_sleek.name=Kaliber 12 Schrot (IF-F&E) item.ammo_20gauge.name=Kaliber 20 Schrot @@ -815,6 +816,9 @@ item.ammo_44_pip.name=.44 Magnum Patrone (Güterwagon) item.ammo_44_rocket.name=.44 Magnum Rakete item.ammo_44_silver.name=.44 Magnum Patrone (Gebäude) item.ammo_44_star.name=.44 Magnum Patrone (Sternenmetall) +item.ammo_45.name=.45 ACP Patrone +item.ammo_45_ap.name=.45 ACP Patrone (AP) +item.ammo_45_du.name=.45 ACP Patrone (DU) item.ammo_4gauge.name=Kaliber 20 Schrot item.ammo_4gauge_balefire.name=23mm Balefire-Granate item.ammo_4gauge_canister.name=23mm Rakete (Katusche) @@ -866,6 +870,12 @@ item.ammo_5mm_chlorophyte.name=5mm Patrone (Grünalgen) item.ammo_5mm_du.name=5mm Patrone (DU) item.ammo_5mm_explosive.name=5mm Patrone (Explosiv) item.ammo_5mm_star.name=5mm Patrone (Sternenmetall) +item.ammo_762.name=7.62mm Patrone +item.ammo_762_ap.name=7.62mm Patrone (AP) +item.ammo_762_du.name=7.62mm Patrone (DU) +item.ammo_762_k.name=7.62mm K-Patrone +item.ammo_762_phosphorus.name=7.62mm Patrone (WP) +item.ammo_762_tracer.name=7.62mm Patrone (Leuchtspur) item.ammo_75bolt.name=30er .75 Bolzenmagazin item.ammo_75bolt_incendiary.name=30er .75 Bolzenmagazin (Brand) item.ammo_75bolt_he.name=30er .75 Bolzenmagazin (Explosiv) @@ -913,6 +923,9 @@ item.ammo_grenade_toxic.name=40mm Granate (Chemisch) item.ammo_grenade_tracer.name=40mm Übungsgranate item.ammo_himars_standard.name=M28 gelenkte Artillerierakete item.ammo_himars_single.name=M39A1 gelenkte Artillerierakete +item.ammo_luna.name=Lunatic Sniper Sabot +item.ammo_luna_explosive.name=Lunatic Sniper Explosivgeschoss +item.ammo_luna_incendiary.name=Lunatic Sniper Brandgeschoss item.ammo_mirv.name=Mini-MIRV item.ammo_mirv_high.name=Mini-MIRV (Stark) item.ammo_mirv_low.name=Mini-MIRV (Schwach) @@ -989,7 +1002,9 @@ item.asbestos_helmet.name=Hitzeschutzhelm item.asbestos_legs.name=Hitzeschutzhose item.asbestos_plate.name=Hitzeschutzbrustplatte item.ashglasses.name=Aschegläser +item.assembly_45.name=.45 ACP Patronensatz item.assembly_556.name=5.56mm Patronensatz +item.assembly_762.name=7.62mm Patronensatz item.assembly_actionexpress.name=.50 AE Patronensatz item.assembly_calamity.name=.50 BMG Patronensatz item.assembly_desh.name=Desh-Patronensatz @@ -997,6 +1012,7 @@ item.assembly_gold.name=Goldpatronensatz item.assembly_iron.name=Eisenpatronensatz item.assembly_lacunae.name=5mm Patronensatz item.assembly_lead.name=Glaspatronensatz +item.assembly_luna.name=Lunatic Sniper Patronensatz item.assembly_nightmare.name=Nightmare-Patronensatz item.assembly_nopip.name=.44er Patronensatz item.assembly_nuke.name=Miniatombombengehäuse @@ -1283,6 +1299,7 @@ item.centrifuge_element.name=Zentrifugenelement item.centrifuge_tower.name=Zentrifugenturm item.chainsaw.name=Kettensäge item.cheese.name=Käse +item.cheese_quesadilla.name=Käse-Quesadilla item.chemistry_set.name=Laborgläser item.chemistry_set_boron.name=Laborgläser (Borglas) item.chemistry_template.name=Chemievorlage: @@ -1759,7 +1776,7 @@ item.gun_moist_nugget.name=Mosin-Nagant item.gun_mp.name=Maschinengewehr des Pazifisten item.gun_mp40.name=Maschinenpistole item.gun_mp40_ammo.name=SMG-Patrone (LEGACY) -item.gun_mp_ammo.name=Kleine treibmittellose MG-Patrone +item.gun_pm_ammo.name=Kleine treibmittellose MG-Patrone item.gun_mymy.name=Nietes item.gun_osipr.name=Standartausrüstung für Sicherheitskräfte item.gun_osipr_ammo.name=Dunkler Energiepuls-Plug @@ -2861,6 +2878,7 @@ item.shimmer_head.name=Schwerer Hammerkopf item.shimmer_sledge.name=Shimmer Sledge item.singularity.name=Singularität item.singularity_counter_resonant.name=Eingefasste nicht-resonante Singularität +item.singularity_micro.name=Mikrosingularität item.singularity_spark.name=Spark'sche Singularität item.singularity_super_heated.name=Supererhitzte resonante Singularität item.siox.name=SiOX-Krebsmedikament diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f00beea77..ae28468de 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -793,12 +793,6 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ -desc.item.rtgDecay=Decays to: %s -desc.item.rtgHeat=Power Level: %s -desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. @@ -825,6 +819,133 @@ desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the wa desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.item.ammo.con_accuracy2=- Highly decreased accuracy +desc.item.ammo.con_damage=- Highly decreased damage +desc.item.ammo.con_heavy_wear=- Highly increased wear +desc.item.ammo.con_ling_fire=- No lingering fire +desc.item.ammo.con_nn=- Not even a nuke +desc.item.ammo.con_no_damage=- No damage +desc.item.ammo.con_no_explode1=- Non-explosive +desc.item.ammo.con_no_explode2=- No block damage +desc.item.ammo.con_no_explode3=- No splash damage +desc.item.ammo.con_no_fire=- Not incendiary +desc.item.ammo.con_no_mirv=- Not recommended for the Proto MIRV +desc.item.ammo.con_no_projectile=- No projectile +desc.item.ammo.con_penetration=- Not penetrating +desc.item.ammo.con_radius=- Decreased blast radius +desc.item.ammo.con_range2=- Highly decreased range +desc.item.ammo.con_sing_projectile=- Single projectile +desc.item.ammo.con_speed=- Decreased projectile speed +desc.item.ammo.con_super_wear=- Very highly increased wear +desc.item.ammo.con_wear=- Increased wear +desc.item.ammo.neu_40mm=* It's a 40mm grenade that we squeezed to fit the barrel! +desc.item.ammo.neu_blank=* It's a blank +desc.item.ammo.neu_boat=* Boat +desc.item.ammo.neu_boxcar=* Boxcar +desc.item.ammo.neu_building=* Building +desc.item.ammo.neu_chlorophyte=* Chlorophyte +desc.item.ammo.neu_eraser=* For removing big mistakes +desc.item.ammo.neu_fun=* Fun for the whole family! +desc.item.ammo.neu_heavy_metal=* Heavy Metal +desc.item.ammo.neu_homing=* Homing +desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_less_bouncy=* Less bouncy +desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes +desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite +desc.item.ammo.neu_more_bouncy=* Extra bouncy +desc.item.ammo.neu_no_bounce=* Not bouncy +desc.item.ammo.neu_no_con=* No drawbacks lole +desc.item.ammo.neu_starmetal=* Starmetal +desc.item.ammo.neu_tracer=* Tracer +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* Technically a warcrime +desc.item.ammo.neu_warcrime2=* Twice the warcrime in a single round! +desc.item.ammo.pro_accurate1=+ Increased accuracy +desc.item.ammo.pro_accurate2=+ Near-perfect accuracy +desc.item.ammo.pro_balefire=+ Balefire +desc.item.ammo.pro_bomb_count=+ Increased bomb count +desc.item.ammo.pro_caustic=+ Caustic +desc.item.ammo.pro_chainsaw=+ Chainsaw +desc.item.ammo.pro_chlorine=+ Chlorine gas +desc.item.ammo.pro_damage=+ Increased damage +desc.item.ammo.pro_damage_slight=+ Above average damage +desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_explosive=+ Explosive +desc.item.ammo.pro_fallout=+ Fallout +desc.item.ammo.pro_fit_357=+ Fits every .357 model +desc.item.ammo.pro_flames=+ Increased flame count +desc.item.ammo.pro_gravity=+ Decreased gravity +desc.item.ammo.pro_heavy_damage=+ Highly increased damage +desc.item.ammo.pro_incendiary=+ Incendiary +desc.item.ammo.pro_lunatic=+ Lunatic +desc.item.ammo.pro_marauder=+ Instantly removes annoying and unbalanced enemies +desc.item.ammo.pro_mining=+ Explosion drops all blocks +desc.item.ammo.pro_no_gravity=+ Not affected by gravity +desc.item.ammo.pro_nuclear=+ Nuclear +desc.item.ammo.pro_penetration=+ Penetrating +desc.item.ammo.pro_percussion=+ Percussive blast +desc.item.ammo.pro_phosphorus=+ Induces phosphorus burns +desc.item.ammo.pro_phosphorus_splash=+ Phosphorus splash +desc.item.ammo.pro_poison_gas=+ Poison splash +desc.item.ammo.pro_radius=+ Increased blast radius +desc.item.ammo.pro_radius_high=+ Highly increased blast radius +desc.item.ammo.pro_range=+ Increased range +desc.item.ammo.pro_rocket=+ Rocket +desc.item.ammo.pro_rocket_propelled=+ Rocket Propelled +desc.item.ammo.pro_shrapnel=+ Shrapnel +desc.item.ammo.pro_speed=+ Increased projectile speed +desc.item.ammo.pro_stunning=+ Stunning +desc.item.ammo.pro_toxic=+ Toxic +desc.item.ammo.pro_wear=+ Decreased wear +desc.item.ammo.pro_withering=+ Withering +desc.item.armorMod.display=to display installed armor mods +desc.item.battery.charge=Charge: %s / %sHE +desc.item.battery.chargePerc=Charge: %s%% +desc.item.battery.chargeRate=Charge rate: %sHE/tick +desc.item.battery.dischargeRate=Discharge rate: %sHE/tick +desc.item.durability=Durability: %s +desc.item.grenade.fuse=Fuse: %s +desc.item.grenade.fuseImpact=Impact +desc.item.grenade.fuseInstant=Instant +desc.item.gun.ammo=Ammo %s +desc.item.gun.ammoBelt=Belt +desc.item.gun.ammoEnergy=Energy; %sHE per shot +desc.item.gun.ammoEnergyAlt=%sHE per alt shot +desc.item.gun.ammoMag=%s / %s +desc.item.gun.ammoType=Ammo Type: %s +desc.item.gun.ammoTypeAlt=Secondary Ammo: %s +desc.item.gun.damage=Damage: %s - %s +desc.item.gun.damageAlt=Damage: %s +desc.item.gun.lore=to view in-depth lore +desc.item.gun.loreFunc=to view in-depth functionality +desc.item.gun.manufacturer=Manufacturer: %s +desc.item.gun.name=Name: %s +desc.item.gun.penetration=Armor Penetration Value: %s +desc.item.kitArmor=Armor will be displaced by new set. +desc.item.kitHaz=Armor will be displaced by hazmat suit. +desc.item.kitPack=What a bargain! +desc.item.kitPool=Please empty inventory before opening! +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.rtgDecay=Decays to: %s +desc.item.rtgHeat=Power Level: %s +desc.item.storage.capacity=Capacity %s%%s +desc.item.storage.proscons=to view pros cons list +desc.misc.357=.357 Magnum +desc.misc.556=.223 Remington +desc.misc.762=.308 Winchester +desc.misc.func=§n-- Function -- +desc.misc.lanthanum="Lanthanum" +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s +desc.misc.noPos=No position set! +desc.misc.pos=Set pos to: %s, %s, %s +desc.misc.posSet=Position set! +desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -871,6 +992,129 @@ geiger.playerRes=Player resistance: geiger.title=GEIGER COUNTER geiger.title.dosimeter=DOSIMETER +gun.make.ARMALITE=Armalite +gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation +gun.make.BAE=BAE Systems plc +gun.make.BENELLI=Benelli Armi SpA +gun.make.BLACK_MESA=Black Mesa Research Facility +gun.make.CERIX=Cerix Magnus +gun.make.COLT=Colt's Manufacturing Company +gun.make.COMBINE=The Universal Union +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.ENZINGER=Enzinger Union +gun.make.EQUESTRIA=Equestria Missile Systems +gun.make.FLIMFLAM=FlimFlam Industries +gun.make.F_STRONG=Fort Strong +gun.make.GLORIA=Gloria GmbH +gun.make.HASBRO=Hasbro +gun.make.H_AND_K=Heckler & Koch +gun.make.H_AND_R=Harrington & Richardson +gun.make.IF=Ironshod Firearms +gun.make.IMI=Israel Military Industries +gun.make.IMI_BIGMT=IMI / Big MT +gun.make.LANGFORD=Langford Research Laboratories +gun.make.LUNA=Lunar Defense Corp +gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries +gun.make.MANN=Open Mann Co. +gun.make.MAXIM=Hiram Maxim +gun.make.METRO=Metro Gunsmiths +gun.make.MWT=MWT Prototype Labs +gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.NONE=- +gun.make.RAYTHEON=Raytheon Missile Systems +gun.make.ROCKWELL=Rockwell International Corporation +gun.make.ROCKWELL_U=Rockwell International Corporation? +gun.make.RYAN=Ryan Industries +gun.make.SAAB=Saab Bofors Dynamics +gun.make.SACO=Saco Defense / US Ordnance +gun.make.TULSKY=Tulsky Oruzheiny Zavod +gun.make.UAC=Union Aerospace Corporation +gun.make.UNKNOWN=??? +gun.make.WESTTEK=WestTek +gun.make.WGW=Wilhelm-Gustloff-Werke +gun.make.WINCHESTER=Winchester Repeating Arms Company +gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT + +gun.name.ar15_50=AR-15 .50 BMG Mod +gun.name.baeAR=Britannian Standard Issue Assault Rifle +gun.name.bel=Balefire Egg Launcher +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.name.bio=RI No. 2 Mark 1 +gun.name.bolter=Manticora Pattern Boltgun +gun.name.cPython=Colt Python +gun.name.cz53=CZ53 Personal Minigun +gun.name.cz57=CZ57 Avenger Minigun +gun.name.dart=Needle Gun +gun.name.deagle=IMI Desert Eagle +gun.name.emp=EMP Orb Projector +gun.name.extinguisher=PROTEX Fire Exinguisher 6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=Granatpistole HK69 +gun.name.gustav=Carl Gustav Recoilless Rifle M1 +gun.name.ifHorseshoe=IF-18 Horseshoe +gun.name.ifPit=IF-18 Horseshoe Bottomless Pit +gun.name.ifScope=IF-18 Horseshoe Scoped +gun.name.ifStorm=IF-18 Horseshoe Silver Storm +gun.name.ifVanity=IF-18 Horseshoe Vanity +gun.name.karl=M1 Karl-Gerät +gun.name.ks23=KS-23 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=Hopeville Laser Detonator +gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaHLR=1944 Chang'e type Light Machine Gun +gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) +gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle +gun.name.lunaTWR=Time Warp Rifle +gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m42=M-42 Tactical Nuclear Catapult +gun.name.m42MIRV=M-42 Experimental MIRV +gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 +gun.name.maxim=Maxim gun +gun.name.maximDouble=Double Maxim gun +gun.name.mg42=Universal-Maschinengewehr Modell 42 - .50 Mod +gun.name.mp40=Maschinenpistole 40 +gun.name.nerf=NERF blaster of unknown design +gun.name.osipr=Overwatch Standard Issue Pulse Rifle +gun.name.panz=Raketenpanzerbüchse 54 +gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher +gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun +gun.name.sauer=Sauer Shotgun +gun.name.spas12=Franchi SPAS-12 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92 Stinger man-portable air-defense system +gun.name.stingerOneSky=The One Sky Stinger +gun.name.supershotty=Double-Barreled Combat Shotgun +gun.name.tau=XVL1456 Tau Cannon +gun.name.tommy9=M1A1 Submachine Gun 9mm Mod +gun.name.tommy=M1A1 Submachine Gun +gun.name.topaz=Heavy Duty Flamer +gun.name.uacCarbine=UAC-41 Carbine +gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDMR=UAC-30 Designated Marksman Rifle +gun.name.uacLMG=UAC-49 Light Machine Gun +gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun +gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun +gun.name.uboinik=Uboinik Revolving Shotgun +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=Winchester Model 1887 +gun.name.win1887Inox=Winchester Model 1887 Inox +gun.name.win20Inox=Winchester Model 20 Inox +gun.name.win20Poly=Winchester Model 20 Polymer +gun.name.win20Satur=Winchester Model 20 D-25A +gun.name.zomg=EMC101 Prismatic Negative Energy Cannon + hadron.analysis=Analyzing... hadron.buttonOn=Analysis Chamber (if present) is ON hadron.buttonOff=Analysis Chamber is OFF @@ -1147,6 +1391,7 @@ item.ammo_12gauge.name=12 Gauge Buckshot item.ammo_12gauge_du.name=12 Gauge Buckshot (Uranium Coated) item.ammo_12gauge_incendiary.name=12 Gauge Buckshot (Incendiary) item.ammo_12gauge_marauder.name=12 Gauge Tactical Anti-Marauder Shell +item.ammo_12gauge_percussion.name=12 Gauge Percussion Cap item.ammo_12gauge_shrapnel.name=12 Gauge Buckshot (Shrapnel) item.ammo_12gauge_sleek.name=12 Gauge Buckshot (IF-R&D) item.ammo_20gauge.name=20 Gauge Buckshot @@ -1173,6 +1418,9 @@ item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar) item.ammo_44_rocket.name=.44 Magnum Rocket item.ammo_44_silver.name=.44 Magnum Bullet (Building) item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) +item.ammo_45.name=.45 ACP Bullet +item.ammo_45_ap.name=.45 ACP Bullet (AP) +item.ammo_45_du.name=.45 ACP Bullet (DU) item.ammo_4gauge.name=4 Gauge Buckshot item.ammo_4gauge_balefire.name=23mm Balefire Grenade item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot) @@ -1227,6 +1475,12 @@ item.ammo_5mm_star.name=5mm Round (Starmetal) item.ammo_75bolt.name=.75 Bolt Magazine (30rnd) item.ammo_75bolt_incendiary.name=.75 Incendiary Bolt Magazine (30rnd) item.ammo_75bolt_he.name=.75 Bolt High-Explosive Magazine (30rnd) +item.ammo_762.name=7.62mm Round +item.ammo_762_ap.name=7.62mm Round (AP) +item.ammo_762_du.name=7.62mm Round (DU) +item.ammo_762_k.name=7.62mm K-Round +item.ammo_762_phosphorus.name=7.62mm Round (WP) +item.ammo_762_tracer.name=7.62mm Round (Tracer) item.ammo_9mm.name=9mm Round item.ammo_9mm_ap.name=9mm Round (Armor Piercing) item.ammo_9mm_chlorophyte.name=9mm Round (Chlorophyte) @@ -1271,6 +1525,9 @@ item.ammo_grenade_toxic.name=40mm Grenade (Chemical) item.ammo_grenade_tracer.name=40mm Training Grenade item.ammo_himars_standard.name=M28 Guided Artillery Rocket Pod item.ammo_himars_single.name=M39A1 Guided Artillery Rocket Pod +item.ammo_luna.name=Lunatic Sniper Sabot Round +item.ammo_luna_explosive.name=Lunatic Sniper Explosive Round +item.ammo_luna_incendiary.name=Lunatic Sniper Incendiary Round item.ammo_mirv.name=Mini MIRV item.ammo_mirv_high.name=Mini MIRV (High Yield) item.ammo_mirv_low.name=Mini MIRV (Low Yield) @@ -1350,7 +1607,9 @@ item.asbestos_helmet.name=Fire Proximity Helmet item.asbestos_legs.name=Fire Proximity Leggings item.asbestos_plate.name=Fire Proximity Chestplate item.ashglasses.name=Ash Goggles +item.assembly_45.name=.45 ACP Assembly item.assembly_556.name=5.56mm Assembly +item.assembly_762.name=7.62mm Assembly item.assembly_actionexpress.name=.50 AE Assembly item.assembly_calamity.name=.50 BMG Assembly item.assembly_desh.name=Desh Bullet Assembly @@ -1358,6 +1617,7 @@ item.assembly_gold.name=Gold Bullet Assembly item.assembly_iron.name=Iron Bullet Assembly item.assembly_lacunae.name=.5mm Assembly item.assembly_lead.name=Glass Bullet Assembly +item.assembly_luna.name=Lunatic Sniper Bullet Assembly item.assembly_nightmare.name=Nightmare Bullet Assembly item.assembly_nopip.name=.44 Magnum Assembly item.assembly_nuke.name=Mini Nuke Shell @@ -1659,6 +1919,7 @@ item.centrifuge_element.name=Centrifuge Element item.centrifuge_tower.name=Centrifuge Tower item.chainsaw.name=Chainsaw item.cheese.name=Cheese +item.cheese_quesadilla.name=Cheese Quesadilla item.chemistry_set.name=Laboratory Glassware item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass) item.chemistry_template.name=Chemistry Template: @@ -2159,7 +2420,7 @@ item.gun_moist_nugget.name=Mosin-Nagant item.gun_mp.name=Pacifist's Machine Gun item.gun_mp40.name=Submachine Gun item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) -item.gun_mp_ammo.name=Small Propellantless Machine Gun Round +item.gun_pm_ammo.name=Small Propellantless Machine Gun Round item.gun_mymy.name=Nietes item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle item.gun_osipr_ammo.name=Dark Energy Pulse Plug @@ -3408,6 +3669,7 @@ item.shimmer_head.name=Heavy Hammer Head item.shimmer_sledge.name=Shimmer Sledge item.singularity.name=Singularity item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity +item.singularity_micro.name=Micro Singularity item.singularity_spark.name=Spark Singularity item.singularity_super_heated.name=Superheated Resonating Singularity item.siox.name=SiOX Cancer Medication diff --git a/src/main/resources/assets/hbm/models/brimstone.obj b/src/main/resources/assets/hbm/models/brimstone.obj deleted file mode 100644 index c14450a78..000000000 --- a/src/main/resources/assets/hbm/models/brimstone.obj +++ /dev/null @@ -1,7091 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'brimstone_unified.blend' -# www.blender.org -o Cylinder.013 -v 0.266224 0.813588 -0.337500 -v 0.102394 0.928303 -0.337500 -v 0.301713 0.864270 -0.311872 -v 0.137882 0.978985 -0.311872 -v 0.316412 0.885263 -0.250000 -v 0.152582 0.999979 -0.250000 -v 0.301713 0.864270 -0.188128 -v 0.137882 0.978985 -0.188128 -v 0.266224 0.813588 -0.162500 -v 0.102394 0.928303 -0.162500 -v 0.230736 0.762905 -0.188128 -v 0.066906 0.877621 -0.188128 -v 0.216036 0.741912 -0.250000 -v 0.052206 0.856627 -0.250000 -v 0.230736 0.762905 -0.311872 -v 0.066906 0.877621 -0.311872 -v 0.307182 0.784909 -0.293750 -v 0.324926 0.810250 -0.280936 -v 0.332276 0.820747 -0.250000 -v 0.324926 0.810250 -0.219064 -v 0.307182 0.784909 -0.206250 -v 0.289438 0.759568 -0.219064 -v 0.282088 0.749071 -0.250000 -v 0.289438 0.759568 -0.280936 -v 0.348140 0.756230 -0.293750 -v 0.365884 0.781571 -0.280936 -v 0.373234 0.792068 -0.250000 -v 0.365884 0.781571 -0.219064 -v 0.348140 0.756230 -0.206250 -v 0.330396 0.730889 -0.219064 -v 0.323046 0.720392 -0.250000 -v 0.330396 0.730889 -0.280936 -v 0.335852 0.764834 -0.381250 -v 0.389085 0.840857 -0.342808 -v 0.411134 0.872347 -0.250000 -v 0.389085 0.840857 -0.157192 -v 0.335852 0.764834 -0.118750 -v 0.282620 0.688810 -0.157192 -v 0.260570 0.657320 -0.250000 -v 0.282620 0.688810 -0.342808 -v 0.380906 0.733287 -0.381250 -v 0.434138 0.809311 -0.342808 -v 0.456188 0.840801 -0.250000 -v 0.434138 0.809311 -0.157192 -v 0.380906 0.733287 -0.118750 -v 0.327673 0.657263 -0.157192 -v 0.305624 0.625773 -0.250000 -v 0.327673 0.657263 -0.342808 -v 0.368618 0.741891 -0.293750 -v 0.386363 0.767232 -0.280936 -v 0.393712 0.777728 -0.250000 -v 0.386363 0.767232 -0.219064 -v 0.368618 0.741891 -0.206250 -v 0.350874 0.716549 -0.219064 -v 0.343524 0.706053 -0.250000 -v 0.350874 0.716549 -0.280936 -v 0.389097 0.727551 -0.271875 -v 0.397969 0.740222 -0.265468 -v 0.401644 0.745470 -0.250000 -v 0.397969 0.740222 -0.234532 -v 0.389097 0.727551 -0.228125 -v 0.380225 0.714880 -0.234532 -v 0.376550 0.709632 -0.250000 -v 0.380225 0.714880 -0.265468 -v 0.229810 1.229810 -1.037500 -v 0.088388 1.088388 -1.037500 -v 0.186060 1.273560 -1.011872 -v 0.044638 1.132138 -1.011872 -v 0.167938 1.291682 -0.950000 -v 0.026517 1.150260 -0.950000 -v 0.186060 1.273560 -0.888128 -v 0.044638 1.132138 -0.888128 -v 0.229810 1.229810 -0.862500 -v 0.088388 1.088388 -0.862500 -v 0.273560 1.186060 -0.888128 -v 0.132138 1.044638 -0.888128 -v 0.291682 1.167938 -0.950000 -v 0.150260 1.026516 -0.950000 -v 0.273560 1.186060 -1.011872 -v 0.132138 1.044638 -1.011872 -v 0.265165 1.265165 -0.993750 -v 0.243290 1.287040 -0.980936 -v 0.234229 1.296101 -0.950000 -v 0.243290 1.287040 -0.919064 -v 0.265165 1.265165 -0.906250 -v 0.287040 1.243290 -0.919064 -v 0.296101 1.234229 -0.950000 -v 0.287040 1.243290 -0.980936 -v 0.300520 1.300520 -0.993750 -v 0.278645 1.322395 -0.980936 -v 0.269585 1.331456 -0.950000 -v 0.278645 1.322395 -0.919064 -v 0.300520 1.300520 -0.906250 -v 0.322395 1.278645 -0.919064 -v 0.331456 1.269584 -0.950000 -v 0.322395 1.278645 -0.980936 -v 0.289914 1.289914 -1.081250 -v 0.224289 1.355539 -1.042808 -v 0.197106 1.382721 -0.950000 -v 0.224289 1.355539 -0.857192 -v 0.289914 1.289914 -0.818750 -v 0.355539 1.224289 -0.857192 -v 0.382722 1.197106 -0.950000 -v 0.355539 1.224289 -1.042808 -v 0.328805 1.328805 -1.081250 -v 0.263180 1.394430 -1.042808 -v 0.235997 1.421612 -0.950000 -v 0.263180 1.394430 -0.857192 -v 0.328805 1.328805 -0.818750 -v 0.394430 1.263180 -0.857192 -v 0.421612 1.235997 -0.950000 -v 0.394430 1.263180 -1.042808 -v 0.318198 1.318198 -0.993750 -v 0.296323 1.340073 -0.980936 -v 0.287262 1.349134 -0.950000 -v 0.296323 1.340073 -0.919064 -v 0.318198 1.318198 -0.906250 -v 0.340073 1.296323 -0.919064 -v 0.349134 1.287262 -0.950000 -v 0.340073 1.296323 -0.980936 -v 0.335876 1.335876 -0.971875 -v 0.324938 1.346813 -0.965468 -v 0.320408 1.351344 -0.950000 -v 0.324938 1.346813 -0.934532 -v 0.335876 1.335876 -0.928125 -v 0.346813 1.324938 -0.934532 -v 0.351344 1.320408 -0.950000 -v 0.346813 1.324938 -0.965468 -v -0.162500 1.281458 0.262500 -v -0.062500 1.108253 0.262500 -v -0.216083 1.250522 0.288128 -v -0.116083 1.077317 0.288128 -v -0.238277 1.237708 0.350000 -v -0.138277 1.064503 0.350000 -v -0.216083 1.250522 0.411872 -v -0.116083 1.077317 0.411872 -v -0.162500 1.281458 0.437500 -v -0.062500 1.108253 0.437500 -v -0.108917 1.312394 0.411872 -v -0.008917 1.139189 0.411872 -v -0.086723 1.325208 0.350000 -v 0.013277 1.152003 0.350000 -v -0.108917 1.312394 0.288128 -v -0.008917 1.139189 0.288128 -v -0.187500 1.324759 0.306250 -v -0.214291 1.309292 0.319064 -v -0.225389 1.302885 0.350000 -v -0.214291 1.309292 0.380936 -v -0.187500 1.324759 0.393750 -v -0.160709 1.340227 0.380936 -v -0.149611 1.346635 0.350000 -v -0.160709 1.340227 0.319064 -v -0.212500 1.368061 0.306250 -v -0.239291 1.352593 0.319064 -v -0.250389 1.346186 0.350000 -v -0.239291 1.352593 0.380936 -v -0.212500 1.368061 0.393750 -v -0.185709 1.383529 0.380936 -v -0.174611 1.389936 0.350000 -v -0.185709 1.383529 0.319064 -v -0.205000 1.355070 0.218750 -v -0.285374 1.308667 0.257192 -v -0.318666 1.289445 0.350000 -v -0.285374 1.308667 0.442808 -v -0.205000 1.355070 0.481250 -v -0.124626 1.401474 0.442808 -v -0.091334 1.420695 0.350000 -v -0.124626 1.401474 0.257192 -v -0.232500 1.402702 0.218750 -v -0.312874 1.356298 0.257192 -v -0.346166 1.337077 0.350000 -v -0.312874 1.356298 0.442808 -v -0.232500 1.402702 0.481250 -v -0.152126 1.449106 0.442808 -v -0.118834 1.468327 0.350000 -v -0.152126 1.449106 0.257192 -v -0.225000 1.389711 0.306250 -v -0.251791 1.374243 0.319064 -v -0.262889 1.367836 0.350000 -v -0.251791 1.374243 0.380936 -v -0.225000 1.389711 0.393750 -v -0.198209 1.405179 0.380936 -v -0.187111 1.411586 0.350000 -v -0.198209 1.405179 0.319064 -v -0.237500 1.411362 0.328125 -v -0.250896 1.403628 0.334532 -v -0.256444 1.400425 0.350000 -v -0.250896 1.403628 0.365468 -v -0.237500 1.411362 0.371875 -v -0.224104 1.419096 0.365468 -v -0.218556 1.422300 0.350000 -v -0.224104 1.419096 0.334532 -v 0.445000 0.832342 -0.609143 -v 0.445000 0.757342 -0.739046 -v 0.500243 0.852158 -0.620584 -v 0.500243 0.777158 -0.750487 -v 0.523125 0.900000 -0.648205 -v 0.523125 0.825000 -0.778109 -v 0.500243 0.947842 -0.675826 -v 0.500243 0.872842 -0.805730 -v 0.445000 0.967658 -0.687268 -v 0.445000 0.892658 -0.817171 -v 0.389757 0.947842 -0.675826 -v 0.389757 0.872842 -0.805730 -v 0.366875 0.900000 -0.648205 -v 0.366875 0.825000 -0.778109 -v 0.389757 0.852158 -0.620584 -v 0.389757 0.777158 -0.750487 -v 0.481460 0.780925 -0.781529 -v 0.445000 0.767846 -0.773978 -v 0.496562 0.812500 -0.799760 -v 0.481460 0.844075 -0.817990 -v 0.445000 0.857154 -0.825541 -v 0.408540 0.844075 -0.817990 -v 0.393437 0.812500 -0.799760 -v 0.408540 0.780925 -0.781529 -v 0.463230 0.796712 -0.790644 -v 0.445000 0.790173 -0.786869 -v 0.470781 0.812500 -0.799760 -v 0.463230 0.828288 -0.808874 -v 0.445000 0.834827 -0.812650 -v 0.426770 0.828288 -0.808874 -v 0.419219 0.812500 -0.799760 -v 0.426770 0.796712 -0.790644 -v 0.461573 0.748147 -0.878076 -v 0.445000 0.742203 -0.874643 -v 0.468437 0.762500 -0.886362 -v 0.461573 0.776852 -0.894648 -v 0.445000 0.782797 -0.898081 -v 0.428427 0.776852 -0.894648 -v 0.421562 0.762500 -0.886362 -v 0.428427 0.748147 -0.878076 -v 0.445000 0.884405 -0.581466 -v 0.478146 0.896295 -0.588331 -v 0.491875 0.925000 -0.604904 -v 0.478146 0.953705 -0.621477 -v 0.445000 0.965595 -0.628341 -v 0.411854 0.953705 -0.621477 -v 0.398125 0.925000 -0.604904 -v 0.411854 0.896295 -0.588331 -v 0.445000 0.959405 -0.451562 -v 0.478146 0.971295 -0.458427 -v 0.491875 1.000000 -0.475000 -v 0.478146 1.028705 -0.491573 -v 0.445000 1.040595 -0.498438 -v 0.411854 1.028705 -0.491573 -v 0.398125 1.000000 -0.475000 -v 0.411854 0.971295 -0.458427 -v 0.445000 1.200000 -0.553125 -v 0.445000 1.350000 -0.553125 -v 0.500243 1.200000 -0.530243 -v 0.500243 1.350000 -0.530243 -v 0.523125 1.200000 -0.475000 -v 0.523125 1.350000 -0.475000 -v 0.500243 1.200000 -0.419757 -v 0.500243 1.350000 -0.419757 -v 0.445000 1.200000 -0.396875 -v 0.445000 1.350000 -0.396875 -v 0.389757 1.200000 -0.419757 -v 0.389757 1.350000 -0.419757 -v 0.366875 1.200000 -0.475000 -v 0.366875 1.350000 -0.475000 -v 0.389757 1.200000 -0.530243 -v 0.389757 1.350000 -0.530243 -v 0.481460 1.375000 -0.511460 -v 0.445000 1.375000 -0.526563 -v 0.496562 1.375000 -0.475000 -v 0.481460 1.375000 -0.438540 -v 0.445000 1.375000 -0.423437 -v 0.408540 1.375000 -0.438540 -v 0.393437 1.375000 -0.475000 -v 0.408540 1.375000 -0.511460 -v 0.463230 1.375000 -0.493230 -v 0.445000 1.375000 -0.500781 -v 0.470781 1.375000 -0.475000 -v 0.463230 1.375000 -0.456770 -v 0.445000 1.375000 -0.449219 -v 0.426770 1.375000 -0.456770 -v 0.419219 1.375000 -0.475000 -v 0.426770 1.375000 -0.493230 -v 0.461573 1.475000 -0.491573 -v 0.445000 1.475000 -0.498437 -v 0.468437 1.475000 -0.475000 -v 0.461573 1.475000 -0.458427 -v 0.445000 1.475000 -0.451562 -v 0.428427 1.475000 -0.458427 -v 0.421562 1.475000 -0.475000 -v 0.428427 1.475000 -0.491573 -v 0.445000 1.150000 -0.521875 -v 0.478146 1.150000 -0.508146 -v 0.491875 1.150000 -0.475000 -v 0.478146 1.150000 -0.441854 -v 0.445000 1.150000 -0.428125 -v 0.411854 1.150000 -0.441854 -v 0.398125 1.150000 -0.475000 -v 0.411854 1.150000 -0.508146 -v 0.445000 1.000000 -0.521875 -v 0.478146 1.000000 -0.508146 -v 0.491875 1.000000 -0.475000 -v 0.478146 1.000000 -0.441854 -v 0.445000 1.000000 -0.428125 -v 0.411854 1.000000 -0.441854 -v 0.398125 1.000000 -0.475000 -v 0.411854 1.000000 -0.508146 -v 0.445000 1.200000 -0.078125 -v 0.445000 1.350000 -0.078125 -v 0.500243 1.200000 -0.055243 -v 0.500243 1.350000 -0.055243 -v 0.523125 1.200000 0.000000 -v 0.523125 1.350000 0.000000 -v 0.500243 1.200000 0.055243 -v 0.500243 1.350000 0.055243 -v 0.445000 1.200000 0.078125 -v 0.445000 1.350000 0.078125 -v 0.389757 1.200000 0.055243 -v 0.389757 1.350000 0.055243 -v 0.366875 1.200000 0.000000 -v 0.366875 1.350000 0.000000 -v 0.389757 1.200000 -0.055243 -v 0.389757 1.350000 -0.055243 -v 0.481460 1.375000 -0.036460 -v 0.445000 1.375000 -0.051563 -v 0.496562 1.375000 0.000000 -v 0.481460 1.375000 0.036460 -v 0.445000 1.375000 0.051563 -v 0.408540 1.375000 0.036460 -v 0.393437 1.375000 0.000000 -v 0.408540 1.375000 -0.036460 -v 0.463230 1.375000 -0.018230 -v 0.445000 1.375000 -0.025781 -v 0.470781 1.375000 0.000000 -v 0.463230 1.375000 0.018230 -v 0.445000 1.375000 0.025781 -v 0.426770 1.375000 0.018230 -v 0.419219 1.375000 0.000000 -v 0.426770 1.375000 -0.018230 -v 0.461573 1.475000 -0.016573 -v 0.445000 1.475000 -0.023438 -v 0.468437 1.475000 0.000000 -v 0.461573 1.475000 0.016573 -v 0.445000 1.475000 0.023438 -v 0.428427 1.475000 0.016573 -v 0.421562 1.475000 0.000000 -v 0.428427 1.475000 -0.016573 -v 0.445000 1.150000 -0.046875 -v 0.478146 1.150000 -0.033146 -v 0.491875 1.150000 0.000000 -v 0.478146 1.150000 0.033146 -v 0.445000 1.150000 0.046875 -v 0.411854 1.150000 0.033146 -v 0.398125 1.150000 0.000000 -v 0.411854 1.150000 -0.033146 -v 0.445000 1.000000 -0.046875 -v 0.478146 1.000000 -0.033146 -v 0.491875 1.000000 0.000000 -v 0.478146 1.000000 0.033146 -v 0.445000 1.000000 0.046875 -v 0.411854 1.000000 0.033146 -v 0.398125 1.000000 0.000000 -v 0.411854 1.000000 -0.033146 -v -0.300000 1.061872 -0.536872 -v -0.300000 1.000000 -0.562500 -v -0.350000 1.000000 -0.600000 -v -0.400000 1.000000 -0.600000 -v -0.350000 1.088388 -0.563388 -v -0.400000 1.088388 -0.563388 -v -0.350000 1.125000 -0.475000 -v -0.400000 1.125000 -0.475000 -v -0.350000 1.088388 -0.386612 -v -0.400000 1.088388 -0.386612 -v -0.350000 1.000000 -0.350000 -v -0.400000 1.000000 -0.350000 -v -0.350000 0.911612 -0.386612 -v -0.400000 0.911611 -0.386612 -v -0.350000 0.875000 -0.475000 -v -0.400000 0.875000 -0.475000 -v -0.350000 0.911612 -0.563388 -v -0.400000 0.911611 -0.563388 -v -0.300000 1.087500 -0.475000 -v -0.300000 1.061872 -0.413128 -v -0.300000 1.000000 -0.387500 -v -0.300000 0.938128 -0.413128 -v -0.300000 0.912500 -0.475000 -v -0.300000 0.938128 -0.536872 -v -0.200000 0.938128 -0.536872 -v -0.200000 1.000000 -0.562500 -v -0.200000 0.912500 -0.475000 -v -0.200000 0.938128 -0.413128 -v -0.200000 1.000000 -0.387500 -v -0.200000 1.061872 -0.413128 -v -0.200000 1.087500 -0.475000 -v -0.200000 1.061872 -0.536872 -v -0.400000 1.066291 -0.541291 -v -0.400000 1.000000 -0.568750 -v -0.400000 1.093750 -0.475000 -v -0.400000 1.066291 -0.408709 -v -0.400000 1.000000 -0.381250 -v -0.400000 0.933709 -0.408709 -v -0.400000 0.906250 -0.475000 -v -0.400000 0.933709 -0.541291 -v -0.350000 1.033145 -0.508146 -v -0.350000 1.000000 -0.521875 -v -0.350000 1.046875 -0.475000 -v -0.350000 1.033145 -0.441854 -v -0.350000 1.000000 -0.428125 -v -0.350000 0.966854 -0.441854 -v -0.350000 0.953125 -0.475000 -v -0.350000 0.966854 -0.508146 -v 0.500000 0.938128 -0.536872 -v 0.500000 1.000000 -0.562500 -v 0.500000 1.000000 -0.600000 -v 0.600000 1.000000 -0.600000 -v 0.500000 0.911612 -0.563388 -v 0.600000 0.911612 -0.563388 -v 0.500000 0.875000 -0.475000 -v 0.600000 0.875000 -0.475000 -v 0.500000 0.911612 -0.386612 -v 0.600000 0.911612 -0.386612 -v 0.500000 1.000000 -0.350000 -v 0.600000 1.000000 -0.350000 -v 0.500000 1.088388 -0.386612 -v 0.600000 1.088388 -0.386612 -v 0.500000 1.125000 -0.475000 -v 0.600000 1.125000 -0.475000 -v 0.500000 1.088388 -0.563388 -v 0.600000 1.088388 -0.563388 -v 0.500000 0.912500 -0.475000 -v 0.500000 0.938128 -0.413128 -v 0.500000 1.000000 -0.387500 -v 0.500000 1.061872 -0.413128 -v 0.500000 1.087500 -0.475000 -v 0.500000 1.061872 -0.536872 -v 0.400000 1.061872 -0.536872 -v 0.400000 1.000000 -0.562500 -v 0.400000 1.087500 -0.475000 -v 0.400000 1.061872 -0.413128 -v 0.400000 1.000000 -0.387500 -v 0.400000 0.938128 -0.413128 -v 0.400000 0.912500 -0.475000 -v 0.400000 0.938128 -0.536872 -v 0.400000 1.088388 -0.563388 -v 0.400000 1.000000 -0.600000 -v 0.400000 1.125000 -0.475000 -v 0.400000 1.088388 -0.386612 -v 0.400000 1.000000 -0.350000 -v 0.400000 0.911612 -0.386612 -v 0.400000 0.875000 -0.475000 -v 0.400000 0.911612 -0.563388 -v 0.350000 1.088388 -0.563388 -v 0.350000 1.000000 -0.600000 -v 0.350000 1.125000 -0.475000 -v 0.350000 1.088388 -0.386612 -v 0.350000 1.000000 -0.350000 -v 0.350000 0.911612 -0.386612 -v 0.350000 0.875000 -0.475000 -v 0.350000 0.911612 -0.563388 -v 0.350000 1.061872 -0.536872 -v 0.350000 1.000000 -0.562500 -v 0.350000 1.087500 -0.475000 -v 0.350000 1.061872 -0.413128 -v 0.350000 1.000000 -0.387500 -v 0.350000 0.938128 -0.413128 -v 0.350000 0.912500 -0.475000 -v 0.350000 0.938128 -0.536872 -v 0.150000 1.061872 -0.536872 -v 0.150000 1.000000 -0.562500 -v 0.150000 1.087500 -0.475000 -v 0.150000 1.061872 -0.413128 -v 0.150000 1.000000 -0.387500 -v 0.150000 0.938128 -0.413128 -v 0.150000 0.912500 -0.475000 -v 0.150000 0.938128 -0.536872 -v 0.600000 0.933709 -0.541291 -v 0.600000 1.000000 -0.568750 -v 0.600000 0.906250 -0.475000 -v 0.600000 0.933709 -0.408709 -v 0.600000 1.000000 -0.381250 -v 0.600000 1.066291 -0.408709 -v 0.600000 1.093750 -0.475000 -v 0.600000 1.066291 -0.541291 -v 0.550000 0.966854 -0.508146 -v 0.550000 1.000000 -0.521875 -v 0.550000 0.953125 -0.475000 -v 0.550000 0.966854 -0.441854 -v 0.550000 1.000000 -0.428125 -v 0.550000 1.033146 -0.441854 -v 0.550000 1.046875 -0.475000 -v 0.550000 1.033146 -0.508146 -v -0.300000 1.061872 -0.061872 -v -0.300000 1.000000 -0.087500 -v -0.350000 1.000000 -0.125000 -v -0.400000 1.000000 -0.125000 -v -0.350000 1.088388 -0.088388 -v -0.400000 1.088388 -0.088388 -v -0.350000 1.125000 0.000000 -v -0.400000 1.125000 0.000000 -v -0.350000 1.088388 0.088388 -v -0.400000 1.088388 0.088388 -v -0.350000 1.000000 0.125000 -v -0.400000 1.000000 0.125000 -v -0.350000 0.911612 0.088388 -v -0.400000 0.911611 0.088388 -v -0.350000 0.875000 0.000000 -v -0.400000 0.875000 0.000000 -v -0.350000 0.911612 -0.088388 -v -0.400000 0.911611 -0.088388 -v -0.300000 1.087500 0.000000 -v -0.300000 1.061872 0.061872 -v -0.300000 1.000000 0.087500 -v -0.300000 0.938128 0.061872 -v -0.300000 0.912500 0.000000 -v -0.300000 0.938128 -0.061872 -v -0.200000 0.938128 -0.061872 -v -0.200000 1.000000 -0.087500 -v -0.200000 0.912500 0.000000 -v -0.200000 0.938128 0.061872 -v -0.200000 1.000000 0.087500 -v -0.200000 1.061872 0.061872 -v -0.200000 1.087500 0.000000 -v -0.200000 1.061872 -0.061872 -v -0.400000 1.066291 -0.066291 -v -0.400000 1.000000 -0.093750 -v -0.400000 1.093750 0.000000 -v -0.400000 1.066291 0.066291 -v -0.400000 1.000000 0.093750 -v -0.400000 0.933709 0.066291 -v -0.400000 0.906250 0.000000 -v -0.400000 0.933709 -0.066291 -v -0.350000 1.033145 -0.033146 -v -0.350000 1.000000 -0.046875 -v -0.350000 1.046875 0.000000 -v -0.350000 1.033145 0.033146 -v -0.350000 1.000000 0.046875 -v -0.350000 0.966854 0.033146 -v -0.350000 0.953125 0.000000 -v -0.350000 0.966854 -0.033146 -v 0.500000 0.938128 -0.061872 -v 0.500000 1.000000 -0.087500 -v 0.500000 1.000000 -0.125000 -v 0.600000 1.000000 -0.125000 -v 0.500000 0.911612 -0.088388 -v 0.600000 0.911612 -0.088388 -v 0.500000 0.875000 0.000000 -v 0.600000 0.875000 0.000000 -v 0.500000 0.911612 0.088388 -v 0.600000 0.911612 0.088388 -v 0.500000 1.000000 0.125000 -v 0.600000 1.000000 0.125000 -v 0.500000 1.088388 0.088388 -v 0.600000 1.088388 0.088388 -v 0.500000 1.125000 0.000000 -v 0.600000 1.125000 0.000000 -v 0.500000 1.088388 -0.088388 -v 0.600000 1.088388 -0.088388 -v 0.500000 0.912500 0.000000 -v 0.500000 0.938128 0.061872 -v 0.500000 1.000000 0.087500 -v 0.500000 1.061872 0.061872 -v 0.500000 1.087500 0.000000 -v 0.500000 1.061872 -0.061872 -v 0.400000 1.061872 -0.061872 -v 0.400000 1.000000 -0.087500 -v 0.400000 1.087500 0.000000 -v 0.400000 1.061872 0.061872 -v 0.400000 1.000000 0.087500 -v 0.400000 0.938128 0.061872 -v 0.400000 0.912500 0.000000 -v 0.400000 0.938128 -0.061872 -v 0.400000 1.088388 -0.088388 -v 0.400000 1.000000 -0.125000 -v 0.400000 1.125000 0.000000 -v 0.400000 1.088388 0.088388 -v 0.400000 1.000000 0.125000 -v 0.400000 0.911612 0.088388 -v 0.400000 0.875000 0.000000 -v 0.400000 0.911612 -0.088388 -v 0.350000 1.088388 -0.088388 -v 0.350000 1.000000 -0.125000 -v 0.350000 1.125000 0.000000 -v 0.350000 1.088388 0.088388 -v 0.350000 1.000000 0.125000 -v 0.350000 0.911612 0.088388 -v 0.350000 0.875000 0.000000 -v 0.350000 0.911612 -0.088388 -v 0.350000 1.061872 -0.061872 -v 0.350000 1.000000 -0.087500 -v 0.350000 1.087500 0.000000 -v 0.350000 1.061872 0.061872 -v 0.350000 1.000000 0.087500 -v 0.350000 0.938128 0.061872 -v 0.350000 0.912500 0.000000 -v 0.350000 0.938128 -0.061872 -v 0.150000 1.061872 -0.061872 -v 0.150000 1.000000 -0.087500 -v 0.150000 1.087500 0.000000 -v 0.150000 1.061872 0.061872 -v 0.150000 1.000000 0.087500 -v 0.150000 0.938128 0.061872 -v 0.150000 0.912500 0.000000 -v 0.150000 0.938128 -0.061872 -v 0.600000 0.933709 -0.066291 -v 0.600000 1.000000 -0.093750 -v 0.600000 0.906250 0.000000 -v 0.600000 0.933709 0.066291 -v 0.600000 1.000000 0.093750 -v 0.600000 1.066291 0.066291 -v 0.600000 1.093750 0.000000 -v 0.600000 1.066291 -0.066291 -v 0.550000 0.966854 -0.033146 -v 0.550000 1.000000 -0.046875 -v 0.550000 0.953125 0.000000 -v 0.550000 0.966854 0.033146 -v 0.550000 1.000000 0.046875 -v 0.550000 1.033146 0.033146 -v 0.550000 1.046875 0.000000 -v 0.550000 1.033146 -0.033146 -v -0.325000 1.000000 -1.037500 -v -0.125000 1.000000 -1.037500 -v -0.325000 0.938128 -1.011872 -v -0.125000 0.938128 -1.011872 -v -0.325000 0.912500 -0.950000 -v -0.125000 0.912500 -0.950000 -v -0.325000 0.938128 -0.888128 -v -0.125000 0.938128 -0.888128 -v -0.325000 1.000000 -0.862500 -v -0.125000 1.000000 -0.862500 -v -0.325000 1.061872 -0.888128 -v -0.125000 1.061872 -0.888128 -v -0.325000 1.087500 -0.950000 -v -0.125000 1.087500 -0.950000 -v -0.325000 1.061872 -1.011872 -v -0.125000 1.061872 -1.011872 -v -0.375000 1.000000 -0.993750 -v -0.375000 0.969064 -0.980936 -v -0.375000 0.956250 -0.950000 -v -0.375000 0.969064 -0.919064 -v -0.375000 1.000000 -0.906250 -v -0.375000 1.030936 -0.919064 -v -0.375000 1.043750 -0.950000 -v -0.375000 1.030936 -0.980936 -v -0.425000 1.000000 -0.993750 -v -0.425000 0.969064 -0.980936 -v -0.425000 0.956250 -0.950000 -v -0.425000 0.969064 -0.919064 -v -0.425000 1.000000 -0.906250 -v -0.425000 1.030936 -0.919064 -v -0.425000 1.043750 -0.950000 -v -0.425000 1.030936 -0.980936 -v -0.410000 1.000000 -1.081250 -v -0.410000 0.907192 -1.042808 -v -0.410000 0.868750 -0.950000 -v -0.410000 0.907192 -0.857192 -v -0.410000 1.000000 -0.818750 -v -0.410000 1.092808 -0.857192 -v -0.410000 1.131250 -0.950000 -v -0.410000 1.092808 -1.042808 -v -0.465000 1.000000 -1.081250 -v -0.465000 0.907192 -1.042808 -v -0.465000 0.868750 -0.950000 -v -0.465000 0.907192 -0.857192 -v -0.465000 1.000000 -0.818750 -v -0.465000 1.092808 -0.857192 -v -0.465000 1.131250 -0.950000 -v -0.465000 1.092808 -1.042808 -v -0.450000 1.000000 -0.993750 -v -0.450000 0.969064 -0.980936 -v -0.450000 0.956250 -0.950000 -v -0.450000 0.969064 -0.919064 -v -0.450000 1.000000 -0.906250 -v -0.450000 1.030936 -0.919064 -v -0.450000 1.043750 -0.950000 -v -0.450000 1.030936 -0.980936 -v -0.475000 1.000000 -0.971875 -v -0.475000 0.984532 -0.965468 -v -0.475000 0.978125 -0.950000 -v -0.475000 0.984532 -0.934532 -v -0.475000 1.000000 -0.928125 -v -0.475000 1.015468 -0.934532 -v -0.475000 1.021875 -0.950000 -v -0.475000 1.015468 -0.965468 -v 0.445000 1.214279 0.713718 -v 0.445000 1.350225 0.777111 -v 0.500243 1.204608 0.734457 -v 0.500243 1.340554 0.797849 -v 0.523125 1.181262 0.784524 -v 0.523125 1.317208 0.847916 -v 0.500243 1.157915 0.834591 -v 0.500243 1.293861 0.897983 -v 0.445000 1.148245 0.855329 -v 0.445000 1.284191 0.918722 -v 0.389757 1.157915 0.834591 -v 0.389757 1.293861 0.897983 -v 0.366875 1.181262 0.784524 -v 0.366875 1.317208 0.847916 -v 0.389757 1.204608 0.734457 -v 0.389757 1.340554 0.797849 -v 0.481460 1.355274 0.825438 -v 0.445000 1.361657 0.811750 -v 0.496563 1.339865 0.858482 -v 0.481460 1.324457 0.891526 -v 0.445000 1.318074 0.905213 -v 0.408540 1.324457 0.891526 -v 0.393437 1.339865 0.858482 -v 0.408540 1.355274 0.825438 -v 0.463230 1.347570 0.841960 -v 0.445000 1.350761 0.835116 -v 0.470781 1.339865 0.858482 -v 0.463230 1.332161 0.875004 -v 0.445000 1.328970 0.881848 -v 0.426770 1.332161 0.875004 -v 0.419219 1.339865 0.858482 -v 0.426770 1.347570 0.841960 -v 0.461573 1.437500 0.885724 -v 0.445000 1.440401 0.879502 -v 0.468438 1.430496 0.900744 -v 0.461573 1.423492 0.915764 -v 0.445000 1.420591 0.921985 -v 0.428427 1.423492 0.915764 -v 0.421562 1.430496 0.900744 -v 0.428427 1.437500 0.885724 -v 0.445000 1.155756 0.720910 -v 0.478146 1.149954 0.733353 -v 0.491875 1.135946 0.763393 -v 0.478146 1.121938 0.793433 -v 0.445000 1.116136 0.805876 -v 0.411854 1.121938 0.793433 -v 0.398125 1.135946 0.763393 -v 0.411854 1.149954 0.733353 -v 0.445000 1.019810 0.657517 -v 0.478146 1.014008 0.669960 -v 0.491875 1.000000 0.700000 -v 0.478146 0.985992 0.730040 -v 0.445000 0.980190 0.742483 -v 0.411854 0.985992 0.730040 -v 0.398125 1.000000 0.700000 -v 0.411854 1.014008 0.669960 -v -0.300000 1.061872 0.638128 -v -0.300000 1.000000 0.612500 -v -0.350000 1.000000 0.575000 -v -0.400000 1.000000 0.575000 -v -0.350000 1.088388 0.611612 -v -0.400000 1.088388 0.611612 -v -0.350000 1.125000 0.700000 -v -0.400000 1.125000 0.700000 -v -0.350000 1.088388 0.788388 -v -0.400000 1.088388 0.788388 -v -0.350000 1.000000 0.825000 -v -0.400000 1.000000 0.825000 -v -0.350000 0.911612 0.788388 -v -0.400000 0.911611 0.788388 -v -0.350000 0.875000 0.700000 -v -0.400000 0.875000 0.700000 -v -0.350000 0.911612 0.611612 -v -0.400000 0.911611 0.611612 -v -0.300000 1.087500 0.700000 -v -0.300000 1.061872 0.761872 -v -0.300000 1.000000 0.787500 -v -0.300000 0.938128 0.761872 -v -0.300000 0.912500 0.700000 -v -0.300000 0.938128 0.638128 -v -0.200000 0.938128 0.638128 -v -0.200000 1.000000 0.612500 -v -0.200000 0.912500 0.700000 -v -0.200000 0.938128 0.761872 -v -0.200000 1.000000 0.787500 -v -0.200000 1.061872 0.761872 -v -0.200000 1.087500 0.700000 -v -0.200000 1.061872 0.638128 -v -0.400000 1.066291 0.633709 -v -0.400000 1.000000 0.606250 -v -0.400000 1.093750 0.700000 -v -0.400000 1.066291 0.766291 -v -0.400000 1.000000 0.793750 -v -0.400000 0.933709 0.766291 -v -0.400000 0.906250 0.700000 -v -0.400000 0.933709 0.633709 -v -0.350000 1.033145 0.666854 -v -0.350000 1.000000 0.653125 -v -0.350000 1.046875 0.700000 -v -0.350000 1.033145 0.733146 -v -0.350000 1.000000 0.746875 -v -0.350000 0.966854 0.733146 -v -0.350000 0.953125 0.700000 -v -0.350000 0.966854 0.666854 -v 0.500000 0.938128 0.638128 -v 0.500000 1.000000 0.612500 -v 0.500000 1.000000 0.575000 -v 0.600000 1.000000 0.575000 -v 0.500000 0.911612 0.611612 -v 0.600000 0.911612 0.611612 -v 0.500000 0.875000 0.700000 -v 0.600000 0.875000 0.700000 -v 0.500000 0.911612 0.788388 -v 0.600000 0.911612 0.788388 -v 0.500000 1.000000 0.825000 -v 0.600000 1.000000 0.825000 -v 0.500000 1.088388 0.788388 -v 0.600000 1.088388 0.788388 -v 0.500000 1.125000 0.700000 -v 0.600000 1.125000 0.700000 -v 0.500000 1.088388 0.611612 -v 0.600000 1.088388 0.611612 -v 0.500000 0.912500 0.700000 -v 0.500000 0.938128 0.761872 -v 0.500000 1.000000 0.787500 -v 0.500000 1.061872 0.761872 -v 0.500000 1.087500 0.700000 -v 0.500000 1.061872 0.638128 -v 0.400000 1.061872 0.638128 -v 0.400000 1.000000 0.612500 -v 0.400000 1.087500 0.700000 -v 0.400000 1.061872 0.761872 -v 0.400000 1.000000 0.787500 -v 0.400000 0.938128 0.761872 -v 0.400000 0.912500 0.700000 -v 0.400000 0.938128 0.638128 -v 0.400000 1.088388 0.611612 -v 0.400000 1.000000 0.575000 -v 0.400000 1.125000 0.700000 -v 0.400000 1.088388 0.788388 -v 0.400000 1.000000 0.825000 -v 0.400000 0.911612 0.788388 -v 0.400000 0.875000 0.700000 -v 0.400000 0.911612 0.611612 -v 0.350000 1.088388 0.611612 -v 0.350000 1.000000 0.575000 -v 0.350000 1.125000 0.700000 -v 0.350000 1.088388 0.788388 -v 0.350000 1.000000 0.825000 -v 0.350000 0.911612 0.788388 -v 0.350000 0.875000 0.700000 -v 0.350000 0.911612 0.611612 -v 0.350000 1.061872 0.638128 -v 0.350000 1.000000 0.612500 -v 0.350000 1.087500 0.700000 -v 0.350000 1.061872 0.761872 -v 0.350000 1.000000 0.787500 -v 0.350000 0.938128 0.761872 -v 0.350000 0.912500 0.700000 -v 0.350000 0.938128 0.638128 -v 0.150000 1.061872 0.638128 -v 0.150000 1.000000 0.612500 -v 0.150000 1.087500 0.700000 -v 0.150000 1.061872 0.761872 -v 0.150000 1.000000 0.787500 -v 0.150000 0.938128 0.761872 -v 0.150000 0.912500 0.700000 -v 0.150000 0.938128 0.638128 -v 0.600000 0.933709 0.633709 -v 0.600000 1.000000 0.606250 -v 0.600000 0.906250 0.700000 -v 0.600000 0.933709 0.766291 -v 0.600000 1.000000 0.793750 -v 0.600000 1.066291 0.766291 -v 0.600000 1.093750 0.700000 -v 0.600000 1.066291 0.633709 -v 0.550000 0.966854 0.666854 -v 0.550000 1.000000 0.653125 -v 0.550000 0.953125 0.700000 -v 0.550000 0.966854 0.733146 -v 0.550000 1.000000 0.746875 -v 0.550000 1.033146 0.733146 -v 0.550000 1.046875 0.700000 -v 0.550000 1.033146 0.666854 -v 0.156250 1.270633 -0.175000 -v -0.000000 1.312500 -0.175000 -v -0.000000 1.250000 -0.175000 -v -0.000000 1.250000 0.175000 -v 0.125000 1.216506 -0.175000 -v 0.125000 1.216506 0.175000 -v 0.216506 1.125000 -0.175000 -v 0.216506 1.125000 0.175000 -v 0.250000 1.000000 -0.175000 -v 0.250000 1.000000 0.175000 -v 0.216506 0.875000 -0.175000 -v 0.216506 0.875000 0.175000 -v 0.125000 0.783494 -0.175000 -v 0.125000 0.783494 0.175000 -v 0.000000 0.750000 -0.175000 -v 0.000000 0.750000 0.175000 -v -0.125000 0.783494 -0.175000 -v -0.125000 0.783494 0.175000 -v -0.216506 0.875000 -0.175000 -v -0.216506 0.875000 0.175000 -v -0.250000 1.000000 -0.175000 -v -0.250000 1.000000 0.175000 -v -0.216506 1.125000 -0.175000 -v -0.216506 1.125000 0.175000 -v -0.125000 1.216506 -0.175000 -v -0.125000 1.216506 0.175000 -v 0.270633 1.156250 -0.175000 -v 0.312500 1.000000 -0.175000 -v 0.270633 0.843750 -0.175000 -v 0.156250 0.729367 -0.175000 -v 0.000000 0.687500 -0.175000 -v -0.156250 0.729367 -0.175000 -v -0.270633 0.843750 -0.175000 -v -0.312500 1.000000 -0.175000 -v -0.270633 1.156250 -0.175000 -v -0.156250 1.270633 -0.175000 -v -0.156250 1.270633 -0.300000 -v -0.000000 1.312500 -0.300000 -v -0.270633 1.156250 -0.300000 -v -0.312500 1.000000 -0.300000 -v -0.270633 0.843750 -0.300000 -v -0.156250 0.729367 -0.300000 -v 0.000000 0.687500 -0.300000 -v 0.156250 0.729367 -0.300000 -v 0.270633 0.843750 -0.300000 -v 0.312500 1.000000 -0.300000 -v 0.270633 1.156250 -0.300000 -v 0.156250 1.270633 -0.300000 -v -0.125000 1.216506 -0.300000 -v -0.000000 1.250000 -0.300000 -v -0.216506 1.125000 -0.300000 -v -0.250000 1.000000 -0.300000 -v -0.216506 0.875000 -0.300000 -v -0.125000 0.783494 -0.300000 -v 0.000000 0.750000 -0.300000 -v 0.125000 0.783494 -0.300000 -v 0.216506 0.875000 -0.300000 -v 0.250000 1.000000 -0.300000 -v 0.216506 1.125000 -0.300000 -v 0.125000 1.216506 -0.300000 -v -0.125000 1.216506 -0.650000 -v -0.000000 1.250000 -0.650000 -v -0.216506 1.125000 -0.650000 -v -0.250000 1.000000 -0.650000 -v -0.216506 0.875000 -0.650000 -v -0.125000 0.783494 -0.650000 -v 0.000000 0.750000 -0.650000 -v 0.125000 0.783494 -0.650000 -v 0.216506 0.875000 -0.650000 -v 0.250000 1.000000 -0.650000 -v 0.216506 1.125000 -0.650000 -v 0.125000 1.216506 -0.650000 -v -0.156250 1.270633 -0.650000 -v -0.000000 1.312500 -0.650000 -v -0.270633 1.156250 -0.650000 -v -0.312500 1.000000 -0.650000 -v -0.270633 0.843750 -0.650000 -v -0.156250 0.729367 -0.650000 -v 0.000000 0.687500 -0.650000 -v 0.156250 0.729367 -0.650000 -v 0.270633 0.843750 -0.650000 -v 0.312500 1.000000 -0.650000 -v 0.270633 1.156250 -0.650000 -v 0.156250 1.270633 -0.650000 -v -0.156250 1.270633 -1.150000 -v -0.000000 1.312500 -1.150000 -v -0.270633 1.156250 -1.150000 -v -0.312500 1.000000 -1.150000 -v -0.270633 0.843750 -1.150000 -v -0.156250 0.729367 -1.150000 -v 0.000000 0.687500 -1.150000 -v 0.156250 0.729367 -1.150000 -v 0.270633 0.843750 -1.150000 -v 0.312500 1.000000 -1.150000 -v 0.270633 1.156250 -1.150000 -v 0.156250 1.270633 -1.150000 -v 0.156250 1.270633 0.175000 -v -0.000000 1.312500 0.175000 -v 0.270633 1.156250 0.175000 -v 0.312500 1.000000 0.175000 -v 0.270633 0.843750 0.175000 -v 0.156250 0.729367 0.175000 -v 0.000000 0.687500 0.175000 -v -0.156250 0.729367 0.175000 -v -0.270633 0.843750 0.175000 -v -0.312500 1.000000 0.175000 -v -0.270633 1.156250 0.175000 -v -0.156250 1.270633 0.175000 -v 0.156250 1.270633 0.525000 -v -0.000000 1.312500 0.525000 -v 0.270633 1.156250 0.525000 -v 0.312500 1.000000 0.525000 -v 0.270633 0.843750 0.525000 -v 0.156250 0.729367 0.525000 -v 0.000000 0.687500 0.525000 -v -0.156250 0.729367 0.525000 -v -0.270633 0.843750 0.525000 -v -0.312500 1.000000 0.525000 -v -0.270633 1.156250 0.525000 -v -0.156250 1.270633 0.525000 -v 0.125000 1.216506 0.525000 -v -0.000000 1.250000 0.525000 -v 0.216506 1.125000 0.525000 -v 0.250000 1.000000 0.525000 -v 0.216506 0.875000 0.525000 -v 0.125000 0.783494 0.525000 -v 0.000000 0.750000 0.525000 -v -0.125000 0.783494 0.525000 -v -0.216506 0.875000 0.525000 -v -0.250000 1.000000 0.525000 -v -0.216506 1.125000 0.525000 -v -0.125000 1.216506 0.525000 -v 0.125000 1.216506 0.875000 -v -0.000000 1.250000 0.875000 -v 0.216506 1.125000 0.875000 -v 0.250000 1.000000 0.875000 -v 0.216506 0.875000 0.875000 -v 0.125000 0.783494 0.875000 -v 0.000000 0.750000 0.875000 -v -0.125000 0.783494 0.875000 -v -0.216506 0.875000 0.875000 -v -0.250000 1.000000 0.875000 -v -0.216506 1.125000 0.875000 -v -0.125000 1.216506 0.875000 -v 0.156250 1.270633 0.875000 -v -0.000000 1.312500 0.875000 -v 0.270633 1.156250 0.875000 -v 0.312500 1.000000 0.875000 -v 0.270633 0.843750 0.875000 -v 0.156250 0.729367 0.875000 -v 0.000000 0.687500 0.875000 -v -0.156250 0.729367 0.875000 -v -0.270633 0.843750 0.875000 -v -0.312500 1.000000 0.875000 -v -0.270633 1.156250 0.875000 -v -0.156250 1.270633 0.875000 -v 0.156250 1.270633 1.015000 -v -0.000000 1.312500 1.015000 -v 0.270633 1.156250 1.015000 -v 0.312500 1.000000 1.015000 -v 0.270633 0.843750 1.015000 -v 0.156250 0.729367 1.015000 -v 0.000000 0.687500 1.015000 -v -0.156250 0.729367 1.015000 -v -0.270633 0.843750 1.015000 -v -0.312500 1.000000 1.015000 -v -0.270633 1.156250 1.015000 -v -0.156250 1.270633 1.015000 -v 0.125000 1.216506 1.115000 -v -0.000000 1.250000 1.115000 -v 0.216506 1.125000 1.115000 -v 0.250000 1.000000 1.115000 -v 0.216506 0.875000 1.115000 -v 0.125000 0.783494 1.115000 -v 0.000000 0.750000 1.115000 -v -0.125000 0.783494 1.115000 -v -0.216506 0.875000 1.115000 -v -0.250000 1.000000 1.115000 -v -0.216506 1.125000 1.115000 -v -0.125000 1.216506 1.115000 -v -0.078125 1.135316 -1.250000 -v -0.000000 1.156250 -1.250000 -v -0.135317 1.078125 -1.250000 -v -0.156250 1.000000 -1.250000 -v -0.135316 0.921875 -1.250000 -v -0.078125 0.864683 -1.250000 -v 0.000000 0.843750 -1.250000 -v 0.078125 0.864684 -1.250000 -v 0.135316 0.921875 -1.250000 -v 0.156250 1.000000 -1.250000 -v 0.135316 1.078125 -1.250000 -v 0.078125 1.135316 -1.250000 -v -0.078125 1.135317 -2.250000 -v -0.000000 1.156250 -2.250000 -v -0.135317 1.078125 -2.250000 -v -0.156250 1.000000 -2.250000 -v -0.135316 0.921875 -2.250000 -v -0.078125 0.864684 -2.250000 -v 0.000000 0.843750 -2.250000 -v 0.078125 0.864684 -2.250000 -v 0.135316 0.921875 -2.250000 -v 0.156250 1.000000 -2.250000 -v 0.135316 1.078125 -2.250000 -v 0.078125 1.135317 -2.250000 -v -0.058594 1.101487 -2.250000 -v -0.000000 1.117188 -2.250000 -v -0.101487 1.058594 -2.250000 -v -0.117188 1.000000 -2.250000 -v -0.101487 0.941406 -2.250000 -v -0.058594 0.898513 -2.250000 -v 0.000000 0.882813 -2.250000 -v 0.058594 0.898513 -2.250000 -v 0.101487 0.941406 -2.250000 -v 0.117188 1.000000 -2.250000 -v 0.101487 1.058594 -2.250000 -v 0.058594 1.101487 -2.250000 -v -0.058594 1.101487 -1.250000 -v -0.000000 1.117188 -1.250000 -v -0.101487 1.058594 -1.250000 -v -0.117188 1.000000 -1.250000 -v -0.101487 0.941406 -1.250000 -v -0.058594 0.898513 -1.250000 -v 0.000000 0.882813 -1.250000 -v 0.058594 0.898513 -1.250000 -v 0.101487 0.941406 -1.250000 -v 0.117188 1.000000 -1.250000 -v 0.101487 1.058594 -1.250000 -v 0.058594 1.101487 -1.250000 -v 0.000000 1.150000 1.250000 -v -0.106066 1.106066 1.250000 -v -0.150000 1.000000 1.250000 -v -0.106066 0.893934 1.250000 -v 0.000000 0.850000 1.250000 -v 0.106066 0.893934 1.250000 -v 0.150000 1.000000 1.250000 -v 0.106066 1.106066 1.250000 -v -0.079549 1.079550 1.350000 -v 0.000000 1.112500 1.350000 -v -0.112500 1.000000 1.350000 -v -0.079549 0.920450 1.350000 -v 0.000000 0.887500 1.350000 -v 0.079550 0.920450 1.350000 -v 0.112500 1.000000 1.350000 -v 0.079550 1.079550 1.350000 -v 0.000000 0.950000 1.115000 -v 0.000000 0.950000 1.250000 -v 0.021651 0.937500 1.115000 -v 0.021651 0.937500 1.250000 -v 0.021651 0.912500 1.115000 -v 0.021651 0.912500 1.250000 -v 0.000000 0.900000 1.115000 -v 0.000000 0.900000 1.250000 -v -0.021651 0.912500 1.115000 -v -0.021651 0.912500 1.250000 -v -0.021651 0.937500 1.115000 -v -0.021651 0.937500 1.250000 -v -0.000000 1.100000 1.115000 -v -0.000000 1.100000 1.250000 -v 0.021651 1.087500 1.115000 -v 0.021651 1.087500 1.250000 -v 0.021651 1.062500 1.115000 -v 0.021651 1.062500 1.250000 -v -0.000000 1.050000 1.115000 -v -0.000000 1.050000 1.250000 -v -0.021651 1.062500 1.115000 -v -0.021651 1.062500 1.250000 -v -0.021651 1.087500 1.115000 -v -0.021651 1.087500 1.250000 -v 0.075000 1.025000 1.115000 -v 0.075000 1.025000 1.250000 -v 0.096651 1.012500 1.115000 -v 0.096651 1.012500 1.250000 -v 0.096651 0.987500 1.115000 -v 0.096651 0.987500 1.250000 -v 0.075000 0.975000 1.115000 -v 0.075000 0.975000 1.250000 -v 0.053349 0.987500 1.115000 -v 0.053349 0.987500 1.250000 -v 0.053349 1.012500 1.115000 -v 0.053349 1.012500 1.250000 -v -0.075000 1.025000 1.115000 -v -0.075000 1.025000 1.250000 -v -0.053349 1.012500 1.115000 -v -0.053349 1.012500 1.250000 -v -0.053349 0.987500 1.115000 -v -0.053349 0.987500 1.250000 -v -0.075000 0.975000 1.115000 -v -0.075000 0.975000 1.250000 -v -0.096651 0.987500 1.115000 -v -0.096651 0.987500 1.250000 -v -0.096651 1.012500 1.115000 -v -0.096651 1.012500 1.250000 -v -0.125000 0.575000 1.100000 -v -0.125000 0.625000 1.100000 -v -0.125000 0.575000 -1.300000 -v -0.125000 0.625000 -1.300000 -v 0.125000 0.575000 1.100000 -v 0.125000 0.625000 1.100000 -v 0.125000 0.575000 -1.300000 -v 0.125000 0.625000 -1.300000 -v -0.125000 0.625000 -1.350000 -v 0.125000 0.625000 -1.350000 -v 0.218750 0.725000 -1.350000 -v -0.218750 0.725000 -1.350000 -v -0.218750 1.275000 -1.350000 -v -0.218750 1.275000 -1.300000 -v 0.218750 0.725000 -1.300000 -v -0.218750 0.725000 -1.300000 -v 0.218750 1.275000 -1.350000 -v 0.218750 1.275000 -1.300000 -v -0.125000 1.375000 -1.300000 -v 0.125000 1.375000 -1.300000 -v -0.125000 1.375000 -1.350000 -v 0.125000 1.375000 -1.350000 -v -0.107422 1.241060 -1.700000 -v 0.214844 1.055000 -1.700000 -v 0.214844 0.945000 -1.700000 -v -0.195312 0.950000 -1.350000 -v -0.169146 0.852344 -1.350000 -v -0.097656 0.780855 -1.350000 -v 0.000000 0.754688 -1.350000 -v 0.097656 0.780855 -1.350000 -v 0.169146 0.852344 -1.350000 -v 0.195312 0.950000 -1.350000 -v 0.186060 0.837578 -1.700000 -v 0.107422 0.758940 -1.700000 -v 0.000000 0.730156 -1.700000 -v -0.107422 0.758940 -1.700000 -v -0.186060 0.837578 -1.700000 -v -0.195312 0.950000 -1.700000 -v -0.169146 0.852344 -1.700000 -v -0.097656 0.780854 -1.700000 -v 0.000000 0.754688 -1.700000 -v 0.097656 0.780855 -1.700000 -v 0.169146 0.852344 -1.700000 -v 0.195312 0.950000 -1.700000 -v -0.214844 1.055000 -1.700000 -v -0.214844 0.945000 -1.700000 -v -0.097656 1.219146 -1.350000 -v 0.000000 1.245313 -1.350000 -v -0.169146 1.147656 -1.350000 -v -0.195312 1.050000 -1.350000 -v 0.195312 1.050000 -1.350000 -v 0.169146 1.147656 -1.350000 -v 0.097656 1.219146 -1.350000 -v -0.097656 1.219146 -1.700000 -v 0.000000 1.245313 -1.700000 -v -0.169146 1.147656 -1.700000 -v -0.195312 1.050000 -1.700000 -v 0.195312 1.050000 -1.700000 -v 0.169146 1.147656 -1.700000 -v 0.097656 1.219146 -1.700000 -v -0.000000 1.269844 -1.700000 -v -0.186060 1.162422 -1.700000 -v 0.186060 1.162422 -1.700000 -v 0.107422 1.241060 -1.700000 -v 0.214844 0.945000 -1.750000 -v 0.214844 1.055000 -1.750000 -v 0.186060 0.837578 -1.750000 -v 0.107422 0.758940 -1.750000 -v 0.000000 0.730156 -1.750000 -v -0.107422 0.758940 -1.750000 -v -0.186060 0.837578 -1.750000 -v -0.214844 0.945000 -1.750000 -v -0.214844 1.055000 -1.750000 -v 0.107422 1.241060 -1.750000 -v 0.186060 1.162422 -1.750000 -v -0.186060 1.162422 -1.750000 -v -0.107422 1.241060 -1.750000 -v -0.000000 1.269844 -1.750000 -v -0.100000 0.525000 2.575000 -v -0.100000 0.925000 2.575000 -v -0.100000 0.525000 2.325000 -v -0.100000 0.925000 2.325000 -v 0.100000 0.525000 2.575000 -v 0.100000 0.925000 2.575000 -v 0.100000 0.525000 2.325000 -v 0.100000 0.925000 2.325000 -v -0.100000 0.975000 1.600000 -v -0.100000 1.025000 1.600000 -v 0.100000 0.975000 1.600000 -v 0.100000 1.025000 1.600000 -v -0.100000 0.975000 2.425000 -v -0.100000 1.025000 2.425000 -v 0.100000 1.025000 2.425000 -v 0.100000 0.975000 2.425000 -v -0.100000 0.925000 2.475000 -v -0.100000 0.925000 2.525000 -v 0.100000 0.925000 2.525000 -v 0.100000 0.925000 2.475000 -v -0.050000 1.025000 1.350000 -v -0.050000 1.025000 1.600000 -v -0.028349 1.012500 1.350000 -v -0.028349 1.012500 1.600000 -v -0.028349 0.987500 1.350000 -v -0.028349 0.987500 1.600000 -v -0.050000 0.975000 1.350000 -v -0.050000 0.975000 1.600000 -v -0.071651 0.987500 1.350000 -v -0.071651 0.987500 1.600000 -v -0.071651 1.012500 1.350000 -v -0.071651 1.012500 1.600000 -v 0.050000 1.025000 1.350000 -v 0.050000 1.025000 1.600000 -v 0.071651 1.012500 1.350000 -v 0.071651 1.012500 1.600000 -v 0.071651 0.987500 1.350000 -v 0.071651 0.987500 1.600000 -v 0.050000 0.975000 1.350000 -v 0.050000 0.975000 1.600000 -v 0.028349 0.987500 1.350000 -v 0.028349 0.987500 1.600000 -v 0.028349 1.012500 1.350000 -v 0.028349 1.012500 1.600000 -v -0.125000 0.750000 1.275000 -v -0.125000 0.800000 1.275000 -v 0.125000 0.800000 1.275000 -v 0.125000 0.750000 1.275000 -v -0.125000 0.750000 1.325000 -v -0.125000 0.800000 1.325000 -v 0.125000 0.800000 1.325000 -v 0.125000 0.750000 1.325000 -v -0.100000 0.750000 1.600000 -v -0.100000 0.800000 1.600000 -v 0.100000 0.800000 1.600000 -v 0.100000 0.750000 1.600000 -v 0.062500 0.925000 1.275000 -v -0.062500 0.925000 1.275000 -v 0.062500 0.925000 1.325000 -v -0.062500 0.925000 1.325000 -v -0.100000 0.550000 2.125000 -v -0.100000 0.600000 2.125000 -v 0.100000 0.600000 2.125000 -v 0.100000 0.550000 2.125000 -v -0.100000 0.550000 2.325000 -v -0.100000 0.600000 2.325000 -v 0.100000 0.600000 2.325000 -v 0.100000 0.550000 2.325000 -v -0.000000 0.762500 2.125000 -v -0.000000 0.762500 2.325000 -v 0.044194 0.744194 2.125000 -v 0.044194 0.744194 2.325000 -v 0.062500 0.700000 2.125000 -v 0.062500 0.700000 2.325000 -v 0.044194 0.655806 2.125000 -v 0.044194 0.655806 2.325000 -v -0.000000 0.637500 2.125000 -v -0.000000 0.637500 2.325000 -v -0.044194 0.655806 2.125000 -v -0.044194 0.655806 2.325000 -v -0.062500 0.700000 2.125000 -v -0.062500 0.700000 2.325000 -v -0.044194 0.744194 2.125000 -v -0.044194 0.744194 2.325000 -v -0.000000 0.912500 1.925000 -v -0.000000 0.912500 2.325000 -v 0.044194 0.894194 1.925000 -v 0.044194 0.894194 2.325000 -v 0.062500 0.850000 1.925000 -v 0.062500 0.850000 2.325000 -v 0.044194 0.805806 1.925000 -v 0.044194 0.805806 2.325000 -v -0.000000 0.787500 1.925000 -v -0.000000 0.787500 2.325000 -v -0.044194 0.805806 1.925000 -v -0.044194 0.805806 2.325000 -v -0.062500 0.850000 1.925000 -v -0.062500 0.850000 2.325000 -v -0.044194 0.894194 1.925000 -v -0.044194 0.894194 2.325000 -v -0.000000 0.715625 2.125000 -v 0.011049 0.711049 2.125000 -v 0.015625 0.700000 2.125000 -v 0.011049 0.688951 2.125000 -v 0.000000 0.684375 2.125000 -v -0.011049 0.688951 2.125000 -v -0.015625 0.700000 2.125000 -v -0.011049 0.711049 2.125000 -v -0.000000 0.715626 1.775000 -v 0.011049 0.711050 1.775000 -v 0.015625 0.700001 1.775000 -v 0.011049 0.688952 1.775000 -v 0.000000 0.684376 1.775000 -v -0.011049 0.688952 1.775000 -v -0.015625 0.700001 1.775000 -v -0.011049 0.711050 1.775000 -v -0.000000 0.865625 1.925000 -v 0.011049 0.861049 1.925000 -v 0.015625 0.850000 1.925000 -v 0.011049 0.838951 1.925000 -v -0.000000 0.834375 1.925000 -v -0.011049 0.838951 1.925000 -v -0.015625 0.850000 1.925000 -v -0.011049 0.861049 1.925000 -v -0.000000 0.865625 1.300000 -v 0.011049 0.861049 1.300000 -v 0.015625 0.850000 1.300000 -v 0.011049 0.838951 1.300000 -v -0.000000 0.834375 1.300000 -v -0.011049 0.838951 1.300000 -v -0.015625 0.850000 1.300000 -v -0.011049 0.861049 1.300000 -v -0.125000 0.625000 -0.037500 -v 0.125000 0.625000 -0.037500 -v -0.125000 0.625000 0.012500 -v 0.125000 0.625000 0.012500 -v 0.125000 0.800000 -0.037500 -v -0.125000 0.800000 -0.037500 -v 0.125000 0.800000 0.012500 -v -0.125000 0.800000 0.012500 -v -0.125000 0.625000 -0.487500 -v 0.125000 0.625000 -0.487500 -v -0.125000 0.625000 -0.437500 -v 0.125000 0.625000 -0.437500 -v 0.125000 0.800000 -0.487500 -v -0.125000 0.800000 -0.487500 -v 0.125000 0.800000 -0.437500 -v -0.125000 0.800000 -0.437500 -v -0.125000 0.625000 0.677500 -v 0.125000 0.625000 0.677500 -v -0.125000 0.625000 0.727500 -v 0.125000 0.625000 0.727500 -v 0.125000 0.800000 0.677500 -v -0.125000 0.800000 0.677500 -v 0.125000 0.800000 0.727500 -v -0.125000 0.800000 0.727500 -v -0.200000 0.550000 0.100000 -v -0.200000 0.675000 0.100000 -v -0.200000 0.550000 -0.900000 -v -0.200000 0.675000 -0.900000 -v 0.200000 0.550000 0.100000 -v 0.200000 0.675000 0.100000 -v 0.200000 0.550000 -0.900000 -v 0.200000 0.675000 -0.900000 -v -0.100000 0.425000 -0.900000 -v -0.100000 0.425000 0.100000 -v 0.100000 0.425000 -0.900000 -v 0.100000 0.425000 0.100000 -v -0.050000 0.299279 1.429474 -v -0.050000 0.769125 1.258464 -v -0.050000 0.230875 1.241536 -v 0.057500 0.304409 1.443570 -v 0.050000 0.299279 1.429474 -v 0.050000 0.769125 1.258464 -v 0.050000 0.230875 1.241536 -v 0.057500 0.225745 1.227440 -v -0.057500 0.304409 1.443570 -v -0.050000 0.606752 1.104728 -v 0.050000 0.606752 1.104728 -v -0.057500 0.225745 1.227440 -v -0.057500 0.257425 1.460671 -v 0.057500 0.257425 1.460671 -v 0.057500 0.178760 1.244541 -v -0.057500 0.178760 1.244541 -vt 0.380430 0.366521 -vt 0.413739 0.366533 -vt 0.413735 0.377686 -vt 0.413731 0.388839 -vt 0.380423 0.388827 -vt 0.413762 0.299614 -vt 0.413758 0.310767 -vt 0.380450 0.310755 -vt 0.413754 0.321920 -vt 0.380446 0.321909 -vt 0.413750 0.333073 -vt 0.380442 0.333062 -vt 0.413746 0.344226 -vt 0.413742 0.355379 -vt 0.380434 0.355368 -vt 0.369728 0.352576 -vt 0.369730 0.346999 -vt 0.361401 0.352573 -vt 0.369716 0.386035 -vt 0.369718 0.380459 -vt 0.369735 0.330270 -vt 0.369724 0.363729 -vt 0.369726 0.358153 -vt 0.380427 0.377674 -vt 0.369720 0.374882 -vt 0.380454 0.299602 -vt 0.369743 0.307964 -vt 0.380438 0.344215 -vt 0.369732 0.341423 -vt 0.369739 0.319117 -vt 0.369741 0.313540 -vt 0.675348 0.938663 -vt 0.684496 0.938211 -vt 0.682721 0.952889 -vt 0.361408 0.330267 -vt 0.361410 0.324690 -vt 0.369745 0.302387 -vt 0.361416 0.307961 -vt 0.361393 0.374879 -vt 0.361395 0.369303 -vt 0.361397 0.363726 -vt 0.361399 0.358150 -vt 0.361405 0.341420 -vt 0.361407 0.335843 -vt 0.361412 0.319114 -vt 0.361414 0.313537 -vt 0.361389 0.386033 -vt 0.911644 0.212776 -vt 0.911644 0.203617 -vt 0.928374 0.203617 -vt 0.903378 0.964600 -vt 0.895298 0.976982 -vt 0.885770 0.963231 -vt 0.948140 0.542394 -vt 0.940061 0.554776 -vt 0.930533 0.541025 -vt 0.611961 0.956270 -vt 0.599579 0.948191 -vt 0.613331 0.938663 -vt 0.673978 0.956270 -vt 0.661596 0.948191 -vt 0.902704 0.950983 -vt 0.893443 0.939458 -vt 0.901450 0.935010 -vt 0.357233 0.363725 -vt 0.357235 0.358148 -vt 0.885318 0.954082 -vt 0.899996 0.955858 -vt 0.637103 0.946336 -vt 0.625578 0.955597 -vt 0.620704 0.952889 -vt 0.971151 0.534582 -vt 0.980311 0.534582 -vt 0.980311 0.551311 -vt 0.980311 0.591550 -vt 0.971151 0.591550 -vt 0.971151 0.574821 -vt 0.805628 0.672352 -vt 0.788899 0.672352 -vt 0.788899 0.663193 -vt 0.885436 0.935010 -vt 0.930199 0.512804 -vt 0.938206 0.517252 -vt 0.930081 0.531876 -vt 0.626928 0.930204 -vt 0.641552 0.938329 -vt 0.688945 0.930204 -vt 0.703569 0.938329 -vt 0.699120 0.946336 -vt 0.934988 0.637420 -vt 0.938931 0.641363 -vt 0.934159 0.644163 -vt 0.687595 0.955597 -vt 0.944759 0.533652 -vt 0.944964 0.537810 -vt 0.357249 0.319112 -vt 0.357251 0.313536 -vt 0.947467 0.528777 -vt 0.946213 0.512804 -vt 0.357241 0.341419 -vt 0.357243 0.335842 -vt 0.927428 0.646951 -vt 0.932188 0.642191 -vt 0.922656 0.641363 -vt 0.926600 0.637420 -vt 0.929399 0.642191 -vt 0.922656 0.649751 -vt 0.929399 0.648923 -vt 0.934988 0.653694 -vt 0.932188 0.648923 -vt 0.934159 0.646951 -vt 0.939513 0.642769 -vt 0.939513 0.648345 -vt 0.928005 0.636838 -vt 0.933582 0.636838 -vt 0.922074 0.648345 -vt 0.922074 0.642769 -vt 0.927428 0.644163 -vt 0.933582 0.654277 -vt 0.928005 0.654277 -vt 0.357226 0.386031 -vt 0.357228 0.380455 -vt 0.361391 0.380456 -vt 0.703569 0.954343 -vt 0.689617 0.959237 -vt 0.616545 0.953094 -vt 0.627601 0.959237 -vt 0.713798 0.785601 -vt 0.713798 0.818909 -vt 0.702645 0.818909 -vt 0.702645 0.785601 -vt 0.691491 0.818909 -vt 0.780717 0.818909 -vt 0.769563 0.818909 -vt 0.769563 0.785601 -vt 0.758410 0.818909 -vt 0.758410 0.785601 -vt 0.747257 0.818909 -vt 0.747257 0.785601 -vt 0.736104 0.818909 -vt 0.724951 0.785601 -vt 0.724951 0.818909 -vt 0.736104 0.785601 -vt 0.727739 0.774894 -vt 0.727739 0.766567 -vt 0.733316 0.766567 -vt 0.691491 0.785601 -vt 0.694280 0.774894 -vt 0.750045 0.774894 -vt 0.716586 0.774894 -vt 0.722163 0.774894 -vt 0.705433 0.774894 -vt 0.780717 0.785601 -vt 0.772352 0.774894 -vt 0.738892 0.774894 -vt 0.744469 0.774894 -vt 0.761199 0.774894 -vt 0.766775 0.774894 -vt 0.938670 0.781476 -vt 0.953348 0.783251 -vt 0.953554 0.787410 -vt 0.750045 0.766567 -vt 0.755622 0.766567 -vt 0.772352 0.766567 -vt 0.777928 0.766567 -vt 0.711009 0.774894 -vt 0.705433 0.766567 -vt 0.716586 0.766567 -vt 0.722163 0.766567 -vt 0.738892 0.766567 -vt 0.744469 0.766567 -vt 0.761199 0.766567 -vt 0.766775 0.766567 -vt 0.694280 0.766567 -vt 0.699856 0.766567 -vt 0.504645 0.473058 -vt 0.495485 0.473058 -vt 0.495485 0.456328 -vt 0.967350 0.948578 -vt 0.970526 0.953162 -vt 0.962447 0.965544 -vt 0.925040 0.587203 -vt 0.933120 0.574821 -vt 0.942647 0.588572 -vt 0.925040 0.463169 -vt 0.933119 0.450787 -vt 0.942647 0.464538 -vt 0.956730 0.791994 -vt 0.948651 0.804376 -vt 0.939123 0.790624 -vt 0.969853 0.939545 -vt 0.960592 0.928020 -vt 0.968599 0.923571 -vt 0.716586 0.762403 -vt 0.722163 0.762403 -vt 0.952467 0.942644 -vt 0.967145 0.944419 -vt 0.943100 0.473687 -vt 0.934975 0.488311 -vt 0.925713 0.476786 -vt 0.567356 0.608529 -vt 0.567356 0.591799 -vt 0.576516 0.591799 -vt 0.898139 0.430742 -vt 0.881409 0.430742 -vt 0.881409 0.421583 -vt 0.947393 0.833580 -vt 0.930664 0.833580 -vt 0.930664 0.824420 -vt 0.952585 0.923571 -vt 0.951107 0.602169 -vt 0.942981 0.616793 -vt 0.934975 0.612345 -vt 0.951107 0.478135 -vt 0.942981 0.492759 -vt 0.938789 0.762403 -vt 0.946796 0.766852 -vt 0.988008 0.501624 -vt 0.983236 0.504424 -vt 0.981265 0.502452 -vt 0.956057 0.778377 -vt 0.943100 0.597721 -vt 0.928422 0.595945 -vt 0.928216 0.591787 -vt 0.761199 0.762403 -vt 0.766775 0.762403 -vt 0.925713 0.600820 -vt 0.926968 0.616793 -vt 0.738892 0.762403 -vt 0.744469 0.762403 -vt 0.976505 0.507212 -vt 0.978476 0.502452 -vt 0.981265 0.509183 -vt 0.975676 0.497680 -vt 0.976505 0.504424 -vt 0.975676 0.513955 -vt 0.971733 0.510012 -vt 0.984065 0.513955 -vt 0.983236 0.507212 -vt 0.988590 0.508606 -vt 0.977082 0.497098 -vt 0.982659 0.497098 -vt 0.971151 0.503029 -vt 0.977082 0.514537 -vt 0.978476 0.509183 -vt 0.694280 0.762403 -vt 0.699856 0.762403 -vt 0.954803 0.762403 -vt 0.959696 0.776355 -vt 0.928422 0.471911 -vt 0.928216 0.467753 -vt 0.926968 0.492759 -vt 0.836444 0.046647 -vt 0.803136 0.046647 -vt 0.803136 0.035494 -vt 0.836444 0.035494 -vt 0.803136 0.024341 -vt 0.803136 0.113566 -vt 0.803136 0.102413 -vt 0.836444 0.102413 -vt 0.803136 0.091260 -vt 0.836444 0.091260 -vt 0.803136 0.080107 -vt 0.836444 0.080107 -vt 0.803136 0.068953 -vt 0.803136 0.057800 -vt 0.836444 0.057800 -vt 0.847152 0.060589 -vt 0.847152 0.066165 -vt 0.855479 0.060589 -vt 0.836444 0.024341 -vt 0.847152 0.027129 -vt 0.847152 0.082895 -vt 0.847152 0.049435 -vt 0.847152 0.055012 -vt 0.847152 0.038282 -vt 0.847152 0.043859 -vt 0.847152 0.105201 -vt 0.847152 0.110778 -vt 0.836444 0.068953 -vt 0.847152 0.071742 -vt 0.847152 0.094048 -vt 0.959317 0.262111 -vt 0.944639 0.260336 -vt 0.944433 0.256177 -vt 0.855479 0.082895 -vt 0.855479 0.088471 -vt 0.855479 0.105201 -vt 0.855479 0.038282 -vt 0.855479 0.043859 -vt 0.855479 0.049435 -vt 0.855479 0.055012 -vt 0.847152 0.077318 -vt 0.855479 0.071742 -vt 0.847152 0.099625 -vt 0.855479 0.094048 -vt 0.855479 0.027129 -vt 0.855479 0.032706 -vt 0.576516 0.645303 -vt 0.567356 0.645303 -vt 0.567356 0.628573 -vt 0.365727 0.983380 -vt 0.353345 0.975301 -vt 0.367096 0.965773 -vt 0.152899 0.946060 -vt 0.144819 0.958442 -vt 0.135292 0.944691 -vt 0.945975 0.085817 -vt 0.958358 0.093897 -vt 0.944606 0.103424 -vt 0.941257 0.251593 -vt 0.949336 0.239211 -vt 0.958864 0.252963 -vt 0.379344 0.982707 -vt 0.390869 0.973446 -vt 0.395317 0.981452 -vt 0.859642 0.049435 -vt 0.859642 0.055012 -vt 0.376245 0.965320 -vt 0.374469 0.979998 -vt 0.920833 0.095752 -vt 0.932358 0.086490 -vt 0.937233 0.089199 -vt 0.967438 0.841150 -vt 0.967438 0.824420 -vt 0.976597 0.824420 -vt 0.197247 0.985573 -vt 0.180518 0.985573 -vt 0.180518 0.976414 -vt 0.085262 0.983929 -vt 0.068532 0.983929 -vt 0.068532 0.974770 -vt 0.380693 0.957314 -vt 0.395317 0.965439 -vt 0.126832 0.931094 -vt 0.134958 0.916470 -vt 0.142964 0.920918 -vt 0.916385 0.103758 -vt 0.935457 0.103877 -vt 0.967323 0.266560 -vt 0.959198 0.281184 -vt 0.951191 0.276735 -vt 0.170391 0.792782 -vt 0.175968 0.792782 -vt 0.174573 0.798136 -vt 0.941930 0.265210 -vt 0.134839 0.935542 -vt 0.149517 0.937318 -vt 0.149723 0.941476 -vt 0.859642 0.094048 -vt 0.859642 0.099625 -vt 0.155865 0.930421 -vt 0.152226 0.932443 -vt 0.859642 0.071742 -vt 0.859642 0.077318 -vt 0.855479 0.077318 -vt 0.171785 0.804867 -vt 0.169813 0.800107 -vt 0.176545 0.802896 -vt 0.164460 0.804290 -vt 0.164460 0.798713 -vt 0.175968 0.810221 -vt 0.170391 0.810221 -vt 0.181899 0.798713 -vt 0.181899 0.804290 -vt 0.181317 0.797307 -vt 0.176545 0.800107 -vt 0.165042 0.797307 -vt 0.168985 0.793364 -vt 0.171785 0.798136 -vt 0.165042 0.805695 -vt 0.169813 0.802896 -vt 0.177373 0.809639 -vt 0.174573 0.804867 -vt 0.859642 0.027129 -vt 0.859642 0.032706 -vt 0.943185 0.281184 -vt 0.938291 0.267232 -vt 0.941391 0.088993 -vt 0.930336 0.082851 -vt 0.477364 0.769821 -vt 0.502345 0.769821 -vt 0.502345 0.779780 -vt 0.477364 0.779780 -vt 0.502345 0.789738 -vt 0.502345 0.799696 -vt 0.477364 0.799696 -vt 0.502345 0.809654 -vt 0.502345 0.819612 -vt 0.477364 0.819612 -vt 0.502345 0.829570 -vt 0.508179 0.781472 -vt 0.502345 0.759863 -vt 0.477364 0.749905 -vt 0.502345 0.749905 -vt 0.477364 0.829570 -vt 0.467749 0.827579 -vt 0.508179 0.801389 -vt 0.512146 0.803032 -vt 0.512146 0.806318 -vt 0.508179 0.811347 -vt 0.508179 0.817919 -vt 0.508179 0.761556 -vt 0.508179 0.771514 -vt 0.508179 0.791431 -vt 0.508179 0.821305 -vt 0.508179 0.807961 -vt 0.508179 0.751598 -vt 0.508179 0.758170 -vt 0.789164 0.695676 -vt 0.805798 0.696572 -vt 0.805664 0.699557 -vt 0.512146 0.783116 -vt 0.512146 0.786402 -vt 0.512146 0.753241 -vt 0.512146 0.812990 -vt 0.508179 0.798003 -vt 0.512146 0.793074 -vt 0.512146 0.773157 -vt 0.512146 0.776444 -vt 0.512146 0.763199 -vt 0.512146 0.766485 -vt 0.512146 0.822948 -vt 0.512146 0.826234 -vt 0.441018 0.503466 -vt 0.438906 0.508566 -vt 0.435918 0.501353 -vt 0.789370 0.718664 -vt 0.789164 0.715384 -vt 0.805798 0.714489 -vt 0.788928 0.708816 -vt 0.805584 0.708518 -vt 0.805664 0.711504 -vt 0.788899 0.705530 -vt 0.788928 0.702244 -vt 0.805584 0.702543 -vt 0.789370 0.692397 -vt 0.805986 0.693591 -vt 0.789016 0.712101 -vt 0.805557 0.705530 -vt 0.789016 0.698959 -vt 0.467749 0.751897 -vt 0.467749 0.757872 -vt 0.442768 0.757872 -vt 0.477364 0.809654 -vt 0.467749 0.807662 -vt 0.467749 0.801688 -vt 0.477364 0.759863 -vt 0.477364 0.789738 -vt 0.467749 0.787746 -vt 0.467749 0.817621 -vt 0.467749 0.811646 -vt 0.467749 0.767830 -vt 0.467749 0.777788 -vt 0.467749 0.771813 -vt 0.467749 0.797704 -vt 0.442768 0.817621 -vt 0.442768 0.811646 -vt 0.442768 0.797704 -vt 0.442768 0.791729 -vt 0.442768 0.777788 -vt 0.467749 0.761855 -vt 0.442768 0.767830 -vt 0.467749 0.821604 -vt 0.442768 0.827579 -vt 0.442768 0.807662 -vt 0.442768 0.801688 -vt 0.442768 0.787746 -vt 0.442768 0.781771 -vt 0.490896 0.512177 -vt 0.500854 0.512177 -vt 0.500854 0.537158 -vt 0.510812 0.512177 -vt 0.510812 0.537158 -vt 0.520770 0.512177 -vt 0.520770 0.537158 -vt 0.530728 0.512177 -vt 0.530728 0.537158 -vt 0.540687 0.512177 -vt 0.540687 0.537158 -vt 0.550645 0.512177 -vt 0.550645 0.537158 -vt 0.502547 0.506343 -vt 0.480938 0.537158 -vt 0.480938 0.512177 -vt 0.470980 0.512177 -vt 0.548653 0.546774 -vt 0.542678 0.546774 -vt 0.529036 0.506343 -vt 0.522463 0.506343 -vt 0.524106 0.502376 -vt 0.532421 0.506343 -vt 0.538994 0.506343 -vt 0.482631 0.506343 -vt 0.492589 0.506343 -vt 0.499161 0.506343 -vt 0.512505 0.506343 -vt 0.542379 0.506343 -vt 0.548952 0.506343 -vt 0.472672 0.506343 -vt 0.729246 0.103245 -vt 0.729393 0.099962 -vt 0.746028 0.100858 -vt 0.504190 0.502376 -vt 0.507476 0.502376 -vt 0.479245 0.506343 -vt 0.474316 0.502376 -vt 0.534064 0.502376 -vt 0.537351 0.502376 -vt 0.519077 0.506343 -vt 0.514148 0.502376 -vt 0.494232 0.502376 -vt 0.489203 0.506343 -vt 0.484274 0.502376 -vt 0.544023 0.502376 -vt 0.547309 0.502376 -vt 0.572802 0.564102 -vt 0.570689 0.559002 -vt 0.575789 0.556889 -vt 0.729393 0.119670 -vt 0.746028 0.118774 -vt 0.746215 0.121756 -vt 0.729246 0.116387 -vt 0.729157 0.113102 -vt 0.745813 0.112804 -vt 0.729128 0.109816 -vt 0.729157 0.106530 -vt 0.745813 0.106829 -vt 0.729599 0.096683 -vt 0.746215 0.097877 -vt 0.745894 0.115790 -vt 0.745786 0.109816 -vt 0.745894 0.103843 -vt 0.478946 0.546774 -vt 0.478946 0.571755 -vt 0.472971 0.571755 -vt 0.528737 0.546774 -vt 0.472971 0.546774 -vt 0.508820 0.546774 -vt 0.502846 0.546774 -vt 0.538695 0.546774 -vt 0.532720 0.546774 -vt 0.490896 0.537158 -vt 0.488904 0.546774 -vt 0.498862 0.546774 -vt 0.492887 0.546774 -vt 0.518779 0.546774 -vt 0.512804 0.546774 -vt 0.538695 0.571755 -vt 0.532720 0.571755 -vt 0.518779 0.571755 -vt 0.512804 0.571755 -vt 0.498862 0.571755 -vt 0.492887 0.571755 -vt 0.488904 0.571755 -vt 0.482929 0.571755 -vt 0.548653 0.571755 -vt 0.542678 0.571755 -vt 0.528737 0.571755 -vt 0.522762 0.571755 -vt 0.508820 0.571755 -vt 0.502846 0.571755 -vt 0.270641 0.751019 -vt 0.270641 0.760977 -vt 0.245660 0.760977 -vt 0.270641 0.770935 -vt 0.270641 0.780893 -vt 0.245660 0.780893 -vt 0.270641 0.790852 -vt 0.245660 0.790852 -vt 0.270641 0.800810 -vt 0.245660 0.800810 -vt 0.270641 0.810768 -vt 0.245660 0.810768 -vt 0.276475 0.762670 -vt 0.276475 0.769242 -vt 0.270641 0.741061 -vt 0.245660 0.751019 -vt 0.245660 0.731103 -vt 0.270641 0.731103 -vt 0.236044 0.808776 -vt 0.276475 0.782586 -vt 0.280442 0.784229 -vt 0.280442 0.787516 -vt 0.276475 0.792544 -vt 0.276475 0.799117 -vt 0.276475 0.742754 -vt 0.276475 0.752712 -vt 0.276475 0.759284 -vt 0.276475 0.772628 -vt 0.276475 0.802503 -vt 0.276475 0.809075 -vt 0.276475 0.732795 -vt 0.723831 0.900789 -vt 0.723978 0.897506 -vt 0.740612 0.898402 -vt 0.280442 0.764313 -vt 0.280442 0.767599 -vt 0.276475 0.739368 -vt 0.280442 0.734439 -vt 0.280442 0.794188 -vt 0.276475 0.779200 -vt 0.280442 0.774271 -vt 0.280442 0.754355 -vt 0.280442 0.744397 -vt 0.280442 0.747683 -vt 0.280442 0.804146 -vt 0.280442 0.807432 -vt 0.572802 0.509588 -vt 0.570689 0.504488 -vt 0.575789 0.502376 -vt 0.723978 0.917214 -vt 0.740612 0.916318 -vt 0.740800 0.919300 -vt 0.723831 0.913931 -vt 0.723742 0.910646 -vt 0.740398 0.910347 -vt 0.723713 0.907360 -vt 0.723742 0.904074 -vt 0.740398 0.904373 -vt 0.724184 0.894226 -vt 0.740800 0.895420 -vt 0.740478 0.913334 -vt 0.740371 0.907360 -vt 0.740478 0.901386 -vt 0.236044 0.739069 -vt 0.211063 0.739069 -vt 0.211063 0.733094 -vt 0.236044 0.788860 -vt 0.236044 0.782885 -vt 0.245660 0.741061 -vt 0.236044 0.733094 -vt 0.245660 0.770935 -vt 0.236044 0.768944 -vt 0.236044 0.762969 -vt 0.236044 0.798818 -vt 0.236044 0.792843 -vt 0.236044 0.749027 -vt 0.236044 0.743052 -vt 0.236044 0.758985 -vt 0.236044 0.753011 -vt 0.236044 0.778902 -vt 0.211063 0.798818 -vt 0.211063 0.792843 -vt 0.211063 0.778902 -vt 0.211063 0.772927 -vt 0.211063 0.758985 -vt 0.211063 0.753011 -vt 0.211063 0.749027 -vt 0.211063 0.743052 -vt 0.211063 0.808776 -vt 0.211063 0.802801 -vt 0.211063 0.788860 -vt 0.211063 0.782885 -vt 0.211063 0.768944 -vt 0.211063 0.762969 -vt 0.562881 0.785605 -vt 0.562881 0.774452 -vt 0.579535 0.774452 -vt 0.552750 0.692397 -vt 0.562881 0.694787 -vt 0.562881 0.705940 -vt 0.552750 0.787995 -vt 0.544423 0.787995 -vt 0.544423 0.772062 -vt 0.562881 0.726653 -vt 0.579535 0.726653 -vt 0.579535 0.737806 -vt 0.552750 0.756129 -vt 0.562881 0.758519 -vt 0.562881 0.769672 -vt 0.544423 0.756129 -vt 0.562881 0.817471 -vt 0.562881 0.806318 -vt 0.579535 0.806318 -vt 0.552750 0.772062 -vt 0.544423 0.740196 -vt 0.579535 0.758519 -vt 0.579535 0.769672 -vt 0.552750 0.708330 -vt 0.562881 0.710720 -vt 0.562881 0.721873 -vt 0.544423 0.724263 -vt 0.552750 0.724263 -vt 0.562881 0.737806 -vt 0.544423 0.708330 -vt 0.552750 0.740196 -vt 0.562881 0.742586 -vt 0.579535 0.694787 -vt 0.579535 0.705940 -vt 0.544423 0.692397 -vt 0.353345 0.926003 -vt 0.353345 0.910070 -vt 0.358153 0.912062 -vt 0.552750 0.803928 -vt 0.544423 0.803928 -vt 0.552750 0.819861 -vt 0.544423 0.819861 -vt 0.579535 0.710720 -vt 0.579535 0.721873 -vt 0.562881 0.790385 -vt 0.562881 0.753739 -vt 0.579535 0.742586 -vt 0.562881 0.801538 -vt 0.579535 0.790385 -vt 0.086211 0.916470 -vt 0.087663 0.927791 -vt 0.082142 0.930075 -vt 0.391810 0.926003 -vt 0.387002 0.924011 -vt 0.387002 0.912062 -vt 0.358153 0.924011 -vt 0.366603 0.932461 -vt 0.364611 0.898803 -vt 0.380544 0.898803 -vt 0.378552 0.903612 -vt 0.364611 0.937269 -vt 0.378552 0.932461 -vt 0.391810 0.910070 -vt 0.366603 0.903612 -vt 0.380544 0.937269 -vt 0.082138 0.941116 -vt 0.079854 0.935595 -vt 0.102219 0.923107 -vt 0.106788 0.934148 -vt 0.095467 0.935600 -vt 0.102210 0.948098 -vt 0.093178 0.941119 -vt 0.075159 0.950148 -vt 0.087657 0.943404 -vt 0.073110 0.923097 -vt 0.100161 0.921047 -vt 0.093182 0.930079 -vt 0.100151 0.950156 -vt 0.089109 0.954725 -vt 0.068532 0.937047 -vt 0.881409 0.314431 -vt 0.898063 0.314431 -vt 0.898063 0.325584 -vt 0.842907 0.677960 -vt 0.842907 0.662027 -vt 0.848677 0.664417 -vt 0.826253 0.630161 -vt 0.826253 0.614228 -vt 0.842907 0.614228 -vt 0.881409 0.370197 -vt 0.898063 0.370197 -vt 0.898063 0.381350 -vt 0.842907 0.598295 -vt 0.848677 0.600685 -vt 0.826253 0.598295 -vt 0.881409 0.347890 -vt 0.881409 0.336737 -vt 0.898063 0.336737 -vt 0.842907 0.630161 -vt 0.848677 0.616618 -vt 0.842907 0.725760 -vt 0.826253 0.725760 -vt 0.826253 0.709827 -vt 0.881409 0.303278 -vt 0.898063 0.303278 -vt 0.848677 0.680350 -vt 0.848677 0.691504 -vt 0.842907 0.709827 -vt 0.826253 0.693893 -vt 0.182908 0.880001 -vt 0.194061 0.880001 -vt 0.196451 0.885771 -vt 0.842907 0.693893 -vt 0.848677 0.696283 -vt 0.848677 0.707437 -vt 0.826253 0.677960 -vt 0.848677 0.712216 -vt 0.848677 0.723370 -vt 0.898063 0.347890 -vt 0.898063 0.359044 -vt 0.826253 0.662027 -vt 0.010022 0.927736 -vt 0.021289 0.916470 -vt 0.023280 0.921278 -vt 0.826253 0.646094 -vt 0.842907 0.646094 -vt 0.881409 0.359044 -vt 0.848677 0.632551 -vt 0.848677 0.648484 -vt 0.848677 0.659637 -vt 0.881409 0.381350 -vt 0.898063 0.392503 -vt 0.881409 0.325584 -vt 0.276116 0.885771 -vt 0.276116 0.894098 -vt 0.260183 0.894098 -vt 0.225927 0.880001 -vt 0.228317 0.885771 -vt 0.212384 0.885771 -vt 0.246640 0.880001 -vt 0.257793 0.880001 -vt 0.260183 0.885771 -vt 0.305592 0.880001 -vt 0.307982 0.885771 -vt 0.292049 0.885771 -vt 0.198841 0.880001 -vt 0.209994 0.880001 -vt 0.241860 0.880001 -vt 0.244250 0.885771 -vt 0.273726 0.880001 -vt 0.289659 0.880001 -vt 0.292049 0.894098 -vt 0.307982 0.894098 -vt 0.305592 0.899868 -vt 0.180518 0.885771 -vt 0.196451 0.894098 -vt 0.228317 0.894098 -vt 0.212384 0.894098 -vt 0.244250 0.894098 -vt 0.868722 0.495399 -vt 0.868722 0.484246 -vt 0.902030 0.484246 -vt 0.209994 0.899868 -vt 0.198841 0.899868 -vt 0.241860 0.899868 -vt 0.273726 0.899868 -vt 0.289659 0.899868 -vt 0.194061 0.899868 -vt 0.182908 0.899868 -vt 0.225927 0.899868 -vt 0.257793 0.899868 -vt 0.246640 0.899868 -vt 0.868722 0.450787 -vt 0.902030 0.450787 -vt 0.902030 0.461940 -vt 0.868722 0.517705 -vt 0.902030 0.517705 -vt 0.902030 0.528858 -vt 0.902030 0.495399 -vt 0.902030 0.506552 -vt 0.868722 0.473093 -vt 0.902030 0.473093 -vt 0.868722 0.461940 -vt 0.868722 0.540012 -vt 0.868722 0.528859 -vt 0.868722 0.506552 -vt 0.918108 0.320950 -vt 0.922681 0.309909 -vt 0.931715 0.316885 -vt 0.037222 0.954935 -vt 0.035230 0.950127 -vt 0.043680 0.941677 -vt 0.014830 0.929728 -vt 0.014830 0.941677 -vt 0.048488 0.927736 -vt 0.043680 0.929728 -vt 0.035230 0.921278 -vt 0.010022 0.943669 -vt 0.023280 0.950127 -vt 0.048488 0.943669 -vt 0.037222 0.916470 -vt 0.021289 0.954935 -vt 0.937235 0.330212 -vt 0.931715 0.327925 -vt 0.938691 0.303278 -vt 0.949731 0.307851 -vt 0.942755 0.316885 -vt 0.956362 0.320950 -vt 0.945042 0.322405 -vt 0.938691 0.341533 -vt 0.942755 0.327925 -vt 0.922680 0.334901 -vt 0.918108 0.323861 -vt 0.929428 0.322405 -vt 0.935779 0.303278 -vt 0.937235 0.314599 -vt 0.951789 0.334901 -vt 0.924739 0.336960 -vt 0.821594 0.226819 -vt 0.821594 0.215665 -vt 0.838248 0.215665 -vt 0.811463 0.133610 -vt 0.821594 0.136000 -vt 0.821594 0.147153 -vt 0.811463 0.229208 -vt 0.803136 0.229208 -vt 0.803136 0.213275 -vt 0.821594 0.167866 -vt 0.838248 0.167866 -vt 0.838248 0.179019 -vt 0.811463 0.197342 -vt 0.821594 0.199732 -vt 0.821594 0.210885 -vt 0.803136 0.197342 -vt 0.821594 0.258685 -vt 0.821594 0.247531 -vt 0.838248 0.247531 -vt 0.811463 0.213275 -vt 0.803136 0.181409 -vt 0.838248 0.199732 -vt 0.838248 0.210886 -vt 0.811463 0.149543 -vt 0.821594 0.151933 -vt 0.821594 0.163086 -vt 0.803136 0.165476 -vt 0.811463 0.165476 -vt 0.821594 0.179019 -vt 0.803136 0.149543 -vt 0.811463 0.181409 -vt 0.821594 0.183799 -vt 0.838248 0.136000 -vt 0.838248 0.147153 -vt 0.803136 0.133610 -vt 0.470365 0.910070 -vt 0.481631 0.898803 -vt 0.483623 0.903612 -vt 0.811463 0.245142 -vt 0.803136 0.245142 -vt 0.803136 0.261075 -vt 0.838248 0.151933 -vt 0.838248 0.163086 -vt 0.821594 0.231598 -vt 0.821594 0.194952 -vt 0.838248 0.183799 -vt 0.821594 0.242752 -vt 0.838248 0.231598 -vt 0.935779 0.361577 -vt 0.937235 0.372898 -vt 0.931715 0.375185 -vt 0.497564 0.937269 -vt 0.495573 0.932461 -vt 0.504022 0.924011 -vt 0.475173 0.912062 -vt 0.475173 0.924011 -vt 0.497564 0.898803 -vt 0.508831 0.910070 -vt 0.504022 0.912062 -vt 0.470365 0.926003 -vt 0.483623 0.932461 -vt 0.508831 0.926003 -vt 0.495573 0.903612 -vt 0.481631 0.937269 -vt 0.931715 0.386225 -vt 0.929428 0.380705 -vt 0.951789 0.368209 -vt 0.956362 0.379249 -vt 0.945042 0.380705 -vt 0.956362 0.382160 -vt 0.951789 0.393200 -vt 0.942755 0.386225 -vt 0.924739 0.395259 -vt 0.937235 0.388511 -vt 0.922680 0.368209 -vt 0.938691 0.361577 -vt 0.949731 0.366150 -vt 0.942755 0.375185 -vt 0.949731 0.395259 -vt 0.938691 0.399832 -vt 0.918108 0.382160 -vt 0.764063 0.850107 -vt 0.780717 0.850107 -vt 0.780717 0.861260 -vt 0.317140 0.810768 -vt 0.317140 0.794835 -vt 0.322910 0.797225 -vt 0.300486 0.762969 -vt 0.300486 0.747036 -vt 0.317140 0.747036 -vt 0.764063 0.905872 -vt 0.780717 0.905872 -vt 0.780717 0.917026 -vt 0.317140 0.731103 -vt 0.322910 0.733492 -vt 0.300486 0.731103 -vt 0.764063 0.883566 -vt 0.764063 0.872413 -vt 0.780717 0.872413 -vt 0.317140 0.762969 -vt 0.322910 0.749426 -vt 0.317140 0.858567 -vt 0.300486 0.858567 -vt 0.300486 0.842634 -vt 0.764063 0.838954 -vt 0.780717 0.838954 -vt 0.317140 0.826701 -vt 0.322910 0.813158 -vt 0.317140 0.842634 -vt 0.300486 0.826701 -vt 0.023565 0.876558 -vt 0.025955 0.882328 -vt 0.010022 0.882328 -vt 0.322910 0.829091 -vt 0.322910 0.840244 -vt 0.300486 0.810768 -vt 0.322910 0.845024 -vt 0.322910 0.856177 -vt 0.780717 0.883566 -vt 0.780717 0.894719 -vt 0.300486 0.794835 -vt 0.916385 0.051540 -vt 0.916385 0.035607 -vt 0.921193 0.037599 -vt 0.300486 0.778902 -vt 0.317140 0.778902 -vt 0.764063 0.894719 -vt 0.322910 0.765359 -vt 0.322910 0.776512 -vt 0.322910 0.781292 -vt 0.322910 0.792445 -vt 0.764063 0.928179 -vt 0.764063 0.917026 -vt 0.764063 0.861260 -vt 0.105620 0.882328 -vt 0.105620 0.890655 -vt 0.089687 0.890655 -vt 0.055431 0.876558 -vt 0.057821 0.882328 -vt 0.041888 0.882328 -vt 0.076144 0.876558 -vt 0.087297 0.876558 -vt 0.089687 0.882328 -vt 0.135097 0.876558 -vt 0.137486 0.882328 -vt 0.121553 0.882328 -vt 0.028345 0.876558 -vt 0.039498 0.876558 -vt 0.071364 0.876558 -vt 0.073754 0.882328 -vt 0.092077 0.876558 -vt 0.103230 0.876558 -vt 0.119163 0.876558 -vt 0.121553 0.890655 -vt 0.137486 0.890655 -vt 0.135097 0.896425 -vt 0.025955 0.890655 -vt 0.057821 0.890655 -vt 0.041888 0.890655 -vt 0.073754 0.890655 -vt 0.868722 0.604668 -vt 0.868722 0.593515 -vt 0.902030 0.593515 -vt 0.039498 0.896425 -vt 0.028345 0.896425 -vt 0.071364 0.896425 -vt 0.103230 0.896425 -vt 0.092077 0.896425 -vt 0.119163 0.896425 -vt 0.023565 0.896425 -vt 0.012412 0.896425 -vt 0.055431 0.896425 -vt 0.087297 0.896425 -vt 0.076144 0.896425 -vt 0.868722 0.560056 -vt 0.902030 0.560056 -vt 0.902030 0.571209 -vt 0.868722 0.626975 -vt 0.902030 0.626975 -vt 0.902030 0.638128 -vt 0.902030 0.604668 -vt 0.902030 0.615822 -vt 0.868722 0.582362 -vt 0.902030 0.582362 -vt 0.868722 0.571209 -vt 0.868722 0.649281 -vt 0.868722 0.638128 -vt 0.868722 0.615822 -vt 0.192771 0.919912 -vt 0.204721 0.919912 -vt 0.201734 0.930928 -vt 0.954851 0.051540 -vt 0.950042 0.049549 -vt 0.950042 0.037599 -vt 0.921193 0.049549 -vt 0.929643 0.057998 -vt 0.943584 0.024341 -vt 0.941593 0.029149 -vt 0.929643 0.029149 -vt 0.927651 0.062807 -vt 0.941593 0.057998 -vt 0.954851 0.035607 -vt 0.927651 0.024341 -vt 0.943584 0.062807 -vt 0.191534 0.941128 -vt 0.191534 0.935153 -vt 0.216975 0.944116 -vt 0.205959 0.941128 -vt 0.205959 0.935153 -vt 0.207411 0.955255 -vt 0.201734 0.945353 -vt 0.181632 0.946805 -vt 0.195759 0.945353 -vt 0.181632 0.929476 -vt 0.190082 0.921026 -vt 0.195759 0.930928 -vt 0.215861 0.929476 -vt 0.204721 0.956369 -vt 0.192771 0.956369 -vt 0.180518 0.932166 -vt 0.800761 0.784709 -vt 0.800761 0.773556 -vt 0.834069 0.773556 -vt 0.800761 0.762403 -vt 0.834069 0.762403 -vt 0.800761 0.851628 -vt 0.800761 0.840475 -vt 0.834069 0.840475 -vt 0.800761 0.829322 -vt 0.834069 0.829322 -vt 0.800761 0.818169 -vt 0.834069 0.818169 -vt 0.800761 0.807016 -vt 0.800761 0.795863 -vt 0.834069 0.784709 -vt 0.834069 0.795863 -vt 0.844776 0.798651 -vt 0.844776 0.804227 -vt 0.853103 0.798651 -vt 0.853103 0.804227 -vt 0.844777 0.765191 -vt 0.844777 0.770768 -vt 0.844777 0.820957 -vt 0.844777 0.787498 -vt 0.844776 0.776345 -vt 0.834069 0.851628 -vt 0.844777 0.843263 -vt 0.834069 0.807016 -vt 0.844777 0.809804 -vt 0.844777 0.815381 -vt 0.844777 0.832110 -vt 0.844777 0.837687 -vt 0.965486 0.884454 -vt 0.950808 0.882679 -vt 0.950603 0.878520 -vt 0.844777 0.826534 -vt 0.853103 0.820957 -vt 0.844777 0.848840 -vt 0.853103 0.843263 -vt 0.844777 0.781921 -vt 0.853103 0.776345 -vt 0.853103 0.787498 -vt 0.853103 0.793074 -vt 0.853103 0.809804 -vt 0.853103 0.815381 -vt 0.853103 0.832110 -vt 0.853103 0.837687 -vt 0.853103 0.765191 -vt 0.853103 0.770768 -vt 0.026752 0.974980 -vt 0.026752 0.984139 -vt 0.010022 0.984139 -vt 0.751126 0.974289 -vt 0.738744 0.966210 -vt 0.752495 0.956682 -vt 0.942002 0.687871 -vt 0.950082 0.675489 -vt 0.959610 0.689241 -vt 0.803727 0.950258 -vt 0.811806 0.937876 -vt 0.821334 0.951627 -vt 0.947427 0.873936 -vt 0.955506 0.861554 -vt 0.965034 0.875305 -vt 0.764743 0.973616 -vt 0.776268 0.964355 -vt 0.780717 0.972362 -vt 0.857267 0.787498 -vt 0.857267 0.793074 -vt 0.761644 0.956230 -vt 0.759868 0.970908 -vt 0.813661 0.975400 -vt 0.804400 0.963875 -vt 0.807109 0.959000 -vt 0.971687 0.421583 -vt 0.971687 0.430742 -vt 0.954957 0.430742 -vt 0.974895 0.024341 -vt 0.984055 0.024341 -vt 0.984055 0.041071 -vt 0.918183 0.430742 -vt 0.918183 0.421583 -vt 0.934913 0.421583 -vt 0.780717 0.956348 -vt 0.968069 0.702838 -vt 0.959943 0.717462 -vt 0.951937 0.713013 -vt 0.829793 0.965224 -vt 0.821668 0.979849 -vt 0.965368 0.903527 -vt 0.957361 0.899078 -vt 0.976414 0.641363 -vt 0.971643 0.644163 -vt 0.969671 0.642191 -vt 0.948100 0.887553 -vt 0.960062 0.698389 -vt 0.945384 0.696613 -vt 0.945178 0.692455 -vt 0.857267 0.832110 -vt 0.857267 0.837687 -vt 0.939036 0.703510 -vt 0.942676 0.701488 -vt 0.857267 0.809804 -vt 0.857267 0.815381 -vt 0.964911 0.646951 -vt 0.966883 0.642191 -vt 0.969671 0.648923 -vt 0.964083 0.637420 -vt 0.964911 0.644163 -vt 0.960140 0.649751 -vt 0.966883 0.648923 -vt 0.976414 0.649751 -vt 0.972471 0.653694 -vt 0.976997 0.648345 -vt 0.971643 0.646951 -vt 0.965489 0.636838 -vt 0.971065 0.636838 -vt 0.959557 0.648345 -vt 0.959557 0.642769 -vt 0.971065 0.654277 -vt 0.965489 0.654277 -vt 0.857267 0.765191 -vt 0.857267 0.770768 -vt 0.949354 0.903527 -vt 0.944460 0.889575 -vt 0.806903 0.954842 -vt 0.800761 0.965897 -vt 0.387941 0.769821 -vt 0.412922 0.769821 -vt 0.412922 0.779780 -vt 0.387941 0.779780 -vt 0.412922 0.789738 -vt 0.412922 0.799696 -vt 0.387941 0.799696 -vt 0.412922 0.809654 -vt 0.387941 0.809654 -vt 0.412922 0.819612 -vt 0.412922 0.829570 -vt 0.387941 0.829570 -vt 0.418756 0.781472 -vt 0.418756 0.788045 -vt 0.387941 0.759863 -vt 0.412922 0.759863 -vt 0.387941 0.749905 -vt 0.412922 0.749905 -vt 0.378326 0.827579 -vt 0.378326 0.821604 -vt 0.418757 0.801389 -vt 0.422723 0.803032 -vt 0.422723 0.806318 -vt 0.418757 0.811347 -vt 0.418756 0.761556 -vt 0.418756 0.771514 -vt 0.418756 0.791431 -vt 0.418757 0.821305 -vt 0.418757 0.827877 -vt 0.418756 0.807961 -vt 0.418756 0.751598 -vt 0.971269 0.457349 -vt 0.971416 0.454066 -vt 0.988051 0.454962 -vt 0.422723 0.783116 -vt 0.422723 0.786402 -vt 0.418756 0.758170 -vt 0.422723 0.753241 -vt 0.418757 0.817919 -vt 0.422723 0.812990 -vt 0.418756 0.798003 -vt 0.422723 0.793074 -vt 0.418756 0.778087 -vt 0.422723 0.773157 -vt 0.422723 0.763199 -vt 0.422723 0.766485 -vt 0.422723 0.822948 -vt 0.575789 0.536845 -vt 0.570689 0.531745 -vt 0.572802 0.529633 -vt 0.971416 0.473774 -vt 0.988051 0.472878 -vt 0.988238 0.475860 -vt 0.971180 0.467206 -vt 0.987836 0.466908 -vt 0.987917 0.469894 -vt 0.971180 0.460634 -vt 0.987836 0.460933 -vt 0.987809 0.463920 -vt 0.971622 0.450787 -vt 0.988238 0.451981 -vt 0.971269 0.470491 -vt 0.971151 0.463920 -vt 0.987917 0.457947 -vt 0.378326 0.751897 -vt 0.378326 0.757872 -vt 0.353345 0.757872 -vt 0.378326 0.807662 -vt 0.378326 0.801688 -vt 0.387941 0.789738 -vt 0.378326 0.787746 -vt 0.387941 0.819612 -vt 0.378326 0.817621 -vt 0.378326 0.767830 -vt 0.378326 0.761855 -vt 0.378326 0.777788 -vt 0.378326 0.771813 -vt 0.378326 0.797704 -vt 0.378326 0.811646 -vt 0.353345 0.817621 -vt 0.353345 0.797704 -vt 0.353345 0.791729 -vt 0.353345 0.777788 -vt 0.353345 0.767830 -vt 0.353345 0.761855 -vt 0.353345 0.827579 -vt 0.353345 0.821604 -vt 0.353345 0.807662 -vt 0.353345 0.801688 -vt 0.353345 0.787746 -vt 0.353345 0.781771 -vt 0.842907 0.337534 -vt 0.842907 0.348687 -vt 0.826253 0.348687 -vt 0.853038 0.414809 -vt 0.853038 0.430742 -vt 0.842907 0.428352 -vt 0.853038 0.335144 -vt 0.861365 0.335144 -vt 0.861365 0.351077 -vt 0.842907 0.396486 -vt 0.826253 0.396486 -vt 0.826253 0.385333 -vt 0.853038 0.367010 -vt 0.842907 0.364620 -vt 0.842907 0.353467 -vt 0.861365 0.367010 -vt 0.842907 0.305668 -vt 0.842907 0.316821 -vt 0.826253 0.316821 -vt 0.853038 0.351077 -vt 0.861365 0.382943 -vt 0.826253 0.364620 -vt 0.826253 0.353467 -vt 0.842907 0.412419 -vt 0.842907 0.401266 -vt 0.861365 0.398876 -vt 0.853038 0.398876 -vt 0.853038 0.382943 -vt 0.861365 0.414809 -vt 0.842907 0.380553 -vt 0.826253 0.428352 -vt 0.826253 0.417199 -vt 0.861365 0.430742 -vt 0.528875 0.910070 -vt 0.533683 0.912062 -vt 0.533683 0.924011 -vt 0.853038 0.319211 -vt 0.861365 0.319211 -vt 0.861365 0.303278 -vt 0.826253 0.412419 -vt 0.826253 0.401266 -vt 0.842907 0.332754 -vt 0.842907 0.369400 -vt 0.826253 0.380553 -vt 0.842907 0.321601 -vt 0.826253 0.332754 -vt 0.305774 0.919912 -vt 0.317724 0.919912 -vt 0.314736 0.930928 -vt 0.567341 0.910070 -vt 0.567341 0.926003 -vt 0.562532 0.924011 -vt 0.528875 0.926003 -vt 0.542133 0.932461 -vt 0.540141 0.898803 -vt 0.556074 0.898803 -vt 0.554083 0.903612 -vt 0.540141 0.937269 -vt 0.554083 0.932461 -vt 0.562532 0.912062 -vt 0.542133 0.903612 -vt 0.556074 0.937269 -vt 0.304537 0.941128 -vt 0.304537 0.935153 -vt 0.329978 0.932166 -vt 0.329978 0.944116 -vt 0.318961 0.941128 -vt 0.328863 0.946805 -vt 0.320414 0.955255 -vt 0.314736 0.945353 -vt 0.303084 0.955255 -vt 0.294635 0.946805 -vt 0.303084 0.921026 -vt 0.308762 0.930928 -vt 0.328863 0.929476 -vt 0.318961 0.935153 -vt 0.317724 0.956369 -vt 0.305774 0.956369 -vt 0.308762 0.945353 -vt 0.293521 0.932166 -vt 0.896340 0.091260 -vt 0.896340 0.102413 -vt 0.879686 0.102413 -vt 0.832023 0.498586 -vt 0.832023 0.514519 -vt 0.826253 0.512129 -vt 0.848677 0.546385 -vt 0.848677 0.562318 -vt 0.832023 0.562318 -vt 0.896340 0.046647 -vt 0.879686 0.046647 -vt 0.879686 0.035494 -vt 0.832023 0.578251 -vt 0.826253 0.575861 -vt 0.826253 0.564708 -vt 0.848677 0.578251 -vt 0.896340 0.068953 -vt 0.896340 0.080107 -vt 0.879686 0.080107 -vt 0.826253 0.559928 -vt 0.826253 0.548775 -vt 0.848677 0.450787 -vt 0.848677 0.466720 -vt 0.832023 0.466720 -vt 0.896340 0.113566 -vt 0.879686 0.113566 -vt 0.826253 0.496196 -vt 0.826253 0.485043 -vt 0.848677 0.482653 -vt 0.613122 0.854315 -vt 0.615512 0.860085 -vt 0.599579 0.860085 -vt 0.832023 0.482653 -vt 0.826253 0.480263 -vt 0.826253 0.469110 -vt 0.848677 0.498586 -vt 0.826253 0.464330 -vt 0.826253 0.453176 -vt 0.879686 0.068953 -vt 0.879686 0.057800 -vt 0.848677 0.514519 -vt 0.423121 0.898803 -vt 0.425113 0.903612 -vt 0.416663 0.912062 -vt 0.848677 0.530452 -vt 0.832023 0.546385 -vt 0.832023 0.530452 -vt 0.896340 0.057800 -vt 0.826253 0.543995 -vt 0.826253 0.532842 -vt 0.826253 0.528062 -vt 0.826253 0.516909 -vt 0.896340 0.024341 -vt 0.896340 0.035494 -vt 0.879686 0.091260 -vt 0.695178 0.860085 -vt 0.695178 0.868412 -vt 0.679245 0.868412 -vt 0.633835 0.854315 -vt 0.644988 0.854315 -vt 0.647378 0.860085 -vt 0.665701 0.854315 -vt 0.676855 0.854315 -vt 0.679244 0.860085 -vt 0.713501 0.854315 -vt 0.724654 0.854315 -vt 0.727044 0.860085 -vt 0.629055 0.854315 -vt 0.631445 0.860085 -vt 0.660922 0.854315 -vt 0.663311 0.860085 -vt 0.692788 0.854315 -vt 0.697567 0.854315 -vt 0.708721 0.854315 -vt 0.711111 0.860085 -vt 0.727044 0.868412 -vt 0.724654 0.874182 -vt 0.713501 0.874182 -vt 0.711111 0.868412 -vt 0.615512 0.868412 -vt 0.647378 0.868412 -vt 0.631445 0.868412 -vt 0.663311 0.868412 -vt 0.858292 0.178223 -vt 0.858292 0.167070 -vt 0.891600 0.167070 -vt 0.629055 0.874182 -vt 0.660922 0.874182 -vt 0.692788 0.874182 -vt 0.681634 0.874182 -vt 0.708721 0.874182 -vt 0.697567 0.874182 -vt 0.599579 0.868412 -vt 0.613122 0.874182 -vt 0.644988 0.874182 -vt 0.633835 0.874182 -vt 0.676855 0.874182 -vt 0.665701 0.874182 -vt 0.858292 0.133610 -vt 0.891600 0.133610 -vt 0.891600 0.144763 -vt 0.858292 0.200529 -vt 0.891600 0.200529 -vt 0.891600 0.211682 -vt 0.891600 0.178223 -vt 0.891600 0.189376 -vt 0.858292 0.155917 -vt 0.891600 0.155917 -vt 0.858292 0.144763 -vt 0.858292 0.211682 -vt 0.891600 0.222835 -vt 0.858292 0.189376 -vt 0.249273 0.919912 -vt 0.261223 0.919912 -vt 0.258235 0.930928 -vt 0.450321 0.926003 -vt 0.439054 0.937269 -vt 0.437063 0.932461 -vt 0.411855 0.910070 -vt 0.416663 0.924011 -vt 0.450321 0.910070 -vt 0.445512 0.912062 -vt 0.437063 0.903612 -vt 0.411855 0.926003 -vt 0.425113 0.932461 -vt 0.445512 0.924011 -vt 0.439054 0.898803 -vt 0.423121 0.937269 -vt 0.248035 0.941128 -vt 0.248035 0.935153 -vt 0.273476 0.944116 -vt 0.262460 0.941128 -vt 0.262460 0.935153 -vt 0.263912 0.955255 -vt 0.258235 0.945353 -vt 0.238133 0.946805 -vt 0.252260 0.945353 -vt 0.246583 0.921026 -vt 0.252260 0.930928 -vt 0.272362 0.929476 -vt 0.249273 0.956369 -vt 0.237019 0.944116 -vt 0.237019 0.932166 -vt 0.198601 0.701004 -vt 0.198601 0.680187 -vt 0.225541 0.680187 -vt 0.174355 0.711058 -vt 0.171661 0.701004 -vt 0.599579 0.287640 -vt 0.599579 0.266088 -vt 0.657868 0.266088 -vt 0.090842 0.701004 -vt 0.090842 0.680187 -vt 0.117782 0.680187 -vt 0.309054 0.711058 -vt 0.306360 0.701004 -vt 0.333300 0.701004 -vt 0.599579 0.244536 -vt 0.657868 0.244536 -vt 0.225541 0.701004 -vt 0.252481 0.680187 -vt 0.255175 0.711058 -vt 0.252481 0.701004 -vt 0.279421 0.701004 -vt 0.599579 0.222984 -vt 0.657868 0.222984 -vt 0.279421 0.680187 -vt 0.306360 0.680187 -vt 0.222847 0.711058 -vt 0.201295 0.711058 -vt 0.599579 0.201432 -vt 0.171661 0.680187 -vt 0.120476 0.711058 -vt 0.117782 0.701004 -vt 0.144721 0.701004 -vt 0.599579 0.179880 -vt 0.657868 0.179880 -vt 0.010022 0.701004 -vt 0.010022 0.680186 -vt 0.036962 0.680186 -vt 0.066596 0.711058 -vt 0.063902 0.701004 -vt 0.599579 0.158328 -vt 0.063902 0.680187 -vt 0.168967 0.711058 -vt 0.147415 0.711058 -vt 0.599579 0.416951 -vt 0.599579 0.395399 -vt 0.657868 0.395399 -vt 0.144721 0.680187 -vt 0.034268 0.711058 -vt 0.012716 0.711058 -vt 0.599579 0.373847 -vt 0.657868 0.373847 -vt 0.012716 0.670132 -vt 0.034268 0.670132 -vt 0.282115 0.711058 -vt 0.599579 0.352295 -vt 0.657868 0.352295 -vt 0.093536 0.711058 -vt 0.599579 0.330744 -vt 0.657868 0.330744 -vt 0.201295 0.353345 -vt 0.222847 0.353345 -vt 0.225541 0.363399 -vt 0.599579 0.309192 -vt 0.657868 0.287640 -vt 0.657868 0.309192 -vt 0.039656 0.711058 -vt 0.036962 0.701004 -vt 0.249787 0.711058 -vt 0.228235 0.711058 -vt 0.333300 0.680187 -vt 0.288689 0.650088 -vt 0.288689 0.591799 -vt 0.310241 0.591799 -vt 0.255175 0.670133 -vt 0.276727 0.670133 -vt 0.120476 0.670132 -vt 0.174355 0.670133 -vt 0.195907 0.670133 -vt 0.039656 0.670132 -vt 0.282115 0.670133 -vt 0.147415 0.670132 -vt 0.168967 0.670133 -vt 0.201295 0.670133 -vt 0.222847 0.670133 -vt 0.066596 0.670132 -vt 0.309054 0.670133 -vt 0.228235 0.670133 -vt 0.249787 0.670133 -vt 0.093536 0.670132 -vt 0.115088 0.670132 -vt 0.133498 0.249787 -vt 0.123444 0.252481 -vt 0.123444 0.225541 -vt 0.482656 0.650088 -vt 0.482656 0.591799 -vt 0.504208 0.591799 -vt 0.374897 0.650088 -vt 0.374897 0.591799 -vt 0.396449 0.591799 -vt 0.418000 0.650088 -vt 0.418000 0.591799 -vt 0.439552 0.591799 -vt 0.310241 0.650088 -vt 0.331793 0.591799 -vt 0.504208 0.650088 -vt 0.525760 0.591799 -vt 0.396449 0.650088 -vt 0.439552 0.650088 -vt 0.461104 0.591799 -vt 0.331793 0.650088 -vt 0.353345 0.591799 -vt 0.525760 0.650088 -vt 0.547312 0.591799 -vt 0.461104 0.650088 -vt 0.353345 0.650088 -vt 0.123444 0.117782 -vt 0.040174 0.117782 -vt 0.040174 0.090842 -vt 0.133498 0.309055 -vt 0.133498 0.330606 -vt 0.123444 0.333300 -vt 0.133498 0.066596 -vt 0.133498 0.088148 -vt 0.123444 0.090842 -vt 0.133498 0.222847 -vt 0.123444 0.198601 -vt 0.133498 0.168967 -vt 0.123444 0.171661 -vt 0.123444 0.144721 -vt 0.133498 0.303667 -vt 0.123444 0.306361 -vt 0.123444 0.279421 -vt 0.133498 0.061208 -vt 0.123444 0.063902 -vt 0.123444 0.036962 -vt 0.133498 0.174355 -vt 0.133498 0.195907 -vt 0.133498 0.120476 -vt 0.133498 0.142027 -vt 0.133498 0.276727 -vt 0.133498 0.034268 -vt 0.123444 0.010022 -vt 0.133498 0.093536 -vt 0.133498 0.115088 -vt 0.010022 0.111047 -vt 0.010022 0.097577 -vt 0.040174 0.252481 -vt 0.040174 0.225541 -vt 0.040174 0.333301 -vt 0.040174 0.306361 -vt 0.040174 0.063902 -vt 0.040174 0.198601 -vt 0.040174 0.171661 -vt 0.040174 0.144721 -vt 0.040174 0.279421 -vt 0.040174 0.036962 -vt 0.040174 0.010022 -vt 0.036962 0.363399 -vt 0.036962 0.421688 -vt 0.010022 0.421688 -vt 0.147415 0.353345 -vt 0.168967 0.353345 -vt 0.171661 0.363399 -vt 0.255175 0.353345 -vt 0.276727 0.353345 -vt 0.279421 0.363399 -vt 0.309055 0.353345 -vt 0.330606 0.353345 -vt 0.333300 0.363399 -vt 0.061208 0.353345 -vt 0.063902 0.363399 -vt 0.115088 0.353345 -vt 0.117782 0.363399 -vt 0.090842 0.363399 -vt 0.228235 0.353345 -vt 0.249787 0.353345 -vt 0.252481 0.363399 -vt 0.282115 0.353345 -vt 0.303667 0.353345 -vt 0.306361 0.363399 -vt 0.034268 0.353345 -vt 0.010022 0.363399 -vt 0.088148 0.353345 -vt 0.142027 0.353345 -vt 0.144721 0.363399 -vt 0.195907 0.353345 -vt 0.198601 0.363399 -vt 0.034268 0.431742 -vt 0.117782 0.421688 -vt 0.090842 0.421688 -vt 0.252481 0.421688 -vt 0.225541 0.421688 -vt 0.333300 0.421688 -vt 0.306361 0.421688 -vt 0.063902 0.421688 -vt 0.198601 0.421688 -vt 0.171661 0.421688 -vt 0.144721 0.421688 -vt 0.279421 0.421688 -vt 0.225541 0.591799 -vt 0.225541 0.650088 -vt 0.203989 0.650088 -vt 0.115088 0.431742 -vt 0.249787 0.431742 -vt 0.228235 0.431742 -vt 0.330606 0.431742 -vt 0.309054 0.431742 -vt 0.088148 0.431742 -vt 0.222847 0.431742 -vt 0.201295 0.431742 -vt 0.168967 0.431742 -vt 0.147415 0.431742 -vt 0.303667 0.431742 -vt 0.282115 0.431742 -vt 0.061208 0.431742 -vt 0.195907 0.431742 -vt 0.142027 0.431742 -vt 0.276727 0.431742 -vt 0.255175 0.431742 -vt 0.579535 0.290334 -vt 0.569481 0.293028 -vt 0.569481 0.266088 -vt 0.031574 0.591799 -vt 0.031574 0.650088 -vt 0.010022 0.650088 -vt 0.096230 0.591799 -vt 0.096230 0.650088 -vt 0.074678 0.650088 -vt 0.203989 0.591799 -vt 0.182437 0.650088 -vt 0.268645 0.591799 -vt 0.268645 0.650088 -vt 0.247093 0.650088 -vt 0.074678 0.591799 -vt 0.053126 0.650088 -vt 0.182437 0.591799 -vt 0.160885 0.650088 -vt 0.139333 0.591799 -vt 0.139333 0.650088 -vt 0.117782 0.650088 -vt 0.247093 0.591799 -vt 0.053126 0.591799 -vt 0.160885 0.591799 -vt 0.117782 0.591799 -vt 0.569481 0.346908 -vt 0.546165 0.346907 -vt 0.546165 0.319968 -vt 0.579535 0.403481 -vt 0.579535 0.425033 -vt 0.569481 0.427727 -vt 0.579535 0.182574 -vt 0.569481 0.185268 -vt 0.569481 0.158328 -vt 0.579535 0.263394 -vt 0.569481 0.239148 -vt 0.579535 0.376541 -vt 0.579535 0.398093 -vt 0.569481 0.400787 -vt 0.579535 0.457361 -vt 0.579535 0.478913 -vt 0.569481 0.481607 -vt 0.579535 0.236454 -vt 0.569481 0.212208 -vt 0.579535 0.349601 -vt 0.579535 0.371153 -vt 0.569481 0.373847 -vt 0.579535 0.295722 -vt 0.579535 0.317274 -vt 0.569481 0.319968 -vt 0.579535 0.430421 -vt 0.579535 0.451973 -vt 0.569481 0.454667 -vt 0.579535 0.209514 -vt 0.579535 0.344214 -vt 0.546165 0.212208 -vt 0.526712 0.209514 -vt 0.526712 0.187962 -vt 0.546165 0.293028 -vt 0.546165 0.427727 -vt 0.546165 0.400787 -vt 0.546165 0.185268 -vt 0.546165 0.266088 -vt 0.546165 0.373847 -vt 0.546165 0.481607 -vt 0.546165 0.454667 -vt 0.546165 0.239148 -vt 0.728905 0.487025 -vt 0.688689 0.476249 -vt 0.707353 0.406592 -vt 0.526712 0.344213 -vt 0.526712 0.322662 -vt 0.526712 0.290334 -vt 0.526712 0.425033 -vt 0.526712 0.403481 -vt 0.546165 0.158328 -vt 0.526712 0.182574 -vt 0.526712 0.263394 -vt 0.526712 0.398093 -vt 0.526712 0.376541 -vt 0.526712 0.478913 -vt 0.526712 0.236454 -vt 0.526712 0.214902 -vt 0.526712 0.371153 -vt 0.526712 0.349601 -vt 0.526712 0.317274 -vt 0.526712 0.295722 -vt 0.526712 0.451973 -vt 0.153543 0.171799 -vt 0.320083 0.171798 -vt 0.320083 0.185268 -vt 0.010022 0.245746 -vt 0.010022 0.232276 -vt 0.010022 0.326566 -vt 0.010022 0.084107 -vt 0.010022 0.218806 -vt 0.010022 0.164926 -vt 0.010022 0.299626 -vt 0.010022 0.286156 -vt 0.010022 0.057167 -vt 0.010022 0.043697 -vt 0.010022 0.191866 -vt 0.010022 0.178396 -vt 0.010022 0.137986 -vt 0.010022 0.124517 -vt 0.010022 0.272686 -vt 0.010022 0.030227 -vt 0.010022 0.016757 -vt 0.900591 0.725760 -vt 0.887121 0.725760 -vt 0.888805 0.719476 -vt 0.153543 0.293028 -vt 0.320083 0.293028 -vt 0.320083 0.306498 -vt 0.153543 0.225678 -vt 0.320083 0.225678 -vt 0.320083 0.239148 -vt 0.153543 0.252618 -vt 0.320083 0.252618 -vt 0.320083 0.266088 -vt 0.153543 0.185268 -vt 0.320083 0.198738 -vt 0.153543 0.306498 -vt 0.320083 0.319967 -vt 0.153543 0.266088 -vt 0.320083 0.279558 -vt 0.153543 0.198738 -vt 0.320083 0.212208 -vt 0.153543 0.158329 -vt 0.320083 0.158328 -vt 0.153543 0.279558 -vt 0.153543 0.212208 -vt 0.153543 0.239148 -vt 0.506667 0.239148 -vt 0.340127 0.239148 -vt 0.340127 0.229046 -vt 0.887122 0.675489 -vt 0.888805 0.681773 -vt 0.880056 0.686824 -vt 0.918992 0.693889 -vt 0.912708 0.695573 -vt 0.907657 0.686824 -vt 0.875456 0.719025 -vt 0.880056 0.714424 -vt 0.912257 0.719025 -vt 0.898908 0.719476 -vt 0.868721 0.693889 -vt 0.875456 0.682224 -vt 0.900591 0.675489 -vt 0.912257 0.682224 -vt 0.918992 0.707359 -vt 0.907657 0.714425 -vt 0.875005 0.695573 -vt 0.875005 0.705676 -vt 0.898908 0.681773 -vt 0.912708 0.705676 -vt 0.868721 0.707359 -vt 0.506667 0.218943 -vt 0.340127 0.218943 -vt 0.340127 0.208841 -vt 0.506667 0.269455 -vt 0.340127 0.269456 -vt 0.340127 0.259353 -vt 0.506667 0.178533 -vt 0.340127 0.178533 -vt 0.340127 0.168431 -vt 0.506667 0.229046 -vt 0.506667 0.208841 -vt 0.340127 0.198738 -vt 0.506667 0.259353 -vt 0.340127 0.249251 -vt 0.506667 0.168431 -vt 0.340127 0.158328 -vt 0.506667 0.198738 -vt 0.340127 0.188636 -vt 0.506667 0.249251 -vt 0.506667 0.279558 -vt 0.340127 0.279558 -vt 0.506667 0.188636 -vt 0.814281 0.917831 -vt 0.800761 0.885192 -vt 0.833400 0.871673 -vt 0.622265 0.811585 -vt 0.622265 0.785089 -vt 0.648761 0.785089 -vt 0.630976 0.762403 -vt 0.635513 0.779601 -vt 0.606896 0.820538 -vt 0.599579 0.802874 -vt 0.616777 0.798337 -vt 0.640050 0.834271 -vt 0.635513 0.817073 -vt 0.648761 0.811585 -vt 0.671447 0.793800 -vt 0.654249 0.798337 -vt 0.657714 0.769720 -vt 0.606896 0.776136 -vt 0.613312 0.826954 -vt 0.664130 0.820538 -vt 0.541365 0.979796 -vt 0.537202 0.979796 -vt 0.537202 0.957314 -vt 0.533038 0.979796 -vt 0.533038 0.957314 -vt 0.528875 0.979796 -vt 0.528875 0.957314 -vt 0.553856 0.957314 -vt 0.553856 0.979796 -vt 0.549692 0.979796 -vt 0.545529 0.957314 -vt 0.545529 0.979796 -vt 0.977487 0.198620 -vt 0.973324 0.198620 -vt 0.973324 0.176138 -vt 0.969160 0.198620 -vt 0.969160 0.176138 -vt 0.964997 0.198620 -vt 0.964997 0.176138 -vt 0.989978 0.176138 -vt 0.989978 0.198620 -vt 0.985814 0.198620 -vt 0.981651 0.176138 -vt 0.981651 0.198620 -vt 0.977487 0.156093 -vt 0.973324 0.156093 -vt 0.973324 0.133610 -vt 0.969160 0.156093 -vt 0.969160 0.133610 -vt 0.964997 0.156093 -vt 0.964997 0.133610 -vt 0.989978 0.133610 -vt 0.989978 0.156093 -vt 0.985814 0.156093 -vt 0.981651 0.133610 -vt 0.981651 0.156093 -vt 0.489531 0.979796 -vt 0.485368 0.979796 -vt 0.485368 0.957314 -vt 0.481204 0.979796 -vt 0.481204 0.957314 -vt 0.477041 0.979796 -vt 0.477041 0.957314 -vt 0.502022 0.957314 -vt 0.502022 0.979796 -vt 0.497858 0.979796 -vt 0.493695 0.957314 -vt 0.493695 0.979796 -vt 0.409721 0.501748 -vt 0.409721 0.510075 -vt 0.010022 0.510075 -vt 0.491054 0.424508 -vt 0.491054 0.436284 -vt 0.449419 0.436284 -vt 0.010022 0.460114 -vt 0.010022 0.451787 -vt 0.409721 0.451786 -vt 0.883199 0.867442 -vt 0.877311 0.861554 -vt 0.918528 0.861554 -vt 0.450935 0.530120 -vt 0.450935 0.571755 -vt 0.051239 0.571755 -vt 0.409721 0.460113 -vt 0.010022 0.501749 -vt 0.797882 0.636074 -vt 0.797882 0.627747 -vt 0.806209 0.627747 -vt 0.797881 0.303278 -vt 0.806208 0.311605 -vt 0.797881 0.311605 -vt 0.806208 0.334433 -vt 0.806208 0.426030 -vt 0.797881 0.426030 -vt 0.433806 0.407853 -vt 0.433806 0.316256 -vt 0.506667 0.316256 -vt 0.677913 0.266580 -vt 0.677913 0.174982 -vt 0.750774 0.174982 -vt 0.797881 0.513321 -vt 0.797881 0.490493 -vt 0.806208 0.490493 -vt 0.797882 0.604919 -vt 0.806209 0.604919 -vt 0.693526 0.283234 -vt 0.750774 0.266580 -vt 0.449419 0.424508 -vt 0.506667 0.407853 -vt 0.806208 0.513321 -vt 0.797881 0.334433 -vt 0.806208 0.448858 -vt 0.693526 0.158328 -vt 0.735161 0.158328 -vt 0.449419 0.299602 -vt 0.491054 0.299602 -vt 0.797881 0.448858 -vt 0.657868 0.621840 -vt 0.599579 0.621840 -vt 0.599579 0.605186 -vt 0.599579 0.487508 -vt 0.657868 0.487508 -vt 0.657868 0.504162 -vt 0.657868 0.638678 -vt 0.771512 0.210184 -vt 0.774765 0.209351 -vt 0.774765 0.227670 -vt 0.771034 0.173739 -vt 0.774765 0.172309 -vt 0.774765 0.190830 -vt 0.599579 0.453833 -vt 0.657868 0.453833 -vt 0.657868 0.470670 -vt 0.599579 0.638678 -vt 0.657868 0.655515 -vt 0.771407 0.063029 -vt 0.774765 0.061383 -vt 0.774765 0.079904 -vt 0.770818 0.154845 -vt 0.774765 0.153787 -vt 0.599579 0.470670 -vt 0.599579 0.655515 -vt 0.657868 0.672352 -vt 0.774765 0.246191 -vt 0.783092 0.246191 -vt 0.783092 0.264712 -vt 0.771034 0.044293 -vt 0.774765 0.042862 -vt 0.599579 0.436995 -vt 0.657868 0.436995 -vt 0.599579 0.520999 -vt 0.657868 0.520999 -vt 0.657868 0.537836 -vt 0.599579 0.554674 -vt 0.657868 0.554674 -vt 0.657868 0.571511 -vt 0.599579 0.537836 -vt 0.599579 0.571511 -vt 0.657868 0.588349 -vt 0.599579 0.588349 -vt 0.657868 0.605186 -vt 0.599579 0.504162 -vt 0.771407 0.192476 -vt 0.771407 0.244545 -vt 0.771407 0.227708 -vt 0.771407 0.115099 -vt 0.771407 0.098261 -vt 0.774765 0.098224 -vt 0.771512 0.080737 -vt 0.771034 0.263282 -vt 0.771034 0.246444 -vt 0.771034 0.133835 -vt 0.771034 0.116998 -vt 0.774765 0.116745 -vt 0.770819 0.282176 -vt 0.770818 0.265339 -vt 0.774765 0.264712 -vt 0.770818 0.152730 -vt 0.770818 0.135892 -vt 0.774765 0.135266 -vt 0.770818 0.025398 -vt 0.774765 0.024341 -vt 0.749473 0.542849 -vt 0.749473 0.561169 -vt 0.677913 0.542849 -vt 0.783092 0.116745 -vt 0.783092 0.135266 -vt 0.783092 0.227670 -vt 0.783092 0.098224 -vt 0.783092 0.209351 -vt 0.783092 0.190830 -vt 0.783092 0.172309 -vt 0.783092 0.079904 -vt 0.783092 0.061383 -vt 0.783092 0.024341 -vt 0.783092 0.042862 -vt 0.783092 0.283234 -vt 0.783092 0.153787 -vt 0.559912 0.096683 -vt 0.571688 0.096683 -vt 0.571688 0.129991 -vt 0.464989 0.130639 -vt 0.464989 0.126479 -vt 0.498263 0.126479 -vt 0.605467 0.694836 -vt 0.617244 0.694836 -vt 0.623132 0.700724 -vt 0.464989 0.018341 -vt 0.498263 0.018341 -vt 0.498263 0.084887 -vt 0.464989 0.084887 -vt 0.623132 0.734032 -vt 0.617244 0.739920 -vt 0.605467 0.739920 -vt 0.768854 0.700724 -vt 0.768854 0.734032 -vt 0.760527 0.734032 -vt 0.877311 0.787384 -vt 0.877311 0.762403 -vt 0.910619 0.762403 -vt 0.709084 0.129991 -vt 0.760527 0.700724 -vt 0.623132 0.692397 -vt 0.760527 0.742359 -vt 0.623132 0.742359 -vt 0.599579 0.734032 -vt 0.464989 0.010022 -vt 0.498263 0.010022 -vt 0.433806 0.468819 -vt 0.433806 0.464655 -vt 0.475441 0.464655 -vt 0.433806 0.460492 -vt 0.475441 0.460492 -vt 0.433806 0.456328 -vt 0.475441 0.456328 -vt 0.475441 0.481309 -vt 0.433806 0.481309 -vt 0.433806 0.477146 -vt 0.475441 0.472982 -vt 0.433806 0.472982 -vt 0.415362 0.969804 -vt 0.415362 0.965641 -vt 0.456997 0.965641 -vt 0.415362 0.961477 -vt 0.456997 0.961477 -vt 0.415362 0.957314 -vt 0.456997 0.957314 -vt 0.456997 0.982295 -vt 0.415362 0.982295 -vt 0.415362 0.978131 -vt 0.456997 0.973968 -vt 0.415362 0.973968 -vt 0.720657 0.652819 -vt 0.723697 0.629743 -vt 0.743373 0.622945 -vt 0.051239 0.530120 -vt 0.010022 0.571755 -vt 0.883199 0.909077 -vt 0.924416 0.867442 -vt 0.924416 0.909077 -vt 0.918528 0.914965 -vt 0.182692 0.772738 -vt 0.136893 0.768574 -vt 0.136893 0.735266 -vt 0.503210 0.729861 -vt 0.494917 0.729107 -vt 0.495671 0.720814 -vt 0.191019 0.772738 -vt 0.182692 0.731103 -vt 0.503964 0.678425 -vt 0.495671 0.679179 -vt 0.494917 0.670886 -vt 0.449872 0.716651 -vt 0.356309 0.716651 -vt 0.356309 0.683343 -vt 0.449872 0.683343 -vt 0.449118 0.675050 -vt 0.449118 0.724943 -vt 0.043330 0.768574 -vt 0.010022 0.768574 -vt 0.010022 0.735266 -vt 0.760009 0.639223 -vt 0.749197 0.616993 -vt 0.712401 0.651731 -vt 0.715441 0.628655 -vt 0.677913 0.628406 -vt 0.698197 0.616993 -vt 0.446908 0.724432 -vt 0.353345 0.724432 -vt 0.043330 0.735266 -vt 0.446908 0.675561 -vt 0.910619 0.787384 -vt 0.910619 0.841510 -vt 0.877311 0.841510 -vt 0.944952 0.141937 -vt 0.911644 0.141937 -vt 0.911644 0.133610 -vt 0.944952 0.175245 -vt 0.911644 0.175245 -vt 0.944952 0.183572 -vt 0.911644 0.183572 -vt 0.433794 0.018159 -vt 0.423397 0.072410 -vt 0.539867 0.018340 -vt 0.539855 0.072410 -vt 0.103895 0.824648 -vt 0.103895 0.816682 -vt 0.137203 0.816682 -vt 0.103895 0.808715 -vt 0.137203 0.808715 -vt 0.103895 0.800748 -vt 0.137203 0.800748 -vt 0.103895 0.792782 -vt 0.137203 0.792782 -vt 0.103895 0.856514 -vt 0.103895 0.848548 -vt 0.137203 0.848548 -vt 0.103895 0.840581 -vt 0.137203 0.840581 -vt 0.103895 0.832615 -vt 0.137203 0.824648 -vt 0.137203 0.832615 -vt 0.144415 0.803736 -vt 0.010022 0.824648 -vt 0.010022 0.816682 -vt 0.076638 0.816682 -vt 0.010022 0.808715 -vt 0.076638 0.808715 -vt 0.010022 0.800748 -vt 0.076638 0.800748 -vt 0.010022 0.792782 -vt 0.076638 0.792782 -vt 0.010022 0.856514 -vt 0.010022 0.848548 -vt 0.076638 0.848548 -vt 0.010022 0.840581 -vt 0.076638 0.840581 -vt 0.010022 0.832615 -vt 0.076638 0.824648 -vt 0.076638 0.832615 -vt 0.083851 0.843569 -vt 0.083851 0.845560 -vt 0.353345 0.417801 -vt 0.353345 0.415809 -vt 0.411633 0.415809 -vt 0.144415 0.843569 -vt 0.144415 0.795769 -vt 0.144415 0.797761 -vt 0.144415 0.835602 -vt 0.144415 0.837594 -vt 0.144415 0.811702 -vt 0.144415 0.813694 -vt 0.137203 0.856514 -vt 0.144415 0.851535 -vt 0.144415 0.827635 -vt 0.144415 0.829627 -vt 0.144415 0.819669 -vt 0.599579 0.908168 -vt 0.703668 0.908168 -vt 0.703668 0.910159 -vt 0.353345 0.421784 -vt 0.353345 0.419792 -vt 0.411634 0.419792 -vt 0.353345 0.425767 -vt 0.411634 0.425767 -vt 0.411634 0.427759 -vt 0.353345 0.429751 -vt 0.411633 0.429750 -vt 0.411633 0.431742 -vt 0.411634 0.417801 -vt 0.411634 0.421784 -vt 0.411634 0.423776 -vt 0.353345 0.423776 -vt 0.353345 0.427759 -vt 0.083851 0.795769 -vt 0.083851 0.797761 -vt 0.083851 0.835602 -vt 0.083851 0.837594 -vt 0.083851 0.811702 -vt 0.076638 0.856514 -vt 0.083851 0.851535 -vt 0.083851 0.827635 -vt 0.083851 0.829627 -vt 0.083851 0.819669 -vt 0.083851 0.803736 -vt 0.599579 0.896218 -vt 0.703668 0.896218 -vt 0.703668 0.898210 -vt 0.599579 0.900201 -vt 0.703668 0.900202 -vt 0.703668 0.902193 -vt 0.599579 0.902193 -vt 0.703668 0.904185 -vt 0.599579 0.906176 -vt 0.703668 0.906176 -vt 0.599579 0.894226 -vt 0.703668 0.894227 -vt 0.599579 0.898210 -vt 0.599579 0.904185 -vt 0.238807 0.830812 -vt 0.238807 0.859957 -vt 0.230480 0.859957 -vt 0.411634 0.849615 -vt 0.411634 0.878759 -vt 0.403307 0.878759 -vt 0.453269 0.849615 -vt 0.453269 0.878759 -vt 0.361672 0.849615 -vt 0.361672 0.878759 -vt 0.353345 0.878759 -vt 0.403307 0.849615 -vt 0.280442 0.830812 -vt 0.280442 0.859957 -vt 0.188845 0.830812 -vt 0.188845 0.859957 -vt 0.180518 0.859957 -vt 0.230480 0.830812 -vt 0.531602 0.849615 -vt 0.531602 0.878759 -vt 0.523275 0.878759 -vt 0.573237 0.849615 -vt 0.573237 0.878759 -vt 0.481640 0.849615 -vt 0.481640 0.878759 -vt 0.473313 0.878759 -vt 0.523275 0.849615 -vt 0.361718 0.010022 -vt 0.361718 0.030840 -vt 0.195178 0.030840 -vt 0.403353 0.107461 -vt 0.382535 0.107461 -vt 0.382535 0.040845 -vt 0.195178 0.138284 -vt 0.195178 0.117467 -vt 0.361718 0.117467 -vt 0.153543 0.040845 -vt 0.174360 0.040845 -vt 0.174360 0.107461 -vt 0.361718 0.090807 -vt 0.361718 0.057499 -vt 0.726452 0.010022 -vt 0.726452 0.076638 -vt 0.559912 0.076638 -vt 0.195178 0.090807 -vt 0.195178 0.057499 -vt 0.858292 0.270359 -vt 0.858292 0.253705 -vt 0.860790 0.252456 -vt 0.869117 0.252456 -vt 0.869117 0.271608 -vt 0.761183 0.386548 -vt 0.727875 0.386548 -vt 0.727875 0.319932 -vt 0.761183 0.303278 -vt 0.777837 0.303278 -vt 0.777837 0.386548 -vt 0.918247 0.270359 -vt 0.915749 0.271608 -vt 0.915749 0.252456 -vt 0.907421 0.252456 -vt 0.907421 0.271608 -vt 0.711221 0.386548 -vt 0.711221 0.319932 -vt 0.677913 0.386548 -vt 0.871615 0.242880 -vt 0.904923 0.242880 -vt 0.907421 0.244129 -vt 0.904923 0.281184 -vt 0.871615 0.281184 -vt 0.869117 0.279935 -vt 0.907421 0.279935 -vt 0.361403 0.346997 -vt 0.369737 0.324693 -vt 0.369722 0.369306 -vt 0.369733 0.335846 -vt 0.678562 0.953094 -vt 0.361418 0.302384 -vt 0.928374 0.212776 -vt 0.900202 0.960016 -vt 0.906344 0.948961 -vt 0.622479 0.938211 -vt 0.971151 0.551311 -vt 0.980311 0.574821 -vt 0.805628 0.663193 -vt 0.877311 0.949634 -vt 0.922074 0.527428 -vt 0.951107 0.526755 -vt 0.926599 0.653694 -vt 0.938931 0.649751 -vt 0.641552 0.954343 -vt 0.733316 0.774894 -vt 0.699856 0.774894 -vt 0.755622 0.774894 -vt 0.777928 0.774894 -vt 0.711009 0.766567 -vt 0.504645 0.456328 -vt 0.952919 0.951792 -vt 0.973493 0.937522 -vt 0.576516 0.608529 -vt 0.898139 0.421583 -vt 0.947393 0.824420 -vt 0.944460 0.938195 -vt 0.930664 0.777027 -vt 0.984064 0.497680 -vt 0.922074 0.602842 -vt 0.971733 0.501624 -vt 0.988008 0.510012 -vt 0.988590 0.503029 -vt 0.971151 0.508606 -vt 0.982659 0.514537 -vt 0.922074 0.478808 -vt 0.836444 0.113566 -vt 0.855479 0.066165 -vt 0.847152 0.032706 -vt 0.847152 0.088471 -vt 0.855479 0.110778 -vt 0.855479 0.099625 -vt 0.576516 0.628573 -vt 0.370311 0.980204 -vt 0.381366 0.986346 -vt 0.976597 0.841150 -vt 0.197247 0.976414 -vt 0.085262 0.974770 -vt 0.931009 0.111884 -vt 0.150971 0.916470 -vt 0.177373 0.793364 -vt 0.168985 0.809639 -vt 0.181317 0.805695 -vt 0.916385 0.087745 -vt 0.508179 0.788045 -vt 0.508179 0.768129 -vt 0.508179 0.778087 -vt 0.508179 0.827878 -vt 0.512146 0.756527 -vt 0.512146 0.816276 -vt 0.512146 0.796360 -vt 0.433806 0.506453 -vt 0.433806 0.503466 -vt 0.438906 0.501353 -vt 0.441018 0.506453 -vt 0.435918 0.508566 -vt 0.805986 0.717470 -vt 0.442768 0.751897 -vt 0.467749 0.781771 -vt 0.467749 0.791729 -vt 0.442768 0.771813 -vt 0.442768 0.761855 -vt 0.442768 0.821604 -vt 0.509119 0.506343 -vt 0.470980 0.537158 -vt 0.527393 0.502376 -vt 0.477602 0.502376 -vt 0.517434 0.502376 -vt 0.497518 0.502376 -vt 0.487560 0.502376 -vt 0.577901 0.559002 -vt 0.577901 0.561989 -vt 0.575789 0.564102 -vt 0.570689 0.561989 -vt 0.572802 0.556889 -vt 0.729599 0.122950 -vt 0.522762 0.546774 -vt 0.482929 0.546774 -vt 0.236044 0.802801 -vt 0.276475 0.789159 -vt 0.276475 0.749326 -vt 0.280442 0.737725 -vt 0.280442 0.797474 -vt 0.280442 0.777557 -vt 0.280442 0.757641 -vt 0.577901 0.504488 -vt 0.577901 0.507476 -vt 0.575789 0.509588 -vt 0.570689 0.507476 -vt 0.572802 0.502376 -vt 0.724184 0.920494 -vt 0.236044 0.772927 -vt 0.579535 0.785605 -vt 0.579535 0.817471 -vt 0.579535 0.753739 -vt 0.579535 0.801538 -vt 0.075169 0.921039 -vt 0.106787 0.937060 -vt 0.086198 0.954724 -vt 0.068533 0.934135 -vt 0.089122 0.916471 -vt 0.073101 0.948088 -vt 0.848677 0.675571 -vt 0.848677 0.611838 -vt 0.848677 0.627771 -vt 0.848677 0.643704 -vt 0.881409 0.392503 -vt 0.214774 0.880001 -vt 0.294439 0.880001 -vt 0.230707 0.880001 -vt 0.262573 0.880001 -vt 0.278506 0.880001 -vt 0.294439 0.899868 -vt 0.180518 0.894098 -vt 0.230707 0.899868 -vt 0.262573 0.899868 -vt 0.278506 0.899868 -vt 0.214774 0.899868 -vt 0.902030 0.540012 -vt 0.951789 0.309910 -vt 0.949731 0.336960 -vt 0.924739 0.307851 -vt 0.956362 0.323861 -vt 0.935779 0.341533 -vt 0.838248 0.226819 -vt 0.838248 0.258685 -vt 0.811463 0.261075 -vt 0.838248 0.194952 -vt 0.838248 0.242752 -vt 0.924739 0.366150 -vt 0.935779 0.399832 -vt 0.918108 0.379249 -vt 0.922680 0.393200 -vt 0.322910 0.808378 -vt 0.322910 0.744646 -vt 0.322910 0.760579 -vt 0.322910 0.824311 -vt 0.012412 0.876558 -vt 0.780717 0.928179 -vt 0.044278 0.876558 -vt 0.123943 0.876558 -vt 0.060211 0.876558 -vt 0.108010 0.876558 -vt 0.123943 0.896425 -vt 0.010022 0.890655 -vt 0.060211 0.896425 -vt 0.108010 0.896425 -vt 0.044278 0.896425 -vt 0.902030 0.649281 -vt 0.216975 0.932166 -vt 0.215861 0.946805 -vt 0.190082 0.955255 -vt 0.207411 0.921026 -vt 0.180518 0.944116 -vt 0.844777 0.793074 -vt 0.853103 0.826534 -vt 0.853104 0.848840 -vt 0.853103 0.781921 -vt 0.010022 0.974980 -vt 0.755710 0.971113 -vt 0.766765 0.977256 -vt 0.821787 0.960776 -vt 0.954957 0.421583 -vt 0.974895 0.041071 -vt 0.934913 0.430742 -vt 0.766092 0.948223 -vt 0.973493 0.888903 -vt 0.972471 0.637420 -vt 0.943930 0.717462 -vt 0.960140 0.641363 -vt 0.964083 0.653694 -vt 0.976997 0.642769 -vt 0.805655 0.979849 -vt 0.418756 0.768129 -vt 0.422723 0.756527 -vt 0.422723 0.816276 -vt 0.422723 0.796360 -vt 0.422723 0.776444 -vt 0.422723 0.826234 -vt 0.575789 0.529633 -vt 0.577901 0.531745 -vt 0.577901 0.534733 -vt 0.572802 0.536845 -vt 0.570689 0.534733 -vt 0.971622 0.477054 -vt 0.353345 0.751897 -vt 0.378326 0.781771 -vt 0.378326 0.791729 -vt 0.353345 0.811646 -vt 0.353345 0.771813 -vt 0.826253 0.337534 -vt 0.842907 0.417199 -vt 0.842907 0.385333 -vt 0.826253 0.305668 -vt 0.853038 0.303278 -vt 0.826253 0.369400 -vt 0.826253 0.321601 -vt 0.294635 0.929476 -vt 0.320414 0.921026 -vt 0.293521 0.944116 -vt 0.826253 0.500976 -vt 0.832023 0.450787 -vt 0.601969 0.854315 -vt 0.879686 0.024341 -vt 0.617902 0.854315 -vt 0.649768 0.854315 -vt 0.681634 0.854315 -vt 0.617902 0.874182 -vt 0.649768 0.874182 -vt 0.601969 0.874182 -vt 0.858292 0.222835 -vt 0.273476 0.932166 -vt 0.272362 0.946805 -vt 0.246583 0.955255 -vt 0.238133 0.929476 -vt 0.263912 0.921026 -vt 0.261223 0.956369 -vt 0.195907 0.711058 -vt 0.330606 0.711058 -vt 0.276727 0.711058 -vt 0.657868 0.201432 -vt 0.142027 0.711058 -vt 0.088148 0.711058 -vt 0.657868 0.158328 -vt 0.657868 0.416951 -vt 0.303667 0.711058 -vt 0.115088 0.711058 -vt 0.061208 0.711058 -vt 0.142027 0.670132 -vt 0.061208 0.670132 -vt 0.303667 0.670133 -vt 0.088148 0.670132 -vt 0.330606 0.670133 -vt 0.133498 0.228235 -vt 0.547312 0.650088 -vt 0.133498 0.201295 -vt 0.133498 0.147415 -vt 0.133498 0.282115 -vt 0.133498 0.039656 -vt 0.133498 0.255175 -vt 0.133498 0.012716 -vt 0.039656 0.353345 -vt 0.093536 0.353345 -vt 0.012716 0.353345 -vt 0.066596 0.353345 -vt 0.120476 0.353345 -vt 0.174355 0.353345 -vt 0.012716 0.431742 -vt 0.093536 0.431742 -vt 0.066596 0.431742 -vt 0.039656 0.431742 -vt 0.174355 0.431742 -vt 0.120476 0.431742 -vt 0.579535 0.268782 -vt 0.010022 0.591799 -vt 0.579535 0.161022 -vt 0.579535 0.241842 -vt 0.579535 0.214902 -vt 0.579535 0.187962 -vt 0.579535 0.322662 -vt 0.728905 0.406592 -vt 0.747570 0.417368 -vt 0.758345 0.436033 -vt 0.758345 0.457585 -vt 0.747570 0.476249 -vt 0.707353 0.487025 -vt 0.677913 0.457585 -vt 0.677913 0.436033 -vt 0.688689 0.417368 -vt 0.526712 0.268782 -vt 0.526712 0.161022 -vt 0.526712 0.241842 -vt 0.526712 0.457361 -vt 0.526712 0.430421 -vt 0.010022 0.313096 -vt 0.010022 0.070637 -vt 0.010022 0.205336 -vt 0.010022 0.151456 -vt 0.010022 0.259216 -vt 0.153543 0.319968 -vt 0.506667 0.158329 -vt 0.846920 0.885192 -vt 0.846920 0.904312 -vt 0.833400 0.917831 -vt 0.800761 0.904312 -vt 0.814281 0.871673 -vt 0.613312 0.769720 -vt 0.657714 0.826954 -vt 0.664130 0.776136 -vt 0.640050 0.762403 -vt 0.599579 0.793800 -vt 0.630976 0.834271 -vt 0.671447 0.802874 -vt 0.541365 0.957314 -vt 0.549692 0.957314 -vt 0.977487 0.176137 -vt 0.985814 0.176138 -vt 0.977487 0.133610 -vt 0.985814 0.133610 -vt 0.489531 0.957314 -vt 0.497858 0.957314 -vt 0.735161 0.283234 -vt 0.771512 0.226838 -vt 0.771034 0.190577 -vt 0.771407 0.079867 -vt 0.770818 0.171682 -vt 0.599579 0.672352 -vt 0.771034 0.061130 -vt 0.771407 0.209313 -vt 0.771512 0.097391 -vt 0.774765 0.283234 -vt 0.770818 0.042236 -vt 0.677913 0.561169 -vt 0.682706 0.524959 -vt 0.695803 0.511863 -vt 0.713693 0.507069 -vt 0.731583 0.511863 -vt 0.744679 0.524959 -vt 0.744679 0.579059 -vt 0.731583 0.592155 -vt 0.713693 0.596949 -vt 0.695803 0.592155 -vt 0.682706 0.579059 -vt 0.559912 0.129991 -vt 0.498263 0.130639 -vt 0.599579 0.700724 -vt 0.709084 0.096683 -vt 0.760527 0.692397 -vt 0.475441 0.468819 -vt 0.475441 0.477146 -vt 0.456997 0.969804 -vt 0.456997 0.978131 -vt 0.010022 0.530120 -vt 0.877311 0.914965 -vt 0.503964 0.721568 -vt 0.191019 0.731103 -vt 0.503210 0.670132 -vt 0.765833 0.633271 -vt 0.353345 0.675561 -vt 0.944952 0.133610 -vt 0.423397 0.084887 -vt 0.423397 0.080729 -vt 0.423397 0.018341 -vt 0.444193 0.018159 -vt 0.539855 0.084888 -vt 0.539855 0.080728 -vt 0.539849 0.017615 -vt 0.144415 0.805728 -vt 0.144415 0.845560 -vt 0.144415 0.853527 -vt 0.144415 0.821661 -vt 0.599579 0.910160 -vt 0.353345 0.431742 -vt 0.083851 0.813694 -vt 0.083851 0.853527 -vt 0.083851 0.821661 -vt 0.083851 0.805728 -vt 0.353345 0.849615 -vt 0.180518 0.830812 -vt 0.473313 0.849615 -vt 0.195178 0.010022 -vt 0.403353 0.040845 -vt 0.361718 0.138284 -vt 0.153543 0.107461 -vt 0.559912 0.010022 -vt 0.860790 0.271608 -vt 0.918247 0.253705 -vt 0.677913 0.303278 -vt 0.869117 0.244129 -vn 0.219500 0.313500 -0.923900 -vn 0.529900 0.756800 -0.382700 -vn 0.529900 0.756800 0.382700 -vn 0.219500 0.313500 0.923900 -vn -0.219500 -0.313500 0.923900 -vn -0.529900 -0.756800 0.382700 -vn -0.219500 -0.313500 -0.923900 -vn -0.529900 -0.756800 -0.382700 -vn 0.102900 -0.949100 -0.297600 -vn 0.927100 0.228000 -0.297600 -vn 0.344300 -0.604400 0.718500 -vn 0.344300 -0.604400 -0.718500 -vn 0.685700 -0.116800 -0.718500 -vn 0.927100 0.228000 0.297600 -vn 0.102900 -0.949100 0.297600 -vn 0.685700 -0.116800 0.718500 -vn -0.573600 -0.819200 0.000000 -vn -0.708700 0.702000 0.069800 -vn -0.765400 0.621100 -0.168600 -vn -0.902100 0.425900 -0.069800 -vn -0.845400 0.506800 0.168600 -vn 0.405600 0.579200 -0.707100 -vn 0.000000 -0.000000 1.000000 -vn 0.708700 -0.702000 -0.069800 -vn 0.765400 -0.621100 0.168600 -vn 0.573600 0.819200 0.000000 -vn -0.405600 -0.579200 -0.707100 -vn 0.902100 -0.425900 0.069800 -vn 0.845400 -0.506800 -0.168600 -vn 0.819200 -0.573600 0.000000 -vn 0.405600 0.579200 0.707100 -vn 0.000000 0.000000 -1.000000 -vn -0.405600 -0.579200 0.707100 -vn -0.270600 0.270600 -0.923900 -vn -0.653300 0.653300 -0.382700 -vn -0.653300 0.653300 0.382700 -vn -0.270600 0.270600 0.923900 -vn 0.270600 -0.270600 0.923900 -vn 0.653300 -0.653300 0.382700 -vn 0.270600 -0.270600 -0.923900 -vn 0.653300 -0.653300 -0.382700 -vn 0.952600 -0.063500 -0.297600 -vn -0.063500 0.952600 -0.297600 -vn 0.655000 0.234100 0.718500 -vn 0.655000 0.234100 -0.718500 -vn 0.234100 0.655000 -0.718500 -vn -0.063500 0.952600 0.297600 -vn 0.952600 -0.063500 0.297600 -vn 0.234100 0.655000 0.718500 -vn 0.707100 -0.707100 0.000000 -vn -0.814400 -0.576100 0.069800 -vn -0.744600 -0.645900 -0.168600 -vn -0.576100 -0.814400 -0.069800 -vn -0.645900 -0.744600 0.168600 -vn -0.500000 0.500000 -0.707100 -vn 0.814400 0.576100 -0.069800 -vn 0.744600 0.645900 0.168600 -vn -0.707100 0.707100 0.000000 -vn 0.500000 -0.500000 -0.707100 -vn 0.576100 0.814400 0.069800 -vn 0.645900 0.744600 -0.168500 -vn 0.707100 0.707100 0.000000 -vn -0.500000 0.500000 0.707100 -vn 0.500000 -0.500000 0.707100 -vn -0.331400 -0.191300 -0.923900 -vn -0.800100 -0.461900 -0.382700 -vn -0.800100 -0.461900 0.382700 -vn -0.331400 -0.191300 0.923900 -vn 0.331400 0.191300 0.923900 -vn 0.800100 0.461900 0.382700 -vn 0.331400 0.191300 -0.923900 -vn 0.800100 0.461900 -0.382700 -vn 0.307900 0.903700 -0.297600 -vn -0.936600 0.185200 -0.297600 -vn -0.056600 0.693200 0.718500 -vn -0.056600 0.693200 -0.718500 -vn -0.572100 0.395600 -0.718500 -vn -0.936600 0.185200 0.297600 -vn 0.307900 0.903700 0.297600 -vn -0.572100 0.395600 0.718500 -vn 0.866000 0.500000 0.000000 -vn 0.345600 -0.935800 0.069800 -vn 0.431100 -0.886400 -0.168600 -vn 0.637600 -0.767200 -0.069800 -vn 0.552100 -0.816600 0.168500 -vn -0.612400 -0.353600 -0.707100 -vn -0.345600 0.935800 -0.069800 -vn -0.431100 0.886400 0.168600 -vn -0.866000 -0.500000 0.000000 -vn 0.612400 0.353600 -0.707100 -vn -0.637600 0.767200 0.069800 -vn -0.552100 0.816600 -0.168600 -vn -0.500000 0.866000 0.000000 -vn -0.612400 -0.353600 0.707100 -vn 0.612400 0.353600 0.707100 -vn 0.382700 -0.800100 0.461900 -vn 0.923900 -0.331400 0.191300 -vn 0.923900 0.331400 -0.191300 -vn 0.382700 0.800100 -0.461900 -vn -0.382700 0.800100 -0.461900 -vn -0.923900 0.331400 -0.191300 -vn 0.659300 -0.586800 -0.470100 -vn -0.382700 -0.800100 0.461900 -vn -0.923900 -0.331400 0.191300 -vn -0.800100 0.537000 0.267400 -vn 0.000000 -0.500000 -0.866000 -vn -0.273100 0.220700 -0.936300 -vn -0.273100 -0.921200 -0.277000 -vn 0.273100 -0.921200 -0.277000 -vn 0.659300 -0.113800 -0.743200 -vn -0.659300 -0.113800 -0.743200 -vn 0.273100 0.220700 -0.936300 -vn -0.659300 -0.586800 -0.470100 -vn -0.382600 -0.810700 0.443100 -vn -0.923700 0.320500 -0.210000 -vn 0.382600 0.789100 -0.480600 -vn 0.923700 -0.342200 0.172500 -vn -0.923700 -0.342200 0.172600 -vn -0.382600 0.789100 -0.480600 -vn 0.923700 0.320500 -0.210000 -vn 0.382600 -0.810700 0.443100 -vn 0.331400 0.942900 0.033000 -vn -0.800100 -0.037000 0.598800 -vn 0.800100 -0.037000 0.598800 -vn -0.331400 0.942900 0.033000 -vn -0.331400 -0.442900 0.833100 -vn 0.331400 -0.442900 0.833100 -vn 0.800100 0.537000 0.267400 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 -0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.659300 0.700500 -0.273100 -vn -0.382700 -0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn -0.800100 -0.500000 0.331400 -vn 0.000000 1.000000 -0.000000 -vn -0.273100 0.700500 0.659300 -vn -0.273100 0.700500 -0.659300 -vn 0.273100 0.700500 -0.659300 -vn 0.659300 0.700500 0.273100 -vn -0.659300 0.700500 0.273100 -vn 0.273100 0.700500 0.659300 -vn -0.659300 0.700500 -0.273100 -vn -0.382600 0.021600 -0.923700 -vn -0.923700 0.021600 0.382600 -vn 0.382600 0.021600 0.923700 -vn 0.923700 0.021600 -0.382600 -vn -0.923700 0.021600 -0.382600 -vn -0.382600 0.021600 0.923700 -vn 0.923700 0.021600 0.382600 -vn 0.382600 0.021600 -0.923700 -vn 0.331400 -0.500000 0.800100 -vn -0.800100 -0.500000 -0.331400 -vn 0.800100 -0.500000 -0.331400 -vn -0.331400 -0.500000 0.800100 -vn -0.331400 -0.500000 -0.800100 -vn 0.331400 -0.500000 -0.800100 -vn 0.800100 -0.500000 0.331400 -vn 0.000000 0.382700 -0.923900 -vn 0.569500 -0.759400 0.314600 -vn 0.000000 0.382700 0.923900 -vn 0.569500 0.759400 -0.314600 -vn -0.000000 0.923900 -0.382700 -vn 0.000000 -0.923900 -0.382700 -vn 0.569500 0.314600 -0.759400 -vn -0.000000 0.923900 0.382700 -vn 0.569500 -0.314600 0.759400 -vn 0.569500 0.314500 0.759400 -vn 0.000000 -0.382700 0.923900 -vn 0.569500 0.759400 0.314500 -vn -0.000000 -0.923900 0.382700 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -0.382700 -0.923900 -vn 0.569500 -0.314600 -0.759400 -vn 0.569500 -0.759400 -0.314600 -vn -0.654700 -0.698400 -0.289300 -vn -0.654700 -0.289300 0.698300 -vn -0.654700 0.289300 0.698300 -vn -0.654700 0.698300 -0.289300 -vn -0.654700 -0.289300 -0.698300 -vn -0.654700 -0.698300 0.289300 -vn -0.654700 0.698300 0.289300 -vn -0.654700 0.289300 -0.698300 -vn 1.000000 -0.000000 -0.000000 -vn 0.654700 0.698300 -0.289300 -vn 0.654700 0.289300 0.698300 -vn 0.654700 -0.289300 0.698300 -vn 0.654700 -0.698300 -0.289300 -vn 0.654700 0.289300 -0.698300 -vn 0.654700 0.698400 0.289300 -vn 0.654700 -0.698300 0.289300 -vn 0.654700 -0.289300 -0.698300 -vn 0.569500 0.314600 0.759400 -vn -0.654700 -0.698300 -0.289300 -vn 0.654700 0.698300 0.289300 -vn -0.628700 0.718500 -0.297600 -vn -0.628700 -0.718500 -0.297600 -vn -0.628700 0.297600 0.718500 -vn -0.628700 0.297600 -0.718500 -vn -0.628700 -0.297600 -0.718500 -vn -0.628700 -0.718500 0.297600 -vn -0.628700 0.718500 0.297600 -vn -0.628700 -0.297600 0.718500 -vn 0.983200 -0.168600 0.069800 -vn 0.983200 -0.069800 -0.168600 -vn 0.983200 0.168600 -0.069800 -vn 0.983200 0.069800 0.168600 -vn 0.000000 -0.707100 -0.707100 -vn -0.983200 0.168600 -0.069800 -vn -0.983200 0.069800 0.168600 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.707100 -0.707100 -vn -0.983200 -0.168600 0.069800 -vn -0.983200 -0.069800 -0.168600 -vn 0.000000 -0.707100 0.707100 -vn 0.000000 0.707100 0.707100 -vn 0.382700 0.390400 -0.837300 -vn 0.923900 0.161700 -0.346800 -vn 0.923900 -0.161700 0.346800 -vn 0.382700 -0.390400 0.837300 -vn -0.382700 -0.390400 0.837300 -vn -0.923900 -0.161700 0.346800 -vn 0.659300 0.750300 0.048500 -vn -0.382700 0.390400 -0.837300 -vn -0.923900 0.161700 -0.346800 -vn -0.800100 -0.593300 0.089000 -vn -0.000000 0.906300 0.422600 -vn -0.273100 0.356300 0.893600 -vn -0.273100 0.913500 -0.301500 -vn 0.273100 0.913500 -0.301500 -vn 0.659300 0.519500 0.543600 -vn -0.659300 0.519500 0.543600 -vn 0.273100 0.356200 0.893600 -vn -0.659300 0.750300 0.048500 -vn -0.382600 0.410000 -0.828000 -vn -0.923700 -0.142100 0.355900 -vn 0.382600 -0.370700 0.846300 -vn 0.923700 0.181300 -0.337600 -vn -0.923700 0.181300 -0.337600 -vn -0.382600 -0.370700 0.846300 -vn 0.923700 -0.142100 0.355900 -vn 0.382600 0.410000 -0.828000 -vn 0.331400 -0.791300 0.513800 -vn -0.800100 -0.313100 -0.511700 -vn 0.800100 -0.313100 -0.511700 -vn -0.331400 -0.791300 0.513800 -vn -0.331400 -0.115100 -0.936400 -vn 0.331400 -0.115100 -0.936400 -vn 0.800100 -0.593300 0.089000 -vn 0.258800 0.965900 -0.000000 -vn 0.965900 0.258800 0.000000 -vn -0.965900 0.258800 0.000000 -vn -0.707100 -0.707100 0.000000 -vn 0.965900 -0.258800 0.000000 -vn -0.258800 0.965900 0.000000 -vn 0.258800 -0.965900 0.000000 -vn -0.258800 -0.965900 0.000000 -vn -0.965900 -0.258800 0.000000 -vn -0.533500 0.143000 -0.833600 -vn 0.605300 -0.605300 0.516800 -vn -0.221600 0.826900 0.516800 -vn 0.605300 0.605300 0.516800 -vn -0.826900 -0.221600 0.516800 -vn 0.221600 -0.826900 0.516800 -vn 0.826900 0.221600 0.516800 -vn -0.826900 0.221600 0.516800 -vn -0.221600 -0.826900 0.516800 -vn 0.826900 -0.221600 0.516800 -vn -0.605300 0.605300 0.516800 -vn 0.221600 0.826900 0.516800 -vn -0.605300 -0.605300 0.516800 -vn 0.533500 0.143000 -0.833600 -vn 0.143000 -0.533500 -0.833600 -vn -0.533500 -0.143000 -0.833600 -vn 0.390600 0.390600 -0.833600 -vn -0.143000 0.533500 -0.833600 -vn 0.390600 -0.390600 -0.833600 -vn -0.390600 -0.390600 -0.833600 -vn 0.143000 0.533500 -0.833600 -vn -0.390600 0.390600 -0.833600 -vn 0.533500 -0.143000 -0.833600 -vn -0.143000 -0.533500 -0.833600 -vn 0.873000 0.361600 0.327400 -vn 0.361600 -0.873000 0.327400 -vn -0.873000 -0.361600 0.327400 -vn -0.361600 0.873000 0.327400 -vn 0.361600 0.873000 0.327400 -vn 0.873000 -0.361600 0.327400 -vn -0.361600 -0.873000 0.327400 -vn -0.873000 0.361600 0.327400 -vn 0.500000 0.866000 0.000000 -vn 0.500000 -0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn -0.729500 0.683900 0.000000 -vn -0.729500 -0.683900 0.000000 -vn 0.729500 -0.683900 0.000000 -vn 0.729500 0.683900 0.000000 -vn 0.000000 0.934500 0.356000 -vn 0.995900 -0.000000 0.090500 -vn -0.995900 0.000000 0.090500 -vn 0.894400 0.447200 0.000000 -vn -0.894400 0.447200 0.000000 -vn 0.000000 -0.934500 -0.356000 -vn 0.382700 0.923900 0.000000 -vn 0.923900 0.382700 0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 0.923900 0.000000 -vn -0.923900 0.382700 0.000000 -vn 0.780900 -0.624700 0.000000 -vn -0.780900 -0.624700 0.000000 -vn 0.000000 0.939700 -0.342000 -vn 0.000000 0.342000 0.939700 -vn 0.000000 -0.939700 0.342000 -vn 0.000000 -0.342000 -0.939700 -vn 0.645900 0.744600 -0.168600 -vn 0.431100 -0.886400 -0.168500 -vn 0.552100 -0.816600 0.168600 -vn -0.923700 -0.342200 0.172500 -vn 0.331400 -0.500100 0.800100 -vn 0.569500 0.759400 -0.314500 -vn 0.569500 0.314500 -0.759400 -vn 0.983200 -0.168500 0.069800 -vn -0.273100 0.356200 0.893600 -vn 0.273100 0.356300 0.893600 -vn 0.569500 -0.759400 0.314500 -vn 0.654700 -0.698400 -0.289300 -s off -f 1/1/1 2/2/1 4/3/1 -f 4/3/2 6/4/2 5/5/2 -f 6/6/3 8/7/3 7/8/3 -f 8/7/4 10/9/4 9/10/4 -f 10/9/5 12/11/5 11/12/5 -f 11/12/6 12/11/6 14/13/6 -f 16/14/7 2/2/7 1/1/7 -f 14/13/8 16/14/8 15/15/8 -f 15/15/9 24/16/9 23/17/9 -f 23/17/8 24/16/8 32/18/8 -f 5/5/10 19/19/10 18/20/10 -f 9/10/11 11/12/11 22/21/11 -f 1/1/12 17/22/12 24/23/12 -f 1/1/13 3/24/13 18/25/13 -f 5/26/14 7/8/14 20/27/14 -f 11/12/15 13/28/15 23/29/15 -f 9/10/16 21/30/16 20/31/16 -f 33/32/17 41/33/17 49/34/17 -f 22/21/5 30/35/5 29/36/5 -f 19/37/3 20/27/3 28/38/3 -f 18/25/1 26/39/1 25/40/1 -f 17/22/7 25/41/7 32/42/7 -f 23/29/6 31/43/6 30/44/6 -f 21/30/4 29/45/4 28/46/4 -f 18/20/2 19/19/2 27/47/2 -f 33/48/7 41/49/7 48/50/7 -f 32/51/18 40/52/18 39/53/18 -f 30/54/19 38/55/19 37/56/19 -f 28/57/20 36/58/20 35/59/20 -f 26/60/21 34/61/21 33/32/21 -f 56/62/22 48/63/22 40/64/22 -f 25/41/7 49/65/7 56/66/7 -f 39/53/23 47/67/23 55/68/23 -f 44/69/24 52/70/24 51/71/24 -f 39/72/6 47/73/6 46/74/6 -f 37/75/4 45/76/4 44/77/4 -f 34/78/2 35/79/2 43/80/2 -f 40/81/8 48/63/8 47/67/8 -f 38/82/5 46/83/5 45/84/5 -f 35/85/3 36/86/3 44/69/3 -f 33/87/1 34/88/1 42/89/1 -f 55/90/9 56/91/9 64/92/9 -f 42/89/25 50/93/25 49/34/25 -f 45/84/26 53/94/26 29/95/26 -f 53/96/4 52/97/4 28/46/4 -f 54/98/27 46/83/27 38/99/27 -f 31/43/6 55/100/6 54/101/6 -f 47/67/28 48/63/28 56/62/28 -f 45/84/29 46/83/29 54/98/29 -f 60/102/30 63/103/30 64/92/30 -f 53/104/11 54/105/11 62/106/11 -f 52/107/14 60/102/14 59/108/14 -f 50/109/13 58/110/13 57/111/13 -f 56/112/12 49/113/12 57/111/12 -f 54/114/15 55/115/15 63/103/15 -f 52/116/16 53/117/16 61/118/16 -f 50/119/10 51/120/10 59/108/10 -f 51/121/2 50/122/2 26/123/2 -f 34/124/31 26/125/31 50/93/31 -f 51/71/32 27/126/32 35/59/32 -f 28/127/33 52/70/33 44/69/33 -f 65/128/34 66/129/34 68/130/34 -f 67/131/35 68/130/35 70/132/35 -f 70/133/36 72/134/36 71/135/36 -f 72/134/37 74/136/37 73/137/37 -f 74/136/38 76/138/38 75/139/38 -f 75/139/39 76/138/39 78/140/39 -f 79/141/40 80/142/40 66/129/40 -f 78/140/41 80/142/41 79/141/41 -f 77/143/42 79/141/42 88/144/42 -f 88/144/41 96/145/41 95/146/41 -f 67/131/43 69/147/43 83/148/43 -f 73/137/44 75/139/44 86/149/44 -f 65/128/45 81/150/45 88/151/45 -f 65/128/46 67/131/46 82/152/46 -f 69/153/47 71/135/47 84/154/47 -f 77/143/48 87/155/48 86/156/48 -f 73/137/49 85/157/49 84/158/49 -f 105/159/50 113/160/50 89/161/50 -f 86/149/38 94/162/38 93/163/38 -f 84/154/36 92/164/36 91/165/36 -f 81/166/34 82/152/34 90/167/34 -f 81/150/40 89/168/40 96/169/40 -f 87/155/39 95/170/39 94/171/39 -f 85/157/37 93/172/37 92/173/37 -f 83/148/35 91/174/35 90/175/35 -f 97/176/40 105/177/40 112/178/40 -f 95/179/51 96/180/51 104/181/51 -f 94/182/52 102/183/52 101/184/52 -f 92/185/53 100/186/53 99/187/53 -f 90/188/54 98/189/54 97/190/54 -f 120/191/55 112/192/55 104/193/55 -f 113/194/40 120/195/40 96/169/40 -f 111/196/23 119/197/23 95/179/23 -f 107/198/56 108/199/56 116/200/56 -f 102/201/39 103/202/39 111/203/39 -f 100/204/37 101/205/37 109/206/37 -f 98/207/35 99/208/35 107/209/35 -f 104/210/41 112/192/41 111/196/41 -f 101/211/38 102/212/38 110/213/38 -f 99/214/36 100/215/36 108/199/36 -f 98/216/34 106/217/34 105/159/34 -f 120/218/42 128/219/42 127/220/42 -f 105/159/57 106/217/57 114/221/57 -f 109/222/58 117/223/58 93/224/58 -f 93/172/37 117/225/37 116/226/37 -f 118/227/59 110/213/59 102/228/59 -f 95/170/39 119/229/39 118/230/39 -f 111/196/60 112/192/60 120/191/60 -f 110/213/61 118/227/61 117/223/61 -f 124/231/62 126/232/62 122/233/62 -f 118/234/44 126/232/44 125/235/44 -f 115/236/47 116/237/47 124/231/47 -f 114/238/46 122/233/46 121/239/46 -f 113/240/45 121/239/45 128/219/45 -f 118/241/48 119/242/48 127/220/48 -f 117/243/49 125/235/49 124/231/49 -f 115/244/43 123/245/43 122/233/43 -f 91/174/35 115/246/35 114/247/35 -f 106/217/63 98/248/63 90/249/63 -f 115/250/32 91/251/32 99/187/32 -f 116/200/64 108/199/64 100/252/64 -f 129/253/65 130/254/65 132/255/65 -f 131/256/66 132/255/66 134/257/66 -f 134/258/67 136/259/67 135/260/67 -f 136/259/68 138/261/68 137/262/68 -f 137/262/69 138/261/69 140/263/69 -f 139/264/70 140/263/70 142/265/70 -f 144/266/71 130/254/71 129/253/71 -f 142/265/72 144/266/72 143/267/72 -f 143/267/73 152/268/73 151/269/73 -f 151/269/72 152/268/72 160/270/72 -f 131/256/74 133/271/74 147/272/74 -f 137/262/75 139/264/75 150/273/75 -f 129/253/76 145/274/76 152/275/76 -f 131/256/77 146/276/77 145/277/77 -f 135/260/78 148/278/78 147/279/78 -f 139/264/79 141/280/79 151/281/79 -f 135/260/80 137/262/80 149/282/80 -f 169/283/81 177/284/81 153/285/81 -f 150/273/69 158/286/69 157/287/69 -f 147/279/67 148/278/67 156/288/67 -f 146/276/65 154/289/65 153/290/65 -f 145/274/71 153/291/71 160/292/71 -f 150/293/70 151/281/70 159/294/70 -f 148/295/68 149/282/68 157/296/68 -f 147/272/66 155/297/66 154/298/66 -f 161/299/71 169/300/71 176/301/71 -f 160/302/82 168/303/82 167/304/82 -f 158/305/83 166/306/83 165/307/83 -f 156/308/84 164/309/84 163/310/84 -f 154/311/85 162/312/85 161/313/85 -f 184/314/86 176/315/86 168/316/86 -f 153/291/71 177/317/71 184/318/71 -f 167/304/23 175/319/23 183/320/23 -f 172/321/87 180/322/87 179/323/87 -f 166/324/70 167/325/70 175/326/70 -f 164/327/68 165/328/68 173/329/68 -f 162/330/66 163/331/66 171/332/66 -f 167/333/72 168/334/72 176/315/72 -f 165/335/69 166/336/69 174/337/69 -f 164/338/67 172/321/67 171/339/67 -f 161/340/65 162/341/65 170/342/65 -f 183/343/73 184/344/73 192/345/73 -f 170/342/88 178/346/88 177/284/88 -f 173/347/89 181/348/89 157/349/89 -f 157/296/68 181/350/68 180/351/68 -f 158/352/90 182/353/90 174/337/90 -f 183/354/70 182/355/70 158/356/70 -f 176/315/91 184/314/91 183/320/91 -f 173/347/92 174/337/92 182/353/92 -f 188/357/93 190/358/93 186/359/93 -f 181/360/75 182/361/75 190/358/75 -f 179/362/78 180/363/78 188/357/78 -f 177/364/77 178/365/77 186/359/77 -f 177/366/76 185/367/76 192/345/76 -f 182/368/79 183/369/79 191/370/79 -f 181/371/80 189/372/80 188/357/80 -f 179/373/74 187/374/74 186/359/74 -f 155/297/66 179/375/66 178/376/66 -f 170/342/94 162/377/94 154/378/94 -f 155/379/32 163/310/32 171/339/32 -f 156/380/95 180/322/95 172/321/95 -f 193/381/96 194/382/96 196/383/96 -f 195/384/97 196/383/97 198/385/97 -f 198/385/98 200/386/98 199/387/98 -f 199/387/99 200/386/99 202/388/99 -f 202/388/100 204/389/100 203/390/100 -f 203/390/101 204/389/101 206/391/101 -f 198/385/102 196/383/102 209/392/102 -f 208/393/103 194/382/103 193/381/103 -f 205/394/104 206/395/104 208/393/104 -f 203/390/105 205/396/105 239/397/105 -f 212/398/106 220/399/106 221/400/106 -f 202/388/107 213/401/107 214/402/107 -f 194/382/108 208/393/108 216/403/108 -f 196/383/109 194/382/109 210/404/109 -f 200/386/110 198/385/110 211/405/110 -f 206/391/111 204/389/111 214/406/111 -f 200/386/112 212/398/112 213/407/112 -f 206/395/113 215/408/113 216/409/113 -f 224/410/114 232/411/114 226/412/114 -f 209/392/106 217/413/106 219/414/106 -f 216/409/106 215/408/106 223/415/106 -f 214/402/106 213/401/106 221/416/106 -f 212/417/106 211/405/106 219/418/106 -f 210/404/106 218/419/106 217/420/106 -f 216/403/106 224/421/106 218/422/106 -f 214/406/106 222/423/106 223/424/106 -f 231/425/106 229/426/106 226/427/106 -f 223/428/115 222/429/115 230/430/115 -f 220/431/116 228/432/116 229/433/116 -f 219/434/117 217/435/117 225/436/117 -f 224/410/118 223/437/118 231/438/118 -f 221/439/119 229/433/119 230/430/119 -f 219/434/120 227/440/120 228/432/120 -f 218/441/121 226/412/121 225/436/121 -f 239/442/104 240/443/104 248/444/104 -f 201/445/122 237/446/122 236/447/122 -f 207/448/123 240/443/123 239/442/123 -f 195/384/124 197/449/124 235/450/124 -f 203/390/125 238/451/125 237/452/125 -f 207/448/126 193/381/126 233/453/126 -f 195/384/127 234/454/127 233/455/127 -f 197/449/128 199/387/128 236/456/128 -f 238/451/100 246/457/100 245/458/100 -f 236/456/98 244/459/98 243/460/98 -f 233/455/96 234/454/96 242/461/96 -f 240/462/103 233/453/103 241/463/103 -f 238/464/101 239/397/101 247/465/101 -f 237/446/99 245/466/99 244/467/99 -f 235/450/97 243/468/97 242/469/97 -f 250/470/129 252/471/129 251/472/129 -f 252/471/130 254/473/130 253/474/130 -f 254/473/131 256/475/131 255/476/131 -f 256/475/132 258/477/132 257/478/132 -f 258/477/133 260/479/133 259/480/133 -f 260/479/134 262/481/134 261/482/134 -f 254/473/135 252/471/135 265/483/135 -f 263/484/136 264/485/136 250/470/136 -f 262/486/137 264/485/137 263/484/137 -f 261/482/138 295/487/138 294/488/138 -f 269/489/139 268/490/139 276/491/139 -f 258/477/140 269/492/140 270/493/140 -f 250/470/141 264/485/141 272/494/141 -f 250/470/142 266/495/142 265/496/142 -f 256/475/143 254/473/143 267/497/143 -f 260/479/144 270/498/144 271/499/144 -f 258/477/145 256/475/145 268/490/145 -f 264/485/146 262/486/146 271/500/146 -f 274/501/147 280/502/147 288/503/147 -f 265/483/139 273/504/139 275/505/139 -f 272/506/139 271/500/139 279/507/139 -f 269/492/139 277/508/139 278/509/139 -f 268/510/139 267/497/139 275/511/139 -f 265/496/139 266/495/139 274/512/139 -f 266/513/139 272/494/139 280/514/139 -f 270/498/139 278/515/139 279/516/139 -f 287/517/139 285/518/139 283/519/139 -f 278/520/148 286/521/148 287/522/148 -f 277/523/149 276/524/149 284/525/149 -f 275/526/150 273/527/150 281/528/150 -f 280/502/151 279/529/151 287/530/151 -f 277/523/152 285/531/152 286/521/152 -f 275/526/153 283/532/153 284/525/153 -f 274/501/154 282/533/154 281/528/154 -f 296/534/137 304/535/137 303/536/137 -f 255/476/155 257/478/155 293/537/155 -f 263/484/156 296/534/156 295/538/156 -f 253/474/157 291/539/157 290/540/157 -f 259/480/158 294/541/158 293/542/158 -f 263/484/159 249/543/159 289/544/159 -f 251/472/160 290/545/160 289/546/160 -f 255/476/161 292/547/161 291/548/161 -f 294/541/133 302/549/133 301/550/133 -f 292/547/131 300/551/131 299/552/131 -f 290/545/129 298/553/129 297/554/129 -f 289/544/136 297/555/136 304/556/136 -f 295/487/134 303/557/134 302/558/134 -f 293/537/132 301/559/132 300/560/132 -f 291/539/130 299/561/130 298/562/130 -f 306/563/129 308/564/129 307/565/129 -f 307/565/130 308/564/130 310/566/130 -f 310/566/131 312/567/131 311/568/131 -f 312/567/132 314/569/132 313/570/132 -f 314/569/133 316/571/133 315/572/133 -f 316/571/134 318/573/134 317/574/134 -f 308/564/135 321/575/135 323/576/135 -f 320/577/136 306/563/136 305/578/136 -f 317/579/137 318/580/137 320/577/137 -f 315/572/138 317/574/138 351/581/138 -f 324/582/139 332/583/139 333/584/139 -f 314/569/140 325/585/140 326/586/140 -f 306/563/141 320/577/141 328/587/141 -f 306/563/142 322/588/142 321/589/142 -f 312/567/143 310/566/143 323/590/143 -f 316/571/144 326/591/144 327/592/144 -f 314/569/145 312/567/145 324/582/145 -f 320/577/146 318/580/146 327/593/146 -f 330/594/147 336/595/147 344/596/147 -f 321/575/139 329/597/139 331/598/139 -f 328/599/139 327/593/139 335/600/139 -f 326/586/139 325/585/139 333/601/139 -f 324/602/139 323/590/139 331/603/139 -f 321/589/139 322/588/139 330/604/139 -f 328/587/139 336/605/139 330/606/139 -f 326/591/139 334/607/139 335/608/139 -f 343/609/139 341/610/139 339/611/139 -f 334/612/148 342/613/148 343/614/148 -f 333/615/149 332/616/149 340/617/149 -f 331/618/150 329/619/150 337/620/150 -f 336/595/151 335/621/151 343/622/151 -f 333/615/152 341/623/152 342/613/152 -f 331/618/153 339/624/153 340/617/153 -f 330/594/154 338/625/154 337/620/154 -f 352/626/137 360/627/137 359/628/137 -f 313/570/155 349/629/155 348/630/155 -f 319/631/156 352/626/156 351/632/156 -f 309/633/157 347/634/157 346/635/157 -f 315/572/158 350/636/158 349/637/158 -f 305/578/159 345/638/159 352/639/159 -f 307/565/160 346/640/160 345/641/160 -f 309/633/161 311/568/161 348/642/161 -f 350/636/133 358/643/133 357/644/133 -f 348/642/131 356/645/131 355/646/131 -f 346/640/129 354/647/129 353/648/129 -f 345/638/136 353/649/136 360/650/136 -f 351/581/134 359/651/134 358/652/134 -f 349/629/132 357/653/132 356/654/132 -f 347/634/130 355/655/130 354/656/130 -f 362/657/162 361/658/162 392/659/162 -f 375/660/163 383/661/163 382/662/163 -f 363/663/162 364/664/162 366/665/162 -f 381/666/164 389/667/164 390/668/164 -f 367/669/165 379/670/165 361/671/165 -f 366/665/166 368/672/166 367/669/166 -f 383/673/167 384/674/167 385/675/167 -f 363/663/168 365/676/168 361/658/168 -f 367/669/169 368/672/169 370/677/169 -f 379/670/166 391/678/166 392/679/166 -f 373/680/170 382/681/170 381/682/170 -f 370/677/164 372/683/164 371/684/164 -f 371/684/171 381/666/171 380/685/171 -f 372/683/172 374/686/172 373/680/172 -f 367/669/173 369/687/173 380/688/173 -f 383/661/174 387/689/174 388/690/174 -f 374/686/174 376/691/174 375/660/174 -f 372/692/175 370/693/175 396/694/175 -f 377/695/176 378/696/176 364/664/176 -f 375/697/167 376/698/167 378/696/167 -f 382/681/172 388/699/172 389/700/172 -f 377/695/177 363/663/177 362/701/177 -f 375/697/178 377/695/178 384/674/178 -f 379/702/169 380/688/169 390/703/169 -f 384/704/176 362/701/176 386/705/176 -f 395/706/179 403/707/179 404/708/179 -f 378/709/175 400/710/175 394/711/175 -f 372/692/175 397/712/175 398/713/175 -f 368/714/175 366/715/175 393/716/175 -f 374/717/175 398/713/175 399/718/175 -f 366/715/175 364/719/175 394/711/175 -f 368/714/175 395/720/175 396/694/175 -f 376/721/175 399/718/175 400/710/175 -f 406/722/175 405/723/175 403/707/175 -f 393/724/180 394/725/180 402/726/180 -f 400/727/181 408/728/181 402/726/181 -f 398/729/182 406/722/182 407/730/182 -f 396/731/183 404/708/183 405/723/183 -f 393/732/184 401/733/184 403/707/184 -f 400/734/185 399/735/185 407/730/185 -f 397/736/186 405/723/186 406/722/186 -f 409/737/176 440/738/176 434/739/176 -f 421/740/175 423/741/175 431/742/175 -f 412/743/176 414/744/176 413/745/176 -f 429/746/172 437/747/172 438/748/172 -f 413/745/175 415/749/175 427/750/175 -f 414/744/167 416/751/167 415/749/167 -f 431/752/166 432/753/166 433/754/166 -f 411/755/175 413/745/175 409/756/175 -f 415/757/174 416/758/174 418/759/174 -f 427/760/167 439/761/167 440/738/167 -f 421/740/175 430/762/175 429/763/175 -f 417/764/172 418/759/172 420/765/172 -f 439/766/187 438/767/187 446/768/187 -f 419/769/175 429/770/175 428/771/175 -f 420/765/164 422/772/164 421/740/164 -f 417/764/175 428/773/175 427/774/175 -f 431/752/169 435/775/169 436/776/169 -f 421/740/169 422/772/169 424/777/169 -f 420/778/187 418/779/187 476/780/187 -f 426/781/162 412/743/162 411/755/162 -f 424/777/166 426/781/166 425/782/166 -f 430/783/164 436/776/164 437/747/164 -f 425/782/175 411/755/175 410/784/175 -f 425/782/175 432/785/175 431/786/175 -f 428/787/174 438/748/174 439/788/174 -f 410/789/162 434/739/162 433/754/162 -f 442/790/162 450/791/162 449/792/162 -f 436/793/187 444/794/187 445/795/187 -f 435/796/187 433/797/187 441/798/187 -f 439/799/187 447/800/187 448/801/187 -f 438/802/187 437/803/187 445/795/187 -f 435/804/187 443/805/187 444/794/187 -f 434/806/187 442/790/187 441/798/187 -f 440/807/187 448/801/187 442/790/187 -f 456/808/175 455/809/175 463/810/175 -f 442/790/176 448/801/176 456/808/176 -f 447/811/174 446/768/174 454/812/174 -f 444/794/164 452/813/164 453/814/164 -f 443/805/166 441/798/166 449/792/166 -f 447/800/167 455/809/167 456/808/167 -f 445/795/172 453/814/172 454/812/172 -f 443/805/169 451/815/169 452/813/169 -f 459/816/166 457/817/166 465/818/166 -f 453/814/175 461/819/175 462/820/175 -f 452/813/175 451/815/175 459/821/175 -f 449/792/175 450/791/175 458/822/175 -f 450/791/175 456/808/175 464/823/175 -f 454/812/175 462/824/175 463/825/175 -f 453/814/175 452/813/175 460/826/175 -f 449/792/175 457/827/175 459/828/175 -f 463/829/167 471/830/167 472/831/167 -f 461/832/172 469/833/172 470/834/172 -f 459/816/169 467/835/169 468/836/169 -f 458/837/162 466/838/162 465/818/162 -f 458/837/176 464/839/176 472/831/176 -f 463/840/174 462/841/174 470/834/174 -f 461/832/164 460/842/164 468/836/164 -f 476/843/188 475/844/188 483/845/188 -f 426/846/187 480/847/187 474/848/187 -f 420/778/187 477/849/187 478/850/187 -f 414/851/187 473/852/187 475/853/187 -f 422/854/187 478/850/187 479/855/187 -f 414/851/187 412/856/187 474/848/187 -f 418/779/187 416/857/187 475/853/187 -f 426/846/187 424/858/187 479/855/187 -f 486/859/187 485/860/187 483/845/187 -f 473/861/189 474/862/189 482/863/189 -f 480/864/190 488/865/190 482/863/190 -f 478/866/191 486/859/191 487/867/191 -f 477/868/192 476/869/192 484/870/192 -f 473/871/193 481/872/193 483/845/193 -f 479/873/194 487/867/194 488/865/194 -f 477/874/195 485/860/195 486/859/195 -f 490/875/162 489/876/162 520/877/162 -f 503/878/163 511/879/163 510/880/163 -f 491/881/162 492/882/162 494/883/162 -f 509/884/164 517/885/164 518/886/164 -f 495/887/165 507/888/165 489/889/165 -f 494/883/166 496/890/166 495/887/166 -f 511/891/167 512/892/167 513/893/167 -f 491/881/168 493/894/168 489/876/168 -f 495/887/169 496/890/169 498/895/169 -f 507/888/166 519/896/166 520/897/166 -f 501/898/170 510/899/170 509/900/170 -f 498/895/164 500/901/164 499/902/164 -f 499/902/196 509/884/196 508/903/196 -f 500/901/172 502/904/172 501/898/172 -f 495/887/173 497/905/173 508/906/173 -f 511/879/174 515/907/174 516/908/174 -f 501/898/174 502/904/174 504/909/174 -f 500/910/175 498/911/175 524/912/175 -f 505/913/176 506/914/176 492/882/176 -f 504/915/167 506/914/167 505/913/167 -f 510/899/172 516/916/172 517/917/172 -f 505/913/177 491/881/177 490/918/177 -f 505/913/178 512/892/178 511/891/178 -f 507/919/169 508/906/169 518/920/169 -f 512/921/176 490/918/176 514/922/176 -f 523/923/197 531/924/197 532/925/197 -f 506/926/175 528/927/175 522/928/175 -f 500/910/175 525/929/175 526/930/175 -f 496/931/175 494/932/175 521/933/175 -f 502/934/175 526/930/175 527/935/175 -f 492/936/175 522/928/175 521/933/175 -f 496/931/175 523/937/175 524/912/175 -f 506/926/175 504/938/175 527/935/175 -f 534/939/175 533/940/175 531/924/175 -f 521/941/180 522/942/180 530/943/180 -f 522/944/181 528/945/181 536/946/181 -f 526/947/182 534/939/182 535/948/182 -f 524/949/183 532/925/183 533/940/183 -f 523/950/184 521/951/184 529/952/184 -f 528/953/185 527/954/185 535/948/185 -f 525/955/186 533/940/186 534/939/186 -f 537/956/176 568/957/176 562/958/176 -f 549/959/175 551/960/175 559/961/175 -f 540/962/176 542/963/176 541/964/176 -f 557/965/172 565/966/172 566/967/172 -f 541/964/175 543/968/175 555/969/175 -f 542/963/167 544/970/167 543/968/167 -f 559/971/166 560/972/166 561/973/166 -f 539/974/175 541/964/175 537/975/175 -f 543/976/174 544/977/174 546/978/174 -f 555/979/167 567/980/167 568/957/167 -f 547/981/175 549/959/175 558/982/175 -f 545/983/172 546/978/172 548/984/172 -f 566/985/187 574/986/187 575/987/187 -f 547/981/175 557/988/175 556/989/175 -f 548/984/164 550/990/164 549/959/164 -f 545/983/175 556/991/175 555/992/175 -f 559/971/169 563/993/169 564/994/169 -f 549/959/169 550/990/169 552/995/169 -f 548/996/187 546/997/187 604/998/187 -f 554/999/162 540/962/162 539/974/162 -f 552/995/166 554/999/166 553/1000/166 -f 558/1001/164 564/994/164 565/966/164 -f 539/974/175 538/1002/175 560/1003/175 -f 553/1000/175 560/1004/175 559/1005/175 -f 555/1006/174 556/1007/174 566/967/174 -f 538/1008/162 562/958/162 561/973/162 -f 570/1009/162 578/1010/162 577/1011/162 -f 564/1012/187 572/1013/187 573/1014/187 -f 563/1015/187 561/1016/187 569/1017/187 -f 567/1018/187 575/1019/187 576/1020/187 -f 566/1021/187 565/1022/187 573/1014/187 -f 563/1023/187 571/1024/187 572/1013/187 -f 561/1025/187 562/1026/187 570/1009/187 -f 568/1027/187 576/1020/187 570/1009/187 -f 584/1028/175 583/1029/175 591/1030/175 -f 570/1009/176 576/1020/176 584/1028/176 -f 575/987/174 574/986/174 582/1031/174 -f 572/1013/164 580/1032/164 581/1033/164 -f 571/1024/166 569/1017/166 577/1011/166 -f 575/1019/167 583/1029/167 584/1028/167 -f 573/1014/172 581/1033/172 582/1031/172 -f 571/1024/169 579/1034/169 580/1032/169 -f 587/1035/166 585/1036/166 593/1037/166 -f 581/1033/175 589/1038/175 590/1039/175 -f 580/1032/175 579/1034/175 587/1040/175 -f 578/1010/175 586/1041/175 585/1042/175 -f 578/1010/175 584/1028/175 592/1043/175 -f 582/1031/175 590/1044/175 591/1045/175 -f 581/1033/175 580/1032/175 588/1046/175 -f 577/1011/175 585/1047/175 587/1048/175 -f 591/1049/167 599/1050/167 600/1051/167 -f 589/1052/172 597/1053/172 598/1054/172 -f 587/1035/169 595/1055/169 596/1056/169 -f 586/1057/162 594/1058/162 593/1037/162 -f 586/1057/176 592/1059/176 600/1051/176 -f 591/1060/174 590/1061/174 598/1054/174 -f 589/1052/164 588/1062/164 596/1056/164 -f 604/1063/188 603/1064/188 611/1065/188 -f 554/1066/187 608/1067/187 602/1068/187 -f 548/996/187 605/1069/187 606/1070/187 -f 542/1071/187 601/1072/187 603/1073/187 -f 550/1074/187 606/1070/187 607/1075/187 -f 540/1076/187 602/1068/187 601/1072/187 -f 546/997/187 544/1077/187 603/1073/187 -f 552/1078/187 607/1075/187 608/1067/187 -f 614/1079/187 613/1080/187 611/1065/187 -f 602/1081/189 610/1082/189 609/1083/189 -f 608/1084/190 616/1085/190 610/1082/190 -f 606/1086/191 614/1079/191 615/1087/191 -f 605/1088/192 604/1089/192 612/1090/192 -f 601/1091/198 609/1083/198 611/1065/198 -f 608/1092/194 607/1093/194 615/1087/194 -f 605/1094/195 613/1080/195 614/1079/195 -f 618/1095/176 620/1096/176 619/1097/176 -f 620/1096/167 622/1098/167 621/1099/167 -f 622/1100/174 624/1101/174 623/1102/174 -f 624/1101/172 626/1103/172 625/1104/172 -f 625/1104/164 626/1103/164 628/1105/164 -f 627/1106/169 628/1105/169 630/1107/169 -f 632/1108/162 618/1095/162 617/1109/162 -f 630/1107/166 632/1108/166 631/1110/166 -f 631/1110/199 640/1111/199 639/1112/199 -f 640/1111/166 648/1113/166 647/1114/166 -f 621/1099/200 635/1115/200 634/1116/200 -f 625/1104/201 627/1106/201 638/1117/201 -f 631/1110/202 617/1109/202 633/1118/202 -f 617/1109/203 619/1097/203 634/1119/203 -f 621/1120/204 623/1102/204 636/1121/204 -f 629/1122/205 639/1123/205 638/1124/205 -f 625/1104/206 637/1125/206 636/1126/206 -f 657/1127/139 665/1128/139 641/1129/139 -f 637/1130/164 638/1117/164 646/1131/164 -f 635/1132/174 636/1121/174 644/1133/174 -f 633/1134/176 634/1119/176 642/1135/176 -f 633/1118/162 641/1136/162 648/1137/162 -f 639/1123/169 647/1138/169 646/1139/169 -f 637/1125/172 645/1140/172 644/1141/172 -f 635/1115/167 643/1142/167 642/1143/167 -f 649/1144/162 657/1145/162 664/1146/162 -f 648/1147/207 656/1148/207 655/1149/207 -f 646/1150/208 654/1151/208 653/1152/208 -f 644/1153/209 652/1154/209 651/1155/209 -f 642/1156/210 650/1157/210 649/1158/210 -f 672/1159/211 664/1160/211 656/1161/211 -f 641/1136/162 665/1162/162 672/1163/162 -f 655/1149/23 663/1164/23 671/1165/23 -f 660/1166/212 668/1167/212 667/1168/212 -f 655/1169/169 663/1170/169 662/1171/169 -f 653/1172/172 661/1173/172 660/1174/172 -f 651/1175/167 659/1176/167 658/1177/167 -f 656/1178/166 664/1160/166 663/1164/166 -f 653/1179/164 654/1180/164 662/1181/164 -f 651/1182/174 652/1183/174 660/1166/174 -f 650/1184/176 658/1185/176 657/1127/176 -f 672/1186/199 680/1187/199 679/1188/199 -f 657/1127/213 658/1185/213 666/1189/213 -f 661/1190/214 669/1191/214 645/1192/214 -f 645/1140/172 669/1193/172 668/1194/172 -f 646/1195/215 670/1196/215 662/1181/215 -f 647/1138/169 671/1197/169 670/1198/169 -f 663/1164/216 664/1160/216 672/1159/216 -f 662/1181/217 670/1196/217 669/1191/217 -f 676/1199/175 678/1200/175 674/1201/175 -f 670/1202/201 678/1200/201 677/1203/201 -f 668/1204/204 676/1199/204 675/1205/204 -f 665/1206/203 666/1207/203 674/1201/203 -f 665/1208/202 673/1209/202 680/1187/202 -f 670/1210/205 671/1211/205 679/1188/205 -f 668/1212/206 669/1213/206 677/1203/206 -f 666/1214/200 667/1215/200 675/1205/200 -f 643/1142/167 667/1216/167 666/1217/167 -f 650/1218/218 642/1219/218 666/1189/218 -f 667/1168/32 643/1220/32 651/1155/32 -f 644/1221/219 668/1167/219 660/1166/219 -f 681/1222/220 682/1223/220 684/1224/220 -f 683/1225/221 684/1224/221 686/1226/221 -f 686/1226/222 688/1227/222 687/1228/222 -f 688/1227/223 690/1229/223 689/1230/223 -f 689/1230/224 690/1229/224 692/1231/224 -f 692/1231/225 694/1232/225 693/1233/225 -f 684/1224/226 697/1234/226 699/1235/226 -f 695/1236/227 696/1237/227 682/1223/227 -f 693/1238/228 694/1239/228 696/1237/228 -f 693/1233/229 727/1240/229 726/1241/229 -f 700/1242/230 708/1243/230 709/1244/230 -f 692/1231/231 690/1229/231 701/1245/231 -f 682/1223/232 696/1237/232 704/1246/232 -f 684/1224/233 682/1223/233 698/1247/233 -f 688/1227/234 686/1226/234 699/1248/234 -f 692/1231/235 702/1249/235 703/1250/235 -f 688/1227/236 700/1242/236 701/1251/236 -f 696/1237/237 694/1239/237 703/1252/237 -f 706/1253/238 712/1254/238 720/1255/238 -f 697/1234/230 705/1256/230 707/1257/230 -f 704/1258/230 703/1252/230 711/1259/230 -f 702/1260/230 701/1245/230 709/1261/230 -f 700/1262/230 699/1248/230 707/1263/230 -f 697/1264/230 698/1247/230 706/1265/230 -f 704/1246/230 712/1266/230 706/1267/230 -f 703/1250/230 702/1249/230 710/1268/230 -f 719/1269/230 716/1270/230 715/1271/230 -f 710/1272/239 718/1273/239 719/1274/239 -f 708/1275/240 716/1276/240 717/1277/240 -f 705/1278/241 713/1279/241 715/1280/241 -f 711/1281/242 719/1282/242 720/1255/242 -f 709/1283/243 717/1277/243 718/1273/243 -f 708/1275/244 707/1284/244 715/1280/244 -f 706/1253/245 714/1285/245 713/1279/245 -f 727/1286/228 728/1287/228 736/1288/228 -f 689/1230/246 725/1289/246 724/1290/246 -f 695/1236/247 728/1287/247 727/1286/247 -f 683/1225/248 685/1291/248 723/1292/248 -f 689/1230/249 691/1293/249 726/1294/249 -f 681/1222/250 721/1295/250 728/1296/250 -f 683/1225/251 722/1297/251 721/1298/251 -f 685/1291/252 687/1228/252 724/1299/252 -f 725/1300/224 726/1294/224 734/1301/224 -f 724/1299/222 732/1302/222 731/1303/222 -f 721/1298/220 722/1297/220 730/1304/220 -f 721/1295/227 729/1305/227 736/1306/227 -f 727/1240/225 735/1307/225 734/1308/225 -f 725/1289/223 733/1309/223 732/1310/223 -f 723/1292/221 731/1311/221 730/1312/221 -f 738/1313/162 737/1314/162 768/1315/162 -f 749/1316/163 751/1317/163 759/1318/163 -f 739/1319/162 740/1320/162 742/1321/162 -f 757/1322/164 765/1323/164 766/1324/164 -f 743/1325/165 755/1326/165 737/1327/165 -f 742/1321/166 744/1328/166 743/1325/166 -f 759/1329/167 760/1330/167 761/1331/167 -f 739/1319/168 741/1332/168 737/1314/168 -f 743/1325/169 744/1328/169 746/1333/169 -f 755/1326/166 767/1334/166 768/1335/166 -f 749/1316/170 758/1336/170 757/1337/170 -f 746/1333/164 748/1338/164 747/1339/164 -f 745/1340/196 747/1339/196 757/1322/196 -f 748/1338/172 750/1341/172 749/1316/172 -f 743/1325/173 745/1340/173 756/1342/173 -f 759/1318/174 763/1343/174 764/1344/174 -f 749/1316/174 750/1341/174 752/1345/174 -f 746/1346/175 772/1347/175 773/1348/175 -f 753/1349/176 754/1350/176 740/1320/176 -f 752/1351/167 754/1350/167 753/1349/167 -f 758/1336/172 764/1352/172 765/1353/172 -f 753/1349/177 739/1319/177 738/1354/177 -f 753/1349/178 760/1330/178 759/1329/178 -f 755/1355/169 756/1342/169 766/1356/169 -f 760/1357/176 738/1354/176 762/1358/176 -f 772/1359/197 771/1360/197 779/1361/197 -f 740/1362/175 754/1363/175 776/1364/175 -f 748/1365/175 773/1348/175 774/1366/175 -f 744/1367/175 742/1368/175 769/1369/175 -f 750/1370/175 774/1366/175 775/1371/175 -f 740/1362/175 770/1372/175 769/1369/175 -f 744/1367/175 771/1373/175 772/1347/175 -f 754/1363/175 752/1374/175 775/1371/175 -f 782/1375/175 781/1376/175 779/1361/175 -f 769/1377/180 770/1378/180 778/1379/180 -f 770/1380/181 776/1381/181 784/1382/181 -f 775/1383/182 774/1384/182 782/1375/182 -f 772/1385/183 780/1386/183 781/1376/183 -f 769/1387/184 777/1388/184 779/1361/184 -f 776/1389/185 775/1390/185 783/1391/185 -f 773/1392/186 781/1376/186 782/1375/186 -f 786/1393/176 785/1394/176 816/1395/176 -f 797/1396/175 799/1397/175 807/1398/175 -f 788/1399/176 790/1400/176 789/1401/176 -f 805/1402/172 813/1403/172 814/1404/172 -f 791/1405/175 803/1406/175 785/1407/175 -f 789/1401/167 790/1400/167 792/1408/167 -f 807/1409/166 808/1410/166 809/1411/166 -f 789/1401/175 785/1412/175 786/1413/175 -f 792/1414/174 794/1415/174 793/1416/174 -f 803/1417/167 815/1418/167 816/1395/167 -f 797/1396/175 806/1419/175 805/1420/175 -f 793/1416/172 794/1415/172 796/1421/172 -f 814/1422/187 822/1423/187 823/1424/187 -f 795/1425/175 805/1426/175 804/1427/175 -f 796/1421/164 798/1428/164 797/1396/164 -f 793/1416/175 804/1429/175 803/1430/175 -f 807/1409/169 811/1431/169 812/1432/169 -f 797/1396/169 798/1428/169 800/1433/169 -f 794/1434/187 852/1435/187 853/1436/187 -f 802/1437/162 788/1399/162 787/1438/162 -f 800/1433/166 802/1437/166 801/1439/166 -f 806/1440/164 812/1432/164 813/1403/164 -f 787/1438/175 786/1441/175 808/1442/175 -f 801/1439/175 808/1443/175 807/1444/175 -f 803/1445/174 804/1446/174 814/1404/174 -f 786/1393/162 810/1447/162 809/1411/162 -f 818/1448/162 826/1449/162 825/1450/162 -f 813/1451/187 812/1452/187 820/1453/187 -f 811/1454/187 809/1455/187 817/1456/187 -f 816/1457/187 815/1458/187 823/1459/187 -f 813/1460/187 821/1461/187 822/1423/187 -f 811/1462/187 819/1463/187 820/1453/187 -f 810/1464/187 818/1448/187 817/1456/187 -f 810/1465/187 816/1466/187 824/1467/187 -f 831/1468/175 839/1469/175 840/1470/175 -f 818/1448/176 824/1467/176 832/1471/176 -f 823/1424/174 822/1423/174 830/1472/174 -f 820/1453/164 828/1473/164 829/1474/164 -f 819/1463/166 817/1456/166 825/1450/166 -f 823/1459/167 831/1468/167 832/1471/167 -f 821/1461/172 829/1474/172 830/1472/172 -f 819/1463/169 827/1475/169 828/1473/169 -f 835/1476/166 833/1477/166 841/1478/166 -f 830/1472/175 829/1474/175 837/1479/175 -f 828/1473/175 827/1475/175 835/1480/175 -f 826/1449/175 834/1481/175 833/1482/175 -f 832/1471/175 840/1483/175 834/1484/175 -f 831/1485/175 830/1472/175 838/1486/175 -f 828/1473/175 836/1487/175 837/1488/175 -f 825/1450/175 833/1489/175 835/1490/175 -f 839/1491/167 847/1492/167 848/1493/167 -f 837/1494/172 845/1495/172 846/1496/172 -f 835/1476/169 843/1497/169 844/1498/169 -f 834/1499/162 842/1500/162 841/1478/162 -f 840/1501/176 848/1493/176 842/1500/176 -f 838/1502/174 846/1496/174 847/1503/174 -f 837/1494/164 836/1504/164 844/1498/164 -f 852/1505/188 851/1506/188 859/1507/188 -f 788/1508/187 802/1509/187 856/1510/187 -f 796/1511/187 853/1436/187 854/1512/187 -f 790/1513/187 849/1514/187 851/1515/187 -f 798/1516/187 854/1512/187 855/1517/187 -f 788/1508/187 850/1518/187 849/1514/187 -f 792/1519/187 851/1515/187 852/1435/187 -f 802/1509/187 800/1520/187 855/1517/187 -f 862/1521/187 861/1522/187 859/1507/187 -f 850/1523/189 858/1524/189 857/1525/189 -f 856/1526/190 864/1527/190 858/1524/190 -f 854/1528/191 862/1521/191 863/1529/191 -f 852/1530/192 860/1531/192 861/1522/192 -f 849/1532/198 857/1525/198 859/1507/198 -f 855/1533/194 863/1529/194 864/1527/194 -f 854/1534/195 853/1535/195 861/1522/195 -f 900/1536/58 901/1537/58 903/1538/58 -f 867/1539/23 866/1540/23 900/1536/23 -f 868/1541/253 870/1542/253 869/1543/253 -f 892/1544/254 910/1545/254 911/1546/254 -f 881/1547/23 896/1548/23 895/1549/23 -f 870/1542/62 872/1550/62 871/1551/62 -f 899/1552/255 903/1538/255 904/1553/255 -f 885/1554/23 898/1555/23 897/1556/23 -f 872/1550/254 874/1557/254 873/1558/254 -f 897/1556/256 905/1559/256 906/1560/256 -f 887/1561/23 889/1562/23 900/1536/23 -f 873/1558/257 874/1557/257 876/1563/257 -f 866/1540/258 902/1564/258 901/1537/258 -f 871/1565/23 891/1566/23 865/1567/23 -f 876/1563/50 878/1568/50 877/1569/50 -f 895/1570/259 907/1571/259 908/1572/259 -f 875/1573/23 893/1574/23 892/1544/23 -f 877/1569/259 878/1568/259 880/1575/259 -f 893/1574/257 909/1576/257 910/1545/257 -f 867/1577/23 869/1578/23 865/1567/23 -f 880/1579/260 882/1580/260 881/1581/260 -f 891/1566/62 911/1546/62 912/1582/62 -f 877/1583/23 879/1584/23 895/1570/23 -f 882/1580/256 884/1585/256 883/1586/256 -f 907/1571/32 919/1587/32 920/1588/32 -f 883/1589/23 897/1556/23 896/1548/23 -f 884/1585/261 886/1590/261 885/1591/261 -f 873/1592/23 892/1544/23 891/1566/23 -f 898/1555/261 904/1553/261 905/1559/261 -f 886/1590/255 888/1593/255 887/1594/255 -f 890/1595/32 888/1596/32 971/1597/32 -f 890/1598/258 868/1541/258 867/1599/258 -f 888/1593/58 890/1598/58 889/1600/58 -f 865/1567/253 912/1582/253 902/1564/253 -f 877/1601/23 894/1602/23 893/1574/23 -f 885/1603/23 887/1604/23 899/1552/23 -f 894/1602/50 908/1572/50 909/1576/50 -f 896/1548/260 906/1560/260 907/1605/260 -f 919/1606/259 931/1607/259 932/1608/259 -f 904/1553/32 916/1609/32 917/1610/32 -f 912/1582/32 911/1546/32 923/1611/32 -f 902/1564/32 914/1612/32 913/1613/32 -f 909/1576/32 908/1572/32 920/1614/32 -f 906/1560/32 905/1559/32 917/1615/32 -f 912/1582/32 924/1616/32 914/1617/32 -f 901/1537/32 913/1618/32 915/1619/32 -f 910/1545/32 909/1576/32 921/1620/32 -f 907/1605/32 906/1560/32 918/1621/32 -f 903/1538/32 915/1622/32 916/1623/32 -f 910/1545/32 922/1624/32 923/1625/32 -f 934/1626/23 946/1627/23 947/1628/23 -f 916/1629/261 928/1630/261 929/1631/261 -f 923/1632/62 935/1633/62 936/1634/62 -f 914/1635/258 926/1636/258 925/1637/258 -f 920/1638/50 932/1608/50 933/1639/50 -f 917/1640/256 929/1631/256 930/1641/256 -f 924/1642/253 936/1634/253 926/1636/253 -f 913/1643/58 925/1637/58 927/1644/58 -f 921/1645/257 933/1639/257 934/1646/257 -f 918/1647/260 930/1641/260 931/1648/260 -f 915/1649/255 927/1644/255 928/1630/255 -f 922/1650/254 934/1646/254 935/1633/254 -f 939/1651/255 951/1652/255 952/1653/255 -f 932/1654/23 931/1655/23 943/1656/23 -f 929/1657/23 928/1658/23 940/1659/23 -f 935/1660/23 947/1628/23 948/1661/23 -f 926/1662/23 938/1663/23 937/1664/23 -f 932/1665/23 944/1666/23 945/1667/23 -f 929/1668/23 941/1669/23 942/1670/23 -f 926/1671/23 936/1672/23 948/1661/23 -f 927/1673/23 925/1674/23 937/1664/23 -f 933/1675/23 945/1667/23 946/1627/23 -f 930/1676/23 942/1670/23 943/1677/23 -f 928/1678/23 927/1679/23 939/1651/23 -f 951/1652/262 1047/1680/262 1048/1681/262 -f 946/1627/254 958/1682/254 959/1683/254 -f 943/1656/259 955/1684/259 956/1685/259 -f 940/1659/261 952/1653/261 953/1686/261 -f 947/1628/62 959/1683/62 960/1687/62 -f 938/1663/258 950/1688/258 949/1689/258 -f 944/1666/50 956/1685/50 957/1690/50 -f 941/1669/256 953/1686/256 954/1691/256 -f 948/1661/253 960/1687/253 950/1688/253 -f 939/1651/58 937/1664/58 949/1689/58 -f 945/1667/257 957/1690/257 958/1682/257 -f 942/1670/260 954/1691/260 955/1692/260 -f 966/1693/259 978/1694/259 979/1695/259 -f 870/1696/32 868/1697/32 962/1698/32 -f 886/1699/32 884/1700/32 969/1701/32 -f 882/1702/32 880/1703/32 967/1704/32 -f 876/1705/32 965/1706/32 966/1693/32 -f 872/1707/32 963/1708/32 964/1709/32 -f 888/1710/32 886/1711/32 970/1712/32 -f 884/1713/32 882/1714/32 968/1715/32 -f 878/1716/32 966/1693/32 967/1717/32 -f 874/1718/32 964/1709/32 965/1706/32 -f 870/1719/32 961/1720/32 963/1708/32 -f 890/1721/32 972/1722/32 962/1698/32 -f 979/1695/23 978/1694/23 990/1723/23 -f 963/1708/254 975/1724/254 976/1725/254 -f 970/1712/255 982/1726/255 983/1727/255 -f 967/1704/260 979/1728/260 980/1729/260 -f 964/1709/257 976/1725/257 977/1730/257 -f 971/1597/58 983/1727/58 984/1731/58 -f 962/1698/253 974/1732/253 973/1733/253 -f 968/1715/256 980/1729/256 981/1734/256 -f 965/1706/50 977/1730/50 978/1694/50 -f 972/1722/258 984/1731/258 974/1732/258 -f 961/1720/62 973/1733/62 975/1724/62 -f 969/1701/261 981/1734/261 982/1726/261 -f 993/1735/261 1005/1736/261 1006/1737/261 -f 976/1725/23 975/1724/23 987/1738/23 -f 982/1726/23 994/1739/23 995/1740/23 -f 979/1728/23 991/1741/23 992/1742/23 -f 977/1730/23 976/1725/23 988/1743/23 -f 983/1727/23 995/1744/23 996/1745/23 -f 974/1732/23 986/1746/23 985/1747/23 -f 980/1729/23 992/1748/23 993/1749/23 -f 978/1694/23 977/1730/23 989/1750/23 -f 974/1732/23 984/1731/23 996/1751/23 -f 975/1724/23 973/1733/23 985/1752/23 -f 981/1734/23 993/1753/23 994/1754/23 -f 997/1755/32 1009/1756/32 1011/1757/32 -f 990/1758/259 1002/1759/259 1003/1760/259 -f 987/1761/254 999/1762/254 1000/1763/254 -f 994/1764/255 1006/1737/255 1007/1765/255 -f 991/1766/260 1003/1767/260 1004/1768/260 -f 988/1769/257 1000/1763/257 1001/1770/257 -f 995/1771/58 1007/1765/58 1008/1772/58 -f 986/1773/253 998/1774/253 997/1775/253 -f 992/1776/256 1004/1768/256 1005/1736/256 -f 989/1777/50 1001/1770/50 1002/1759/50 -f 996/1778/258 1008/1772/258 998/1774/258 -f 985/1779/62 997/1775/62 999/1762/62 -f 1020/1780/258 1032/1781/258 1022/1782/258 -f 1006/1783/32 1005/1784/32 1017/1785/32 -f 1002/1786/32 1014/1787/32 1015/1788/32 -f 999/1789/32 1011/1757/32 1012/1790/32 -f 1007/1791/32 1006/1792/32 1018/1793/32 -f 1004/1794/32 1003/1795/32 1015/1796/32 -f 1000/1797/32 1012/1790/32 1013/1798/32 -f 1008/1799/32 1007/1800/32 1019/1801/32 -f 997/1802/32 998/1803/32 1010/1804/32 -f 1005/1805/32 1004/1806/32 1016/1807/32 -f 1001/1808/32 1013/1798/32 1014/1787/32 -f 1008/1809/32 1020/1780/32 1010/1804/32 -f 1025/1810/263 1037/1811/263 1038/1812/263 -f 1011/1757/62 1009/1756/62 1021/1813/62 -f 1017/1785/261 1029/1814/261 1030/1815/261 -f 1015/1788/259 1014/1787/259 1026/1816/259 -f 1012/1790/254 1011/1757/254 1023/1817/254 -f 1018/1793/255 1030/1815/255 1031/1818/255 -f 1015/1796/260 1027/1819/260 1028/1820/260 -f 1013/1798/257 1012/1790/257 1024/1821/257 -f 1019/1801/58 1031/1818/58 1032/1781/58 -f 1009/1756/253 1010/1804/253 1022/1782/253 -f 1016/1807/256 1028/1820/256 1029/1814/256 -f 1014/1787/50 1013/1798/50 1025/1810/50 -f 1041/1822/23 1039/1823/23 1035/1824/23 -f 1032/1781/264 1044/1825/264 1034/1826/264 -f 1023/1817/265 1021/1813/265 1033/1827/265 -f 1029/1814/266 1041/1828/266 1042/1829/266 -f 1027/1830/267 1026/1816/267 1038/1831/267 -f 1024/1821/268 1023/1817/268 1035/1832/268 -f 1030/1815/269 1042/1833/269 1043/1834/269 -f 1028/1820/270 1027/1819/270 1039/1835/270 -f 1024/1821/271 1036/1836/271 1037/1837/271 -f 1031/1818/272 1043/1838/272 1044/1839/272 -f 1022/1782/273 1034/1840/273 1033/1841/273 -f 1029/1814/274 1028/1820/274 1040/1842/274 -f 1052/1843/50 1064/1844/50 1065/1845/50 -f 958/1682/275 1054/1846/275 1055/1847/275 -f 956/1685/276 955/1684/276 1051/1848/276 -f 953/1686/277 952/1653/277 1048/1849/277 -f 960/1687/278 959/1683/278 1055/1850/278 -f 949/1689/279 950/1688/279 1046/1851/279 -f 956/1685/280 1052/1852/280 1053/1853/280 -f 953/1686/281 1049/1854/281 1050/1855/281 -f 960/1687/282 1056/1856/282 1046/1857/282 -f 949/1689/283 1045/1858/283 1047/1859/283 -f 958/1682/284 957/1690/284 1053/1860/284 -f 954/1691/285 1050/1861/285 1051/1862/285 -f 1057/1863/32 1058/1864/32 1070/1865/32 -f 1049/1866/256 1061/1867/256 1062/1868/256 -f 1056/1869/253 1068/1870/253 1058/1871/253 -f 1045/1872/58 1057/1873/58 1059/1874/58 -f 1053/1875/257 1065/1845/257 1066/1876/257 -f 1050/1877/260 1062/1868/260 1063/1878/260 -f 1047/1879/255 1059/1874/255 1060/1880/255 -f 1054/1881/254 1066/1876/254 1067/1882/254 -f 1051/1883/259 1063/1884/259 1064/1844/259 -f 1048/1885/261 1060/1880/261 1061/1867/261 -f 1055/1886/62 1067/1882/62 1068/1870/62 -f 1046/1887/258 1058/1871/258 1057/1873/258 -f 1079/1888/256 1091/1889/256 1092/1890/256 -f 1064/1891/32 1076/1892/32 1077/1893/32 -f 1061/1894/32 1073/1895/32 1074/1896/32 -f 1068/1897/32 1080/1898/32 1070/1865/32 -f 1059/1899/32 1057/1863/32 1069/1900/32 -f 1066/1901/32 1065/1902/32 1077/1893/32 -f 1063/1903/32 1062/1904/32 1074/1896/32 -f 1060/1905/32 1059/1899/32 1071/1906/32 -f 1066/1901/32 1078/1907/32 1079/1908/32 -f 1064/1891/32 1063/1903/32 1075/1909/32 -f 1061/1894/32 1060/1905/32 1072/1910/32 -f 1068/1897/32 1067/1911/32 1079/1908/32 -f 1070/1912/259 1082/1913/259 1081/1914/259 -f 1076/1915/58 1088/1916/58 1089/1917/58 -f 1073/1918/62 1085/1919/62 1086/1920/62 -f 1080/1921/260 1092/1890/260 1082/1913/260 -f 1069/1922/50 1081/1914/50 1083/1923/50 -f 1077/1924/255 1089/1917/255 1090/1925/255 -f 1074/1926/253 1086/1920/253 1087/1927/253 -f 1071/1928/257 1083/1923/257 1084/1929/257 -f 1078/1930/261 1090/1925/261 1091/1889/261 -f 1075/1931/258 1087/1932/258 1088/1916/258 -f 1072/1933/254 1084/1929/254 1085/1919/254 -f 1099/1934/32 1097/1935/32 1095/1936/32 -f 1105/1937/23 1107/1938/23 1102/1939/23 -f 1100/1940/286 1108/1941/286 1107/1938/286 -f 1097/1942/287 1098/1943/287 1106/1944/287 -f 1096/1945/288 1104/1946/288 1103/1947/288 -f 1094/1948/289 1101/1949/289 1102/1939/289 -f 1093/1950/290 1102/1939/290 1108/1941/290 -f 1099/1951/291 1107/1938/291 1106/1944/291 -f 1097/1952/292 1105/1937/292 1104/1946/292 -f 1095/1953/293 1103/1947/293 1101/1949/293 -f 1110/1954/294 1112/1955/294 1111/1956/294 -f 1112/1955/187 1114/1957/187 1113/1958/187 -f 1114/1957/295 1116/1959/295 1115/1960/295 -f 1115/1961/296 1116/1962/296 1118/1963/296 -f 1119/1964/93 1120/1965/93 1110/1954/93 -f 1118/1963/175 1120/1965/175 1119/1964/175 -f 1122/1966/294 1124/1967/294 1123/1968/294 -f 1124/1967/187 1126/1969/187 1125/1970/187 -f 1126/1969/295 1128/1971/295 1127/1972/295 -f 1127/1973/296 1128/1974/296 1130/1975/296 -f 1131/1976/93 1132/1977/93 1122/1966/93 -f 1130/1975/175 1132/1977/175 1131/1976/175 -f 1134/1978/294 1136/1979/294 1135/1980/294 -f 1136/1979/187 1138/1981/187 1137/1982/187 -f 1138/1981/295 1140/1983/295 1139/1984/295 -f 1139/1985/296 1140/1986/296 1142/1987/296 -f 1143/1988/93 1144/1989/93 1134/1978/93 -f 1142/1987/175 1144/1989/175 1143/1988/175 -f 1146/1990/294 1148/1991/294 1147/1992/294 -f 1148/1991/187 1150/1993/187 1149/1994/187 -f 1150/1993/295 1152/1995/295 1151/1996/295 -f 1151/1997/296 1152/1998/296 1154/1999/296 -f 1155/2000/93 1156/2001/93 1146/1990/93 -f 1154/1999/175 1156/2001/175 1155/2000/175 -f 1160/2002/175 1159/2003/175 1157/2004/175 -f 1166/2005/211 1163/2006/211 1159/2007/211 -f 1162/2008/187 1161/2009/187 1163/2010/187 -f 1158/2011/175 1157/2012/175 1279/2013/175 -f 1159/2014/214 1163/2015/214 1161/2016/214 -f 1164/2017/139 1160/2002/139 1158/2018/139 -f 1159/2019/175 1160/2020/175 1165/2021/175 -f 1163/2022/187 1166/2023/187 1164/2024/187 -f 1167/2025/187 1173/2026/187 1174/2027/187 -f 1168/2028/32 1169/2029/32 1173/2030/32 -f 1171/2031/23 1174/2032/23 1170/2033/23 -f 1170/2034/297 1175/2035/297 1177/2036/297 -f 1160/2020/298 1172/2037/298 1168/2038/298 -f 1164/2039/23 1171/2031/23 1172/2040/23 -f 1165/2041/32 1168/2028/32 1167/2042/32 -f 1172/2037/175 1170/2034/175 1169/2043/175 -f 1166/2023/299 1167/2025/299 1171/2044/299 -f 1178/2045/139 1177/2036/139 1175/2035/139 -f 1174/2032/23 1176/2046/23 1175/2047/23 -f 1169/2029/32 1177/2048/32 1178/2049/32 -f 1173/2026/300 1178/2045/300 1176/2050/300 -f 1194/2051/175 1182/2052/175 1206/2053/175 -f 1188/2054/187 1200/2055/187 1214/2056/187 -f 1182/2052/261 1194/2051/261 1195/2057/261 -f 1213/2058/23 1201/2059/23 1202/2060/23 -f 1210/2061/23 1179/2062/23 1218/2063/23 -f 1186/2064/50 1198/2065/50 1199/2066/50 -f 1183/2067/256 1195/2057/256 1196/2068/256 -f 1199/2069/23 1189/2070/23 1181/2071/23 -f 1211/2072/23 1217/2073/23 1179/2062/23 -f 1187/2074/257 1199/2066/257 1200/2055/257 -f 1184/2075/260 1196/2068/260 1197/2076/260 -f 1193/2077/256 1227/2078/256 1226/2079/256 -f 1198/2080/23 1190/2081/23 1189/2070/23 -f 1185/2082/259 1197/2083/259 1198/2065/259 -f 1208/2084/62 1215/2085/62 1216/2086/62 -f 1204/2087/258 1211/2088/258 1210/2089/258 -f 1209/2090/253 1216/2086/253 1211/2088/253 -f 1203/2091/58 1210/2089/58 1212/2092/58 -f 1205/2093/255 1212/2092/255 1213/2094/255 -f 1207/2095/254 1214/2056/254 1215/2085/254 -f 1212/2096/23 1218/2063/23 1201/2059/23 -f 1195/2097/23 1194/2098/23 1202/2060/23 -f 1215/2099/23 1214/2100/23 1180/2101/23 -f 1200/2102/23 1181/2071/23 1180/2101/23 -f 1196/2103/23 1195/2104/23 1193/2077/23 -f 1216/2105/23 1215/2106/23 1219/2107/23 -f 1197/2108/23 1196/2109/23 1192/2110/23 -f 1211/2111/23 1216/2112/23 1220/2113/23 -f 1197/2114/23 1191/2115/23 1190/2081/23 -f 1222/2116/32 1221/2117/32 1229/2118/32 -f 1219/2107/62 1231/2119/62 1230/2120/62 -f 1193/2077/261 1202/2060/261 1228/2121/261 -f 1180/2101/254 1222/2122/254 1231/2119/254 -f 1202/2060/175 1201/2059/175 1229/2123/175 -f 1218/2063/255 1232/2124/255 1229/2123/255 -f 1179/2062/58 1233/2125/58 1232/2124/58 -f 1181/2071/187 1221/2126/187 1222/2122/187 -f 1189/2070/257 1223/2127/257 1221/2126/257 -f 1191/2115/259 1225/2128/259 1224/2129/259 -f 1190/2081/50 1224/2129/50 1223/2127/50 -f 1192/2110/260 1226/2079/260 1225/2130/260 -f 1220/2113/253 1230/2120/253 1234/2131/253 -f 1217/2073/258 1234/2131/258 1233/2125/258 -f 1251/2132/211 1247/2133/211 1250/2134/211 -f 1302/2135/32 1241/2136/32 1237/2137/32 -f 1254/2138/187 1250/2139/187 1249/2140/187 -f 1240/2141/23 1236/2142/23 1235/2143/23 -f 1237/2137/214 1241/2136/214 1239/2144/214 -f 1248/2145/175 1247/2146/175 1251/2147/175 -f 1245/2148/32 1243/2149/32 1244/2150/32 -f 1238/2151/139 1251/2152/139 1254/2153/139 -f 1245/2154/214 1250/2134/214 1247/2133/214 -f 1246/2155/187 1249/2140/187 1250/2156/187 -f 1244/2150/139 1248/2145/139 1249/2140/139 -f 1243/2157/175 1247/2158/175 1248/2145/175 -f 1249/2140/219 1248/2145/219 1252/2159/219 -f 1240/2141/139 1253/2160/139 1252/2161/139 -f 1256/2162/294 1258/2163/294 1257/2164/294 -f 1258/2163/187 1260/2165/187 1259/2166/187 -f 1260/2165/295 1262/2167/295 1261/2168/295 -f 1261/2169/296 1262/2170/296 1264/2171/296 -f 1265/2172/93 1266/2173/93 1256/2162/93 -f 1264/2171/175 1266/2173/175 1265/2172/175 -f 1268/2174/294 1270/2175/294 1269/2176/294 -f 1270/2175/187 1272/2177/187 1271/2178/187 -f 1272/2177/295 1274/2179/295 1273/2180/295 -f 1273/2181/296 1274/2182/296 1276/2183/296 -f 1277/2184/93 1278/2185/93 1268/2174/93 -f 1276/2183/175 1278/2185/175 1277/2184/175 -f 1280/2186/32 1292/2187/32 1291/2188/32 -f 1157/2189/218 1161/2016/218 1282/2190/218 -f 1162/2191/215 1158/2011/215 1280/2192/215 -f 1162/2191/187 1281/2193/187 1282/2194/187 -f 1286/2195/214 1290/2196/214 1287/2197/214 -f 1279/2198/175 1283/2199/175 1284/2200/175 -f 1282/2201/214 1286/2195/214 1283/2202/214 -f 1281/2203/187 1285/2204/187 1286/2205/187 -f 1288/2206/301 1296/2207/301 1297/2208/301 -f 1285/2204/302 1289/2209/302 1290/2210/302 -f 1284/2200/139 1288/2206/139 1289/2209/139 -f 1283/2199/303 1287/2211/303 1288/2206/303 -f 1298/2212/214 1302/2213/214 1299/2214/214 -f 1281/2215/304 1291/2188/304 1293/2216/304 -f 1284/2217/305 1294/2218/305 1292/2187/305 -f 1285/2219/23 1293/2220/23 1294/2218/23 -f 1287/2221/175 1295/2222/175 1296/2207/175 -f 1290/2196/306 1298/2212/306 1295/2223/306 -f 1290/2224/187 1289/2209/187 1297/2208/187 -f 1242/2225/32 1301/2226/32 1300/2227/32 -f 1297/2228/187 1301/2229/187 1302/2230/187 -f 1296/2231/139 1300/2232/139 1301/2229/139 -f 1295/2233/175 1299/2234/175 1300/2232/175 -f 1254/2235/187 1239/2144/187 1301/2236/187 -f 1251/2237/175 1300/2238/175 1235/2143/175 -f 1304/2239/307 1306/2240/307 1305/2241/307 -f 1306/2240/308 1308/2242/308 1307/2243/308 -f 1308/2242/309 1310/2244/309 1309/2245/309 -f 1310/2244/310 1312/2246/310 1311/2247/310 -f 1312/2248/311 1314/2249/311 1313/2250/311 -f 1314/2249/312 1316/2251/312 1315/2252/312 -f 1318/2253/313 1304/2239/313 1303/2254/313 -f 1316/2251/314 1318/2253/314 1317/2255/314 -f 1307/2243/32 1309/2245/32 1338/2256/32 -f 1320/2257/307 1322/2258/307 1321/2259/307 -f 1322/2258/308 1324/2260/308 1323/2261/308 -f 1324/2260/309 1326/2262/309 1325/2263/309 -f 1326/2262/310 1328/2264/310 1327/2265/310 -f 1328/2266/311 1330/2267/311 1329/2268/311 -f 1330/2267/312 1332/2269/312 1331/2270/312 -f 1334/2271/313 1320/2257/313 1319/2272/313 -f 1332/2269/314 1334/2271/314 1333/2273/314 -f 1331/2270/32 1357/2274/32 1356/2275/32 -f 1338/2276/310 1339/2277/310 1347/2278/310 -f 1313/2250/32 1315/2252/32 1341/2279/32 -f 1311/2247/32 1339/2280/32 1338/2281/32 -f 1317/2255/32 1342/2282/32 1341/2283/32 -f 1307/2243/32 1337/2284/32 1336/2285/32 -f 1311/2286/32 1313/2250/32 1340/2287/32 -f 1303/2254/32 1335/2288/32 1342/2289/32 -f 1303/2254/32 1305/2241/32 1336/2290/32 -f 1356/2291/311 1364/2292/311 1363/2293/311 -f 1336/2294/308 1337/2295/308 1345/2296/308 -f 1342/2297/314 1350/2298/314 1349/2299/314 -f 1340/2300/311 1348/2301/311 1347/2302/311 -f 1337/2295/309 1338/2276/309 1346/2303/309 -f 1336/2294/307 1344/2304/307 1343/2305/307 -f 1335/2306/313 1343/2305/313 1350/2298/313 -f 1341/2307/312 1349/2299/312 1348/2301/312 -f 1327/2265/32 1355/2308/32 1354/2309/32 -f 1333/2273/32 1358/2310/32 1357/2311/32 -f 1321/2259/32 1323/2261/32 1353/2312/32 -f 1327/2313/32 1329/2268/32 1356/2314/32 -f 1319/2272/32 1351/2315/32 1358/2316/32 -f 1319/2272/32 1321/2259/32 1352/2317/32 -f 1323/2261/32 1325/2263/32 1354/2318/32 -f 1354/2319/309 1362/2320/309 1361/2321/309 -f 1352/2322/307 1360/2323/307 1359/2324/307 -f 1351/2325/313 1359/2324/313 1366/2326/313 -f 1357/2327/312 1365/2328/312 1364/2292/312 -f 1355/2329/310 1363/2330/310 1362/2320/310 -f 1353/2331/308 1361/2321/308 1360/2323/308 -f 1358/2332/314 1366/2326/314 1365/2328/314 -f 1377/2333/175 1382/2334/175 1380/2335/175 -f 1369/2336/175 1374/2337/175 1372/2338/175 -f 1370/2339/23 1373/2340/23 1374/2337/23 -f 1368/2341/187 1371/2342/187 1373/2343/187 -f 1367/2344/32 1372/2338/32 1371/2342/32 -f 1378/2345/23 1381/2346/23 1382/2334/23 -f 1376/2347/187 1379/2348/187 1381/2349/187 -f 1375/2350/32 1380/2335/32 1379/2348/32 -f 1385/2351/175 1390/2352/175 1388/2353/175 -f 1386/2354/23 1389/2355/23 1390/2352/23 -f 1384/2356/187 1387/2357/187 1389/2358/187 -f 1383/2359/32 1388/2353/32 1387/2357/32 -f 1394/2360/175 1393/2361/175 1391/2362/175 -f 1398/2363/32 1397/2364/32 1393/2365/32 -f 1396/2366/187 1395/2367/187 1397/2368/187 -f 1392/2369/23 1391/2370/23 1395/2371/23 -f 1397/2364/32 1401/2372/32 1399/2373/32 -f 1398/2374/139 1394/2375/139 1392/2376/139 -f 1399/2373/214 1401/2372/214 1402/2377/214 -f 1395/2371/23 1391/2370/23 1400/2378/23 -f 1395/2367/315 1402/2377/315 1401/2372/315 -f 1393/2361/316 1399/2373/316 1400/2378/316 -f 1407/2379/317 1403/2380/317 1411/2381/317 -f 1411/2381/318 1415/2382/318 1416/2383/318 -f 1407/2384/187 1409/2385/187 1413/2386/187 -f 1408/2387/318 1404/2388/318 1403/2389/318 -f 1409/2390/317 1410/2391/317 1414/2392/317 -f 1418/2393/319 1417/2394/319 1416/2383/319 -f 1409/2385/320 1405/2395/320 1412/2396/320 -f 1412/2396/175 1405/2395/175 1403/2397/175 -f 1403/2398/317 1405/2399/317 1414/2400/317 -f 1409/2401/317 1407/2402/317 1406/2403/317 -f 1414/2392/320 1410/2391/320 1417/2394/320 -f 1410/2404/187 1406/2403/187 1416/2383/187 -f 1414/2400/175 1418/2393/175 1415/2382/175 -f 3/24/1 1/1/1 4/3/1 -f 3/24/2 4/3/2 5/5/2 -f 5/26/3 6/6/3 7/8/3 -f 7/8/4 8/7/4 9/10/4 -f 9/10/5 10/9/5 11/12/5 -f 13/28/6 11/12/6 14/13/6 -f 15/15/7 16/14/7 1/1/7 -f 13/28/8 14/13/8 15/15/8 -f 13/28/9 15/15/9 23/17/9 -f 31/2405/8 23/17/8 32/18/8 -f 3/24/10 5/5/10 18/20/10 -f 21/2406/11 9/10/11 22/21/11 -f 15/15/12 1/1/12 24/23/12 -f 17/2407/13 1/1/13 18/25/13 -f 19/37/14 5/26/14 20/27/14 -f 22/2408/15 11/12/15 23/29/15 -f 7/8/16 9/10/16 20/31/16 -f 25/2409/17 33/32/17 49/34/17 -f 21/2406/5 22/21/5 29/36/5 -f 27/2410/3 19/37/3 28/38/3 -f 17/2407/1 18/25/1 25/40/1 -f 24/23/7 17/22/7 32/42/7 -f 22/2408/6 23/29/6 30/44/6 -f 20/31/4 21/30/4 28/46/4 -f 26/123/2 18/20/2 27/47/2 -f 40/2411/7 33/48/7 48/50/7 -f 31/2412/18 32/51/18 39/53/18 -f 29/95/19 30/54/19 37/56/19 -f 27/126/20 28/57/20 35/59/20 -f 25/2409/21 26/60/21 33/32/21 -f 32/2413/22 56/62/22 40/64/22 -f 32/42/7 25/41/7 56/66/7 -f 31/2412/23 39/53/23 55/68/23 -f 43/2414/24 44/69/24 51/71/24 -f 38/2415/6 39/72/6 46/74/6 -f 36/2416/4 37/75/4 44/77/4 -f 42/2417/2 34/78/2 43/80/2 -f 39/2418/8 40/81/8 47/67/8 -f 37/2419/5 38/82/5 45/84/5 -f 43/2414/3 35/85/3 44/69/3 -f 41/33/1 33/87/1 42/89/1 -f 63/103/9 55/90/9 64/92/9 -f 41/33/25 42/89/25 49/34/25 -f 37/56/26 45/84/26 29/95/26 -f 29/45/4 53/96/4 28/46/4 -f 30/2420/27 54/98/27 38/99/27 -f 30/44/6 31/43/6 54/101/6 -f 55/68/28 47/67/28 56/62/28 -f 53/94/29 45/84/29 54/98/29 -f 64/92/30 57/111/30 58/110/30 -f 58/110/30 59/108/30 64/92/30 -f 60/102/30 61/118/30 62/106/30 -f 62/106/30 63/103/30 60/102/30 -f 64/92/30 59/108/30 60/102/30 -f 61/118/11 53/104/11 62/106/11 -f 51/2421/14 52/107/14 59/108/14 -f 49/2422/13 50/109/13 57/111/13 -f 64/92/12 56/112/12 57/111/12 -f 62/106/15 54/114/15 63/103/15 -f 60/102/16 52/116/16 61/118/16 -f 58/110/10 50/119/10 59/108/10 -f 27/47/2 51/121/2 26/123/2 -f 42/89/31 34/124/31 50/93/31 -f 43/2414/32 51/71/32 35/59/32 -f 36/2423/33 28/127/33 44/69/33 -f 67/131/34 65/128/34 68/130/34 -f 69/147/35 67/131/35 70/132/35 -f 69/153/36 70/133/36 71/135/36 -f 71/135/37 72/134/37 73/137/37 -f 73/137/38 74/136/38 75/139/38 -f 77/143/39 75/139/39 78/140/39 -f 65/128/40 79/141/40 66/129/40 -f 77/143/41 78/140/41 79/141/41 -f 87/2424/42 77/143/42 88/144/42 -f 87/2424/41 88/144/41 95/146/41 -f 82/2425/43 67/131/43 83/148/43 -f 85/2426/44 73/137/44 86/149/44 -f 79/141/45 65/128/45 88/151/45 -f 81/166/46 65/128/46 82/152/46 -f 83/2427/47 69/153/47 84/154/47 -f 75/139/48 77/143/48 86/156/48 -f 71/135/49 73/137/49 84/158/49 -f 97/190/50 105/159/50 89/161/50 -f 85/2426/38 86/149/38 93/163/38 -f 83/2427/36 84/154/36 91/165/36 -f 89/2428/34 81/166/34 90/167/34 -f 88/151/40 81/150/40 96/169/40 -f 86/156/39 87/155/39 94/171/39 -f 84/158/37 85/157/37 92/173/37 -f 82/2425/35 83/148/35 90/175/35 -f 104/2429/40 97/176/40 112/178/40 -f 103/2430/51 95/179/51 104/181/51 -f 93/224/52 94/182/52 101/184/52 -f 91/251/53 92/185/53 99/187/53 -f 89/161/54 90/188/54 97/190/54 -f 96/2431/55 120/191/55 104/193/55 -f 89/168/40 113/194/40 96/169/40 -f 103/2430/23 111/196/23 95/179/23 -f 115/250/56 107/198/56 116/200/56 -f 110/2432/39 102/201/39 111/203/39 -f 108/2433/37 100/204/37 109/206/37 -f 106/2434/35 98/207/35 107/209/35 -f 103/2435/41 104/210/41 111/196/41 -f 109/222/38 101/211/38 110/213/38 -f 107/198/36 99/214/36 108/199/36 -f 97/2436/34 98/216/34 105/159/34 -f 119/2437/42 120/218/42 127/220/42 -f 113/160/57 105/159/57 114/221/57 -f 101/184/58 109/222/58 93/224/58 -f 92/173/37 93/172/37 116/226/37 -f 94/2438/59 118/227/59 102/228/59 -f 94/171/39 95/170/39 118/230/39 -f 119/197/60 111/196/60 120/191/60 -f 109/222/321 110/213/321 117/223/321 -f 128/219/62 121/239/62 122/233/62 -f 122/233/62 123/245/62 124/231/62 -f 124/231/62 125/235/62 126/232/62 -f 126/232/62 127/220/62 128/219/62 -f 128/219/62 122/233/62 126/232/62 -f 117/2439/44 118/234/44 125/235/44 -f 123/245/47 115/236/47 124/231/47 -f 113/2440/46 114/238/46 121/239/46 -f 120/2441/45 113/240/45 128/219/45 -f 126/232/48 118/241/48 127/220/48 -f 116/2442/49 117/243/49 124/231/49 -f 114/2443/43 115/244/43 122/233/43 -f 90/175/35 91/174/35 114/247/35 -f 114/221/63 106/217/63 90/249/63 -f 107/198/32 115/250/32 99/187/32 -f 92/2444/64 116/200/64 100/252/64 -f 131/256/65 129/253/65 132/255/65 -f 133/271/66 131/256/66 134/257/66 -f 133/2445/67 134/258/67 135/260/67 -f 135/260/68 136/259/68 137/262/68 -f 139/264/69 137/262/69 140/263/69 -f 141/280/70 139/264/70 142/265/70 -f 143/267/71 144/266/71 129/253/71 -f 141/280/72 142/265/72 143/267/72 -f 141/280/73 143/267/73 151/269/73 -f 159/2446/72 151/269/72 160/270/72 -f 146/2447/74 131/256/74 147/272/74 -f 149/2448/75 137/262/75 150/273/75 -f 143/267/76 129/253/76 152/275/76 -f 129/253/77 131/256/77 145/277/77 -f 133/2445/78 135/260/78 147/279/78 -f 150/293/79 139/264/79 151/281/79 -f 148/295/80 135/260/80 149/282/80 -f 161/313/81 169/283/81 153/285/81 -f 149/2448/69 150/273/69 157/287/69 -f 155/2449/67 147/279/67 156/288/67 -f 145/277/65 146/276/65 153/290/65 -f 152/275/71 145/274/71 160/292/71 -f 158/356/70 150/293/70 159/294/70 -f 156/2450/68 148/295/68 157/296/68 -f 146/2447/66 147/272/66 154/298/66 -f 168/2451/71 161/299/71 176/301/71 -f 159/2452/82 160/302/82 167/304/82 -f 157/349/322 158/305/322 165/307/322 -f 155/379/84 156/308/84 163/310/84 -f 153/285/323 154/311/323 161/313/323 -f 160/2453/86 184/314/86 168/316/86 -f 160/292/71 153/291/71 184/318/71 -f 159/2452/23 167/304/23 183/320/23 -f 171/339/87 172/321/87 179/323/87 -f 174/2454/70 166/324/70 175/326/70 -f 172/2455/68 164/327/68 173/329/68 -f 170/2456/66 162/330/66 171/332/66 -f 175/319/72 167/333/72 176/315/72 -f 173/347/69 165/335/69 174/337/69 -f 163/2457/67 164/338/67 171/339/67 -f 169/283/65 161/340/65 170/342/65 -f 191/370/73 183/343/73 192/345/73 -f 169/283/88 170/342/88 177/284/88 -f 165/307/89 173/347/89 157/349/89 -f 156/2450/68 157/296/68 180/351/68 -f 166/2458/90 158/352/90 174/337/90 -f 159/294/70 183/354/70 158/356/70 -f 175/319/91 176/315/91 183/320/91 -f 181/348/92 173/347/92 182/353/92 -f 192/345/93 185/367/93 186/359/93 -f 186/359/93 187/374/93 188/357/93 -f 188/357/93 189/372/93 190/358/93 -f 190/358/93 191/370/93 192/345/93 -f 192/345/93 186/359/93 190/358/93 -f 189/372/75 181/360/75 190/358/75 -f 187/374/78 179/362/78 188/357/78 -f 185/367/77 177/364/77 186/359/77 -f 184/2459/76 177/366/76 192/345/76 -f 190/358/79 182/368/79 191/370/79 -f 180/2460/80 181/371/80 188/357/80 -f 178/2461/74 179/373/74 186/359/74 -f 154/298/66 155/297/66 178/376/66 -f 178/346/94 170/342/94 154/378/94 -f 179/323/32 155/379/32 171/339/32 -f 164/2462/95 156/380/95 172/321/95 -f 195/384/96 193/381/96 196/383/96 -f 197/449/97 195/384/97 198/385/97 -f 197/449/98 198/385/98 199/387/98 -f 201/445/99 199/387/99 202/388/99 -f 201/445/100 202/388/100 203/390/100 -f 205/396/101 203/390/101 206/391/101 -f 211/2463/102 198/385/102 209/392/102 -f 207/448/103 208/393/103 193/381/103 -f 207/448/104 205/394/104 208/393/104 -f 238/464/105 203/390/105 239/397/105 -f 213/407/106 212/398/106 221/400/106 -f 204/389/107 202/388/107 214/402/107 -f 210/2464/108 194/382/108 216/403/108 -f 209/2465/109 196/383/109 210/404/109 -f 212/417/110 200/386/110 211/405/110 -f 215/2466/111 206/391/111 214/406/111 -f 202/388/112 200/386/112 213/407/112 -f 208/393/113 206/395/113 216/409/113 -f 218/441/114 224/410/114 226/412/114 -f 211/2463/106 209/392/106 219/414/106 -f 224/2467/106 216/409/106 223/415/106 -f 222/2468/106 214/402/106 221/416/106 -f 220/2469/106 212/417/106 219/418/106 -f 209/2465/106 210/404/106 217/420/106 -f 210/2464/106 216/403/106 218/422/106 -f 215/2466/106 214/406/106 223/424/106 -f 227/2470/106 225/2471/106 226/427/106 -f 226/427/106 232/2472/106 231/425/106 -f 231/425/106 230/2473/106 229/426/106 -f 229/426/106 228/2474/106 227/2470/106 -f 227/2470/106 226/427/106 229/426/106 -f 231/2475/115 223/428/115 230/430/115 -f 221/439/116 220/431/116 229/433/116 -f 227/440/117 219/434/117 225/436/117 -f 232/411/324 224/410/324 231/438/324 -f 222/429/119 221/439/119 230/430/119 -f 220/431/120 219/434/120 228/432/120 -f 217/435/121 218/441/121 225/436/121 -f 247/2476/104 239/442/104 248/444/104 -f 199/387/122 201/445/122 236/447/122 -f 205/394/123 207/448/123 239/442/123 -f 234/2477/124 195/384/124 235/450/124 -f 201/445/125 203/390/125 237/452/125 -f 240/462/126 207/448/126 233/453/126 -f 193/381/127 195/384/127 233/455/127 -f 235/2478/128 197/449/128 236/456/128 -f 237/452/100 238/451/100 245/458/100 -f 235/2478/98 236/456/98 243/460/98 -f 241/2479/96 233/455/96 242/461/96 -f 248/2480/103 240/462/103 241/463/103 -f 246/2481/101 238/464/101 247/465/101 -f 236/447/99 237/446/99 244/467/99 -f 234/2477/97 235/450/97 242/469/97 -f 249/543/129 250/470/129 251/472/129 -f 251/472/130 252/471/130 253/474/130 -f 253/474/131 254/473/131 255/476/131 -f 255/476/132 256/475/132 257/478/132 -f 257/478/133 258/477/133 259/480/133 -f 259/480/134 260/479/134 261/482/134 -f 267/2482/135 254/473/135 265/483/135 -f 249/543/136 263/484/136 250/470/136 -f 261/2483/137 262/486/137 263/484/137 -f 259/480/138 261/482/138 294/488/138 -f 277/2484/139 269/489/139 276/491/139 -f 260/479/140 258/477/140 270/493/140 -f 266/513/141 250/470/141 272/494/141 -f 252/471/142 250/470/142 265/496/142 -f 268/510/143 256/475/143 267/497/143 -f 262/481/144 260/479/144 271/499/144 -f 269/489/145 258/477/145 268/490/145 -f 272/506/146 264/485/146 271/500/146 -f 282/533/147 274/501/147 288/503/147 -f 267/2482/139 265/483/139 275/505/139 -f 280/2485/139 272/506/139 279/507/139 -f 270/493/139 269/492/139 278/509/139 -f 276/2486/139 268/510/139 275/511/139 -f 273/2487/139 265/496/139 274/512/139 -f 274/2488/139 266/513/139 280/514/139 -f 271/499/139 270/498/139 279/516/139 -f 283/519/139 281/2489/139 282/2490/139 -f 282/2490/139 288/2491/139 287/517/139 -f 287/517/139 286/2492/139 285/518/139 -f 285/518/139 284/2493/139 283/519/139 -f 283/519/139 282/2490/139 287/517/139 -f 279/2494/148 278/520/148 287/522/148 -f 285/531/149 277/523/149 284/525/149 -f 283/532/150 275/526/150 281/528/150 -f 288/503/151 280/502/151 287/530/151 -f 278/520/152 277/523/152 286/521/152 -f 276/524/153 275/526/153 284/525/153 -f 273/527/154 274/501/154 281/528/154 -f 295/538/137 296/534/137 303/536/137 -f 292/2495/155 255/476/155 293/537/155 -f 261/2483/156 263/484/156 295/538/156 -f 251/472/157 253/474/157 290/540/157 -f 257/478/158 259/480/158 293/542/158 -f 296/2496/159 263/484/159 289/544/159 -f 249/543/160 251/472/160 289/546/160 -f 253/474/161 255/476/161 291/548/161 -f 293/542/133 294/541/133 301/550/133 -f 291/548/131 292/547/131 299/552/131 -f 289/546/129 290/545/129 297/554/129 -f 296/2496/136 289/544/136 304/556/136 -f 294/488/134 295/487/134 302/558/134 -f 292/2495/132 293/537/132 300/560/132 -f 290/540/130 291/539/130 298/562/130 -f 305/578/129 306/563/129 307/565/129 -f 309/633/130 307/565/130 310/566/130 -f 309/633/131 310/566/131 311/568/131 -f 311/568/132 312/567/132 313/570/132 -f 313/570/133 314/569/133 315/572/133 -f 315/572/134 316/571/134 317/574/134 -f 310/566/135 308/564/135 323/576/135 -f 319/631/136 320/577/136 305/578/136 -f 319/631/137 317/579/137 320/577/137 -f 350/2497/138 315/572/138 351/581/138 -f 325/2498/139 324/582/139 333/584/139 -f 316/571/140 314/569/140 326/586/140 -f 322/2499/141 306/563/141 328/587/141 -f 308/564/142 306/563/142 321/589/142 -f 324/602/143 312/567/143 323/590/143 -f 318/573/144 316/571/144 327/592/144 -f 325/2498/145 314/569/145 324/582/145 -f 328/599/146 320/577/146 327/593/146 -f 338/625/147 330/594/147 344/596/147 -f 323/576/139 321/575/139 331/598/139 -f 336/2500/139 328/599/139 335/600/139 -f 334/2501/139 326/586/139 333/601/139 -f 332/2502/139 324/602/139 331/603/139 -f 329/2503/139 321/589/139 330/604/139 -f 322/2499/139 328/587/139 330/606/139 -f 327/592/139 326/591/139 335/608/139 -f 339/611/139 337/2504/139 338/2505/139 -f 338/2505/139 344/2506/139 343/609/139 -f 343/609/139 342/2507/139 341/610/139 -f 341/610/139 340/2508/139 339/611/139 -f 339/611/139 338/2505/139 343/609/139 -f 335/2509/148 334/612/148 343/614/148 -f 341/623/149 333/615/149 340/617/149 -f 339/624/150 331/618/150 337/620/150 -f 344/596/151 336/595/151 343/622/151 -f 334/612/152 333/615/152 342/613/152 -f 332/616/153 331/618/153 340/617/153 -f 329/619/154 330/594/154 337/620/154 -f 351/632/137 352/626/137 359/628/137 -f 311/568/325 313/570/325 348/630/325 -f 317/579/156 319/631/156 351/632/156 -f 307/565/157 309/633/157 346/635/157 -f 313/570/158 315/572/158 349/637/158 -f 319/631/159 305/578/159 352/639/159 -f 305/578/160 307/565/160 345/641/160 -f 347/2510/161 309/633/161 348/642/161 -f 349/637/133 350/636/133 357/644/133 -f 347/2510/131 348/642/131 355/646/131 -f 345/641/129 346/640/129 353/648/129 -f 352/639/136 345/638/136 360/650/136 -f 350/2497/134 351/581/134 358/652/134 -f 348/630/132 349/629/132 356/654/132 -f 346/635/130 347/634/130 354/656/130 -f 386/2511/162 362/657/162 392/659/162 -f 373/680/163 375/660/163 382/662/163 -f 365/676/162 363/663/162 366/665/162 -f 380/685/164 381/666/164 390/668/164 -f 365/676/326 367/669/326 361/671/326 -f 365/676/166 366/665/166 367/669/166 -f 387/2512/167 383/673/167 385/675/167 -f 362/657/168 363/663/168 361/658/168 -f 369/687/169 367/669/169 370/677/169 -f 361/671/166 379/670/166 392/679/166 -f 371/684/170 373/680/170 381/682/170 -f 369/687/164 370/677/164 371/684/164 -f 369/687/196 371/684/196 380/685/196 -f 371/684/172 372/683/172 373/680/172 -f 379/702/173 367/669/173 380/688/173 -f 382/662/174 383/661/174 388/690/174 -f 373/680/174 374/686/174 375/660/174 -f 397/712/175 372/692/175 396/694/175 -f 363/663/176 377/695/176 364/664/176 -f 377/695/167 375/697/167 378/696/167 -f 381/682/172 382/681/172 389/700/172 -f 384/704/177 377/695/177 362/701/177 -f 383/673/178 375/697/178 384/674/178 -f 391/2513/169 379/702/169 390/703/169 -f 385/2514/176 384/704/176 386/705/176 -f 396/2515/197 395/706/197 404/708/197 -f 364/719/175 378/709/175 394/711/175 -f 374/717/175 372/692/175 398/713/175 -f 395/720/175 368/714/175 393/716/175 -f 376/721/175 374/717/175 399/718/175 -f 393/716/175 366/715/175 394/711/175 -f 370/693/175 368/714/175 396/694/175 -f 378/709/175 376/721/175 400/710/175 -f 403/707/175 401/733/175 402/726/175 -f 402/726/175 408/728/175 403/707/175 -f 407/730/175 406/722/175 403/707/175 -f 405/723/175 404/708/175 403/707/175 -f 403/707/175 408/728/175 407/730/175 -f 401/733/180 393/724/180 402/726/180 -f 394/2516/181 400/727/181 402/726/181 -f 399/2517/182 398/729/182 407/730/182 -f 397/2518/183 396/731/183 405/723/183 -f 395/2519/184 393/732/184 403/707/184 -f 408/728/185 400/734/185 407/730/185 -f 398/2520/186 397/736/186 406/722/186 -f 410/789/176 409/737/176 434/739/176 -f 430/2521/175 421/740/175 431/742/175 -f 411/755/176 412/743/176 413/745/176 -f 428/787/172 429/746/172 438/748/172 -f 409/2522/175 413/745/175 427/750/175 -f 413/745/167 414/744/167 415/749/167 -f 435/775/166 431/752/166 433/754/166 -f 410/2523/175 411/755/175 409/756/175 -f 417/764/174 415/757/174 418/759/174 -f 409/737/167 427/760/167 440/738/167 -f 419/769/175 421/740/175 429/763/175 -f 419/769/172 417/764/172 420/765/172 -f 447/811/187 439/766/187 446/768/187 -f 417/764/175 419/769/175 428/771/175 -f 419/769/164 420/765/164 421/740/164 -f 415/757/175 417/764/175 427/774/175 -f 430/783/169 431/752/169 436/776/169 -f 423/741/169 421/740/169 424/777/169 -f 477/849/187 420/778/187 476/780/187 -f 425/782/162 426/781/162 411/755/162 -f 423/741/166 424/777/166 425/782/166 -f 429/746/164 430/783/164 437/747/164 -f 432/2524/175 425/782/175 410/784/175 -f 423/741/175 425/782/175 431/786/175 -f 427/2525/174 428/787/174 439/788/174 -f 432/753/162 410/789/162 433/754/162 -f 441/798/162 442/790/162 449/792/162 -f 437/2526/187 436/793/187 445/795/187 -f 443/805/187 435/796/187 441/798/187 -f 440/2527/187 439/799/187 448/801/187 -f 446/768/187 438/802/187 445/795/187 -f 436/2528/187 435/804/187 444/794/187 -f 433/2529/187 434/806/187 441/798/187 -f 434/2530/187 440/807/187 442/790/187 -f 464/2531/175 456/808/175 463/810/175 -f 450/791/176 442/790/176 456/808/176 -f 455/2532/174 447/811/174 454/812/174 -f 445/795/164 444/794/164 453/814/164 -f 451/815/166 443/805/166 449/792/166 -f 448/801/167 447/800/167 456/808/167 -f 446/768/172 445/795/172 454/812/172 -f 444/794/169 443/805/169 452/813/169 -f 467/835/166 459/816/166 465/818/166 -f 454/812/175 453/814/175 462/820/175 -f 460/2533/175 452/813/175 459/821/175 -f 457/2534/175 449/792/175 458/822/175 -f 458/2535/175 450/791/175 464/823/175 -f 455/2532/175 454/812/175 463/825/175 -f 461/2536/175 453/814/175 460/826/175 -f 451/815/175 449/792/175 459/828/175 -f 464/839/167 463/829/167 472/831/167 -f 462/841/172 461/832/172 470/834/172 -f 460/842/169 459/816/169 468/836/169 -f 457/817/162 458/837/162 465/818/162 -f 466/838/176 458/837/176 472/831/176 -f 471/2537/174 463/840/174 470/834/174 -f 469/833/164 461/832/164 468/836/164 -f 484/870/188 476/843/188 483/845/188 -f 412/856/187 426/846/187 474/848/187 -f 422/854/187 420/778/187 478/850/187 -f 416/857/187 414/851/187 475/853/187 -f 424/858/187 422/854/187 479/855/187 -f 473/852/187 414/851/187 474/848/187 -f 476/780/187 418/779/187 475/853/187 -f 480/847/187 426/846/187 479/855/187 -f 483/845/187 481/872/187 482/863/187 -f 482/863/187 488/865/187 483/845/187 -f 487/867/187 486/859/187 483/845/187 -f 485/860/187 484/870/187 483/845/187 -f 483/845/187 488/865/187 487/867/187 -f 481/872/189 473/861/189 482/863/189 -f 474/2538/190 480/864/190 482/863/190 -f 479/2539/191 478/866/191 487/867/191 -f 485/860/192 477/868/192 484/870/192 -f 475/2540/198 473/871/198 483/845/198 -f 480/2541/194 479/873/194 488/865/194 -f 478/2542/195 477/874/195 486/859/195 -f 514/2543/162 490/875/162 520/877/162 -f 501/898/163 503/878/163 510/880/163 -f 493/894/162 491/881/162 494/883/162 -f 508/903/164 509/884/164 518/886/164 -f 493/894/326 495/887/326 489/889/326 -f 493/894/166 494/883/166 495/887/166 -f 515/2544/167 511/891/167 513/893/167 -f 490/875/327 491/881/327 489/876/327 -f 497/905/169 495/887/169 498/895/169 -f 489/889/166 507/888/166 520/897/166 -f 499/902/170 501/898/170 509/900/170 -f 497/905/164 498/895/164 499/902/164 -f 497/905/196 499/902/196 508/903/196 -f 499/902/172 500/901/172 501/898/172 -f 507/919/173 495/887/173 508/906/173 -f 510/880/174 511/879/174 516/908/174 -f 503/878/174 501/898/174 504/909/174 -f 525/929/175 500/910/175 524/912/175 -f 491/881/176 505/913/176 492/882/176 -f 503/2545/167 504/915/167 505/913/167 -f 509/900/172 510/899/172 517/917/172 -f 512/921/177 505/913/177 490/918/177 -f 503/2545/178 505/913/178 511/891/178 -f 519/2546/169 507/919/169 518/920/169 -f 513/2547/176 512/921/176 514/922/176 -f 524/2548/197 523/923/197 532/925/197 -f 492/936/175 506/926/175 522/928/175 -f 502/934/175 500/910/175 526/930/175 -f 523/937/175 496/931/175 521/933/175 -f 504/938/175 502/934/175 527/935/175 -f 494/932/175 492/936/175 521/933/175 -f 498/911/175 496/931/175 524/912/175 -f 528/927/175 506/926/175 527/935/175 -f 531/924/175 529/952/175 530/943/175 -f 530/943/175 536/946/175 531/924/175 -f 535/948/175 534/939/175 531/924/175 -f 533/940/175 532/925/175 531/924/175 -f 531/924/175 536/946/175 535/948/175 -f 529/952/180 521/941/180 530/943/180 -f 530/943/181 522/944/181 536/946/181 -f 527/2549/182 526/947/182 535/948/182 -f 525/2550/183 524/949/183 533/940/183 -f 531/924/184 523/950/184 529/952/184 -f 536/946/185 528/953/185 535/948/185 -f 526/2551/186 525/955/186 534/939/186 -f 538/1008/176 537/956/176 562/958/176 -f 558/2552/175 549/959/175 559/961/175 -f 539/974/176 540/962/176 541/964/176 -f 556/1007/172 557/965/172 566/967/172 -f 537/2553/175 541/964/175 555/969/175 -f 541/964/167 542/963/167 543/968/167 -f 563/993/166 559/971/166 561/973/166 -f 538/2554/175 539/974/175 537/975/175 -f 545/983/174 543/976/174 546/978/174 -f 537/956/167 555/979/167 568/957/167 -f 557/2555/175 547/981/175 558/982/175 -f 547/981/172 545/983/172 548/984/172 -f 567/2556/187 566/985/187 575/987/187 -f 545/983/175 547/981/175 556/989/175 -f 547/981/164 548/984/164 549/959/164 -f 543/976/175 545/983/175 555/992/175 -f 558/1001/169 559/971/169 564/994/169 -f 551/960/169 549/959/169 552/995/169 -f 605/1069/187 548/996/187 604/998/187 -f 553/1000/162 554/999/162 539/974/162 -f 551/960/166 552/995/166 553/1000/166 -f 557/965/164 558/1001/164 565/966/164 -f 553/1000/175 539/974/175 560/1003/175 -f 551/960/175 553/1000/175 559/1005/175 -f 567/2557/174 555/1006/174 566/967/174 -f 560/972/162 538/1008/162 561/973/162 -f 569/1017/162 570/1009/162 577/1011/162 -f 565/2558/187 564/1012/187 573/1014/187 -f 571/1024/187 563/1015/187 569/1017/187 -f 568/2559/187 567/1018/187 576/1020/187 -f 574/986/187 566/1021/187 573/1014/187 -f 564/2560/187 563/1023/187 572/1013/187 -f 569/1017/187 561/1025/187 570/1009/187 -f 562/2561/187 568/1027/187 570/1009/187 -f 592/2562/175 584/1028/175 591/1030/175 -f 578/1010/176 570/1009/176 584/1028/176 -f 583/2563/174 575/987/174 582/1031/174 -f 573/1014/164 572/1013/164 581/1033/164 -f 579/1034/166 571/1024/166 577/1011/166 -f 576/1020/167 575/1019/167 584/1028/167 -f 574/986/172 573/1014/172 582/1031/172 -f 572/1013/169 571/1024/169 580/1032/169 -f 595/1055/166 587/1035/166 593/1037/166 -f 582/1031/175 581/1033/175 590/1039/175 -f 588/2564/175 580/1032/175 587/1040/175 -f 577/1011/175 578/1010/175 585/1042/175 -f 586/2565/175 578/1010/175 592/1043/175 -f 583/2563/175 582/1031/175 591/1045/175 -f 589/2566/175 581/1033/175 588/1046/175 -f 579/1034/175 577/1011/175 587/1048/175 -f 592/1059/167 591/1049/167 600/1051/167 -f 590/1061/172 589/1052/172 598/1054/172 -f 588/1062/169 587/1035/169 596/1056/169 -f 585/1036/162 586/1057/162 593/1037/162 -f 594/1058/176 586/1057/176 600/1051/176 -f 599/2567/174 591/1060/174 598/1054/174 -f 597/1053/164 589/1052/164 596/1056/164 -f 612/1090/188 604/1063/188 611/1065/188 -f 540/1076/187 554/1066/187 602/1068/187 -f 550/1074/187 548/996/187 606/1070/187 -f 544/1077/187 542/1071/187 603/1073/187 -f 552/1078/187 550/1074/187 607/1075/187 -f 542/1071/187 540/1076/187 601/1072/187 -f 604/998/187 546/997/187 603/1073/187 -f 554/1066/187 552/1078/187 608/1067/187 -f 611/1065/187 609/1083/187 610/1082/187 -f 610/1082/187 616/1085/187 611/1065/187 -f 615/1087/187 614/1079/187 611/1065/187 -f 613/1080/187 612/1090/187 611/1065/187 -f 611/1065/187 616/1085/187 615/1087/187 -f 601/2568/189 602/1081/189 609/1083/189 -f 602/2569/190 608/1084/190 610/1082/190 -f 607/2570/191 606/1086/191 615/1087/191 -f 613/1080/192 605/1088/192 612/1090/192 -f 603/2571/198 601/1091/198 611/1065/198 -f 616/1085/194 608/1092/194 615/1087/194 -f 606/2572/195 605/1094/195 614/1079/195 -f 617/1109/176 618/1095/176 619/1097/176 -f 619/1097/167 620/1096/167 621/1099/167 -f 621/1120/174 622/1100/174 623/1102/174 -f 623/1102/172 624/1101/172 625/1104/172 -f 627/1106/164 625/1104/164 628/1105/164 -f 629/1122/169 627/1106/169 630/1107/169 -f 631/1110/162 632/1108/162 617/1109/162 -f 629/1122/166 630/1107/166 631/1110/166 -f 629/1122/199 631/1110/199 639/1112/199 -f 639/1112/166 640/1111/166 647/1114/166 -f 619/1097/200 621/1099/200 634/1116/200 -f 637/1130/201 625/1104/201 638/1117/201 -f 640/2573/202 631/1110/202 633/1118/202 -f 633/1134/203 617/1109/203 634/1119/203 -f 635/1132/204 621/1120/204 636/1121/204 -f 627/1106/205 629/1122/205 638/1124/205 -f 623/1102/206 625/1104/206 636/1126/206 -f 649/1158/139 657/1127/139 641/1129/139 -f 645/2574/164 637/1130/164 646/1131/164 -f 643/2575/174 635/1132/174 644/1133/174 -f 641/2576/176 633/1134/176 642/1135/176 -f 640/2573/162 633/1118/162 648/1137/162 -f 638/1124/169 639/1123/169 646/1139/169 -f 636/1126/172 637/1125/172 644/1141/172 -f 634/1116/167 635/1115/167 642/1143/167 -f 656/2577/162 649/1144/162 664/1146/162 -f 647/2578/328 648/1147/328 655/1149/328 -f 645/1192/208 646/1150/208 653/1152/208 -f 643/1220/209 644/1153/209 651/1155/209 -f 641/1129/210 642/1156/210 649/1158/210 -f 648/2579/211 672/1159/211 656/1161/211 -f 648/1137/162 641/1136/162 672/1163/162 -f 647/2578/23 655/1149/23 671/1165/23 -f 659/2580/212 660/1166/212 667/1168/212 -f 654/2581/169 655/1169/169 662/1171/169 -f 652/2582/172 653/1172/172 660/1174/172 -f 650/2583/167 651/1175/167 658/1177/167 -f 655/2584/166 656/1178/166 663/1164/166 -f 661/1190/164 653/1179/164 662/1181/164 -f 659/2580/174 651/1182/174 660/1166/174 -f 649/2585/176 650/1184/176 657/1127/176 -f 671/2586/199 672/1186/199 679/1188/199 -f 665/1128/213 657/1127/213 666/1189/213 -f 653/1152/214 661/1190/214 645/1192/214 -f 644/1141/172 645/1140/172 668/1194/172 -f 654/2587/215 646/1195/215 662/1181/215 -f 646/1139/169 647/1138/169 670/1198/169 -f 671/1165/216 663/1164/216 672/1159/216 -f 661/1190/217 662/1181/217 669/1191/217 -f 680/1187/175 673/1209/175 674/1201/175 -f 674/1201/175 675/1205/175 676/1199/175 -f 676/1199/175 677/1203/175 678/1200/175 -f 678/1200/175 679/1188/175 680/1187/175 -f 680/1187/175 674/1201/175 678/1200/175 -f 669/2588/201 670/1202/201 677/1203/201 -f 667/2589/204 668/1204/204 675/1205/204 -f 673/1209/203 665/1206/203 674/1201/203 -f 672/2590/202 665/1208/202 680/1187/202 -f 678/1200/205 670/1210/205 679/1188/205 -f 676/1199/206 668/1212/206 677/1203/206 -f 674/1201/200 666/1214/200 675/1205/200 -f 642/1143/167 643/1142/167 666/1217/167 -f 658/1185/218 650/1218/218 666/1189/218 -f 659/2580/32 667/1168/32 651/1155/32 -f 652/2591/219 644/1221/219 660/1166/219 -f 683/1225/220 681/1222/220 684/1224/220 -f 685/1291/221 683/1225/221 686/1226/221 -f 685/1291/222 686/1226/222 687/1228/222 -f 687/1228/223 688/1227/223 689/1230/223 -f 691/1293/224 689/1230/224 692/1231/224 -f 691/1293/225 692/1231/225 693/1233/225 -f 686/1226/226 684/1224/226 699/1235/226 -f 681/1222/227 695/1236/227 682/1223/227 -f 695/1236/228 693/1238/228 696/1237/228 -f 691/1293/229 693/1233/229 726/1241/229 -f 701/1251/230 700/1242/230 709/1244/230 -f 702/1260/329 692/1231/329 701/1245/329 -f 698/2592/232 682/1223/232 704/1246/232 -f 697/1264/233 684/1224/233 698/1247/233 -f 700/1262/234 688/1227/234 699/1248/234 -f 694/1232/235 692/1231/235 703/1250/235 -f 690/1229/330 688/1227/330 701/1251/330 -f 704/1258/237 696/1237/237 703/1252/237 -f 714/1285/238 706/1253/238 720/1255/238 -f 699/1235/230 697/1234/230 707/1257/230 -f 712/2593/230 704/1258/230 711/1259/230 -f 710/2594/230 702/1260/230 709/1261/230 -f 708/2595/230 700/1262/230 707/1263/230 -f 705/2596/230 697/1264/230 706/1265/230 -f 698/2592/230 704/1246/230 706/1267/230 -f 711/2597/230 703/1250/230 710/1268/230 -f 715/1271/230 713/2598/230 719/1269/230 -f 714/2599/230 720/2600/230 719/1269/230 -f 719/1269/230 718/2601/230 717/2602/230 -f 717/2602/230 716/1270/230 719/1269/230 -f 713/2598/230 714/2599/230 719/1269/230 -f 711/2603/239 710/1272/239 719/1274/239 -f 709/1283/240 708/1275/240 717/1277/240 -f 707/1284/241 705/1278/241 715/1280/241 -f 712/1254/242 711/1281/242 720/1255/242 -f 710/1272/243 709/1283/243 718/1273/243 -f 716/1276/244 708/1275/244 715/1280/244 -f 705/1278/245 706/1253/245 713/1279/245 -f 735/2604/228 727/1286/228 736/1288/228 -f 687/1228/246 689/1230/246 724/1290/246 -f 693/1238/247 695/1236/247 727/1286/247 -f 722/2605/248 683/1225/248 723/1292/248 -f 725/1300/249 689/1230/249 726/1294/249 -f 695/1236/250 681/1222/250 728/1296/250 -f 681/1222/251 683/1225/251 721/1298/251 -f 723/2606/252 685/1291/252 724/1299/252 -f 733/2607/224 725/1300/224 734/1301/224 -f 723/2606/222 724/1299/222 731/1303/222 -f 729/2608/220 721/1298/220 730/1304/220 -f 728/1296/227 721/1295/227 736/1306/227 -f 726/1241/225 727/1240/225 734/1308/225 -f 724/1290/223 725/1289/223 732/1310/223 -f 722/2605/221 723/1292/221 730/1312/221 -f 762/2609/162 738/1313/162 768/1315/162 -f 758/2610/331 749/1316/331 759/1318/331 -f 741/1332/162 739/1319/162 742/1321/162 -f 756/2611/164 757/1322/164 766/1324/164 -f 741/1332/326 743/1325/326 737/1327/326 -f 741/1332/166 742/1321/166 743/1325/166 -f 763/2612/167 759/1329/167 761/1331/167 -f 738/1313/168 739/1319/168 737/1314/168 -f 745/1340/169 743/1325/169 746/1333/169 -f 737/1327/166 755/1326/166 768/1335/166 -f 747/1339/170 749/1316/170 757/1337/170 -f 745/1340/164 746/1333/164 747/1339/164 -f 756/2611/196 745/1340/196 757/1322/196 -f 747/1339/172 748/1338/172 749/1316/172 -f 755/1355/173 743/1325/173 756/1342/173 -f 758/2610/174 759/1318/174 764/1344/174 -f 751/1317/174 749/1316/174 752/1345/174 -f 748/1365/175 746/1346/175 773/1348/175 -f 739/1319/176 753/1349/176 740/1320/176 -f 751/2613/167 752/1351/167 753/1349/167 -f 757/1337/172 758/1336/172 765/1353/172 -f 760/1357/177 753/1349/177 738/1354/177 -f 751/2613/178 753/1349/178 759/1329/178 -f 767/2614/169 755/1355/169 766/1356/169 -f 761/2615/176 760/1357/176 762/1358/176 -f 780/1386/197 772/1359/197 779/1361/197 -f 770/1372/175 740/1362/175 776/1364/175 -f 750/1370/175 748/1365/175 774/1366/175 -f 771/1373/175 744/1367/175 769/1369/175 -f 752/1374/175 750/1370/175 775/1371/175 -f 742/1368/175 740/1362/175 769/1369/175 -f 746/1346/175 744/1367/175 772/1347/175 -f 776/1364/175 754/1363/175 775/1371/175 -f 779/1361/175 777/1388/175 778/1379/175 -f 778/1379/175 784/1382/175 779/1361/175 -f 783/1391/175 782/1375/175 779/1361/175 -f 781/1376/175 780/1386/175 779/1361/175 -f 779/1361/175 784/1382/175 783/1391/175 -f 777/1388/180 769/1377/180 778/1379/180 -f 778/1379/181 770/1380/181 784/1382/181 -f 783/1391/182 775/1383/182 782/1375/182 -f 773/2616/183 772/1385/183 781/1376/183 -f 771/2617/184 769/1387/184 779/1361/184 -f 784/1382/185 776/1389/185 783/1391/185 -f 774/2618/186 773/1392/186 782/1375/186 -f 810/1447/176 786/1393/176 816/1395/176 -f 806/2619/175 797/1396/175 807/1398/175 -f 787/1438/176 788/1399/176 789/1401/176 -f 804/1446/172 805/1402/172 814/1404/172 -f 789/1401/175 791/1405/175 785/1407/175 -f 791/1405/167 789/1401/167 792/1408/167 -f 811/1431/166 807/1409/166 809/1411/166 -f 787/1438/175 789/1401/175 786/1413/175 -f 791/2620/174 792/1414/174 793/1416/174 -f 785/1394/167 803/1417/167 816/1395/167 -f 795/1425/175 797/1396/175 805/1420/175 -f 795/1425/172 793/1416/172 796/1421/172 -f 815/2621/187 814/1422/187 823/1424/187 -f 793/1416/175 795/1425/175 804/1427/175 -f 795/1425/164 796/1421/164 797/1396/164 -f 791/2620/175 793/1416/175 803/1430/175 -f 806/1440/169 807/1409/169 812/1432/169 -f 799/1397/169 797/1396/169 800/1433/169 -f 796/1511/187 794/1434/187 853/1436/187 -f 801/1439/162 802/1437/162 787/1438/162 -f 799/1397/166 800/1433/166 801/1439/166 -f 805/1402/164 806/1440/164 813/1403/164 -f 801/1439/175 787/1438/175 808/1442/175 -f 799/1397/175 801/1439/175 807/1444/175 -f 815/2622/174 803/1445/174 814/1404/174 -f 808/1410/162 786/1393/162 809/1411/162 -f 817/1456/162 818/1448/162 825/1450/162 -f 821/1461/187 813/1451/187 820/1453/187 -f 819/1463/187 811/1454/187 817/1456/187 -f 824/1467/187 816/1457/187 823/1459/187 -f 814/2623/187 813/1460/187 822/1423/187 -f 812/2624/187 811/1462/187 820/1453/187 -f 809/2625/187 810/1464/187 817/1456/187 -f 818/1448/187 810/1465/187 824/1467/187 -f 832/1471/175 831/1468/175 840/1470/175 -f 826/1449/176 818/1448/176 832/1471/176 -f 831/1485/174 823/1424/174 830/1472/174 -f 821/1461/164 820/1453/164 829/1474/164 -f 827/1475/166 819/1463/166 825/1450/166 -f 824/1467/167 823/1459/167 832/1471/167 -f 822/1423/172 821/1461/172 830/1472/172 -f 820/1453/169 819/1463/169 828/1473/169 -f 843/1497/166 835/1476/166 841/1478/166 -f 838/2626/175 830/1472/175 837/1479/175 -f 836/2627/175 828/1473/175 835/1480/175 -f 825/1450/175 826/1449/175 833/1482/175 -f 826/1449/175 832/1471/175 834/1484/175 -f 839/2628/175 831/1485/175 838/1486/175 -f 829/1474/175 828/1473/175 837/1488/175 -f 827/1475/175 825/1450/175 835/1490/175 -f 840/1501/167 839/1491/167 848/1493/167 -f 838/1502/172 837/1494/172 846/1496/172 -f 836/1504/169 835/1476/169 844/1498/169 -f 833/1477/162 834/1499/162 841/1478/162 -f 834/1499/176 840/1501/176 842/1500/176 -f 839/2629/174 838/1502/174 847/1503/174 -f 845/1495/164 837/1494/164 844/1498/164 -f 860/1531/188 852/1505/188 859/1507/188 -f 850/1518/187 788/1508/187 856/1510/187 -f 798/1516/187 796/1511/187 854/1512/187 -f 792/1519/187 790/1513/187 851/1515/187 -f 800/1520/187 798/1516/187 855/1517/187 -f 790/1513/187 788/1508/187 849/1514/187 -f 794/1434/187 792/1519/187 852/1435/187 -f 856/1510/187 802/1509/187 855/1517/187 -f 859/1507/187 857/1525/187 858/1524/187 -f 858/1524/187 864/1527/187 859/1507/187 -f 863/1529/187 862/1521/187 859/1507/187 -f 861/1522/187 860/1531/187 859/1507/187 -f 859/1507/187 864/1527/187 863/1529/187 -f 849/2630/189 850/1523/189 857/1525/189 -f 850/2631/190 856/1526/190 858/1524/190 -f 855/2632/332 854/1528/332 863/1529/332 -f 853/2633/192 852/1530/192 861/1522/192 -f 851/2634/198 849/1532/198 859/1507/198 -f 856/2635/194 855/1533/194 864/1527/194 -f 862/1521/195 854/1534/195 861/1522/195 -f 899/1552/58 900/1536/58 903/1538/58 -f 889/2636/23 867/1539/23 900/1536/23 -f 867/1599/253 868/1541/253 869/1543/253 -f 891/1566/254 892/1544/254 911/1546/254 -f 879/2637/23 881/1547/23 895/1549/23 -f 869/1543/62 870/1542/62 871/1551/62 -f 898/1555/255 899/1552/255 904/1553/255 -f 883/2638/23 885/1554/23 897/1556/23 -f 871/1551/254 872/1550/254 873/1558/254 -f 896/1548/256 897/1556/256 906/1560/256 -f 899/1552/23 887/1561/23 900/1536/23 -f 875/2639/257 873/1558/257 876/1563/257 -f 900/1536/258 866/1540/258 901/1537/258 -f 869/2640/23 871/1565/23 865/1567/23 -f 875/2639/50 876/1563/50 877/1569/50 -f 894/1602/259 895/1570/259 908/1572/259 -f 873/2641/23 875/1573/23 892/1544/23 -f 879/2642/259 877/1569/259 880/1575/259 -f 892/1544/257 893/1574/257 910/1545/257 -f 866/1540/23 867/1577/23 865/1567/23 -f 879/2643/260 880/1579/260 881/1581/260 -f 865/1567/62 891/1566/62 912/1582/62 -f 894/1602/23 877/1583/23 895/1570/23 -f 881/1581/256 882/1580/256 883/1586/256 -f 908/1572/32 907/1571/32 920/1588/32 -f 881/2644/23 883/1589/23 896/1548/23 -f 883/1586/261 884/1585/261 885/1591/261 -f 871/2645/23 873/1592/23 891/1566/23 -f 897/1556/261 898/1555/261 905/1559/261 -f 885/1591/255 886/1590/255 887/1594/255 -f 972/1722/32 890/1595/32 971/1597/32 -f 889/1600/258 890/1598/258 867/1599/258 -f 887/1594/58 888/1593/58 889/1600/58 -f 866/1540/253 865/1567/253 902/1564/253 -f 875/2646/23 877/1601/23 893/1574/23 -f 898/1555/23 885/1603/23 899/1552/23 -f 893/1574/50 894/1602/50 909/1576/50 -f 895/1549/260 896/1548/260 907/1605/260 -f 920/1638/259 919/1606/259 932/1608/259 -f 905/1559/32 904/1553/32 917/1610/32 -f 924/2647/32 912/1582/32 923/1611/32 -f 901/1537/32 902/1564/32 913/1613/32 -f 921/2648/32 909/1576/32 920/1614/32 -f 918/2649/32 906/1560/32 917/1615/32 -f 902/1564/32 912/1582/32 914/1617/32 -f 903/1538/32 901/1537/32 915/1619/32 -f 922/2650/32 910/1545/32 921/1620/32 -f 919/2651/32 907/1605/32 918/1621/32 -f 904/1553/32 903/1538/32 916/1623/32 -f 911/1546/32 910/1545/32 923/1625/32 -f 935/2652/23 934/1626/23 947/1628/23 -f 917/1640/261 916/1629/261 929/1631/261 -f 924/1642/62 923/1632/62 936/1634/62 -f 913/1643/258 914/1635/258 925/1637/258 -f 921/1645/50 920/1638/50 933/1639/50 -f 918/1647/256 917/1640/256 930/1641/256 -f 914/1635/253 924/1642/253 926/1636/253 -f 915/1649/58 913/1643/58 927/1644/58 -f 922/1650/257 921/1645/257 934/1646/257 -f 919/2653/260 918/1647/260 931/1648/260 -f 916/1629/255 915/1649/255 928/1630/255 -f 923/1632/254 922/1650/254 935/1633/254 -f 940/1659/255 939/1651/255 952/1653/255 -f 944/1666/23 932/1654/23 943/1656/23 -f 941/1669/23 929/1657/23 940/1659/23 -f 936/2654/23 935/1660/23 948/1661/23 -f 925/2655/23 926/1662/23 937/1664/23 -f 933/2656/23 932/1665/23 945/1667/23 -f 930/2657/23 929/1668/23 942/1670/23 -f 938/1663/23 926/1671/23 948/1661/23 -f 939/1651/23 927/1673/23 937/1664/23 -f 934/2658/23 933/1675/23 946/1627/23 -f 931/2659/23 930/1676/23 943/1677/23 -f 940/1659/23 928/1678/23 939/1651/23 -f 952/1653/262 951/1652/262 1048/1681/262 -f 947/1628/254 946/1627/254 959/1683/254 -f 944/1666/259 943/1656/259 956/1685/259 -f 941/1669/261 940/1659/261 953/1686/261 -f 948/1661/62 947/1628/62 960/1687/62 -f 937/1664/258 938/1663/258 949/1689/258 -f 945/1667/50 944/1666/50 957/1690/50 -f 942/1670/256 941/1669/256 954/1691/256 -f 938/1663/253 948/1661/253 950/1688/253 -f 951/1652/58 939/1651/58 949/1689/58 -f 946/1627/257 945/1667/257 958/1682/257 -f 943/1677/260 942/1670/260 955/1692/260 -f 967/1717/259 966/1693/259 979/1695/259 -f 961/1720/32 870/1696/32 962/1698/32 -f 970/1712/32 886/1699/32 969/1701/32 -f 968/1715/32 882/1702/32 967/1704/32 -f 878/2660/32 876/1705/32 966/1693/32 -f 874/2661/32 872/1707/32 964/1709/32 -f 971/1597/32 888/1710/32 970/1712/32 -f 969/1701/32 884/1713/32 968/1715/32 -f 880/2662/32 878/1716/32 967/1717/32 -f 876/2663/32 874/1718/32 965/1706/32 -f 872/2664/32 870/1719/32 963/1708/32 -f 868/2665/32 890/1721/32 962/1698/32 -f 991/2666/23 979/1695/23 990/1723/23 -f 964/1709/254 963/1708/254 976/1725/254 -f 971/1597/255 970/1712/255 983/1727/255 -f 968/1715/260 967/1704/260 980/1729/260 -f 965/1706/257 964/1709/257 977/1730/257 -f 972/1722/58 971/1597/58 984/1731/58 -f 961/1720/253 962/1698/253 973/1733/253 -f 969/1701/256 968/1715/256 981/1734/256 -f 966/1693/50 965/1706/50 978/1694/50 -f 962/1698/258 972/1722/258 974/1732/258 -f 963/1708/62 961/1720/62 975/1724/62 -f 970/1712/261 969/1701/261 982/1726/261 -f 994/1764/261 993/1735/261 1006/1737/261 -f 988/2667/23 976/1725/23 987/1738/23 -f 983/1727/23 982/1726/23 995/1740/23 -f 980/1729/23 979/1728/23 992/1742/23 -f 989/2668/23 977/1730/23 988/1743/23 -f 984/1731/23 983/1727/23 996/1745/23 -f 973/1733/23 974/1732/23 985/1747/23 -f 981/1734/23 980/1729/23 993/1749/23 -f 990/2669/23 978/1694/23 989/1750/23 -f 986/2670/23 974/1732/23 996/1751/23 -f 987/2671/23 975/1724/23 985/1752/23 -f 982/1726/23 981/1734/23 994/1754/23 -f 999/2672/32 997/1755/32 1011/1757/32 -f 991/2673/259 990/1758/259 1003/1760/259 -f 988/1769/254 987/1761/254 1000/1763/254 -f 995/1771/255 994/1764/255 1007/1765/255 -f 992/1776/260 991/1766/260 1004/1768/260 -f 989/1777/257 988/1769/257 1001/1770/257 -f 996/1778/58 995/1771/58 1008/1772/58 -f 985/1779/253 986/1773/253 997/1775/253 -f 993/1735/256 992/1776/256 1005/1736/256 -f 990/1758/50 989/1777/50 1002/1759/50 -f 986/1773/258 996/1778/258 998/1774/258 -f 987/1761/62 985/1779/62 999/1762/62 -f 1010/1804/258 1020/1780/258 1022/1782/258 -f 1018/1793/32 1006/1783/32 1017/1785/32 -f 1003/2674/32 1002/1786/32 1015/1788/32 -f 1000/2675/32 999/1789/32 1012/1790/32 -f 1019/1801/32 1007/1791/32 1018/1793/32 -f 1016/1807/32 1004/1794/32 1015/1796/32 -f 1001/2676/32 1000/1797/32 1013/1798/32 -f 1020/1780/32 1008/1799/32 1019/1801/32 -f 1009/1756/32 997/1802/32 1010/1804/32 -f 1017/1785/32 1005/1805/32 1016/1807/32 -f 1002/2677/32 1001/1808/32 1014/1787/32 -f 998/2678/32 1008/1809/32 1010/1804/32 -f 1026/1816/263 1025/1810/263 1038/1812/263 -f 1023/1817/62 1011/1757/62 1021/1813/62 -f 1018/1793/261 1017/1785/261 1030/1815/261 -f 1027/1830/259 1015/1788/259 1026/1816/259 -f 1024/1821/254 1012/1790/254 1023/1817/254 -f 1019/1801/255 1018/1793/255 1031/1818/255 -f 1016/1807/260 1015/1796/260 1028/1820/260 -f 1025/1810/257 1013/1798/257 1024/1821/257 -f 1020/1780/58 1019/1801/58 1032/1781/58 -f 1021/1813/253 1009/1756/253 1022/1782/253 -f 1017/1785/256 1016/1807/256 1029/1814/256 -f 1026/1816/50 1014/1787/50 1025/1810/50 -f 1035/1824/23 1033/2679/23 1034/2680/23 -f 1034/2680/23 1044/2681/23 1035/1824/23 -f 1043/2682/23 1042/2683/23 1041/1822/23 -f 1041/1822/23 1040/2684/23 1039/1823/23 -f 1039/1823/23 1038/2685/23 1037/2686/23 -f 1037/2686/23 1036/2687/23 1035/1824/23 -f 1035/1824/23 1044/2681/23 1043/2682/23 -f 1043/2682/23 1041/1822/23 1035/1824/23 -f 1039/1823/23 1037/2686/23 1035/1824/23 -f 1022/1782/264 1032/1781/264 1034/1826/264 -f 1035/2688/265 1023/1817/265 1033/1827/265 -f 1030/1815/266 1029/1814/266 1042/1829/266 -f 1039/2689/267 1027/1830/267 1038/1831/267 -f 1036/2690/268 1024/1821/268 1035/1832/268 -f 1031/1818/269 1030/1815/269 1043/1834/269 -f 1040/2691/270 1028/1820/270 1039/1835/270 -f 1025/1810/271 1024/1821/271 1037/1837/271 -f 1032/1781/272 1031/1818/272 1044/1839/272 -f 1021/1813/273 1022/1782/273 1033/1841/273 -f 1041/2692/274 1029/1814/274 1040/1842/274 -f 1053/1875/50 1052/1843/50 1065/1845/50 -f 959/1683/275 958/1682/275 1055/1847/275 -f 1052/2693/276 956/1685/276 1051/1848/276 -f 1049/2694/277 953/1686/277 1048/1849/277 -f 1056/2695/278 960/1687/278 1055/1850/278 -f 1045/2696/279 949/1689/279 1046/1851/279 -f 957/1690/280 956/1685/280 1053/1853/280 -f 954/1691/281 953/1686/281 1050/1855/281 -f 950/1688/282 960/1687/282 1046/1857/282 -f 951/1652/283 949/1689/283 1047/1859/283 -f 1054/2697/284 958/1682/284 1053/1860/284 -f 955/1692/285 954/1691/285 1051/1862/285 -f 1069/1900/32 1057/1863/32 1070/1865/32 -f 1050/1877/256 1049/1866/256 1062/1868/256 -f 1046/1887/253 1056/1869/253 1058/1871/253 -f 1047/1879/58 1045/1872/58 1059/1874/58 -f 1054/1881/257 1053/1875/257 1066/1876/257 -f 1051/2698/260 1050/1877/260 1063/1878/260 -f 1048/1885/255 1047/1879/255 1060/1880/255 -f 1055/1886/254 1054/1881/254 1067/1882/254 -f 1052/1843/259 1051/1883/259 1064/1844/259 -f 1049/1866/261 1048/1885/261 1061/1867/261 -f 1056/1869/62 1055/1886/62 1068/1870/62 -f 1045/1872/258 1046/1887/258 1057/1873/258 -f 1080/1921/256 1079/1888/256 1092/1890/256 -f 1065/1902/32 1064/1891/32 1077/1893/32 -f 1062/1904/32 1061/1894/32 1074/1896/32 -f 1058/1864/32 1068/1897/32 1070/1865/32 -f 1071/1906/32 1059/1899/32 1069/1900/32 -f 1078/1907/32 1066/1901/32 1077/1893/32 -f 1075/1909/32 1063/1903/32 1074/1896/32 -f 1072/1910/32 1060/1905/32 1071/1906/32 -f 1067/1911/32 1066/1901/32 1079/1908/32 -f 1076/1892/32 1064/1891/32 1075/1909/32 -f 1073/1895/32 1061/1894/32 1072/1910/32 -f 1080/1898/32 1068/1897/32 1079/1908/32 -f 1069/1922/259 1070/1912/259 1081/1914/259 -f 1077/1924/58 1076/1915/58 1089/1917/58 -f 1074/1926/62 1073/1918/62 1086/1920/62 -f 1070/1912/260 1080/1921/260 1082/1913/260 -f 1071/1928/50 1069/1922/50 1083/1923/50 -f 1078/1930/255 1077/1924/255 1090/1925/255 -f 1075/2699/253 1074/1926/253 1087/1927/253 -f 1072/1933/257 1071/1928/257 1084/1929/257 -f 1079/1888/261 1078/1930/261 1091/1889/261 -f 1076/1915/258 1075/1931/258 1088/1916/258 -f 1073/1918/254 1072/1933/254 1085/1919/254 -f 1095/1936/32 1094/2700/32 1099/1934/32 -f 1093/2701/32 1100/2702/32 1099/1934/32 -f 1099/1934/32 1098/2703/32 1097/1935/32 -f 1097/1935/32 1096/2704/32 1095/1936/32 -f 1094/2700/32 1093/2701/32 1099/1934/32 -f 1102/1939/23 1101/1949/23 1103/1947/23 -f 1103/1947/23 1104/1946/23 1105/1937/23 -f 1105/1937/23 1106/1944/23 1107/1938/23 -f 1107/1938/23 1108/1941/23 1102/1939/23 -f 1102/1939/23 1103/1947/23 1105/1937/23 -f 1099/2705/286 1100/1940/286 1107/1938/286 -f 1105/1937/287 1097/1942/287 1106/1944/287 -f 1095/2706/288 1096/1945/288 1103/1947/288 -f 1093/2707/289 1094/1948/289 1102/1939/289 -f 1100/2708/290 1093/1950/290 1108/1941/290 -f 1098/2709/291 1099/1951/291 1106/1944/291 -f 1096/2710/292 1097/1952/292 1104/1946/292 -f 1094/2711/293 1095/1953/293 1101/1949/293 -f 1109/2712/294 1110/1954/294 1111/1956/294 -f 1111/1956/187 1112/1955/187 1113/1958/187 -f 1113/1958/295 1114/1957/295 1115/1960/295 -f 1117/2713/296 1115/1961/296 1118/1963/296 -f 1109/2712/93 1119/1964/93 1110/1954/93 -f 1117/2713/175 1118/1963/175 1119/1964/175 -f 1121/2714/294 1122/1966/294 1123/1968/294 -f 1123/1968/187 1124/1967/187 1125/1970/187 -f 1125/1970/295 1126/1969/295 1127/1972/295 -f 1129/2715/296 1127/1973/296 1130/1975/296 -f 1121/2714/93 1131/1976/93 1122/1966/93 -f 1129/2715/175 1130/1975/175 1131/1976/175 -f 1133/2716/294 1134/1978/294 1135/1980/294 -f 1135/1980/187 1136/1979/187 1137/1982/187 -f 1137/1982/295 1138/1981/295 1139/1984/295 -f 1141/2717/296 1139/1985/296 1142/1987/296 -f 1133/2716/93 1143/1988/93 1134/1978/93 -f 1141/2717/175 1142/1987/175 1143/1988/175 -f 1145/2718/294 1146/1990/294 1147/1992/294 -f 1147/1992/187 1148/1991/187 1149/1994/187 -f 1149/1994/295 1150/1993/295 1151/1996/295 -f 1153/2719/296 1151/1997/296 1154/1999/296 -f 1145/2718/93 1155/2000/93 1146/1990/93 -f 1153/2719/175 1154/1999/175 1155/2000/175 -f 1158/2018/175 1160/2002/175 1157/2004/175 -f 1165/2041/211 1166/2005/211 1159/2007/211 -f 1164/2017/187 1162/2008/187 1163/2010/187 -f 1280/2192/175 1158/2011/175 1279/2013/175 -f 1157/2189/214 1159/2014/214 1161/2016/214 -f 1162/2008/139 1164/2017/139 1158/2018/139 -f 1171/2044/187 1167/2025/187 1174/2027/187 -f 1167/2042/32 1168/2028/32 1173/2030/32 -f 1172/2040/23 1171/2031/23 1170/2033/23 -f 1169/2043/297 1170/2034/297 1177/2036/297 -f 1165/2021/298 1160/2020/298 1168/2038/298 -f 1160/2720/23 1164/2039/23 1172/2040/23 -f 1166/2005/32 1165/2041/32 1167/2042/32 -f 1168/2038/175 1172/2037/175 1169/2043/175 -f 1164/2024/299 1166/2023/299 1171/2044/299 -f 1176/2050/139 1178/2045/139 1175/2035/139 -f 1170/2033/23 1174/2032/23 1175/2047/23 -f 1173/2030/32 1169/2029/32 1178/2049/32 -f 1174/2027/300 1173/2026/300 1176/2050/300 -f 1213/2094/175 1194/2051/175 1206/2053/175 -f 1207/2095/187 1188/2054/187 1214/2056/187 -f 1183/2067/261 1182/2052/261 1195/2057/261 -f 1194/2721/23 1213/2058/23 1202/2060/23 -f 1212/2722/23 1210/2061/23 1218/2063/23 -f 1187/2074/50 1186/2064/50 1199/2066/50 -f 1184/2075/256 1183/2067/256 1196/2068/256 -f 1200/2723/23 1199/2069/23 1181/2071/23 -f 1210/2724/23 1211/2072/23 1179/2062/23 -f 1188/2054/257 1187/2074/257 1200/2055/257 -f 1185/2725/260 1184/2075/260 1197/2076/260 -f 1192/2110/256 1193/2077/256 1226/2079/256 -f 1199/2726/23 1198/2080/23 1189/2070/23 -f 1186/2064/259 1185/2082/259 1198/2065/259 -f 1209/2090/62 1208/2084/62 1216/2086/62 -f 1203/2091/258 1204/2087/258 1210/2089/258 -f 1204/2087/253 1209/2090/253 1211/2088/253 -f 1205/2093/58 1203/2091/58 1212/2092/58 -f 1206/2053/255 1205/2093/255 1213/2094/255 -f 1208/2084/254 1207/2095/254 1215/2085/254 -f 1213/2727/23 1212/2096/23 1201/2059/23 -f 1193/2077/23 1195/2097/23 1202/2060/23 -f 1219/2107/23 1215/2099/23 1180/2101/23 -f 1214/2728/23 1200/2102/23 1180/2101/23 -f 1192/2110/23 1196/2103/23 1193/2077/23 -f 1220/2113/23 1216/2105/23 1219/2107/23 -f 1191/2729/23 1197/2108/23 1192/2110/23 -f 1217/2073/23 1211/2111/23 1220/2113/23 -f 1198/2730/23 1197/2114/23 1190/2081/23 -f 1228/2731/32 1229/2118/32 1221/2117/32 -f 1232/2732/32 1233/2733/32 1234/2734/32 -f 1234/2734/32 1230/2735/32 1231/2736/32 -f 1231/2736/32 1222/2116/32 1229/2118/32 -f 1221/2117/32 1223/2737/32 1224/2738/32 -f 1224/2738/32 1225/2739/32 1221/2117/32 -f 1226/2740/32 1227/2741/32 1228/2731/32 -f 1229/2118/32 1232/2732/32 1234/2734/32 -f 1234/2734/32 1231/2736/32 1229/2118/32 -f 1221/2117/32 1225/2739/32 1226/2740/32 -f 1226/2740/32 1228/2731/32 1221/2117/32 -f 1220/2113/62 1219/2107/62 1230/2120/62 -f 1227/2078/261 1193/2077/261 1228/2121/261 -f 1219/2107/254 1180/2101/254 1231/2119/254 -f 1228/2121/175 1202/2060/175 1229/2123/175 -f 1201/2059/255 1218/2063/255 1229/2123/255 -f 1218/2063/58 1179/2062/58 1232/2124/58 -f 1180/2101/187 1181/2071/187 1222/2122/187 -f 1181/2071/257 1189/2070/257 1221/2126/257 -f 1190/2081/259 1191/2115/259 1224/2129/259 -f 1189/2070/50 1190/2081/50 1223/2127/50 -f 1191/2729/260 1192/2110/260 1225/2130/260 -f 1217/2073/253 1220/2113/253 1234/2131/253 -f 1179/2062/258 1217/2073/258 1233/2125/258 -f 1254/2742/211 1251/2132/211 1250/2134/211 -f 1299/2743/32 1302/2135/32 1237/2137/32 -f 1253/2744/187 1254/2138/187 1249/2140/187 -f 1239/2144/23 1240/2141/23 1235/2143/23 -f 1235/2143/214 1237/2137/214 1239/2144/214 -f 1252/2159/175 1248/2145/175 1251/2147/175 -f 1246/2155/32 1245/2148/32 1244/2150/32 -f 1242/2225/139 1238/2151/139 1254/2153/139 -f 1243/2745/214 1245/2154/214 1247/2133/214 -f 1245/2746/187 1246/2155/187 1250/2156/187 -f 1246/2155/139 1244/2150/139 1249/2140/139 -f 1244/2150/175 1243/2157/175 1248/2145/175 -f 1253/2744/219 1249/2140/219 1252/2159/219 -f 1236/2142/139 1240/2141/139 1252/2161/139 -f 1255/2747/294 1256/2162/294 1257/2164/294 -f 1257/2164/187 1258/2163/187 1259/2166/187 -f 1259/2166/295 1260/2165/295 1261/2168/295 -f 1263/2748/296 1261/2169/296 1264/2171/296 -f 1255/2747/93 1265/2172/93 1256/2162/93 -f 1263/2748/175 1264/2171/175 1265/2172/175 -f 1267/2749/294 1268/2174/294 1269/2176/294 -f 1269/2176/187 1270/2175/187 1271/2178/187 -f 1271/2178/295 1272/2177/295 1273/2180/295 -f 1275/2750/296 1273/2181/296 1276/2183/296 -f 1267/2749/93 1277/2184/93 1268/2174/93 -f 1275/2750/175 1276/2183/175 1277/2184/175 -f 1281/2215/32 1280/2186/32 1291/2188/32 -f 1279/2751/218 1157/2189/218 1282/2190/218 -f 1281/2193/215 1162/2191/215 1280/2192/215 -f 1161/2752/187 1162/2191/187 1282/2194/187 -f 1283/2202/214 1286/2195/214 1287/2197/214 -f 1280/2753/175 1279/2198/175 1284/2200/175 -f 1279/2754/214 1282/2201/214 1283/2202/214 -f 1282/2755/187 1281/2203/187 1286/2205/187 -f 1289/2209/301 1288/2206/301 1297/2208/301 -f 1286/2205/302 1285/2204/302 1290/2210/302 -f 1285/2204/139 1284/2200/139 1289/2209/139 -f 1284/2200/303 1283/2199/303 1288/2206/303 -f 1295/2223/214 1298/2212/214 1299/2214/214 -f 1285/2756/304 1281/2215/304 1293/2216/304 -f 1280/2186/305 1284/2217/305 1292/2187/305 -f 1284/2217/23 1285/2219/23 1294/2218/23 -f 1288/2206/175 1287/2221/175 1296/2207/175 -f 1287/2197/306 1290/2196/306 1295/2223/306 -f 1298/2757/187 1290/2224/187 1297/2208/187 -f 1238/2151/32 1242/2225/32 1300/2227/32 -f 1298/2758/187 1297/2228/187 1302/2230/187 -f 1297/2228/139 1296/2231/139 1301/2229/139 -f 1296/2231/175 1295/2233/175 1300/2232/175 -f 1241/2759/187 1302/2760/187 1239/2144/187 -f 1301/2236/187 1242/2761/187 1254/2235/187 -f 1254/2235/187 1253/2762/187 1239/2144/187 -f 1240/2141/187 1239/2144/187 1253/2762/187 -f 1302/2760/187 1301/2236/187 1239/2144/187 -f 1237/2763/175 1235/2143/175 1299/2764/175 -f 1236/2142/175 1252/2765/175 1235/2143/175 -f 1251/2237/175 1238/2237/175 1300/2238/175 -f 1300/2238/175 1299/2764/175 1235/2143/175 -f 1235/2143/175 1252/2765/175 1251/2237/175 -f 1303/2254/307 1304/2239/307 1305/2241/307 -f 1305/2241/308 1306/2240/308 1307/2243/308 -f 1307/2243/309 1308/2242/309 1309/2245/309 -f 1309/2245/310 1310/2244/310 1311/2247/310 -f 1311/2286/311 1312/2248/311 1313/2250/311 -f 1313/2250/312 1314/2249/312 1315/2252/312 -f 1317/2255/313 1318/2253/313 1303/2254/313 -f 1315/2252/314 1316/2251/314 1317/2255/314 -f 1337/2766/32 1307/2243/32 1338/2256/32 -f 1319/2272/307 1320/2257/307 1321/2259/307 -f 1321/2259/308 1322/2258/308 1323/2261/308 -f 1323/2261/309 1324/2260/309 1325/2263/309 -f 1325/2263/310 1326/2262/310 1327/2265/310 -f 1327/2313/311 1328/2266/311 1329/2268/311 -f 1329/2268/312 1330/2267/312 1331/2270/312 -f 1333/2273/313 1334/2271/313 1319/2272/313 -f 1331/2270/314 1332/2269/314 1333/2273/314 -f 1329/2268/32 1331/2270/32 1356/2275/32 -f 1346/2303/310 1338/2276/310 1347/2278/310 -f 1340/2767/32 1313/2250/32 1341/2279/32 -f 1309/2245/32 1311/2247/32 1338/2281/32 -f 1315/2252/32 1317/2255/32 1341/2283/32 -f 1305/2241/32 1307/2243/32 1336/2285/32 -f 1339/2768/32 1311/2286/32 1340/2287/32 -f 1317/2255/32 1303/2254/32 1342/2289/32 -f 1335/2769/32 1303/2254/32 1336/2290/32 -f 1355/2770/311 1356/2291/311 1363/2293/311 -f 1344/2304/308 1336/2294/308 1345/2296/308 -f 1341/2307/314 1342/2297/314 1349/2299/314 -f 1339/2771/311 1340/2300/311 1347/2302/311 -f 1345/2296/309 1337/2295/309 1346/2303/309 -f 1335/2306/307 1336/2294/307 1343/2305/307 -f 1342/2297/313 1335/2306/313 1350/2298/313 -f 1340/2300/312 1341/2307/312 1348/2301/312 -f 1325/2263/32 1327/2265/32 1354/2309/32 -f 1331/2270/32 1333/2273/32 1357/2311/32 -f 1352/2772/32 1321/2259/32 1353/2312/32 -f 1355/2773/32 1327/2313/32 1356/2314/32 -f 1333/2273/32 1319/2272/32 1358/2316/32 -f 1351/2774/32 1319/2272/32 1352/2317/32 -f 1353/2775/32 1323/2261/32 1354/2318/32 -f 1353/2331/309 1354/2319/309 1361/2321/309 -f 1351/2325/307 1352/2322/307 1359/2324/307 -f 1358/2332/313 1351/2325/313 1366/2326/313 -f 1356/2291/312 1357/2327/312 1364/2292/312 -f 1354/2319/310 1355/2329/310 1362/2320/310 -f 1352/2322/308 1353/2331/308 1360/2323/308 -f 1357/2327/314 1358/2332/314 1365/2328/314 -f 1375/2350/175 1377/2333/175 1380/2335/175 -f 1367/2344/175 1369/2336/175 1372/2338/175 -f 1369/2336/23 1370/2339/23 1374/2337/23 -f 1370/2776/187 1368/2341/187 1373/2343/187 -f 1368/2341/32 1367/2344/32 1371/2342/32 -f 1377/2333/23 1378/2345/23 1382/2334/23 -f 1378/2777/187 1376/2347/187 1381/2349/187 -f 1376/2347/32 1375/2350/32 1379/2348/32 -f 1383/2359/175 1385/2351/175 1388/2353/175 -f 1385/2351/23 1386/2354/23 1390/2352/23 -f 1386/2778/187 1384/2356/187 1389/2358/187 -f 1384/2356/32 1383/2359/32 1387/2357/32 -f 1392/2779/175 1394/2360/175 1391/2362/175 -f 1394/2780/32 1398/2363/32 1393/2365/32 -f 1398/2781/187 1396/2366/187 1397/2368/187 -f 1396/2782/23 1392/2369/23 1395/2371/23 -f 1393/2365/32 1397/2364/32 1399/2373/32 -f 1396/2783/139 1398/2374/139 1392/2376/139 -f 1400/2378/214 1399/2373/214 1402/2377/214 -f 1402/2377/23 1395/2371/23 1400/2378/23 -f 1397/2368/315 1395/2367/315 1401/2372/315 -f 1391/2362/316 1393/2361/316 1400/2378/316 -f 1406/2784/317 1407/2379/317 1411/2381/317 -f 1406/2784/318 1411/2381/318 1416/2383/318 -f 1408/2387/187 1407/2384/187 1413/2386/187 -f 1407/2384/318 1408/2387/318 1403/2389/318 -f 1405/2785/317 1409/2390/317 1414/2392/317 -f 1415/2382/319 1418/2393/319 1416/2383/319 -f 1413/2386/320 1409/2385/320 1412/2396/320 -f 1404/2786/175 1412/2396/175 1403/2397/175 -f 1411/2787/317 1403/2398/317 1414/2400/317 -f 1410/2404/317 1409/2401/317 1406/2403/317 -f 1418/2393/320 1414/2392/320 1417/2394/320 -f 1417/2394/187 1410/2404/187 1416/2383/187 -f 1411/2787/175 1414/2400/175 1415/2382/175 diff --git a/src/main/resources/assets/hbm/models/effect/casings.obj b/src/main/resources/assets/hbm/models/effect/casings.obj new file mode 100644 index 000000000..0198624c1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/effect/casings.obj @@ -0,0 +1,1001 @@ +# Blender v2.79 (sub 0) OBJ File: 'casings.blend' +# www.blender.org +o ShotgunCase +v -0.353356 -0.353356 1.148335 +v 0.000000 -0.499721 1.148335 +v 0.353356 -0.353356 1.148335 +v 0.499721 -0.000000 1.148335 +v 0.353356 0.353357 1.148335 +v 0.000000 0.499721 1.148335 +v -0.353356 0.353357 1.148335 +v -0.499721 -0.000000 1.148335 +v 0.000000 -0.449124 1.112764 +v 0.317579 -0.317578 1.112764 +v -0.317579 0.317579 1.112764 +v -0.449124 -0.000000 1.112764 +v 0.317579 0.317579 1.112764 +v 0.000000 0.449124 1.112764 +v -0.317579 -0.317578 1.112764 +v 0.449124 -0.000000 1.112764 +v 0.317579 -0.317578 0.334163 +v 0.000000 -0.449124 0.334163 +v -0.449124 -0.000000 0.334163 +v -0.317579 0.317579 0.334163 +v 0.317579 0.317579 0.334163 +v -0.317579 -0.317578 0.334163 +v 0.000000 0.449124 0.334163 +v 0.449124 -0.000000 0.334163 +vt 0.416667 0.818578 +vt 0.358660 0.802560 +vt 0.474673 0.725217 +vt 0.334633 0.763889 +vt 0.358660 0.725217 +vt 0.416667 0.709199 +vt 0.498701 0.763889 +vt 0.474673 0.802560 +vt 0.041667 0.722222 +vt 0.083333 0.708333 +vt 0.083333 0.722222 +vt 0.000000 0.722222 +vt 0.041667 0.708333 +vt 0.291667 0.708333 +vt 0.333333 0.722222 +vt 0.291667 0.722222 +vt 0.250000 0.708333 +vt 0.250000 0.722222 +vt 0.208333 0.722222 +vt 0.166667 0.722222 +vt 0.208333 0.708333 +vt 0.125000 0.708333 +vt 0.166667 0.708333 +vt 0.041667 0.791667 +vt 0.208333 0.791667 +vt 0.250000 0.791667 +vt 0.291667 0.791667 +vt 0.333333 0.791667 +vt 0.166667 0.791667 +vt 0.125000 0.722222 +vt 0.083333 0.791667 +vt 0.125000 0.791667 +vt 0.000000 0.708333 +vt 0.333333 0.708333 +vt -0.000000 0.791667 +vn 0.0000 0.0000 1.0000 +vn -0.4067 -0.4067 -0.8181 +vn -0.5751 -0.0000 -0.8181 +vn 0.0000 -0.5751 -0.8181 +vn 0.4067 -0.4067 -0.8181 +vn 0.5751 -0.0000 -0.8181 +vn 0.4067 0.4067 -0.8181 +vn 0.0000 0.5751 -0.8181 +vn -0.4067 0.4067 -0.8181 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.7071 0.7071 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 -1.0000 -0.0000 -0.0000 +s off +f 6/1/1 7/2/1 3/3/1 +f 7/2/1 8/4/1 3/3/1 +f 8/4/1 1/5/1 3/3/1 +f 1/5/1 2/6/1 3/3/1 +f 3/3/1 4/7/1 5/8/1 +f 5/8/1 6/1/1 3/3/1 +s 1 +f 15/9/2 8/10/3 12/11/3 +f 9/12/4 1/13/2 15/9/2 +f 3/14/5 9/15/4 10/16/5 +f 4/17/6 10/16/5 16/18/6 +f 13/19/7 4/17/6 16/18/6 +f 14/20/8 5/21/7 13/19/7 +f 14/20/8 7/22/9 6/23/8 +f 22/24/10 9/12/11 15/9/10 +f 21/25/12 14/20/13 13/19/12 +f 24/26/14 13/19/12 16/18/14 +f 17/27/15 16/18/14 10/16/15 +f 18/28/11 10/16/15 9/15/11 +f 23/29/13 11/30/16 14/20/13 +f 19/31/17 15/9/10 12/11/17 +f 20/32/16 12/11/17 11/30/16 +f 8/10/3 11/30/9 12/11/3 +f 15/9/2 1/13/2 8/10/3 +f 9/12/4 2/33/4 1/13/2 +f 3/14/5 2/34/4 9/15/4 +f 4/17/6 3/14/5 10/16/5 +f 13/19/7 5/21/7 4/17/6 +f 14/20/8 6/23/8 5/21/7 +f 14/20/8 11/30/9 7/22/9 +f 22/24/10 18/35/11 9/12/11 +f 21/25/12 23/29/13 14/20/13 +f 24/26/14 21/25/12 13/19/12 +f 17/27/15 24/26/14 16/18/14 +f 18/28/11 17/27/15 10/16/15 +f 23/29/13 20/32/16 11/30/16 +f 19/31/17 22/24/10 15/9/10 +f 20/32/16 19/31/17 12/11/17 +f 8/10/3 7/22/9 11/30/9 +o AR2Highlight +v 0.100000 -0.400000 0.017959 +v -0.312132 0.312132 0.017959 +v -0.100000 0.400000 0.017959 +v -0.400000 0.100000 0.017959 +v 0.400000 -0.100000 0.017959 +v 0.312132 -0.312132 0.017959 +v 0.100000 -0.250000 0.017959 +v -0.206066 0.206066 0.017959 +v -0.100000 0.250000 0.017959 +v -0.250000 0.100000 0.017959 +v 0.250000 -0.100000 0.017959 +v 0.206066 -0.206066 0.017959 +v -0.100000 -0.400000 0.017959 +v -0.312132 -0.312132 0.017959 +v 0.100000 0.400000 0.017959 +v 0.312132 0.312132 0.017959 +v -0.400000 -0.100000 0.017959 +v 0.400000 0.100000 0.017959 +v -0.100000 -0.250000 0.017959 +v -0.206066 -0.206066 0.017959 +v 0.100000 0.250000 0.017959 +v 0.206066 0.206066 0.017959 +v -0.250000 -0.100000 0.017959 +v 0.250000 0.100000 0.017959 +vt 0.348404 0.684398 +vt 0.380638 0.678103 +vt 0.380638 0.693299 +vt 0.357845 0.662908 +vt 0.364521 0.673653 +vt 0.433822 0.642648 +vt 0.443263 0.621158 +vt 0.456615 0.642648 +vt 0.411029 0.627452 +vt 0.411029 0.612257 +vt 0.443263 0.684398 +vt 0.433822 0.662908 +vt 0.456615 0.662908 +vt 0.380638 0.627452 +vt 0.348404 0.621158 +vt 0.380638 0.612257 +vt 0.411029 0.678103 +vt 0.411029 0.693299 +vt 0.357845 0.642648 +vt 0.335052 0.642648 +vt 0.335052 0.662908 +vt 0.427146 0.631903 +vt 0.427146 0.673653 +vt 0.364521 0.631903 +vn -0.0000 -0.0000 1.0000 +s off +f 26/36/18 33/37/18 27/38/18 +f 26/36/18 34/39/18 32/40/18 +f 35/41/18 30/42/18 29/43/18 +f 30/42/18 31/44/18 25/45/18 +f 40/46/18 48/47/18 42/48/18 +f 43/49/18 38/50/18 37/51/18 +f 45/52/18 40/46/18 39/53/18 +f 38/50/18 47/54/18 41/55/18 +f 26/36/18 32/40/18 33/37/18 +f 26/36/18 28/56/18 34/39/18 +f 35/41/18 36/57/18 30/42/18 +f 30/42/18 36/57/18 31/44/18 +f 40/46/18 46/58/18 48/47/18 +f 43/49/18 44/59/18 38/50/18 +f 45/52/18 46/58/18 40/46/18 +f 38/50/18 44/59/18 47/54/18 +o Bottleneck +v -0.135595 0.135594 -0.764953 +v -0.135595 0.135594 -1.014953 +v -0.191761 -0.000003 -1.014953 +v 0.000000 0.191760 -0.764953 +v 0.000000 0.191760 -1.014953 +v 0.135595 0.135594 -0.764953 +v 0.191762 -0.000003 -0.764953 +v 0.191762 -0.000003 -1.014953 +v -0.135596 -0.135597 -0.764953 +v -0.135596 -0.135597 -1.014953 +v 0.000000 -0.191762 -1.014953 +v 0.135596 -0.135596 -0.764953 +v 0.135596 -0.135596 -1.014953 +v -0.191761 -0.000003 -0.764953 +v 0.135595 0.135594 -1.014953 +v 0.000000 -0.191762 -0.764953 +v 0.300002 -0.000003 0.685047 +v 0.212132 0.212131 -0.414953 +v 0.212132 0.212131 0.685047 +v 0.212132 -0.212133 -0.414953 +v 0.000000 -0.300001 0.685047 +v 0.000000 -0.300001 -0.414953 +v -0.300000 -0.000003 -0.414953 +v -0.212132 -0.212133 0.685047 +v -0.300000 -0.000003 0.685047 +v 0.000000 0.299999 -0.414953 +v -0.212132 0.212131 0.685047 +v 0.212132 -0.212133 0.685047 +v -0.212132 0.212131 -0.414953 +v 0.000000 0.299999 0.685047 +v 0.300002 -0.000003 -0.414953 +v -0.212132 -0.212133 -0.414953 +v 0.185616 -0.185617 0.735047 +v 0.000000 -0.262503 0.685047 +v 0.185616 -0.185617 0.685047 +v 0.000000 -0.262503 0.735047 +v -0.185614 -0.185617 0.685047 +v 0.262502 -0.000003 0.735047 +v 0.262502 -0.000003 0.685047 +v 0.185616 0.185613 0.735047 +v 0.185616 0.185613 0.685047 +v 0.000000 0.262499 0.735047 +v 0.000000 0.262499 0.685047 +v -0.185614 0.185613 0.735047 +v -0.185614 0.185613 0.685047 +v -0.262500 -0.000003 0.735047 +v -0.262500 -0.000003 0.685047 +v -0.185614 -0.185617 0.735047 +v -0.212132 -0.212133 0.735047 +v 0.000000 -0.300001 0.785047 +v -0.212132 -0.212133 0.785047 +v 0.300002 -0.000003 0.735047 +v 0.212132 -0.212133 0.785047 +v 0.212132 -0.212133 0.735047 +v 0.000000 0.299999 0.735047 +v 0.212132 0.212131 0.785047 +v 0.212132 0.212131 0.735047 +v -0.212132 0.212131 0.785047 +v 0.000000 0.299999 0.785047 +v -0.300000 -0.000003 0.735047 +v -0.300000 -0.000001 0.785047 +v 0.000000 -0.300001 0.735047 +v 0.300002 -0.000001 0.785047 +v -0.212132 0.212131 0.735047 +vt 0.541667 0.527778 +vt 0.583333 0.541667 +vt 0.541667 0.541667 +vt 0.500000 0.527778 +vt 0.500000 0.541667 +vt 0.833333 0.541667 +vt 0.791667 0.527778 +vt 0.833333 0.527778 +vt 0.750000 0.541667 +vt 0.750000 0.527778 +vt 0.708333 0.541667 +vt 0.708333 0.527778 +vt 0.666667 0.541667 +vt 0.666667 0.527778 +vt 0.625000 0.527778 +vt 0.625000 0.541667 +vt 0.541667 0.569444 +vt 0.583333 0.555556 +vt 0.583333 0.569444 +vt 0.500000 0.569444 +vt 0.541667 0.555556 +vt 0.833333 0.555556 +vt 0.791667 0.569444 +vt 0.791667 0.555556 +vt 0.750000 0.555556 +vt 0.750000 0.569444 +vt 0.708333 0.555556 +vt 0.708333 0.569444 +vt 0.666667 0.555556 +vt 0.666667 0.569444 +vt 0.625000 0.569444 +vt 0.916666 0.514039 +vt 0.999775 0.569444 +vt 0.916666 0.624849 +vt 0.708333 0.736111 +vt 0.666667 0.680556 +vt 0.708333 0.680556 +vt 0.750000 0.736111 +vt 0.750000 0.680556 +vt 0.791667 0.680556 +vt 0.833333 0.736111 +vt 0.833333 0.680556 +vt 0.541667 0.736111 +vt 0.500000 0.680556 +vt 0.541667 0.680556 +vt 0.583333 0.736111 +vt 0.625000 0.736111 +vt 0.583333 0.680556 +vt 0.625000 0.680556 +vt 0.666667 0.736111 +vt 0.835373 0.641835 +vt 0.891414 0.626360 +vt 0.914627 0.663720 +vt 0.833333 0.569444 +vt 0.708333 0.777778 +vt 0.750000 0.777778 +vt 0.791667 0.777778 +vt 0.791667 0.736111 +vt 0.833333 0.777778 +vt 0.500000 0.777778 +vt 0.500000 0.736111 +vt 0.541667 0.777778 +vt 0.583333 0.777778 +vt 0.625000 0.777778 +vt 0.666667 0.777778 +vt 0.750000 0.513889 +vt 0.708333 0.513889 +vt 0.666667 0.513889 +vt 0.583333 0.513889 +vt 0.625000 0.513889 +vt 0.583333 0.527778 +vt 0.541667 0.513889 +vt 0.500000 0.513889 +vt 0.791667 0.513889 +vt 0.625000 0.555556 +vt 0.500000 0.555556 +vt 0.791667 0.541667 +vt 0.833558 0.569444 +vt 0.857900 0.530267 +vt 0.975432 0.530267 +vt 0.975433 0.608622 +vt 0.857900 0.608622 +vt 0.858586 0.626360 +vt 0.914627 0.641835 +vt 0.891414 0.679196 +vt 0.858586 0.679196 +vt 0.835373 0.663721 +vt 0.833333 0.513889 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn 0.6755 0.6755 -0.2954 +vn 0.0000 0.9554 -0.2954 +vn 0.6755 0.6755 -0.2955 +vn 0.9554 -0.0000 -0.2955 +vn 0.6755 -0.6755 -0.2954 +vn 0.0000 -0.9554 -0.2954 +vn -0.6755 -0.6755 -0.2954 +vn -0.9554 -0.0000 -0.2954 +vn -0.6755 0.6755 -0.2954 +vn -0.7071 0.7071 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 97/60/19 94/61/19 96/62/19 +f 110/63/19 96/62/19 84/64/19 +f 84/65/19 102/66/19 110/67/19 +f 102/66/19 86/68/19 100/69/19 +f 100/69/19 88/70/19 105/71/19 +f 105/71/19 90/72/19 103/73/19 +f 112/74/19 90/72/19 92/75/19 +f 94/61/19 112/74/19 92/75/19 +f 72/76/20 95/77/20 73/78/20 +f 69/79/20 85/80/20 72/76/20 +f 82/81/20 76/82/20 83/83/20 +f 87/84/20 76/82/20 65/85/20 +f 89/86/20 65/85/20 67/87/20 +f 91/88/20 67/87/20 78/89/20 +f 75/90/20 91/88/20 78/89/20 +f 95/77/20 75/90/20 73/78/20 +f 98/91/20 111/92/20 107/93/20 +f 54/94/21 74/95/22 66/96/23 +f 55/97/24 66/96/23 79/98/24 +f 68/99/25 55/97/24 79/98/24 +f 64/100/26 68/99/25 70/101/26 +f 57/102/27 70/103/26 80/104/27 +f 80/104/27 62/105/28 57/102/27 +f 49/106/29 71/107/28 77/108/29 +f 52/109/22 77/108/29 74/95/22 +f 50/110/19 63/111/19 61/112/19 +f 77/108/30 73/78/31 75/90/30 +f 73/78/31 80/104/32 72/76/32 +f 80/104/32 69/79/33 72/76/32 +f 70/101/33 76/82/34 69/113/33 +f 76/82/34 79/98/35 65/85/35 +f 79/98/35 67/87/36 65/85/35 +f 78/89/37 66/96/36 74/95/37 +f 77/108/30 78/89/37 74/95/37 +f 63/114/36 52/109/37 54/94/36 +f 63/114/36 55/97/35 56/115/35 +f 61/116/34 55/97/35 60/117/34 +f 61/116/34 64/100/33 59/118/33 +f 57/102/32 59/119/33 64/120/33 +f 58/121/32 62/105/31 51/122/31 +f 49/106/30 51/122/31 62/105/31 +f 50/123/30 52/109/37 53/124/37 +f 111/125/35 105/71/36 104/126/36 +f 107/127/37 105/71/36 103/73/37 +f 112/74/30 107/127/37 103/73/37 +f 112/74/30 109/128/31 106/129/30 +f 108/130/31 99/131/32 109/128/31 +f 99/131/32 110/63/33 98/132/33 +f 101/133/34 110/67/33 102/66/34 +f 100/69/35 101/133/34 102/66/34 +f 88/70/36 87/84/35 89/86/36 +f 88/70/36 91/88/37 90/72/37 +f 90/72/37 93/134/30 92/75/30 +f 92/75/30 95/77/31 94/61/31 +f 96/62/32 95/77/31 85/80/32 +f 82/135/33 96/62/32 85/80/32 +f 83/83/34 84/65/33 82/81/33 +f 86/68/35 83/83/34 87/84/35 +f 97/60/19 108/130/19 94/61/19 +f 110/63/19 97/60/19 96/62/19 +f 84/65/19 81/136/19 102/66/19 +f 102/66/19 81/136/19 86/68/19 +f 100/69/19 86/68/19 88/70/19 +f 105/71/19 88/70/19 90/72/19 +f 112/74/19 103/73/19 90/72/19 +f 94/61/19 108/130/19 112/74/19 +f 72/76/20 85/80/20 95/77/20 +f 69/79/20 82/135/20 85/80/20 +f 82/81/20 69/113/20 76/82/20 +f 87/84/20 83/83/20 76/82/20 +f 89/86/20 87/84/20 65/85/20 +f 91/88/20 89/86/20 67/87/20 +f 75/90/20 93/134/20 91/88/20 +f 95/77/20 93/134/20 75/90/20 +f 109/137/20 99/138/20 98/91/20 +f 98/91/20 101/139/20 111/92/20 +f 111/92/20 104/140/20 107/93/20 +f 107/93/20 106/141/20 109/137/20 +f 109/137/20 98/91/20 107/93/20 +f 54/94/21 52/109/22 74/95/22 +f 55/97/24 54/94/21 66/96/23 +f 68/99/25 60/117/25 55/97/24 +f 64/100/26 60/117/25 68/99/25 +f 57/102/27 64/120/26 70/103/26 +f 80/104/27 71/107/28 62/105/28 +f 49/106/29 62/105/28 71/107/28 +f 52/109/22 49/106/29 77/108/29 +f 50/110/19 53/142/19 63/111/19 +f 63/111/19 56/143/19 61/112/19 +f 61/112/19 59/144/19 50/110/19 +f 59/144/19 58/145/19 50/110/19 +f 58/145/19 51/146/19 50/110/19 +f 77/108/30 71/107/31 73/78/31 +f 73/78/31 71/107/31 80/104/32 +f 80/104/32 70/103/33 69/79/33 +f 70/101/33 68/99/34 76/82/34 +f 76/82/34 68/99/34 79/98/35 +f 79/98/35 66/96/36 67/87/36 +f 78/89/37 67/87/36 66/96/36 +f 77/108/30 75/90/30 78/89/37 +f 63/114/36 53/124/37 52/109/37 +f 63/114/36 54/94/36 55/97/35 +f 61/116/34 56/115/35 55/97/35 +f 61/116/34 60/117/34 64/100/33 +f 57/102/32 58/121/32 59/119/33 +f 58/121/32 57/102/32 62/105/31 +f 49/106/30 50/123/30 51/122/31 +f 50/123/30 49/106/30 52/109/37 +f 111/125/35 100/69/35 105/71/36 +f 107/127/37 104/126/36 105/71/36 +f 112/74/30 106/129/30 107/127/37 +f 112/74/30 108/130/31 109/128/31 +f 108/130/31 97/60/32 99/131/32 +f 99/131/32 97/60/32 110/63/33 +f 101/133/34 98/147/33 110/67/33 +f 100/69/35 111/125/35 101/133/34 +f 88/70/36 86/68/35 87/84/35 +f 88/70/36 89/86/36 91/88/37 +f 90/72/37 91/88/37 93/134/30 +f 92/75/30 93/134/30 95/77/31 +f 96/62/32 94/61/31 95/77/31 +f 82/135/33 84/64/33 96/62/32 +f 83/83/34 81/136/34 84/65/33 +f 86/68/35 81/136/34 83/83/34 +o Straight +v -0.300000 -0.000003 -0.814953 +v -0.212132 -0.212133 0.685047 +v -0.300000 -0.000003 0.685047 +v -0.212132 0.212131 -0.814953 +v 0.000000 0.299999 0.685047 +v 0.000000 0.299999 -0.814953 +v -0.212132 0.212131 0.685047 +v 0.000000 -0.300001 -0.814953 +v 0.000000 -0.300001 0.685047 +v 0.212132 -0.212133 -0.814953 +v 0.300002 -0.000003 0.685047 +v 0.212132 -0.212133 0.685047 +v 0.212132 0.212131 -0.814953 +v 0.212132 0.212131 0.685047 +v -0.212132 -0.212133 -0.814953 +v 0.300002 -0.000003 -0.814953 +v -0.212132 -0.212133 0.735047 +v 0.000000 -0.300001 0.785047 +v -0.212132 -0.212133 0.785047 +v 0.300002 -0.000003 0.735047 +v 0.212132 -0.212133 0.785047 +v 0.212132 -0.212133 0.735047 +v 0.000000 0.299999 0.735047 +v 0.212132 0.212131 0.785047 +v 0.212132 0.212131 0.735047 +v -0.212132 0.212131 0.785047 +v 0.000000 0.299999 0.785047 +v -0.300000 -0.000003 0.735047 +v -0.300000 -0.000001 0.785047 +v 0.000000 -0.300001 0.735047 +v 0.300002 -0.000001 0.785047 +v -0.212132 0.212131 0.735047 +v 0.185616 -0.185617 0.735047 +v 0.000000 -0.262503 0.685047 +v 0.185616 -0.185617 0.685047 +v 0.000000 -0.262503 0.735047 +v -0.185614 -0.185617 0.685047 +v 0.262502 -0.000003 0.735047 +v 0.262502 -0.000003 0.685047 +v 0.185616 0.185613 0.735047 +v 0.185616 0.185613 0.685047 +v 0.000000 0.262499 0.735047 +v 0.000000 0.262499 0.685047 +v -0.185614 0.185613 0.735047 +v -0.185614 0.185613 0.685047 +v -0.262500 -0.000003 0.735047 +v -0.262500 -0.000003 0.685047 +v -0.185614 -0.185617 0.735047 +vt 0.708333 0.791667 +vt 0.750000 0.777778 +vt 0.750000 0.791667 +vt 0.708333 0.805556 +vt 0.750000 0.805556 +vt 0.791667 0.791667 +vt 0.791667 0.805556 +vt 0.833333 0.805556 +vt 0.833333 0.791667 +vt 0.500000 0.791667 +vt 0.541667 0.805556 +vt 0.500000 0.805556 +vt 0.583333 0.805556 +vt 0.541667 0.791667 +vt 0.583333 0.791667 +vt 0.625000 0.791667 +vt 0.625000 0.805556 +vt 0.666667 0.805556 +vt 0.666667 0.819444 +vt 0.625000 0.833333 +vt 0.625000 0.819444 +vt 0.583333 0.819444 +vt 0.583333 0.833333 +vt 0.541667 0.833333 +vt 0.541667 0.819444 +vt 0.500000 0.833333 +vt 0.500000 0.819444 +vt 0.791667 0.833333 +vt 0.833333 1.000000 +vt 0.791667 1.000000 +vt 0.948390 0.893385 +vt 0.993256 0.923295 +vt 0.840078 0.965594 +vt 0.750000 1.000000 +vt 0.833333 0.819444 +vt 0.833333 0.833333 +vt 0.750000 0.819444 +vt 0.791667 0.819444 +vt 0.708333 0.819444 +vt 0.750000 0.833333 +vt 0.708333 0.833333 +vt 0.666667 0.833333 +vt 0.708333 1.000000 +vt 0.666667 1.000000 +vt 0.541667 1.000000 +vt 0.625000 1.000000 +vt 0.916667 0.778020 +vt 0.999638 0.833334 +vt 0.916667 0.888647 +vt 0.583333 1.000000 +vt 0.666667 0.777778 +vt 0.666667 0.791667 +vt 0.541667 0.777778 +vt 0.583333 0.777778 +vt 0.791667 0.777778 +vt 0.625000 0.777778 +vt 0.708333 0.777778 +vt 0.993255 0.965594 +vt 0.948390 0.995504 +vt 0.884942 0.995504 +vt 0.840077 0.923295 +vt 0.884942 0.893385 +vt 0.500000 1.000000 +vt 0.833696 0.833334 +vt 0.857998 0.794221 +vt 0.975336 0.794221 +vt 0.975336 0.872446 +vt 0.857998 0.872446 +vt 0.833333 0.777778 +vt 0.500000 0.777778 +vn 0.7071 0.7071 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 -0.0000 -0.0000 +s 1 +f 137/148/38 143/149/39 132/150/39 +f 132/150/40 152/151/40 137/148/40 +f 150/152/40 134/153/40 145/154/40 +f 148/155/40 134/153/40 142/156/40 +f 142/157/40 160/158/40 148/159/40 +f 158/160/40 129/161/40 140/162/40 +f 158/160/40 144/163/40 156/164/40 +f 144/163/40 154/165/40 156/164/40 +f 154/165/40 137/148/40 152/151/40 +f 155/166/41 119/167/41 157/168/41 +f 159/169/41 119/167/41 115/170/41 +f 114/171/41 159/169/41 115/170/41 +f 149/172/41 121/173/41 146/174/41 +f 124/175/42 120/176/43 122/177/42 +f 125/178/40 128/179/40 113/180/40 +f 128/181/39 124/175/42 122/177/42 +f 124/175/41 146/182/41 121/183/41 +f 124/175/41 151/184/41 147/185/41 +f 153/186/41 123/187/41 126/188/41 +f 155/166/41 126/188/41 117/189/41 +f 128/181/39 126/188/38 123/187/39 +f 117/189/44 125/190/38 118/191/44 +f 127/192/45 121/173/43 114/171/45 +f 116/193/46 115/170/47 119/167/46 +f 130/194/41 143/195/41 139/196/41 +f 127/192/45 115/170/47 113/197/47 +f 160/158/45 146/174/43 148/159/43 +f 145/154/42 151/184/39 150/152/39 +f 154/165/44 157/168/46 156/164/46 +f 148/155/43 147/185/42 145/154/42 +f 144/163/46 139/198/44 135/199/44 +f 152/151/38 155/166/44 154/165/44 +f 140/162/47 131/200/45 141/201/47 +f 132/150/39 133/202/42 134/153/42 +f 158/160/47 149/172/45 160/158/45 +f 133/202/42 142/156/43 134/153/42 +f 139/198/44 137/148/38 135/199/44 +f 150/152/39 153/186/38 152/151/38 +f 142/157/43 131/200/45 129/161/45 +f 144/163/46 141/201/47 138/203/46 +f 156/164/46 159/169/47 158/160/47 +f 119/167/46 118/191/44 116/193/46 +f 137/148/38 136/204/38 143/149/39 +f 132/150/40 150/152/40 152/151/40 +f 150/152/40 132/150/40 134/153/40 +f 148/155/40 145/154/40 134/153/40 +f 142/157/40 129/161/40 160/158/40 +f 158/160/40 160/158/40 129/161/40 +f 158/160/40 140/162/40 144/163/40 +f 144/163/40 135/199/40 154/165/40 +f 154/165/40 135/199/40 137/148/40 +f 155/166/41 117/189/41 119/167/41 +f 159/169/41 157/168/41 119/167/41 +f 114/171/41 149/172/41 159/169/41 +f 149/172/41 114/171/41 121/173/41 +f 124/175/42 121/183/43 120/176/43 +f 128/179/40 122/205/40 113/180/40 +f 122/205/40 120/206/40 113/180/40 +f 120/206/40 127/207/40 113/180/40 +f 113/180/40 116/208/40 118/209/40 +f 118/209/40 125/178/40 113/180/40 +f 128/181/39 123/187/39 124/175/42 +f 124/175/41 147/185/41 146/182/41 +f 124/175/41 123/187/41 151/184/41 +f 153/186/41 151/184/41 123/187/41 +f 155/166/41 153/186/41 126/188/41 +f 128/181/39 125/190/38 126/188/38 +f 117/189/44 126/188/38 125/190/38 +f 127/192/45 120/210/43 121/173/43 +f 116/193/46 113/197/47 115/170/47 +f 141/211/41 131/212/41 130/194/41 +f 130/194/41 133/213/41 143/195/41 +f 143/195/41 136/214/41 139/196/41 +f 139/196/41 138/215/41 141/211/41 +f 141/211/41 130/194/41 139/196/41 +f 127/192/45 114/171/45 115/170/47 +f 160/158/45 149/172/45 146/174/43 +f 145/154/42 147/185/42 151/184/39 +f 154/165/44 155/166/44 157/168/46 +f 148/155/43 146/182/43 147/185/42 +f 144/163/46 138/203/46 139/198/44 +f 152/151/38 153/186/38 155/166/44 +f 140/162/47 129/161/45 131/200/45 +f 132/150/39 143/149/39 133/202/42 +f 158/160/47 159/169/47 149/172/45 +f 133/202/42 130/216/43 142/156/43 +f 139/198/44 136/204/38 137/148/38 +f 150/152/39 151/184/39 153/186/38 +f 142/157/43 130/217/43 131/200/45 +f 144/163/46 140/162/47 141/201/47 +f 156/164/46 157/168/46 159/169/47 +f 119/167/46 117/189/44 118/191/44 +o Shotgun +v 0.317579 -0.317578 -1.223040 +v -0.449124 0.000000 -1.223040 +v 0.000000 0.449124 -1.223040 +v -0.317579 0.317579 -1.223040 +v 0.000000 -0.449123 -1.223040 +v -0.317579 -0.317578 -1.223040 +v 0.449124 0.000000 -1.223040 +v 0.317579 0.317579 -1.223040 +v 0.317579 -0.317578 0.334163 +v 0.000000 -0.449124 0.334163 +v -0.449124 -0.000000 0.334163 +v -0.317579 0.317579 0.334163 +v 0.317579 0.317579 0.334163 +v -0.317579 -0.317578 0.334163 +v 0.000000 0.449124 0.334163 +v 0.449124 -0.000000 0.334163 +v 0.158790 -0.158789 -0.473040 +v -0.224562 0.000000 -0.473040 +v 0.000000 0.224562 -0.473040 +v -0.158790 0.158790 -0.473040 +v 0.000000 -0.224561 -0.473040 +v -0.158790 -0.158789 -0.473040 +v 0.224562 0.000000 -0.473040 +v 0.158790 0.158790 -0.473040 +v 0.317579 -0.317578 -1.223040 +v -0.449124 0.000000 -1.223040 +v 0.000000 0.449124 -1.223040 +v -0.317579 0.317579 -1.223040 +v 0.000000 -0.449123 -1.223040 +v -0.317579 -0.317578 -1.223040 +v 0.449124 0.000000 -1.223040 +v 0.317579 0.317579 -1.223040 +v 0.158790 -0.158789 -0.473040 +v -0.224562 0.000000 -0.473040 +v 0.000000 0.224562 -0.473040 +v -0.158790 0.158790 -0.473040 +v 0.000000 -0.224561 -0.473040 +v -0.158790 -0.158789 -0.473040 +v 0.224562 0.000000 -0.473040 +v 0.158790 0.158790 -0.473040 +vt 0.391609 0.820490 +vt 0.415098 0.858295 +vt 0.358391 0.873954 +vt 0.334902 0.836150 +vt 0.358391 0.820490 +vt 0.415098 0.836149 +vt 0.391609 0.873954 +vt 0.334902 0.858295 +vt 0.125000 0.930556 +vt 0.083333 0.791667 +vt 0.125000 0.791667 +vt 0.083333 0.930556 +vt 0.041667 0.791667 +vt 0.166667 0.930556 +vt 0.166667 0.791667 +vt 0.333333 0.930556 +vt 0.291667 0.791667 +vt 0.333333 0.791667 +vt 0.291667 0.930556 +vt 0.250000 0.791667 +vt 0.250000 0.930556 +vt 0.208333 0.791667 +vt 0.208333 0.930556 +vt 0.041667 0.930556 +vt -0.000000 0.791667 +vt 0.333333 0.930556 +vt 0.291667 1.000000 +vt 0.291667 0.930556 +vt -0.000000 0.930556 +vt 0.041667 1.000000 +vt -0.000000 1.000000 +vt 0.083333 0.930556 +vt 0.041667 0.930556 +vt 0.125000 1.000000 +vt 0.083333 1.000000 +vt 0.166667 0.930556 +vt 0.125000 0.930556 +vt 0.208333 1.000000 +vt 0.208333 0.930556 +vt 0.250000 0.930556 +vt 0.250000 1.000000 +vt -0.000000 0.930556 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vn 0.0000 0.0000 -1.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.0000 0.9580 -0.2868 +vn -0.6774 0.6774 -0.2868 +vn 0.6774 0.6774 -0.2868 +vn 0.9580 0.0000 -0.2868 +vn 0.6774 -0.6774 -0.2868 +vn 0.0000 -0.9580 -0.2868 +vn -0.6774 -0.6774 -0.2868 +vn -0.9580 0.0000 -0.2868 +s off +f 179/218/48 183/219/48 181/220/48 +f 178/221/48 180/222/48 179/218/48 +f 179/218/48 184/223/48 183/219/48 +f 183/219/48 177/224/48 181/220/48 +f 181/220/48 182/225/48 178/221/48 +f 178/221/48 179/218/48 181/220/48 +s 1 +f 164/226/49 171/227/50 172/228/49 +f 162/229/50 174/230/51 171/227/50 +f 163/231/52 172/228/49 175/232/52 +f 165/233/53 169/234/54 170/235/53 +f 161/236/54 176/237/55 169/234/54 +f 167/238/55 173/239/56 176/237/55 +f 168/240/56 175/232/52 173/239/56 +f 166/241/51 170/242/53 174/230/51 +f 189/243/57 193/244/58 185/245/58 +f 189/246/57 198/247/59 197/248/57 +f 186/249/60 198/247/59 190/250/59 +f 186/249/60 196/251/61 194/252/60 +f 187/253/62 196/251/61 188/254/61 +f 200/255/63 187/253/62 192/256/63 +f 200/255/63 191/257/64 199/258/64 +f 191/257/64 193/244/58 199/258/64 +f 164/226/49 162/229/50 171/227/50 +f 162/229/50 166/241/51 174/230/51 +f 163/231/52 164/226/49 172/228/49 +f 165/233/53 161/236/54 169/234/54 +f 161/236/54 167/238/55 176/237/55 +f 167/238/55 168/240/56 173/239/56 +f 168/240/56 163/231/52 175/232/52 +f 166/241/51 165/259/53 170/242/53 +f 189/243/57 197/260/57 193/244/58 +f 189/246/57 190/250/59 198/247/59 +f 186/249/60 194/252/60 198/247/59 +f 186/249/60 188/254/61 196/251/61 +f 187/253/62 195/261/62 196/251/61 +f 200/255/63 195/261/62 187/253/62 +f 200/255/63 192/256/63 191/257/64 +f 191/257/64 185/245/58 193/244/58 +o AR2 +v 0.424264 -0.424264 -0.000000 +v 0.600000 0.000000 0.000000 +v -0.600000 0.000000 0.000000 +v 0.424264 -0.424264 -0.400000 +v -0.424264 -0.424264 -0.400000 +v -0.424264 0.424264 -0.400000 +v 0.424264 0.424264 0.000000 +v 0.000000 0.600000 0.000000 +v -0.424264 0.424264 0.000000 +v -0.424264 -0.424264 -0.000000 +v 0.000000 -0.600000 -0.000000 +v 0.000000 0.600000 -0.400000 +v 0.424264 0.424264 -0.400000 +v 0.600000 0.000000 -0.400000 +v 0.000000 -0.600000 -0.400000 +v -0.600000 0.000000 -0.400000 +v 0.000000 0.360000 -0.400000 +v 0.254558 0.254558 -1.200000 +v 0.000000 0.360000 -1.200000 +v 0.254558 0.254558 -0.400000 +v 0.360000 0.000000 -1.200000 +v 0.360000 0.000000 -0.400000 +v 0.254558 -0.254558 -1.200000 +v 0.254558 -0.254558 -0.400000 +v 0.000000 -0.360000 -1.200000 +v 0.000000 -0.360000 -0.400000 +v -0.254558 -0.254558 -1.200000 +v -0.254558 -0.254559 -0.400000 +v -0.360000 0.000000 -1.200000 +v -0.360000 0.000000 -0.400000 +v -0.254559 0.254558 -1.200000 +v -0.254559 0.254558 -0.400000 +vt 0.420629 0.529536 +vt 0.455696 0.585975 +vt 0.371038 0.609353 +vt 0.117187 0.528847 +vt 0.165063 0.560764 +vt 0.001603 0.605902 +vt 0.216442 0.637344 +vt 0.168983 0.560961 +vt 0.283558 0.529322 +vt 0.333333 0.638889 +vt 0.291667 0.708333 +vt 0.291667 0.638889 +vt 0.083333 0.638889 +vt 0.041667 0.708333 +vt 0.041667 0.638889 +vt 0.375000 0.500000 +vt 0.312500 0.527778 +vt 0.312500 0.500000 +vt 0.250000 0.638889 +vt 0.208333 0.708333 +vt 0.208333 0.638889 +vt 0.437500 0.500000 +vt 0.375000 0.527778 +vt 0.500000 0.500000 +vt 0.437500 0.527778 +vt 0.062500 0.500000 +vt -0.000000 0.527778 +vt -0.000000 0.500000 +vt 0.187500 0.500000 +vt 0.125000 0.527778 +vt 0.125000 0.500000 +vt -0.000000 0.708333 +vt -0.000000 0.638889 +vt 0.166667 0.638889 +vt 0.125000 0.708333 +vt 0.125000 0.638889 +vt 0.062500 0.527778 +vt 0.166667 0.708333 +vt 0.250000 0.708333 +vt 0.250000 0.527778 +vt 0.250000 0.500000 +vt 0.083333 0.708333 +vt 0.187500 0.527778 +vt 0.335971 0.552914 +vt 0.371037 0.529536 +vt 0.455696 0.552914 +vt 0.420629 0.609353 +vt 0.335971 0.585975 +vt 0.165063 0.605902 +vt 0.117187 0.637820 +vt 0.049480 0.637820 +vt 0.001603 0.560764 +vt 0.049480 0.528847 +vt 0.331017 0.560961 +vt 0.331017 0.605705 +vt 0.283558 0.637344 +vt 0.168983 0.605705 +vt 0.216442 0.529322 +vt 0.333333 0.708333 +vt 0.500000 0.527778 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 218/262/65 223/263/65 227/264/65 +f 213/265/65 214/266/65 216/267/65 +f 209/268/66 210/269/66 201/270/66 +f 226/271/67 223/272/68 224/273/68 +f 230/274/69 227/275/70 228/276/70 +f 202/277/71 213/278/72 207/279/72 +f 222/280/71 218/281/72 220/282/72 +f 201/283/68 214/284/71 202/277/71 +f 211/285/67 204/286/68 201/283/68 +f 210/287/70 215/288/67 211/289/67 +f 209/290/73 216/291/69 203/292/69 +f 228/276/70 225/293/67 226/294/67 +f 217/295/74 231/296/73 232/297/73 +f 203/292/69 205/298/70 210/287/70 +f 220/282/72 219/299/74 217/295/74 +f 224/273/68 221/300/71 222/280/71 +f 207/279/72 212/301/74 208/302/74 +f 232/297/73 229/303/69 230/274/69 +f 208/302/74 206/304/73 209/290/73 +f 231/305/65 219/306/65 218/262/65 +f 218/262/65 221/307/65 223/263/65 +f 223/263/65 225/308/65 227/264/65 +f 227/264/65 229/309/65 231/305/65 +f 231/305/65 218/262/65 227/264/65 +f 214/266/65 204/310/65 215/311/65 +f 215/311/65 205/312/65 214/266/65 +f 205/312/65 216/267/65 214/266/65 +f 216/267/65 206/313/65 212/314/65 +f 212/314/65 213/265/65 216/267/65 +f 201/270/66 202/315/66 207/316/66 +f 207/316/66 208/317/66 209/268/66 +f 209/268/66 203/318/66 210/269/66 +f 210/269/66 211/319/66 201/270/66 +f 201/270/66 207/316/66 209/268/66 +f 226/271/67 225/320/67 223/272/68 +f 230/274/69 229/303/69 227/275/70 +f 202/277/71 214/284/71 213/278/72 +f 222/280/71 221/300/71 218/281/72 +f 201/283/68 204/286/68 214/284/71 +f 211/285/67 215/321/67 204/286/68 +f 210/287/70 205/298/70 215/288/67 +f 209/290/73 206/304/73 216/291/69 +f 228/276/70 227/275/70 225/293/67 +f 217/295/74 219/299/74 231/296/73 +f 203/292/69 216/291/69 205/298/70 +f 220/282/72 218/281/72 219/299/74 +f 224/273/68 223/272/68 221/300/71 +f 207/279/72 213/278/72 212/301/74 +f 232/297/73 231/296/73 229/303/69 +f 208/302/74 212/301/74 206/304/73 diff --git a/src/main/resources/assets/hbm/models/turret_cheapo_base.obj b/src/main/resources/assets/hbm/models/turret_cheapo_base.obj deleted file mode 100644 index 842d7ba86..000000000 --- a/src/main/resources/assets/hbm/models/turret_cheapo_base.obj +++ /dev/null @@ -1,333 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_cheapo_base.blend' -# www.blender.org -o Grid.001_Grid.003 -v -0.500000 0.062500 0.500000 -v -0.375000 0.062500 0.500000 -v 0.375000 0.062500 0.500000 -v 0.500000 0.062500 0.500000 -v -0.500000 0.062500 0.375000 -v -0.375000 0.062500 0.375000 -v 0.375000 0.062500 0.375000 -v 0.500000 0.062500 0.375000 -v -0.125000 0.875000 0.125000 -v 0.000000 0.875000 0.125000 -v 0.125000 0.875000 0.125000 -v -0.125000 0.875000 0.000000 -v 0.000000 0.875000 0.000000 -v 0.125000 0.875000 0.000000 -v -0.125000 0.875000 -0.125000 -v 0.000000 0.875000 -0.125000 -v 0.125000 0.875000 -0.125000 -v -0.500000 0.062500 -0.375000 -v -0.375000 0.062500 -0.375000 -v 0.375000 0.062500 -0.375000 -v 0.500000 0.062500 -0.375000 -v -0.500000 0.062500 -0.500000 -v -0.375000 0.062500 -0.500000 -v 0.375000 0.062500 -0.500000 -v 0.500000 0.062500 -0.500000 -v -0.562500 0.062500 0.312500 -v -0.562500 0.062500 0.562500 -v -0.312500 0.062500 0.562500 -v -0.312500 0.062500 0.312500 -v 0.312500 0.062500 0.562500 -v 0.312500 0.062500 0.312500 -v 0.562500 0.062500 0.562500 -v 0.562500 0.062500 0.312500 -v -0.312500 0.062500 -0.312500 -v -0.562500 0.062500 -0.312500 -v 0.562500 0.062500 -0.312500 -v 0.312500 0.062500 -0.312500 -v -0.562500 0.062500 -0.562500 -v -0.312500 0.062500 -0.562500 -v 0.312500 0.062500 -0.562500 -v 0.562500 0.062500 -0.562500 -v -0.562500 0.000000 0.312500 -v -0.562500 0.000000 0.562500 -v -0.312500 0.000000 0.562500 -v -0.312500 0.000000 0.312500 -v 0.312500 0.000000 0.562500 -v 0.312500 0.000000 0.312500 -v 0.562500 0.000000 0.562500 -v 0.562500 0.000000 0.312500 -v -0.312500 0.000000 -0.312500 -v -0.562500 0.000000 -0.312500 -v 0.562500 0.000000 -0.312500 -v 0.312500 0.000000 -0.312500 -v -0.562500 0.000000 -0.562500 -v -0.312500 0.000000 -0.562500 -v 0.312500 0.000000 -0.562500 -v 0.562500 0.000000 -0.562500 -v -0.125000 1.000000 0.125000 -v -0.125000 1.000000 -0.125000 -v 0.125000 1.000000 0.125000 -v 0.125000 1.000000 -0.125000 -vt 0.824881 0.881975 -vt 0.795084 0.911772 -vt 0.795084 0.792586 -vt 0.388946 0.701344 -vt 0.388946 0.743483 -vt 0.304668 0.659206 -vt 0.429963 0.038108 -vt 0.429962 0.500675 -vt 0.375000 0.477643 -vt 0.265076 0.061140 -vt 0.320038 0.038108 -vt 0.320038 0.500675 -vt 0.484925 0.061140 -vt 0.875000 0.477643 -vt 0.875000 0.015075 -vt 0.929962 0.038108 -vt 0.820038 0.500675 -vt 0.820038 0.038108 -vt 0.629790 0.617067 -vt 0.629790 0.574928 -vt 0.714067 0.659205 -vt 0.765076 0.061140 -vt 0.984925 0.061140 -vt 0.984925 0.523708 -vt 0.929962 0.500675 -vt 0.625000 0.477643 -vt 0.570038 0.500675 -vt 0.570038 0.038108 -vt 0.515076 0.523708 -vt 0.515076 0.061140 -vt 0.625000 0.015075 -vt 0.679962 0.038108 -vt 0.734925 0.061140 -vt 0.734925 0.523708 -vt 0.679963 0.500675 -vt 0.884474 0.673045 -vt 0.914270 0.702842 -vt 0.795084 0.702842 -vt 0.375000 0.015075 -vt 0.015076 0.061140 -vt 0.070038 0.038108 -vt 0.070038 0.500675 -vt 0.234925 0.061140 -vt 0.234924 0.523708 -vt 0.179962 0.500675 -vt 0.179962 0.038108 -vt 0.125000 0.477643 -vt 0.125000 0.015075 -vt 0.283599 0.638136 -vt 0.367876 0.553859 -vt 0.795084 0.762789 -vt 0.914270 0.762789 -vt 0.629790 0.743483 -vt 0.608721 0.764552 -vt 0.524443 0.680275 -vt 0.367876 0.764552 -vt 0.283599 0.680275 -vt 0.671929 0.659205 -vt 0.346807 0.659206 -vt 0.388946 0.574928 -vt 0.884474 0.822382 -vt 0.914270 0.792586 -vt 0.914270 0.911772 -vt 0.629790 0.701344 -vt 0.545512 0.659205 -vt 0.388946 0.617067 -vt 0.473223 0.659205 -vt 0.884474 0.881975 -vt 0.431084 0.659205 -vt 0.824881 0.673045 -vt 0.795084 0.583655 -vt 0.824881 0.613452 -vt 0.914270 0.583655 -vt 0.824881 0.822382 -vt 0.884474 0.613452 -vt 0.587651 0.659205 -vt 0.582273 0.794703 -vt 0.701459 0.794703 -vt 0.701459 0.913889 -vt 0.283599 0.794703 -vt 0.402785 0.794703 -vt 0.402785 0.913889 -vt 0.015075 0.822382 -vt 0.134262 0.822382 -vt 0.134262 0.941568 -vt 0.432936 0.794703 -vt 0.552122 0.794703 -vt 0.552122 0.913889 -vt 0.650859 0.553859 -vt 0.735137 0.638136 -vt 0.410015 0.553859 -vt 0.494292 0.638136 -vt 0.765288 0.911772 -vt 0.765288 0.792586 -vt 0.494292 0.680275 -vt 0.410015 0.764552 -vt 0.944067 0.792586 -vt 0.944067 0.911772 -vt 0.765288 0.702842 -vt 0.765288 0.583655 -vt 0.914270 0.941568 -vt 0.795084 0.941568 -vt 0.795084 0.553859 -vt 0.914270 0.553859 -vt 0.524443 0.638136 -vt 0.608721 0.553859 -vt 0.944067 0.583655 -vt 0.944067 0.702842 -vt 0.735137 0.680275 -vt 0.650859 0.764552 -vt 0.914270 0.732638 -vt 0.795084 0.732638 -vt 0.074669 0.732638 -vt 0.193855 0.732638 -vt 0.134262 0.792231 -vt 0.015075 0.732638 -vt 0.015075 0.673045 -vt 0.193855 0.613452 -vt 0.074669 0.613452 -vt 0.134262 0.553859 -vt 0.253448 0.673045 -vt 0.253448 0.732638 -vt 0.265076 0.523708 -vt 0.484924 0.523708 -vt 0.765076 0.523708 -vt 0.015075 0.523708 -vt 0.582273 0.913889 -vt 0.283599 0.913889 -vt 0.015075 0.941568 -vt 0.432936 0.913889 -vt 0.193855 0.792231 -vt 0.074669 0.792231 -vt 0.015075 0.613452 -vt 0.074669 0.553859 -vt 0.193855 0.553859 -vt 0.253448 0.613452 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.419100 0.908000 -vn 0.000000 -0.419100 -0.908000 -vn 0.908000 -0.419100 0.000000 -vn -0.908000 0.419100 0.000000 -vn 0.000000 0.419100 -0.908000 -vn 0.000000 -0.419100 0.908000 -vn 0.908000 0.419100 0.000000 -vn -0.908000 -0.419100 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -s off -f 22/1/1 38/2/1 35/3/1 -f 5/4/1 26/5/1 27/6/1 -f 2/7/2 10/8/2 9/9/2 -f 6/10/3 5/11/3 12/12/3 -f 10/8/4 2/7/4 6/13/4 -f 15/14/5 22/15/5 18/16/5 -f 15/14/6 16/17/6 23/18/6 -f 20/19/1 37/20/1 36/21/1 -f 19/22/4 23/18/4 16/17/4 -f 19/23/7 13/24/7 12/25/7 -f 17/26/8 14/27/8 21/28/8 -f 14/27/7 13/29/7 20/30/7 -f 17/26/6 25/31/6 24/32/6 -f 20/33/9 13/34/9 16/35/9 -f 8/36/1 33/37/1 31/38/1 -f 5/11/5 1/39/5 9/9/5 -f 7/40/9 3/41/9 10/42/9 -f 7/43/3 13/44/3 14/45/3 -f 8/46/8 14/45/8 11/47/8 -f 3/41/2 4/48/2 11/47/2 -f 27/6/10 43/49/10 44/50/10 -f 35/3/10 51/51/10 50/52/10 -f 41/53/11 57/54/11 56/55/11 -f 26/5/12 42/56/12 43/57/12 -f 21/58/1 36/21/1 41/53/1 -f 1/59/1 27/6/1 28/60/1 -f 19/61/1 34/62/1 39/63/1 -f 25/64/1 41/53/1 40/65/1 -f 2/66/1 28/60/1 29/67/1 -f 23/68/1 39/63/1 38/2/1 -f 6/69/1 29/67/1 26/5/1 -f 7/70/1 31/38/1 30/71/1 -f 3/72/1 30/71/1 32/73/1 -f 18/74/1 35/3/1 34/62/1 -f 4/75/1 32/73/1 33/37/1 -f 24/76/1 40/65/1 37/20/1 -f 42/77/13 45/78/13 44/79/13 -f 47/80/13 49/81/13 48/82/13 -f 54/83/13 55/84/13 50/85/13 -f 56/86/13 57/87/13 52/88/13 -f 37/20/10 53/89/10 52/90/10 -f 28/60/14 44/91/14 45/92/14 -f 38/2/12 54/93/12 51/94/12 -f 29/67/11 45/95/11 42/96/11 -f 34/62/14 50/97/14 55/98/14 -f 31/38/12 47/99/12 46/100/12 -f 39/63/11 55/101/11 54/102/11 -f 30/71/10 46/103/10 48/104/10 -f 40/65/12 56/105/12 53/106/12 -f 32/73/14 48/107/14 49/108/14 -f 36/21/14 52/109/14 57/110/14 -f 33/37/11 49/111/11 47/112/11 -f 59/113/11 61/114/11 16/115/11 -f 59/113/12 15/116/12 12/117/12 -f 60/118/10 58/119/10 10/120/10 -f 60/118/1 61/114/1 59/113/1 -f 14/121/14 17/122/14 61/114/14 -f 18/74/1 22/1/1 35/3/1 -f 1/59/1 5/4/1 27/6/1 -f 1/39/2 2/7/2 9/9/2 -f 13/123/3 6/10/3 12/12/3 -f 13/124/4 10/8/4 6/13/4 -f 12/25/5 15/14/5 18/16/5 -f 22/15/6 15/14/6 23/18/6 -f 21/58/1 20/19/1 36/21/1 -f 13/125/4 19/22/4 16/17/4 -f 18/16/7 19/23/7 12/25/7 -f 25/31/8 17/26/8 21/28/8 -f 21/28/7 14/27/7 20/30/7 -f 16/35/6 17/26/6 24/32/6 -f 24/32/9 20/33/9 16/35/9 -f 7/70/1 8/36/1 31/38/1 -f 12/12/5 5/11/5 9/9/5 -f 13/126/9 7/40/9 10/42/9 -f 8/46/3 7/43/3 14/45/3 -f 4/48/8 8/46/8 11/47/8 -f 10/42/2 3/41/2 11/47/2 -f 28/60/10 27/6/10 44/50/10 -f 34/62/10 35/3/10 50/52/10 -f 40/65/11 41/53/11 56/55/11 -f 27/6/12 26/5/12 43/57/12 -f 25/64/1 21/58/1 41/53/1 -f 2/66/1 1/59/1 28/60/1 -f 23/68/1 19/61/1 39/63/1 -f 24/76/1 25/64/1 40/65/1 -f 6/69/1 2/66/1 29/67/1 -f 22/1/1 23/68/1 38/2/1 -f 5/4/1 6/69/1 26/5/1 -f 3/72/1 7/70/1 30/71/1 -f 4/75/1 3/72/1 32/73/1 -f 19/61/1 18/74/1 34/62/1 -f 8/36/1 4/75/1 33/37/1 -f 20/19/1 24/76/1 37/20/1 -f 43/127/13 42/77/13 44/79/13 -f 46/128/13 47/80/13 48/82/13 -f 51/129/13 54/83/13 50/85/13 -f 53/130/13 56/86/13 52/88/13 -f 36/21/10 37/20/10 52/90/10 -f 29/67/14 28/60/14 45/92/14 -f 35/3/12 38/2/12 51/94/12 -f 26/5/11 29/67/11 42/96/11 -f 39/63/14 34/62/14 55/98/14 -f 30/71/12 31/38/12 46/100/12 -f 38/2/11 39/63/11 54/102/11 -f 32/73/10 30/71/10 48/104/10 -f 37/20/12 40/65/12 53/106/12 -f 33/37/14 32/73/14 49/108/14 -f 41/53/14 36/21/14 57/110/14 -f 31/38/11 33/37/11 47/112/11 -f 17/131/11 16/115/11 61/114/11 -f 15/132/11 59/113/11 16/115/11 -f 12/117/12 9/133/12 58/119/12 -f 58/119/12 59/113/12 12/117/12 -f 9/134/10 10/120/10 58/119/10 -f 11/135/10 60/118/10 10/120/10 -f 58/119/1 60/118/1 59/113/1 -f 61/114/14 60/118/14 14/121/14 -f 11/136/14 14/121/14 60/118/14 diff --git a/src/main/resources/assets/hbm/models/turret_cheapo_gun.obj b/src/main/resources/assets/hbm/models/turret_cheapo_gun.obj deleted file mode 100644 index b11c7b566..000000000 --- a/src/main/resources/assets/hbm/models/turret_cheapo_gun.obj +++ /dev/null @@ -1,512 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_cheapo_gun.blend' -# www.blender.org -o Cylinder -v -0.009151 -0.034151 1.462500 -v -0.052452 -0.059151 1.462500 -v -0.009151 -0.034151 0.462500 -v -0.052452 -0.059151 0.462500 -v -0.034151 0.009151 1.462500 -v -0.077452 -0.015849 1.462500 -v -0.034151 0.009151 0.462500 -v -0.077452 -0.015849 0.462500 -v 0.034151 0.009151 1.462500 -v 0.077452 -0.015849 1.462500 -v 0.034151 0.009151 0.462500 -v 0.077452 -0.015849 0.462500 -v 0.009151 -0.034151 1.462500 -v 0.052452 -0.059151 1.462500 -v 0.009151 -0.034151 0.462500 -v 0.052452 -0.059151 0.462500 -v -0.025000 0.025000 1.462500 -v -0.025000 0.075000 1.462500 -v -0.025000 0.025000 0.462500 -v -0.025000 0.075000 0.462500 -v 0.025000 0.025000 1.462500 -v 0.025000 0.075000 1.462500 -v 0.025000 0.025000 0.462500 -v 0.025000 0.075000 0.462500 -v 0.000000 0.100000 0.400000 -v 0.000000 0.100000 0.462500 -v 0.070711 0.070711 0.400000 -v 0.070711 0.070711 0.462500 -v 0.100000 -0.000000 0.400000 -v 0.100000 0.000000 0.462500 -v 0.070711 -0.070711 0.400000 -v 0.070711 -0.070711 0.462500 -v -0.000000 -0.100000 0.400000 -v -0.000000 -0.100000 0.462500 -v -0.070711 -0.070711 0.400000 -v -0.070711 -0.070711 0.462500 -v -0.100000 -0.000000 0.400000 -v -0.100000 0.000000 0.462500 -v -0.070711 0.070711 0.400000 -v -0.070711 0.070711 0.462500 -v 0.000000 0.100000 0.700000 -v 0.000000 0.100000 0.762500 -v 0.070711 0.070711 0.700000 -v 0.070711 0.070711 0.762500 -v 0.100000 -0.000000 0.700000 -v 0.100000 0.000000 0.762500 -v 0.070711 -0.070711 0.700000 -v 0.070711 -0.070711 0.762500 -v -0.000000 -0.100000 0.700000 -v -0.000000 -0.100000 0.762500 -v -0.070711 -0.070711 0.700000 -v -0.070711 -0.070711 0.762500 -v -0.100000 -0.000000 0.700000 -v -0.100000 0.000000 0.762500 -v -0.070711 0.070711 0.700000 -v -0.070711 0.070711 0.762500 -v 0.000000 0.100000 0.800000 -v 0.000000 0.100000 0.862500 -v 0.070711 0.070711 0.800000 -v 0.070711 0.070711 0.862500 -v 0.100000 -0.000000 0.800000 -v 0.100000 0.000000 0.862500 -v 0.070711 -0.070711 0.800000 -v 0.070711 -0.070711 0.862500 -v -0.000000 -0.100000 0.800000 -v -0.000000 -0.100000 0.862500 -v -0.070711 -0.070711 0.800000 -v -0.070711 -0.070711 0.862500 -v -0.100000 -0.000000 0.800000 -v -0.100000 0.000000 0.862500 -v -0.070711 0.070711 0.800000 -v -0.070711 0.070711 0.862500 -v 0.000000 0.100000 0.900000 -v 0.000000 0.100000 0.962500 -v 0.070711 0.070711 0.900000 -v 0.070711 0.070711 0.962500 -v 0.100000 -0.000000 0.900000 -v 0.100000 0.000000 0.962500 -v 0.070711 -0.070711 0.900000 -v 0.070711 -0.070711 0.962500 -v -0.000000 -0.100000 0.900000 -v -0.000000 -0.100000 0.962500 -v -0.070711 -0.070711 0.900000 -v -0.070711 -0.070711 0.962500 -v -0.100000 -0.000000 0.900000 -v -0.100000 0.000000 0.962500 -v -0.070711 0.070711 0.900000 -v -0.070711 0.070711 0.962500 -v 0.000000 0.100000 1.100000 -v 0.000000 0.100000 1.412500 -v 0.070711 0.070711 1.100000 -v 0.070711 0.070711 1.412500 -v 0.100000 -0.000000 1.100000 -v 0.100000 0.000000 1.412500 -v 0.070711 -0.070711 1.100000 -v 0.070711 -0.070711 1.412500 -v -0.000000 -0.100000 1.100000 -v -0.000000 -0.100000 1.412500 -v -0.070711 -0.070711 1.100000 -v -0.070711 -0.070711 1.412500 -v -0.100000 -0.000000 1.100000 -v -0.100000 0.000000 1.412500 -v -0.070711 0.070711 1.100000 -v -0.070711 0.070711 1.412500 -vt 0.640052 0.249617 -vt 0.640052 0.280553 -vt 0.021334 0.280552 -vt 0.021334 0.218681 -vt 0.021334 0.187745 -vt 0.640052 0.187745 -vt 0.573646 0.520567 -vt 0.604582 0.520567 -vt 0.604582 0.551503 -vt 0.640052 0.311488 -vt 0.021334 0.311488 -vt 0.640052 0.218681 -vt 0.021334 0.249617 -vt 0.640052 0.083205 -vt 0.640052 0.114141 -vt 0.021334 0.114142 -vt 0.021334 0.052270 -vt 0.021334 0.021334 -vt 0.640052 0.021334 -vt 0.604582 0.667774 -vt 0.604582 0.698710 -vt 0.573646 0.698710 -vt 0.640052 0.145077 -vt 0.021334 0.145077 -vt 0.640052 0.052269 -vt 0.021334 0.083206 -vt 0.640052 0.416028 -vt 0.640052 0.446964 -vt 0.021334 0.446963 -vt 0.021334 0.385092 -vt 0.021334 0.354156 -vt 0.640052 0.354156 -vt 0.573646 0.625107 -vt 0.573646 0.594171 -vt 0.604582 0.594171 -vt 0.640052 0.477900 -vt 0.021334 0.477899 -vt 0.640052 0.385092 -vt 0.021334 0.416028 -vt 0.845395 0.632256 -vt 0.884065 0.632256 -vt 0.884065 0.679611 -vt 0.884065 0.726965 -vt 0.845395 0.726965 -vt 0.884065 0.774320 -vt 0.884064 0.821675 -vt 0.845395 0.821675 -vt 0.884065 0.442838 -vt 0.884065 0.490193 -vt 0.845395 0.490193 -vt 0.884065 0.537547 -vt 0.845395 0.537547 -vt 0.102671 0.758398 -vt 0.136156 0.677559 -vt 0.183511 0.791883 -vt 0.884065 0.584902 -vt 0.845395 0.584902 -vt 0.497494 0.948874 -vt 0.450139 0.948874 -vt 0.416655 0.868035 -vt 0.802727 0.632256 -vt 0.802727 0.679611 -vt 0.764057 0.679611 -vt 0.802727 0.726965 -vt 0.764057 0.726965 -vt 0.802727 0.774320 -vt 0.802727 0.821675 -vt 0.764057 0.821675 -vt 0.802727 0.442838 -vt 0.802727 0.490193 -vt 0.764057 0.490193 -vt 0.802727 0.537547 -vt 0.764057 0.537547 -vt 0.259663 0.758398 -vt 0.293148 0.677559 -vt 0.340502 0.791883 -vt 0.802727 0.584902 -vt 0.764057 0.632256 -vt 0.764057 0.584902 -vt 0.763559 0.978666 -vt 0.716204 0.978666 -vt 0.682720 0.897827 -vt 0.060004 0.709985 -vt 0.060004 0.757340 -vt 0.021334 0.757340 -vt 0.060004 0.804695 -vt 0.021334 0.804695 -vt 0.060004 0.852049 -vt 0.060004 0.899404 -vt 0.021334 0.899404 -vt 0.060004 0.520567 -vt 0.060004 0.567922 -vt 0.021334 0.567922 -vt 0.060004 0.615276 -vt 0.021334 0.615276 -vt 0.416655 0.601406 -vt 0.450139 0.520567 -vt 0.497494 0.634891 -vt 0.021334 0.662631 -vt 0.060004 0.662631 -vt 0.340502 0.948874 -vt 0.293148 0.948875 -vt 0.259663 0.868035 -vt 0.682720 0.632256 -vt 0.682720 0.584902 -vt 0.721389 0.584902 -vt 0.682720 0.537547 -vt 0.721389 0.537547 -vt 0.682720 0.490193 -vt 0.682720 0.442838 -vt 0.721389 0.442838 -vt 0.682720 0.821675 -vt 0.682720 0.774320 -vt 0.721390 0.774320 -vt 0.682720 0.726966 -vt 0.721389 0.726966 -vt 0.259663 0.601406 -vt 0.293148 0.520567 -vt 0.340502 0.634891 -vt 0.721389 0.679611 -vt 0.682720 0.679611 -vt 0.183511 0.948874 -vt 0.136156 0.948875 -vt 0.102671 0.868035 -vt 0.682720 0.210752 -vt 0.682720 0.163398 -vt 0.876069 0.163398 -vt 0.682720 0.116043 -vt 0.876069 0.116043 -vt 0.682720 0.068688 -vt 0.682720 0.021334 -vt 0.876069 0.021334 -vt 0.682720 0.400170 -vt 0.682720 0.352816 -vt 0.876069 0.352816 -vt 0.682720 0.305461 -vt 0.876069 0.305461 -vt 0.102671 0.601406 -vt 0.136156 0.520567 -vt 0.183511 0.634891 -vt 0.682720 0.258107 -vt 0.876069 0.210752 -vt 0.876069 0.258107 -vt 0.497494 0.791883 -vt 0.450139 0.791883 -vt 0.416655 0.711044 -vt 0.573646 0.551503 -vt 0.573646 0.667774 -vt 0.604582 0.625107 -vt 0.845395 0.679611 -vt 0.845395 0.774320 -vt 0.845395 0.442838 -vt 0.216995 0.711044 -vt 0.216995 0.758398 -vt 0.136156 0.791883 -vt 0.102671 0.711044 -vt 0.183511 0.677559 -vt 0.450139 0.834550 -vt 0.530979 0.915390 -vt 0.497494 0.834550 -vt 0.530979 0.868035 -vt 0.416655 0.915390 -vt 0.764057 0.774320 -vt 0.764057 0.442838 -vt 0.373987 0.711044 -vt 0.373987 0.758398 -vt 0.293148 0.791883 -vt 0.259663 0.711044 -vt 0.340502 0.677559 -vt 0.716204 0.864342 -vt 0.797044 0.945181 -vt 0.763559 0.864342 -vt 0.797044 0.897827 -vt 0.682720 0.945182 -vt 0.021334 0.709985 -vt 0.021334 0.852049 -vt 0.021334 0.520567 -vt 0.530979 0.554052 -vt 0.530979 0.601406 -vt 0.450139 0.634891 -vt 0.416655 0.554052 -vt 0.497494 0.520567 -vt 0.293148 0.834551 -vt 0.373987 0.915390 -vt 0.340502 0.834551 -vt 0.373987 0.868035 -vt 0.259663 0.915390 -vt 0.721389 0.632256 -vt 0.721389 0.490193 -vt 0.721390 0.821675 -vt 0.373987 0.554052 -vt 0.373987 0.601407 -vt 0.293148 0.634891 -vt 0.259663 0.554052 -vt 0.340502 0.520567 -vt 0.136156 0.834551 -vt 0.216995 0.915390 -vt 0.183511 0.834551 -vt 0.216995 0.868035 -vt 0.102671 0.915390 -vt 0.876069 0.068688 -vt 0.876069 0.400170 -vt 0.216995 0.554052 -vt 0.216995 0.601407 -vt 0.136156 0.634891 -vt 0.102671 0.554052 -vt 0.183511 0.520567 -vt 0.450139 0.677559 -vt 0.530979 0.758398 -vt 0.497494 0.677559 -vt 0.530979 0.711044 -vt 0.416655 0.758398 -vn 0.500000 -0.866000 0.000000 -vn -0.500000 0.866000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.866000 0.500000 0.000000 -vn -0.866000 -0.500000 0.000000 -vn 0.500000 0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn -0.866000 0.500000 0.000000 -vn 0.866000 -0.500000 0.000000 -vn -1.000000 0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.000000 0.000000 -1.000000 -s off -f 4/1/1 3/2/1 1/3/1 -f 6/4/2 5/5/2 7/6/2 -f 2/7/3 1/8/3 5/9/3 -f 3/2/4 7/10/4 5/11/4 -f 8/12/5 4/1/5 2/13/5 -f 12/14/6 11/15/6 9/16/6 -f 14/17/7 13/18/7 15/19/7 -f 14/20/3 10/21/3 9/22/3 -f 11/15/8 15/23/8 13/24/8 -f 16/25/9 12/14/9 10/26/9 -f 20/27/10 19/28/10 17/29/10 -f 22/30/11 21/31/11 23/32/11 -f 18/33/3 17/34/3 21/35/3 -f 19/28/12 23/36/12 21/37/12 -f 24/38/13 20/27/13 18/39/13 -f 25/40/14 26/41/14 28/42/14 -f 28/42/15 30/43/15 29/44/15 -f 29/44/16 30/43/16 32/45/16 -f 32/45/17 34/46/17 33/47/17 -f 34/48/18 36/49/18 35/50/18 -f 36/49/19 38/51/19 37/52/19 -f 38/53/3 34/54/3 26/55/3 -f 40/56/20 26/41/20 25/40/20 -f 38/51/21 40/56/21 39/57/21 -f 33/58/22 35/59/22 39/60/22 -f 42/61/14 44/62/14 43/63/14 -f 43/63/15 44/62/15 46/64/15 -f 45/65/16 46/64/16 48/66/16 -f 48/66/17 50/67/17 49/68/17 -f 50/69/18 52/70/18 51/71/18 -f 52/70/19 54/72/19 53/73/19 -f 54/74/3 50/75/3 42/76/3 -f 56/77/20 42/61/20 41/78/20 -f 54/72/21 56/77/21 55/79/21 -f 49/80/22 51/81/22 55/82/22 -f 58/83/14 60/84/14 59/85/14 -f 59/85/15 60/84/15 62/86/15 -f 61/87/16 62/86/16 64/88/16 -f 64/88/17 66/89/17 65/90/17 -f 66/91/18 68/92/18 67/93/18 -f 68/92/19 70/94/19 69/95/19 -f 70/96/3 66/97/3 58/98/3 -f 71/99/20 72/100/20 58/83/20 -f 70/94/21 72/100/21 71/99/21 -f 65/101/22 67/102/22 71/103/22 -f 74/104/14 76/105/14 75/106/14 -f 75/106/15 76/105/15 78/107/15 -f 77/108/16 78/107/16 80/109/16 -f 80/109/17 82/110/17 81/111/17 -f 82/112/18 84/113/18 83/114/18 -f 84/113/19 86/115/19 85/116/19 -f 86/117/3 82/118/3 74/119/3 -f 87/120/20 88/121/20 74/104/20 -f 86/115/21 88/121/21 87/120/21 -f 81/122/22 83/123/22 87/124/22 -f 90/125/14 92/126/14 91/127/14 -f 92/126/15 94/128/15 93/129/15 -f 93/129/16 94/128/16 96/130/16 -f 96/130/17 98/131/17 97/132/17 -f 98/133/18 100/134/18 99/135/18 -f 100/134/19 102/136/19 101/137/19 -f 102/138/3 98/139/3 90/140/3 -f 104/141/20 90/125/20 89/142/20 -f 102/136/21 104/141/21 103/143/21 -f 97/144/22 99/145/22 103/146/22 -f 2/13/1 4/1/1 1/3/1 -f 8/12/2 6/4/2 7/6/2 -f 6/147/3 2/7/3 5/9/3 -f 1/3/4 3/2/4 5/11/4 -f 6/4/5 8/12/5 2/13/5 -f 10/26/6 12/14/6 9/16/6 -f 16/25/7 14/17/7 15/19/7 -f 13/148/3 14/20/3 9/22/3 -f 9/16/8 11/15/8 13/24/8 -f 14/17/9 16/25/9 10/26/9 -f 18/39/10 20/27/10 17/29/10 -f 24/38/11 22/30/11 23/32/11 -f 22/149/3 18/33/3 21/35/3 -f 17/29/12 19/28/12 21/37/12 -f 22/30/13 24/38/13 18/39/13 -f 27/150/14 25/40/14 28/42/14 -f 27/150/15 28/42/15 29/44/15 -f 31/151/16 29/44/16 32/45/16 -f 31/151/17 32/45/17 33/47/17 -f 33/152/18 34/48/18 35/50/18 -f 35/50/19 36/49/19 37/52/19 -f 30/153/3 28/154/3 26/55/3 -f 26/55/3 40/155/3 38/53/3 -f 38/53/3 36/156/3 34/54/3 -f 34/54/3 32/157/3 30/153/3 -f 30/153/3 26/55/3 34/54/3 -f 39/57/20 40/56/20 25/40/20 -f 37/52/21 38/51/21 39/57/21 -f 39/60/22 25/158/22 31/159/22 -f 27/160/22 29/161/22 31/159/22 -f 31/159/22 33/58/22 39/60/22 -f 35/59/22 37/162/22 39/60/22 -f 25/158/22 27/160/22 31/159/22 -f 41/78/14 42/61/14 43/63/14 -f 45/65/15 43/63/15 46/64/15 -f 47/163/16 45/65/16 48/66/16 -f 47/163/17 48/66/17 49/68/17 -f 49/164/18 50/69/18 51/71/18 -f 51/71/19 52/70/19 53/73/19 -f 46/165/3 44/166/3 42/76/3 -f 42/76/3 56/167/3 54/74/3 -f 54/74/3 52/168/3 50/75/3 -f 50/75/3 48/169/3 46/165/3 -f 46/165/3 42/76/3 50/75/3 -f 55/79/20 56/77/20 41/78/20 -f 53/73/21 54/72/21 55/79/21 -f 55/82/22 41/170/22 47/171/22 -f 43/172/22 45/173/22 47/171/22 -f 47/171/22 49/80/22 55/82/22 -f 51/81/22 53/174/22 55/82/22 -f 41/170/22 43/172/22 47/171/22 -f 57/175/14 58/83/14 59/85/14 -f 61/87/15 59/85/15 62/86/15 -f 63/176/16 61/87/16 64/88/16 -f 63/176/17 64/88/17 65/90/17 -f 65/177/18 66/91/18 67/93/18 -f 67/93/19 68/92/19 69/95/19 -f 62/178/3 60/179/3 58/98/3 -f 58/98/3 72/180/3 70/96/3 -f 70/96/3 68/181/3 66/97/3 -f 66/97/3 64/182/3 62/178/3 -f 62/178/3 58/98/3 66/97/3 -f 57/175/20 71/99/20 58/83/20 -f 69/95/21 70/94/21 71/99/21 -f 71/103/22 57/183/22 63/184/22 -f 59/185/22 61/186/22 63/184/22 -f 63/184/22 65/101/22 71/103/22 -f 67/102/22 69/187/22 71/103/22 -f 57/183/22 59/185/22 63/184/22 -f 73/188/14 74/104/14 75/106/14 -f 77/108/15 75/106/15 78/107/15 -f 79/189/16 77/108/16 80/109/16 -f 79/189/17 80/109/17 81/111/17 -f 81/190/18 82/112/18 83/114/18 -f 83/114/19 84/113/19 85/116/19 -f 78/191/3 76/192/3 74/119/3 -f 74/119/3 88/193/3 86/117/3 -f 86/117/3 84/194/3 82/118/3 -f 82/118/3 80/195/3 78/191/3 -f 78/191/3 74/119/3 82/118/3 -f 73/188/20 87/120/20 74/104/20 -f 85/116/21 86/115/21 87/120/21 -f 87/124/22 73/196/22 79/197/22 -f 75/198/22 77/199/22 79/197/22 -f 79/197/22 81/122/22 87/124/22 -f 83/123/22 85/200/22 87/124/22 -f 73/196/22 75/198/22 79/197/22 -f 89/142/14 90/125/14 91/127/14 -f 91/127/15 92/126/15 93/129/15 -f 95/201/16 93/129/16 96/130/16 -f 95/201/17 96/130/17 97/132/17 -f 97/202/18 98/133/18 99/135/18 -f 99/135/19 100/134/19 101/137/19 -f 94/203/3 92/204/3 90/140/3 -f 90/140/3 104/205/3 102/138/3 -f 102/138/3 100/206/3 98/139/3 -f 98/139/3 96/207/3 94/203/3 -f 94/203/3 90/140/3 98/139/3 -f 103/143/20 104/141/20 89/142/20 -f 101/137/21 102/136/21 103/143/21 -f 103/146/22 89/208/22 95/209/22 -f 91/210/22 93/211/22 95/209/22 -f 95/209/22 97/144/22 103/146/22 -f 99/145/22 101/212/22 103/146/22 -f 89/208/22 91/210/22 95/209/22 diff --git a/src/main/resources/assets/hbm/models/turret_cheapo_head.obj b/src/main/resources/assets/hbm/models/turret_cheapo_head.obj deleted file mode 100644 index b9b8e240c..000000000 --- a/src/main/resources/assets/hbm/models/turret_cheapo_head.obj +++ /dev/null @@ -1,566 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_cheapo_head.blend' -# www.blender.org -o Cube_Cube.002 -v -0.125000 0.375000 0.125000 -v -0.125000 0.375000 -0.125000 -v 0.125000 0.375000 0.125000 -v 0.125000 0.375000 -0.125000 -v 0.125000 0.125000 0.125000 -v 0.125000 0.125000 -0.125000 -v -0.125000 0.125000 -0.125000 -v -0.125000 0.125000 0.125000 -v 0.000000 0.125000 -0.125000 -v 0.000000 0.125000 0.125000 -v -0.125000 -0.000000 -0.125000 -v -0.000000 0.000000 -0.125000 -v -0.125000 -0.088388 -0.088388 -v -0.000000 -0.088388 -0.088388 -v -0.125000 -0.125000 0.000000 -v 0.000000 -0.125000 0.000000 -v -0.125000 -0.088388 0.088388 -v -0.000000 -0.088388 0.088388 -v -0.125000 0.000000 0.125000 -v -0.000000 0.000000 0.125000 -v 0.000000 0.375000 -0.125000 -v 0.000000 0.375000 -0.500000 -v 0.000000 0.375000 0.125000 -v 0.000000 0.375000 0.375000 -v 0.088388 0.338388 0.125000 -v 0.088388 0.338388 0.375000 -v 0.125000 0.250000 0.125000 -v 0.125000 0.250000 0.375000 -v 0.088388 0.161612 0.125000 -v 0.088388 0.161612 0.375000 -v -0.000000 0.125000 0.125000 -v -0.000000 0.125000 0.375000 -v -0.088388 0.161612 0.125000 -v -0.088388 0.161612 0.375000 -v -0.125000 0.250000 0.125000 -v -0.125000 0.250000 0.375000 -v -0.088388 0.338388 0.125000 -v -0.088388 0.338388 0.375000 -v 0.088388 0.338388 -0.500000 -v 0.088388 0.338388 -0.125000 -v 0.125000 0.250000 -0.500000 -v 0.125000 0.250000 -0.125000 -v 0.088388 0.161612 -0.500000 -v 0.088388 0.161612 -0.125000 -v -0.000000 0.125000 -0.500000 -v -0.000000 0.125000 -0.125000 -v -0.088388 0.161612 -0.500000 -v -0.088388 0.161612 -0.125000 -v -0.125000 0.250000 -0.500000 -v -0.125000 0.250000 -0.125000 -v -0.088388 0.338388 -0.500000 -v -0.088388 0.338388 -0.125000 -v -0.225000 0.225000 -0.500000 -v -0.225000 0.375000 -0.500000 -v -0.225000 0.225000 -0.650000 -v -0.225000 0.375000 -0.650000 -v 0.225000 0.225000 -0.500000 -v 0.225000 0.375000 -0.500000 -v 0.225000 0.225000 -0.650000 -v 0.225000 0.375000 -0.650000 -v -0.090000 0.125000 -0.650000 -v -0.090000 0.125000 -0.500000 -v 0.090000 0.125000 -0.650000 -v 0.090000 0.125000 -0.500000 -v 0.125000 0.100000 0.112500 -v 0.125000 0.300000 0.112500 -v 0.125000 0.100000 -0.012500 -v 0.125000 0.300000 -0.012500 -v 0.475000 0.100000 0.112500 -v 0.475000 0.300000 0.112500 -v 0.475000 0.100000 -0.012500 -v 0.475000 0.300000 -0.012500 -v 0.175000 0.300000 0.087500 -v 0.175000 0.300000 0.012500 -v 0.162500 0.350000 0.087500 -v 0.162500 0.350000 0.012500 -v 0.112500 0.400000 0.087500 -v 0.112500 0.400000 0.012500 -v 0.062500 0.400000 0.087500 -v 0.062500 0.400000 0.012500 -v 0.025000 0.375000 0.087500 -v 0.025000 0.375000 0.012500 -v 0.070711 0.320711 0.375000 -v -0.000000 0.350000 0.375000 -v 0.100000 0.250000 0.375000 -v 0.070711 0.179289 0.375000 -v -0.000000 0.150000 0.375000 -v -0.070711 0.179289 0.375000 -v -0.100000 0.250000 0.375000 -v -0.070711 0.320711 0.375000 -v 0.070711 0.320711 0.400000 -v -0.000000 0.350000 0.400000 -v 0.100000 0.250000 0.400000 -v 0.070711 0.179289 0.400000 -v -0.000000 0.150000 0.400000 -v -0.070711 0.179289 0.400000 -v -0.100000 0.250000 0.400000 -v -0.070711 0.320711 0.400000 -v -0.075000 0.475000 -0.175000 -v -0.075000 0.475000 0.175000 -v -0.039645 0.460355 -0.175000 -v -0.039645 0.460355 0.175000 -v -0.025000 0.425000 -0.175000 -v -0.025000 0.425000 0.175000 -v -0.039645 0.389645 -0.175000 -v -0.039645 0.389645 0.175000 -v -0.075000 0.375000 -0.175000 -v -0.075000 0.375000 0.175000 -v -0.110355 0.389645 -0.175000 -v -0.110355 0.389645 0.175000 -v -0.125000 0.425000 -0.175000 -v -0.125000 0.425000 0.175000 -v -0.110355 0.460355 -0.175000 -v -0.110355 0.460355 0.175000 -vt 0.821962 0.650392 -vt 0.775508 0.650392 -vt 0.775508 0.580710 -vt 0.752281 0.836267 -vt 0.821962 0.836267 -vt 0.801553 0.856676 -vt 0.821962 0.511028 -vt 0.775508 0.511028 -vt 0.775508 0.441347 -vt 0.092938 0.738769 -vt 0.092938 0.788509 -vt 0.023256 0.788509 -vt 0.092938 0.814706 -vt 0.023256 0.814706 -vt 0.092938 0.840903 -vt 0.023256 0.840903 -vt 0.092938 0.890643 -vt 0.023256 0.890643 -vt 0.821962 0.720074 -vt 0.815159 0.769346 -vt 0.782311 0.769346 -vt 0.775508 0.092937 -vt 0.782311 0.043665 -vt 0.815159 0.043665 -vt 0.023256 0.738769 -vt 0.023256 0.669087 -vt 0.092937 0.960325 -vt 0.868474 0.289916 -vt 0.868474 0.236584 -vt 0.938155 0.236584 -vt 0.881349 0.709753 -vt 0.881349 0.656420 -vt 0.927804 0.656420 -vt 0.868474 0.396581 -vt 0.868474 0.343248 -vt 0.938155 0.343248 -vt 0.881349 0.603088 -vt 0.927804 0.603088 -vt 0.868474 0.449913 -vt 0.938155 0.396581 -vt 0.881349 0.549756 -vt 0.927804 0.549756 -vt 0.868474 0.076588 -vt 0.868474 0.023256 -vt 0.938155 0.023256 -vt 0.881349 0.496424 -vt 0.927804 0.496424 -vt 0.868474 0.129920 -vt 0.938155 0.076588 -vt 0.927804 0.923081 -vt 0.881349 0.923081 -vt 0.881349 0.869749 -vt 0.868474 0.183252 -vt 0.938155 0.129920 -vt 0.881349 0.816417 -vt 0.927804 0.816417 -vt 0.868474 0.704419 -vt 0.868474 0.661754 -vt 0.881349 0.763085 -vt 0.927804 0.709753 -vt 0.927804 0.763085 -vt 0.938155 0.289916 -vt 0.938155 0.183252 -vt 0.775508 0.232301 -vt 0.775508 0.162619 -vt 0.821962 0.232301 -vt 0.536236 0.669087 -vt 0.573830 0.707022 -vt 0.562648 0.733675 -vt 0.626139 0.706326 -vt 0.690727 0.732578 -vt 0.627236 0.707263 -vt 0.679546 0.706567 -vt 0.716042 0.669087 -vt 0.821962 0.905949 -vt 0.426702 0.856756 -vt 0.377430 0.877166 -vt 0.426702 0.827893 -vt 0.475975 0.877166 -vt 0.191705 0.669087 -vt 0.252644 0.721342 -vt 0.252084 0.722279 -vt 0.194248 0.702241 -vt 0.139449 0.730026 -vt 0.681292 0.780186 -vt 0.660883 0.829459 -vt 0.632020 0.829459 -vt 0.681292 0.878731 -vt 0.330919 0.730026 -vt 0.293580 0.709473 -vt 0.296123 0.686546 -vt 0.536236 0.780186 -vt 0.585509 0.829459 -vt 0.556646 0.829459 -vt 0.536236 0.878731 -vt 0.821962 0.371665 -vt 0.775508 0.371665 -vt 0.775508 0.301983 -vt 0.274110 0.162619 -vt 0.357728 0.162619 -vt 0.357728 0.190492 -vt 0.023256 0.162619 -vt 0.023256 0.079001 -vt 0.274110 0.079001 -vt 0.728996 0.190492 -vt 0.645378 0.190492 -vt 0.645378 0.162619 -vt 0.274110 0.190492 -vt 0.274110 0.274110 -vt 0.023256 0.274110 -vt 0.451382 0.162619 -vt 0.451382 0.190492 -vt 0.551724 0.162619 -vt 0.551724 0.190492 -vt 0.098512 0.023256 -vt 0.198854 0.023256 -vt 0.198854 0.329856 -vt 0.098512 0.329856 -vt 0.329857 0.511085 -vt 0.218365 0.511085 -vt 0.218365 0.487858 -vt 0.524966 0.511085 -vt 0.524966 0.622576 -vt 0.329857 0.622576 -vt 0.524966 0.487858 -vt 0.636456 0.487858 -vt 0.636456 0.511085 -vt 0.329857 0.487858 -vt 0.329857 0.376367 -vt 0.524966 0.376367 -vt 0.023256 0.511085 -vt 0.023256 0.487858 -vt 0.231864 0.902021 -vt 0.231864 0.888085 -vt 0.260595 0.888085 -vt 0.192446 0.902021 -vt 0.192446 0.888085 -vt 0.164574 0.902021 -vt 0.164574 0.888085 -vt 0.139449 0.902021 -vt 0.139449 0.888085 -vt 0.377430 0.703902 -vt 0.382075 0.703902 -vt 0.382075 0.746567 -vt 0.868474 0.597755 -vt 0.868474 0.555089 -vt 0.868474 0.811084 -vt 0.868474 0.544423 -vt 0.868474 0.501757 -vt 0.868474 0.757752 -vt 0.868474 0.715086 -vt 0.868474 0.917748 -vt 0.868474 0.875082 -vt 0.868474 0.651087 -vt 0.868474 0.608422 -vt 0.868474 0.864416 -vt 0.868474 0.821750 -vt 0.454910 0.673732 -vt 0.485079 0.746567 -vt 0.454910 0.669087 -vt 0.412245 0.673732 -vt 0.489725 0.746567 -vt 0.485080 0.703902 -vt 0.412245 0.781382 -vt 0.412245 0.776736 -vt 0.454910 0.776736 -vt 0.378790 0.749852 -vt 0.408960 0.670447 -vt 0.488364 0.700617 -vt 0.458195 0.780021 -vt 0.224781 0.841573 -vt 0.203448 0.841573 -vt 0.203448 0.776537 -vt 0.182115 0.841573 -vt 0.182115 0.776537 -vt 0.160782 0.841573 -vt 0.160782 0.776537 -vt 0.139449 0.841573 -vt 0.139449 0.776537 -vt 0.310112 0.776537 -vt 0.310112 0.841573 -vt 0.288779 0.841573 -vt 0.267447 0.841573 -vt 0.267447 0.776537 -vt 0.536236 0.940327 -vt 0.572654 0.925242 -vt 0.587738 0.961660 -vt 0.246114 0.841573 -vt 0.224781 0.776537 -vt 0.246114 0.776537 -vt 0.392515 0.923677 -vt 0.428932 0.938762 -vt 0.377430 0.960094 -vt 0.821962 0.580710 -vt 0.821962 0.441347 -vt 0.775508 0.720074 -vt 0.798735 0.789756 -vt 0.821962 0.092937 -vt 0.821962 0.162619 -vt 0.798735 0.023256 -vt 0.092938 0.669087 -vt 0.023256 0.960325 -vt 0.938155 0.449913 -vt 0.927804 0.869749 -vt 0.821962 0.301983 -vt 0.728996 0.162619 -vt 0.023256 0.190492 -vt 0.260595 0.902021 -vt 0.377430 0.746567 -vt 0.868474 0.768418 -vt 0.412245 0.669087 -vt 0.489725 0.703902 -vt 0.454910 0.781382 -vt 0.408960 0.780021 -vt 0.378791 0.700617 -vt 0.458195 0.670448 -vt 0.488364 0.749852 -vt 0.288779 0.776537 -vt 0.572654 0.976744 -vt 0.551321 0.976744 -vt 0.536236 0.961660 -vt 0.551321 0.925242 -vt 0.587738 0.940327 -vt 0.413847 0.975179 -vt 0.392515 0.975179 -vt 0.377430 0.938761 -vt 0.413847 0.923677 -vt 0.428932 0.960094 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 -0.000000 0.000000 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 0.923900 -vn -1.000000 -0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -0.382700 0.923900 0.000000 -vn 0.382700 0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn 0.923900 0.382700 0.000000 -vn -0.382700 -0.923900 0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.923900 0.382700 0.000000 -vn 0.000000 -0.942200 -0.335000 -vn 0.000000 -0.978000 -0.208600 -vn 0.000000 1.000000 0.000000 -vn -0.595200 -0.803600 0.000000 -vn 0.595200 -0.803600 0.000000 -vn 0.970100 0.242500 0.000000 -vn 0.707100 0.707100 0.000000 -vn -0.554700 0.832100 0.000000 -vn 0.441700 -0.780900 -0.441700 -s off -f 10/1/1 9/2/1 6/3/1 -f 21/4/2 4/5/2 40/6/2 -f 27/7/3 42/8/3 4/9/3 -f 12/10/4 14/11/4 13/12/4 -f 14/11/5 16/13/5 15/14/5 -f 16/13/6 18/15/6 17/16/6 -f 18/15/7 20/17/7 19/18/7 -f 20/19/3 18/20/3 14/21/3 -f 11/22/8 13/23/8 17/24/8 -f 12/10/2 11/25/2 7/26/2 -f 19/18/9 20/17/9 10/27/9 -f 52/28/10 21/29/10 22/30/10 -f 24/31/11 26/32/11 25/33/11 -f 48/34/12 50/35/12 49/36/12 -f 26/32/13 28/37/13 27/38/13 -f 46/39/14 48/34/14 47/40/14 -f 28/37/15 30/41/15 29/42/15 -f 44/43/16 46/44/16 45/45/16 -f 30/41/16 32/46/16 31/47/16 -f 42/48/15 44/43/15 43/49/15 -f 31/50/14 32/51/14 34/52/14 -f 40/53/13 42/48/13 41/54/13 -f 34/52/12 36/55/12 35/56/12 -f 24/31/9 84/57/9 83/58/9 -f 38/59/10 24/31/10 23/60/10 -f 36/55/17 38/59/17 37/61/17 -f 50/35/17 52/28/17 51/62/17 -f 21/29/11 40/53/11 39/63/11 -f 50/64/8 7/65/8 35/66/8 -f 50/67/2 48/68/2 7/69/2 -f 7/69/2 48/68/2 46/70/2 -f 6/71/18 9/72/18 46/70/18 -f 44/73/2 42/74/2 6/71/2 -f 42/75/2 40/6/2 4/5/2 -f 52/76/2 50/77/2 2/78/2 -f 52/76/2 2/78/2 21/79/2 -f 8/80/19 10/81/19 31/82/19 -f 33/83/9 35/84/9 8/80/9 -f 35/85/9 37/86/9 1/87/9 -f 37/86/9 23/88/9 1/87/9 -f 27/89/9 29/90/9 5/91/9 -f 10/81/9 5/91/9 29/90/9 -f 27/92/9 3/93/9 25/94/9 -f 25/94/9 3/93/9 23/95/9 -f 23/96/20 21/97/20 2/98/20 -f 56/99/8 55/100/8 53/101/8 -f 60/102/2 59/103/2 55/104/2 -f 58/105/3 57/106/3 59/107/3 -f 54/108/9 53/109/9 57/110/9 -f 55/100/21 61/111/21 62/112/21 -f 60/102/20 56/99/20 54/108/20 -f 61/111/1 63/113/1 64/114/1 -f 59/103/2 63/115/2 61/116/2 -f 53/109/9 62/117/9 64/118/9 -f 57/106/22 64/114/22 63/113/22 -f 68/119/8 67/120/8 65/121/8 -f 72/122/2 71/123/2 67/124/2 -f 70/125/3 69/126/3 71/127/3 -f 66/128/9 65/129/9 69/130/9 -f 67/120/1 71/131/1 69/132/1 -f 72/122/20 68/119/20 66/128/20 -f 76/133/23 75/134/23 73/135/23 -f 78/136/24 77/137/24 75/134/24 -f 80/138/20 79/139/20 77/137/20 -f 82/140/25 81/141/25 79/139/25 -f 89/142/17 97/143/17 98/144/17 -f 28/37/9 85/145/9 86/146/9 -f 38/59/9 36/55/9 89/147/9 -f 30/41/9 86/148/9 87/149/9 -f 38/59/9 90/150/9 84/151/9 -f 32/51/9 87/152/9 88/153/9 -f 26/32/9 83/154/9 85/155/9 -f 34/52/9 88/156/9 89/157/9 -f 97/143/9 95/158/9 93/159/9 -f 87/160/14 95/158/14 96/161/14 -f 85/162/15 93/159/15 94/163/15 -f 84/164/11 92/165/11 91/166/11 -f 90/167/10 98/144/10 92/165/10 -f 88/168/12 96/161/12 97/143/12 -f 86/169/16 94/163/16 95/158/16 -f 83/170/13 91/166/13 93/159/13 -f 100/171/11 102/172/11 101/173/11 -f 102/172/13 104/174/13 103/175/13 -f 104/174/15 106/176/15 105/177/15 -f 106/176/16 108/178/16 107/179/16 -f 107/180/14 108/181/14 110/182/14 -f 110/182/12 112/183/12 111/184/12 -f 112/185/9 108/186/9 104/187/9 -f 114/188/10 100/171/10 99/189/10 -f 112/183/17 114/188/17 113/190/17 -f 105/191/2 109/192/2 101/193/2 -f 5/194/1 10/1/1 6/3/1 -f 4/9/3 3/195/3 27/7/3 -f 27/7/3 5/194/3 6/3/3 -f 6/3/3 42/8/3 27/7/3 -f 11/25/4 12/10/4 13/12/4 -f 13/12/5 14/11/5 15/14/5 -f 15/14/6 16/13/6 17/16/6 -f 17/16/7 18/15/7 19/18/7 -f 12/196/3 9/2/3 10/1/3 -f 10/1/3 20/19/3 12/196/3 -f 18/20/3 16/197/3 14/21/3 -f 14/21/3 12/196/3 20/19/3 -f 19/198/8 8/199/8 7/65/8 -f 7/65/8 11/22/8 19/198/8 -f 13/23/8 15/200/8 17/24/8 -f 17/24/8 19/198/8 11/22/8 -f 9/201/2 12/10/2 7/26/2 -f 8/202/9 19/18/9 10/27/9 -f 51/62/10 52/28/10 22/30/10 -f 23/60/11 24/31/11 25/33/11 -f 47/40/12 48/34/12 49/36/12 -f 25/33/13 26/32/13 27/38/13 -f 45/203/14 46/39/14 47/40/14 -f 27/38/15 28/37/15 29/42/15 -f 43/49/16 44/43/16 45/45/16 -f 29/42/16 30/41/16 31/47/16 -f 41/54/15 42/48/15 43/49/15 -f 33/204/14 31/50/14 34/52/14 -f 39/63/13 40/53/13 41/54/13 -f 33/204/12 34/52/12 35/56/12 -f 26/32/9 24/31/9 83/58/9 -f 37/61/10 38/59/10 23/60/10 -f 35/56/17 36/55/17 37/61/17 -f 49/36/17 50/35/17 51/62/17 -f 22/30/11 21/29/11 39/63/11 -f 35/66/8 1/205/8 2/98/8 -f 2/98/8 50/64/8 35/66/8 -f 7/65/8 8/199/8 35/66/8 -f 9/72/1 7/69/1 46/70/1 -f 44/73/2 6/71/2 46/70/2 -f 33/83/9 8/80/9 31/82/9 -f 31/82/26 10/81/26 29/90/26 -f 2/98/20 1/205/20 23/96/20 -f 23/96/20 3/195/20 4/9/20 -f 4/9/20 21/97/20 23/96/20 -f 54/108/8 56/99/8 53/101/8 -f 56/99/2 60/102/2 55/104/2 -f 60/206/3 58/105/3 59/107/3 -f 58/207/9 54/108/9 57/110/9 -f 53/101/21 55/100/21 62/112/21 -f 58/207/20 60/102/20 54/108/20 -f 62/112/1 61/111/1 64/114/1 -f 55/104/2 59/103/2 61/116/2 -f 57/110/9 53/109/9 64/118/9 -f 59/107/22 57/106/22 63/113/22 -f 66/128/8 68/119/8 65/121/8 -f 68/119/2 72/122/2 67/124/2 -f 72/122/3 70/125/3 71/127/3 -f 70/125/9 66/128/9 69/130/9 -f 65/121/1 67/120/1 69/132/1 -f 70/125/20 72/122/20 66/128/20 -f 74/208/23 76/133/23 73/135/23 -f 76/133/24 78/136/24 75/134/24 -f 78/136/20 80/138/20 77/137/20 -f 80/138/25 82/140/25 79/139/25 -f 90/209/17 89/142/17 98/144/17 -f 30/41/9 28/37/9 86/146/9 -f 90/210/9 38/59/9 89/147/9 -f 32/46/9 30/41/9 87/149/9 -f 24/31/9 38/59/9 84/151/9 -f 34/52/9 32/51/9 88/153/9 -f 28/37/9 26/32/9 85/155/9 -f 36/55/9 34/52/9 89/157/9 -f 93/159/9 91/166/9 92/165/9 -f 92/165/9 98/144/9 93/159/9 -f 97/143/9 96/161/9 95/158/9 -f 95/158/9 94/163/9 93/159/9 -f 93/159/9 98/144/9 97/143/9 -f 88/211/14 87/160/14 96/161/14 -f 86/212/15 85/162/15 94/163/15 -f 83/213/11 84/164/11 91/166/11 -f 84/214/10 90/167/10 92/165/10 -f 89/215/12 88/168/12 97/143/12 -f 87/216/16 86/169/16 95/158/16 -f 85/217/13 83/170/13 93/159/13 -f 99/189/11 100/171/11 101/173/11 -f 101/173/13 102/172/13 103/175/13 -f 103/175/15 104/174/15 105/177/15 -f 105/177/16 106/176/16 107/179/16 -f 109/218/14 107/180/14 110/182/14 -f 109/218/12 110/182/12 111/184/12 -f 104/187/9 102/219/9 100/220/9 -f 100/220/9 114/221/9 104/187/9 -f 112/185/9 110/222/9 108/186/9 -f 108/186/9 106/223/9 104/187/9 -f 104/187/9 114/221/9 112/185/9 -f 113/190/10 114/188/10 99/189/10 -f 111/184/17 112/183/17 113/190/17 -f 113/224/2 99/225/2 101/193/2 -f 101/193/2 103/226/2 105/191/2 -f 105/191/2 107/227/2 109/192/2 -f 109/192/2 111/228/2 113/224/2 -f 113/224/2 101/193/2 109/192/2 diff --git a/src/main/resources/assets/hbm/models/turret_cheapo_rotor.obj b/src/main/resources/assets/hbm/models/turret_cheapo_rotor.obj deleted file mode 100644 index 863a0cac0..000000000 --- a/src/main/resources/assets/hbm/models/turret_cheapo_rotor.obj +++ /dev/null @@ -1,218 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_cheapo_rotor.blend' -# www.blender.org -o Grid.002_Grid.004 -v 0.125000 1.125000 0.125000 -v 0.125000 1.125000 -0.125000 -v 0.000000 1.125000 -0.125000 -v 0.000000 1.125000 0.125000 -v -0.000000 1.250000 -0.125000 -v 0.125000 1.250000 -0.125000 -v -0.000000 1.250000 0.125000 -v 0.125000 1.250000 0.125000 -v -0.000000 1.338388 0.088388 -v 0.125000 1.338388 0.088388 -v -0.000000 1.375000 -0.000000 -v 0.125000 1.375000 -0.000000 -v -0.000000 1.338388 -0.088388 -v 0.125000 1.338388 -0.088388 -v -0.156250 1.250000 -0.050000 -v 0.156250 1.250000 -0.050000 -v -0.156250 1.214645 -0.035355 -v 0.156250 1.214645 -0.035355 -v -0.156250 1.200000 0.000000 -v 0.156250 1.200000 0.000000 -v -0.156250 1.214645 0.035355 -v 0.156250 1.214645 0.035355 -v -0.156250 1.250000 0.050000 -v 0.156250 1.250000 0.050000 -v -0.156250 1.285355 0.035355 -v 0.156250 1.285355 0.035355 -v -0.156250 1.300000 -0.000000 -v 0.156250 1.300000 -0.000000 -v -0.156250 1.285355 -0.035355 -v 0.156250 1.285355 -0.035355 -v 0.000000 1.000000 0.125000 -v 0.000000 1.000000 -0.125000 -v 0.125000 1.000000 -0.125000 -v 0.125000 1.000000 0.125000 -v -0.088388 1.000000 0.088388 -v -0.088388 1.125000 0.088388 -v -0.125000 1.000000 -0.000000 -v -0.125000 1.125000 -0.000000 -v -0.088388 1.000000 -0.088388 -v -0.088388 1.125000 -0.088388 -vt 0.258909 0.629669 -vt 0.038488 0.519458 -vt 0.258909 0.519458 -vt 0.961512 0.258909 -vt 0.929232 0.336840 -vt 0.773371 0.336840 -vt 0.664115 0.258909 -vt 0.664115 0.343261 -vt 0.553904 0.343261 -vt 0.664115 0.427613 -vt 0.553904 0.427613 -vt 0.664115 0.596316 -vt 0.664115 0.706527 -vt 0.553905 0.706527 -vt 0.664115 0.511965 -vt 0.553904 0.596316 -vt 0.553904 0.511965 -vt 0.553904 0.148698 -vt 0.664115 0.148698 -vt 0.395472 0.240932 -vt 0.395472 0.274673 -vt 0.119944 0.274673 -vt 0.395472 0.308414 -vt 0.119944 0.308413 -vt 0.395471 0.038488 -vt 0.395471 0.072228 -vt 0.119944 0.072230 -vt 0.395472 0.105969 -vt 0.119944 0.105970 -vt 0.395472 0.139710 -vt 0.119944 0.139711 -vt 0.395472 0.173451 -vt 0.119944 0.173451 -vt 0.476929 0.274673 -vt 0.453071 0.332272 -vt 0.395472 0.207191 -vt 0.119944 0.240932 -vt 0.119944 0.207192 -vt 0.096086 0.332272 -vt 0.038488 0.274673 -vt 0.062346 0.250815 -vt 0.122839 0.816855 -vt 0.207191 0.816855 -vt 0.207191 0.927066 -vt 0.291543 0.816855 -vt 0.291543 0.927066 -vt 0.553904 0.038488 -vt 0.664115 0.038488 -vt 0.664116 0.816738 -vt 0.553905 0.816738 -vt 0.375894 0.816855 -vt 0.375894 0.927066 -vt 0.038488 0.927066 -vt 0.038488 0.816855 -vt 0.741091 0.148698 -vt 0.741091 0.038488 -vt 0.961512 0.038488 -vt 0.741091 0.556306 -vt 0.741091 0.446095 -vt 0.961512 0.556306 -vt 0.226629 0.707600 -vt 0.148698 0.739880 -vt 0.070768 0.707600 -vt 0.226629 0.441527 -vt 0.038488 0.629669 -vt 0.070768 0.441527 -vt 0.148698 0.409247 -vt 0.741091 0.258909 -vt 0.961512 0.148698 -vt 0.851301 0.369120 -vt 0.553904 0.258909 -vt 0.119944 0.038489 -vt 0.419330 0.250814 -vt 0.453071 0.250814 -vt 0.476929 0.308414 -vt 0.419330 0.332272 -vt 0.096086 0.250815 -vt 0.062346 0.332272 -vt 0.038488 0.308414 -vt 0.122839 0.927066 -vt 0.929232 0.634237 -vt 0.851301 0.666517 -vt 0.773371 0.634237 -vt 0.961512 0.446095 -vn -1.000000 -0.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.382700 0.923900 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.923900 -0.382700 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.923900 0.000000 -0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.382700 0.000000 0.923900 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -s off -f 3/1/1 7/2/1 5/3/1 -f 6/4/2 14/5/2 10/6/2 -f 8/7/3 10/8/3 9/9/3 -f 10/8/4 12/10/4 11/11/4 -f 6/12/5 2/13/5 3/14/5 -f 14/15/6 6/12/6 5/16/6 -f 12/10/7 14/15/7 13/17/7 -f 4/18/8 1/19/8 8/7/8 -f 16/20/9 18/21/9 17/22/9 -f 18/21/10 20/23/10 19/24/10 -f 20/25/11 22/26/11 21/27/11 -f 22/26/12 24/28/12 23/29/12 -f 24/28/3 26/30/3 25/31/3 -f 26/30/4 28/32/4 27/33/4 -f 28/34/2 24/35/2 20/23/2 -f 30/36/6 16/20/6 15/37/6 -f 28/32/7 30/36/7 29/38/7 -f 21/39/1 27/40/1 29/41/1 -f 36/42/13 38/43/13 37/44/13 -f 38/43/14 40/45/14 39/46/14 -f 4/18/8 31/47/8 34/48/8 -f 2/13/5 33/49/5 32/50/5 -f 40/45/15 3/51/15 32/52/15 -f 31/53/16 4/54/16 36/42/16 -f 1/55/2 34/56/2 33/57/2 -f 32/58/17 33/59/17 31/60/17 -f 40/61/18 38/62/18 36/63/18 -f 13/64/1 5/3/1 7/2/1 -f 3/1/1 4/65/1 7/2/1 -f 7/2/1 9/66/1 11/67/1 -f 11/67/1 13/64/1 7/2/1 -f 8/68/2 1/55/2 2/69/2 -f 2/69/2 6/4/2 8/68/2 -f 14/5/2 12/70/2 10/6/2 -f 10/6/2 8/68/2 6/4/2 -f 7/71/3 8/7/3 9/9/3 -f 9/9/4 10/8/4 11/11/4 -f 5/16/5 6/12/5 3/14/5 -f 13/17/6 14/15/6 5/16/6 -f 11/11/7 12/10/7 13/17/7 -f 7/71/8 4/18/8 8/7/8 -f 15/37/9 16/20/9 17/22/9 -f 17/22/10 18/21/10 19/24/10 -f 19/72/11 20/25/11 21/27/11 -f 21/27/12 22/26/12 23/29/12 -f 23/29/3 24/28/3 25/31/3 -f 25/31/4 26/30/4 27/33/4 -f 20/23/2 18/21/2 16/73/2 -f 16/73/2 30/74/2 28/34/2 -f 28/34/2 26/75/2 24/35/2 -f 24/35/2 22/76/2 20/23/2 -f 20/23/2 16/73/2 28/34/2 -f 29/38/6 30/36/6 15/37/6 -f 27/33/7 28/32/7 29/38/7 -f 29/41/1 15/77/1 17/22/1 -f 17/22/1 19/24/1 29/41/1 -f 21/39/1 23/78/1 25/79/1 -f 25/79/1 27/40/1 21/39/1 -f 29/41/1 19/24/1 21/39/1 -f 35/80/13 36/42/13 37/44/13 -f 37/44/14 38/43/14 39/46/14 -f 1/19/8 4/18/8 34/48/8 -f 3/14/5 2/13/5 32/50/5 -f 39/46/15 40/45/15 32/52/15 -f 35/80/16 31/53/16 36/42/16 -f 2/69/2 1/55/2 33/57/2 -f 35/81/17 37/82/17 39/83/17 -f 39/83/17 32/58/17 31/60/17 -f 33/59/17 34/84/17 31/60/17 -f 31/60/17 35/81/17 39/83/17 -f 36/63/18 4/65/18 3/1/18 -f 3/1/18 40/61/18 36/63/18 diff --git a/src/main/resources/assets/hbm/models/turret_flamer_gun.obj b/src/main/resources/assets/hbm/models/turret_flamer_gun.obj deleted file mode 100644 index 2e32208e8..000000000 --- a/src/main/resources/assets/hbm/models/turret_flamer_gun.obj +++ /dev/null @@ -1,2091 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_flamer_gun.blend' -# www.blender.org -o Cube.001_Cube -v -0.200000 -0.200000 0.300000 -v -0.200000 0.200000 0.300000 -v -0.200000 -0.200000 -0.300000 -v -0.200000 0.200000 -0.300000 -v 0.200000 -0.200000 0.300000 -v 0.200000 0.200000 0.300000 -v 0.200000 -0.200000 -0.300000 -v 0.200000 0.200000 -0.300000 -v -0.170000 -0.170000 0.300000 -v -0.170000 0.170000 0.300000 -v 0.170000 0.170000 0.300000 -v 0.170000 -0.170000 0.300000 -v -0.170000 -0.170000 0.450000 -v -0.170000 0.170000 0.450000 -v 0.170000 0.170000 0.450000 -v 0.170000 -0.170000 0.450000 -v 0.000000 0.140000 0.700000 -v 0.098995 0.098995 0.700000 -v 0.000000 0.100000 0.450000 -v 0.000000 0.100000 0.700000 -v 0.070711 0.070711 0.450000 -v 0.070711 0.070711 0.700000 -v 0.100000 -0.000000 0.450000 -v 0.100000 0.000000 0.700000 -v 0.070711 -0.070711 0.450000 -v 0.070711 -0.070711 0.700000 -v -0.000000 -0.100000 0.450000 -v -0.000000 -0.100000 0.700000 -v -0.070711 -0.070711 0.450000 -v -0.070711 -0.070711 0.700000 -v -0.100000 -0.000000 0.450000 -v -0.100000 0.000000 0.700000 -v -0.070711 0.070711 0.450000 -v -0.070711 0.070711 0.700000 -v 0.140000 0.000000 0.700000 -v 0.098995 -0.098995 0.700000 -v -0.000000 -0.140000 0.700000 -v -0.098995 -0.098995 0.700000 -v -0.140000 0.000000 0.700000 -v -0.098995 0.098995 0.700000 -v 0.000000 0.140000 1.150000 -v -0.098995 0.098995 1.150000 -v -0.140000 0.000000 1.150000 -v -0.098995 -0.098995 1.150000 -v -0.000000 -0.140000 1.150000 -v 0.098995 -0.098995 1.150000 -v 0.140000 0.000000 1.150000 -v 0.098995 0.098995 1.150000 -v 0.000000 0.100000 1.150000 -v 0.070711 0.070711 1.150000 -v 0.100000 0.000000 1.150000 -v 0.070711 -0.070711 1.150000 -v -0.000000 -0.100000 1.150000 -v -0.070711 -0.070711 1.150000 -v -0.100000 0.000000 1.150000 -v -0.070711 0.070711 1.150000 -v 0.070711 0.070711 1.250000 -v 0.000000 0.100000 1.250000 -v 0.100000 0.000000 1.250000 -v 0.070711 -0.070711 1.250000 -v -0.000000 -0.100000 1.250000 -v -0.070711 -0.070711 1.250000 -v -0.100000 0.000000 1.250000 -v -0.070711 0.070711 1.250000 -v 0.107322 -0.125000 1.200000 -v 0.125000 -0.142678 1.200000 -v -0.375000 -0.000000 -0.100000 -v 0.375000 0.000000 -0.100000 -v -0.375000 -0.070711 -0.070711 -v 0.375000 -0.070711 -0.070711 -v -0.375000 -0.100000 0.000000 -v 0.375000 -0.100000 0.000000 -v -0.375000 -0.070711 0.070711 -v 0.375000 -0.070711 0.070711 -v -0.375000 -0.000000 0.100000 -v 0.375000 0.000000 0.100000 -v -0.375000 0.070711 0.070711 -v 0.375000 0.070711 0.070711 -v -0.375000 0.100000 -0.000000 -v 0.375000 0.100000 -0.000000 -v -0.375000 0.070711 -0.070711 -v 0.375000 0.070711 -0.070711 -v 0.125000 -0.142678 0.450000 -v 0.107322 -0.125000 0.450000 -v 0.142678 -0.125000 1.200000 -v 0.125000 -0.107322 1.200000 -v 0.142678 -0.125000 0.450000 -v 0.125000 -0.107322 0.450000 -v 0.107411 -0.125089 1.258839 -v 0.125089 -0.107411 1.258839 -v 0.112589 -0.094911 1.241161 -v 0.094911 -0.112589 1.241161 -v 0.076161 -0.093839 1.297855 -v 0.076161 -0.093839 1.268856 -v 0.093839 -0.076161 1.268856 -v 0.093839 -0.076161 1.297855 -v 0.058484 -0.076161 1.297855 -v 0.058484 -0.076161 1.268856 -v 0.076161 -0.058484 1.268856 -v 0.076161 -0.058484 1.297855 -v -0.128701 -0.181791 -0.375000 -v -0.153033 -0.165533 -0.375000 -v -0.169291 -0.141201 -0.375000 -v -0.175000 -0.112500 -0.375000 -v -0.120295 -0.181791 -0.354705 -v -0.137500 -0.165533 -0.337500 -v -0.148996 -0.141201 -0.326004 -v -0.153033 -0.112500 -0.321967 -v -0.100000 -0.181791 -0.346299 -v -0.100000 -0.165533 -0.321967 -v -0.100000 -0.141201 -0.305709 -v -0.100000 -0.112500 -0.300000 -v -0.100000 -0.187500 -0.375000 -v -0.079705 -0.181791 -0.354705 -v -0.062500 -0.165533 -0.337500 -v -0.051004 -0.141201 -0.326004 -v -0.046967 -0.112500 -0.321967 -v -0.071299 -0.181791 -0.375000 -v -0.046967 -0.165533 -0.375000 -v -0.030709 -0.141201 -0.375000 -v -0.025000 -0.112500 -0.375000 -v -0.079705 -0.181791 -0.395295 -v -0.062500 -0.165533 -0.412500 -v -0.051004 -0.141201 -0.423996 -v -0.046967 -0.112500 -0.428033 -v -0.100000 -0.181791 -0.403701 -v -0.100000 -0.165533 -0.428033 -v -0.100000 -0.141201 -0.444291 -v -0.100000 -0.112500 -0.450000 -v -0.120295 -0.181791 -0.395295 -v -0.137500 -0.165533 -0.412500 -v -0.148996 -0.141201 -0.423996 -v -0.153033 -0.112500 -0.428033 -v -0.175000 0.112500 -0.375000 -v -0.169291 0.141201 -0.375000 -v -0.153033 0.165533 -0.375000 -v -0.128701 0.181791 -0.375000 -v -0.153033 0.112500 -0.321967 -v -0.148996 0.141201 -0.326004 -v -0.137500 0.165533 -0.337500 -v -0.120295 0.181791 -0.354705 -v -0.100000 0.112500 -0.300000 -v -0.100000 0.141201 -0.305709 -v -0.100000 0.165533 -0.321967 -v -0.100000 0.181791 -0.346299 -v -0.046967 0.112500 -0.321967 -v -0.051004 0.141201 -0.326004 -v -0.062500 0.165533 -0.337500 -v -0.079705 0.181791 -0.354705 -v -0.025000 0.112500 -0.375000 -v -0.030709 0.141201 -0.375000 -v -0.046967 0.165533 -0.375000 -v -0.071299 0.181791 -0.375000 -v -0.046967 0.112500 -0.428033 -v -0.051004 0.141201 -0.423996 -v -0.062500 0.165533 -0.412500 -v -0.079705 0.181791 -0.395295 -v -0.100000 0.112500 -0.450000 -v -0.100000 0.141201 -0.444291 -v -0.100000 0.165533 -0.428033 -v -0.100000 0.181791 -0.403701 -v -0.153033 0.112500 -0.428033 -v -0.148996 0.141201 -0.423996 -v -0.137500 0.165533 -0.412500 -v -0.120295 0.181791 -0.395295 -v 0.071299 -0.181791 -0.375000 -v 0.046967 -0.165533 -0.375000 -v 0.030709 -0.141201 -0.375000 -v 0.025000 -0.112500 -0.375000 -v 0.079705 -0.181791 -0.354705 -v 0.062500 -0.165533 -0.337500 -v 0.051004 -0.141201 -0.326004 -v 0.046967 -0.112500 -0.321967 -v 0.100000 -0.181791 -0.346299 -v 0.100000 -0.165533 -0.321967 -v 0.100000 -0.141201 -0.305709 -v 0.100000 -0.112500 -0.300000 -v 0.100000 -0.187500 -0.375000 -v 0.120295 -0.181791 -0.354705 -v 0.137500 -0.165533 -0.337500 -v 0.148996 -0.141201 -0.326004 -v 0.153033 -0.112500 -0.321967 -v 0.128701 -0.181791 -0.375000 -v 0.153033 -0.165533 -0.375000 -v 0.169291 -0.141201 -0.375000 -v 0.175000 -0.112500 -0.375000 -v 0.120295 -0.181791 -0.395295 -v 0.137500 -0.165533 -0.412500 -v 0.148996 -0.141201 -0.423996 -v 0.153033 -0.112500 -0.428033 -v 0.100000 -0.181791 -0.403701 -v 0.100000 -0.165533 -0.428033 -v 0.100000 -0.141201 -0.444291 -v 0.100000 -0.112500 -0.450000 -v 0.079705 -0.181791 -0.395295 -v 0.062500 -0.165533 -0.412500 -v 0.051004 -0.141201 -0.423996 -v 0.046967 -0.112500 -0.428033 -v 0.025000 0.112500 -0.375000 -v 0.030709 0.141201 -0.375000 -v 0.046967 0.165533 -0.375000 -v 0.071299 0.181791 -0.375000 -v 0.046967 0.112500 -0.321967 -v 0.051004 0.141201 -0.326004 -v 0.062500 0.165533 -0.337500 -v 0.079705 0.181791 -0.354705 -v 0.100000 0.112500 -0.300000 -v 0.100000 0.141201 -0.305709 -v 0.100000 0.165533 -0.321967 -v 0.100000 0.181791 -0.346299 -v 0.153033 0.112500 -0.321967 -v 0.148996 0.141201 -0.326004 -v 0.137500 0.165533 -0.337500 -v 0.120295 0.181791 -0.354705 -v 0.175000 0.112500 -0.375000 -v 0.169291 0.141201 -0.375000 -v 0.153033 0.165533 -0.375000 -v 0.128701 0.181791 -0.375000 -v 0.153033 0.112500 -0.428033 -v 0.148996 0.141201 -0.423996 -v 0.137500 0.165533 -0.412500 -v 0.120295 0.181791 -0.395295 -v 0.100000 0.112500 -0.450000 -v 0.100000 0.141201 -0.444291 -v 0.100000 0.165533 -0.428033 -v 0.100000 0.181791 -0.403701 -v 0.046967 0.112500 -0.428033 -v 0.051004 0.141201 -0.423996 -v 0.062500 0.165533 -0.412500 -v 0.079705 0.181791 -0.395295 -v -0.128701 0.211791 -0.375000 -v -0.120295 0.204025 -0.356250 -v -0.100000 0.200808 -0.348484 -v -0.079705 0.204025 -0.356250 -v -0.071299 0.211791 -0.375000 -v -0.079705 0.219558 -0.393750 -v -0.100000 0.222775 -0.401517 -v -0.120295 0.219558 -0.393750 -v 0.071299 0.211791 -0.375000 -v 0.079705 0.204025 -0.356250 -v 0.100000 0.200808 -0.348484 -v 0.120295 0.204025 -0.356250 -v 0.128701 0.211791 -0.375000 -v 0.120295 0.219558 -0.393750 -v 0.100000 0.222775 -0.401517 -v 0.079705 0.219558 -0.393750 -v -0.128701 0.239508 -0.363520 -v -0.120295 0.225157 -0.349169 -v -0.100000 0.219213 -0.343225 -v -0.079705 0.225157 -0.349169 -v -0.071299 0.239508 -0.363520 -v -0.079705 0.253858 -0.377870 -v -0.100000 0.259802 -0.383814 -v -0.120295 0.253858 -0.377870 -v 0.071299 0.239508 -0.363520 -v 0.079705 0.225157 -0.349169 -v 0.100000 0.219213 -0.343225 -v 0.120295 0.225157 -0.349169 -v 0.128701 0.239508 -0.363520 -v 0.120295 0.253858 -0.377870 -v 0.100000 0.259802 -0.383814 -v 0.079705 0.253858 -0.377870 -v -0.128701 0.260721 -0.342306 -v -0.120295 0.241971 -0.334540 -v -0.100000 0.234204 -0.331323 -v -0.079705 0.241971 -0.334540 -v -0.071299 0.260721 -0.342306 -v -0.079705 0.279471 -0.350073 -v -0.100000 0.287237 -0.353290 -v -0.120295 0.279471 -0.350073 -v 0.071299 0.260721 -0.342306 -v 0.079705 0.241971 -0.334540 -v 0.100000 0.234204 -0.331323 -v 0.120295 0.241971 -0.334540 -v 0.128701 0.260721 -0.342306 -v 0.120295 0.279471 -0.350073 -v 0.100000 0.287237 -0.353290 -v 0.079705 0.279471 -0.350073 -v -0.128701 0.272201 -0.314590 -v -0.120295 0.251906 -0.314590 -v -0.100000 0.243500 -0.314590 -v -0.079705 0.251906 -0.314590 -v -0.071299 0.272201 -0.314590 -v -0.079705 0.292496 -0.314590 -v -0.100000 0.300902 -0.314590 -v -0.120295 0.292496 -0.314590 -v 0.071299 0.272201 -0.314590 -v 0.079705 0.251906 -0.314590 -v 0.100000 0.243500 -0.314590 -v 0.120295 0.251906 -0.314590 -v 0.128701 0.272201 -0.314590 -v 0.120295 0.292496 -0.314590 -v 0.100000 0.300902 -0.314590 -v 0.079705 0.292496 -0.314590 -v -0.128701 0.272201 -0.284590 -v -0.120295 0.253451 -0.292356 -v -0.100000 0.245685 -0.295573 -v -0.079705 0.253451 -0.292356 -v -0.071299 0.272201 -0.284590 -v -0.079705 0.290951 -0.276823 -v -0.100000 0.298718 -0.273607 -v -0.120295 0.290951 -0.276823 -v 0.071299 0.272201 -0.284590 -v 0.079705 0.253451 -0.292356 -v 0.100000 0.245685 -0.295573 -v 0.120295 0.253451 -0.292356 -v 0.128701 0.272201 -0.284590 -v 0.120295 0.290951 -0.276823 -v 0.100000 0.298718 -0.273607 -v 0.079705 0.290951 -0.276823 -v -0.128701 0.260721 -0.256874 -v -0.120295 0.246370 -0.271224 -v -0.100000 0.240426 -0.277168 -v -0.079705 0.246370 -0.271224 -v -0.071299 0.260721 -0.256874 -v -0.079705 0.275071 -0.242523 -v -0.100000 0.281016 -0.236579 -v -0.120295 0.275071 -0.242523 -v 0.071299 0.260721 -0.256874 -v 0.079705 0.246370 -0.271224 -v 0.100000 0.240426 -0.277168 -v 0.120295 0.246370 -0.271224 -v 0.128701 0.260721 -0.256874 -v 0.120295 0.275071 -0.242523 -v 0.100000 0.281016 -0.236579 -v 0.079705 0.275071 -0.242523 -v -0.128701 0.239508 -0.235660 -v -0.120295 0.231741 -0.254410 -v -0.100000 0.228524 -0.262177 -v -0.079705 0.231741 -0.254410 -v -0.071299 0.239508 -0.235660 -v -0.079705 0.247274 -0.216910 -v -0.100000 0.250491 -0.209144 -v -0.120295 0.247274 -0.216910 -v 0.071299 0.239508 -0.235660 -v 0.079705 0.231741 -0.254410 -v 0.100000 0.228524 -0.262177 -v 0.120295 0.231741 -0.254410 -v 0.128701 0.239508 -0.235660 -v 0.120295 0.247274 -0.216910 -v 0.100000 0.250491 -0.209144 -v 0.079705 0.247274 -0.216910 -v -0.128701 0.211791 -0.224180 -v -0.120295 0.211791 -0.244475 -v -0.100000 0.211791 -0.252881 -v -0.079705 0.211791 -0.244475 -v -0.071299 0.211791 -0.224180 -v -0.079705 0.211791 -0.203885 -v -0.100000 0.211791 -0.195479 -v -0.120295 0.211791 -0.203885 -v 0.071299 0.211791 -0.224180 -v 0.079705 0.211791 -0.244475 -v 0.100000 0.211791 -0.252881 -v 0.120295 0.211791 -0.244475 -v 0.128701 0.211791 -0.224180 -v 0.120295 0.211791 -0.203885 -v 0.100000 0.211791 -0.195479 -v 0.079705 0.211791 -0.203885 -v -0.128701 0.191791 -0.224180 -v -0.120295 0.191791 -0.244475 -v -0.100000 0.191791 -0.252881 -v -0.079705 0.191791 -0.244475 -v -0.071299 0.191791 -0.224180 -v -0.079705 0.191791 -0.203885 -v -0.100000 0.191791 -0.195479 -v -0.120295 0.191791 -0.203885 -v 0.071299 0.191791 -0.224180 -v 0.079705 0.191791 -0.244475 -v 0.100000 0.191791 -0.252881 -v 0.120295 0.191791 -0.244475 -v 0.128701 0.191791 -0.224180 -v 0.120295 0.191791 -0.203885 -v 0.100000 0.191791 -0.195479 -v 0.079705 0.191791 -0.203885 -v -0.185000 -0.025000 -0.300000 -v -0.185000 0.025000 -0.300000 -v -0.185000 -0.025000 -0.457500 -v -0.185000 0.025000 -0.457500 -v 0.185000 -0.025000 -0.300000 -v 0.185000 0.025000 -0.300000 -v 0.185000 -0.025000 -0.457500 -v 0.185000 0.025000 -0.457500 -v -0.050000 0.200000 0.250000 -v -0.050000 0.250000 0.150000 -v -0.050000 0.200000 -0.150000 -v -0.050000 0.250000 -0.150000 -v 0.050000 0.200000 0.250000 -v 0.050000 0.250000 0.150000 -v 0.050000 0.200000 -0.150000 -v 0.050000 0.250000 -0.150000 -vt 0.605984 0.310453 -vt 0.605984 0.458218 -vt 0.384336 0.458218 -vt 0.605983 0.162688 -vt 0.753748 0.162688 -vt 0.753749 0.310453 -vt 0.384336 0.162689 -vt 0.384336 0.014924 -vt 0.605983 0.014924 -vt 0.236571 0.310454 -vt 0.247653 0.299371 -vt 0.373254 0.299371 -vt 0.014924 0.310454 -vt 0.014924 0.162689 -vt 0.236571 0.162689 -vt 0.384336 0.310454 -vt 0.586653 0.576878 -vt 0.547471 0.616060 -vt 0.458658 0.527248 -vt 0.247653 0.173771 -vt 0.373254 0.173771 -vt 0.458658 0.704873 -vt 0.369845 0.616060 -vt 0.497840 0.744055 -vt 0.330663 0.655243 -vt 0.419476 0.488066 -vt 0.194811 0.804730 -vt 0.028575 0.804730 -vt 0.028575 0.765147 -vt 0.208463 0.601160 -vt 0.194811 0.606815 -vt 0.194811 0.567232 -vt 0.300816 0.640743 -vt 0.208463 0.640743 -vt 0.208463 0.612470 -vt 0.194811 0.646398 -vt 0.028575 0.646398 -vt 0.028575 0.606815 -vt 0.208463 0.770802 -vt 0.208463 0.799075 -vt 0.300816 0.601160 -vt 0.208463 0.572887 -vt 0.028575 0.567232 -vt 0.208463 0.680326 -vt 0.194811 0.685981 -vt 0.300816 0.561577 -vt 0.208463 0.561577 -vt 0.208463 0.533303 -vt 0.194811 0.765147 -vt 0.028575 0.725564 -vt 0.208463 0.521994 -vt 0.194811 0.527649 -vt 0.194811 0.488066 -vt 0.300816 0.521994 -vt 0.208463 0.493720 -vt 0.028575 0.685981 -vt 0.208463 0.691636 -vt 0.208463 0.719909 -vt 0.194811 0.725564 -vt 0.300816 0.770802 -vt 0.014924 0.640743 -vt 0.014924 0.612469 -vt 0.208463 0.759492 -vt 0.208463 0.731219 -vt 0.300816 0.731219 -vt 0.208463 0.652053 -vt 0.300816 0.652053 -vt 0.300816 0.691636 -vt 0.028575 0.527649 -vt 0.028576 0.488066 -vt 0.014924 0.601160 -vt 0.014924 0.572886 -vt 0.014924 0.561577 -vt 0.014924 0.533303 -vt 0.014924 0.521994 -vt 0.014924 0.493720 -vt 0.014924 0.799075 -vt 0.014924 0.770802 -vt 0.014924 0.759492 -vt 0.014924 0.731219 -vt 0.014924 0.719909 -vt 0.014924 0.691636 -vt 0.014924 0.680326 -vt 0.014924 0.652053 -vt 0.820537 0.370734 -vt 0.783596 0.370734 -vt 0.783596 0.342460 -vt 0.215366 0.882843 -vt 0.235359 0.834577 -vt 0.263633 0.902836 -vt 0.820537 0.427281 -vt 0.783596 0.427281 -vt 0.783596 0.399007 -vt 0.820537 0.229366 -vt 0.820537 0.257639 -vt 0.783596 0.257639 -vt 0.820537 0.314187 -vt 0.783596 0.314187 -vt 0.783596 0.285913 -vt 0.820537 0.342460 -vt 0.820537 0.399007 -vt 0.820537 0.201092 -vt 0.783596 0.229366 -vt 0.820537 0.285913 -vt 0.678228 0.910991 -vt 0.681824 0.919498 -vt 0.658226 0.919498 -vt 0.893559 0.657708 -vt 0.893559 0.685981 -vt 0.616500 0.685981 -vt 0.678228 0.937239 -vt 0.678257 0.946475 -vt 0.661727 0.946526 -vt 0.893559 0.714255 -vt 0.958883 0.937969 -vt 0.958883 0.947204 -vt 0.681824 0.947204 -vt 0.893559 0.488066 -vt 0.893559 0.516340 -vt 0.616500 0.516339 -vt 0.958883 0.919498 -vt 0.958883 0.928733 -vt 0.681824 0.928733 -vt 0.893559 0.544613 -vt 0.616500 0.544613 -vt 0.658226 0.928733 -vt 0.893559 0.572887 -vt 0.616500 0.572887 -vt 0.681824 0.937968 -vt 0.893559 0.601160 -vt 0.616500 0.601160 -vt 0.958883 0.910263 -vt 0.893559 0.629434 -vt 0.616500 0.657708 -vt 0.616500 0.629434 -vt 0.661698 0.937291 -vt 0.657653 0.937950 -vt 0.643538 0.936764 -vt 0.636448 0.928733 -vt 0.627213 0.928733 -vt 0.627213 0.919498 -vt 0.656879 0.947153 -vt 0.642765 0.945967 -vt 0.636448 0.919498 -vt 0.643538 0.911467 -vt 0.616500 0.928733 -vt 0.616500 0.919498 -vt 0.636448 0.939446 -vt 0.627213 0.939446 -vt 0.636448 0.948681 -vt 0.627213 0.948681 -vt 0.627213 0.908785 -vt 0.913932 0.035192 -vt 0.928927 0.035192 -vt 0.931225 0.045755 -vt 0.910827 0.056535 -vt 0.911634 0.045755 -vt 0.917372 0.024944 -vt 0.925487 0.024944 -vt 0.932839 0.045755 -vt 0.952430 0.045755 -vt 0.953237 0.056535 -vt 0.938577 0.024944 -vt 0.946692 0.024944 -vt 0.950132 0.035192 -vt 0.935138 0.035192 -vt 0.784403 0.045755 -vt 0.786701 0.035192 -vt 0.801695 0.035192 -vt 0.803994 0.045755 -vt 0.804801 0.056535 -vt 0.790141 0.024944 -vt 0.798256 0.024944 -vt 0.807906 0.035192 -vt 0.822901 0.035192 -vt 0.825199 0.045755 -vt 0.805608 0.045755 -vt 0.826006 0.056535 -vt 0.811346 0.024944 -vt 0.819461 0.024944 -vt 0.826813 0.045755 -vt 0.846404 0.045755 -vt 0.847211 0.056535 -vt 0.832551 0.024944 -vt 0.840666 0.024944 -vt 0.844106 0.035192 -vt 0.829112 0.035192 -vt 0.848018 0.045755 -vt 0.867609 0.045755 -vt 0.853756 0.024944 -vt 0.861871 0.024944 -vt 0.865311 0.035192 -vt 0.850317 0.035192 -vt 0.871522 0.035192 -vt 0.886516 0.035192 -vt 0.888815 0.045755 -vt 0.869224 0.045755 -vt 0.889622 0.056535 -vt 0.874962 0.024944 -vt 0.883077 0.024944 -vt 0.921430 0.014924 -vt 0.942635 0.014924 -vt 0.794198 0.014924 -vt 0.815404 0.014924 -vt 0.836609 0.014924 -vt 0.857814 0.014924 -vt 0.879019 0.014924 -vt 0.892727 0.035192 -vt 0.907721 0.035192 -vt 0.910020 0.045755 -vt 0.896167 0.024944 -vt 0.900224 0.014924 -vt 0.904282 0.024944 -vt 0.953237 0.139653 -vt 0.932032 0.139653 -vt 0.932032 0.056535 -vt 0.910827 0.139653 -vt 0.890429 0.045755 -vt 0.889622 0.139653 -vt 0.868416 0.139653 -vt 0.868416 0.056535 -vt 0.911634 0.150433 -vt 0.931225 0.150433 -vt 0.928927 0.160997 -vt 0.913932 0.160997 -vt 0.925487 0.171245 -vt 0.932839 0.150433 -vt 0.952430 0.150433 -vt 0.950132 0.160997 -vt 0.935138 0.160997 -vt 0.946692 0.171245 -vt 0.790141 0.171245 -vt 0.786701 0.160997 -vt 0.801695 0.160997 -vt 0.783596 0.139653 -vt 0.804801 0.139653 -vt 0.803994 0.150433 -vt 0.784403 0.150433 -vt 0.826006 0.139653 -vt 0.825199 0.150433 -vt 0.807906 0.160997 -vt 0.805608 0.150433 -vt 0.822901 0.160997 -vt 0.819461 0.171245 -vt 0.829112 0.160997 -vt 0.826813 0.150433 -vt 0.846404 0.150433 -vt 0.844106 0.160997 -vt 0.840666 0.171245 -vt 0.847211 0.139653 -vt 0.850317 0.160997 -vt 0.865311 0.160997 -vt 0.861871 0.171245 -vt 0.867609 0.150433 -vt 0.848018 0.150433 -vt 0.871522 0.160997 -vt 0.886516 0.160997 -vt 0.883077 0.171245 -vt 0.888815 0.150433 -vt 0.869224 0.150433 -vt 0.890429 0.150433 -vt 0.910020 0.150433 -vt 0.907721 0.160997 -vt 0.896167 0.171245 -vt 0.892727 0.160997 -vt 0.783596 0.056535 -vt 0.461000 0.794171 -vt 0.475994 0.794171 -vt 0.478293 0.804735 -vt 0.457894 0.815515 -vt 0.458702 0.804735 -vt 0.464440 0.783923 -vt 0.472555 0.783923 -vt 0.479100 0.815515 -vt 0.479907 0.804735 -vt 0.499498 0.804735 -vt 0.485645 0.783923 -vt 0.493760 0.783923 -vt 0.497199 0.794171 -vt 0.482205 0.794171 -vt 0.331470 0.804734 -vt 0.333769 0.794171 -vt 0.348763 0.794171 -vt 0.351061 0.804734 -vt 0.351868 0.815514 -vt 0.337209 0.783922 -vt 0.345323 0.783922 -vt 0.354974 0.794171 -vt 0.369968 0.794171 -vt 0.372267 0.804734 -vt 0.352676 0.804734 -vt 0.373074 0.815514 -vt 0.358414 0.783923 -vt 0.366529 0.783923 -vt 0.373881 0.804734 -vt 0.393472 0.804734 -vt 0.394279 0.815514 -vt 0.379619 0.783923 -vt 0.387734 0.783923 -vt 0.391173 0.794171 -vt 0.376179 0.794171 -vt 0.395086 0.804734 -vt 0.414677 0.804734 -vt 0.397384 0.794171 -vt 0.400824 0.783923 -vt 0.408939 0.783923 -vt 0.412379 0.794171 -vt 0.418590 0.794171 -vt 0.433584 0.794171 -vt 0.435882 0.804734 -vt 0.416291 0.804734 -vt 0.436689 0.815515 -vt 0.422029 0.783923 -vt 0.430144 0.783923 -vt 0.468497 0.773903 -vt 0.489702 0.773903 -vt 0.341266 0.773903 -vt 0.362471 0.773903 -vt 0.383676 0.773903 -vt 0.404882 0.773903 -vt 0.426087 0.773903 -vt 0.439795 0.794171 -vt 0.454789 0.794171 -vt 0.457087 0.804735 -vt 0.443235 0.783923 -vt 0.447292 0.773903 -vt 0.451349 0.783923 -vt 0.500305 0.815515 -vt 0.500305 0.898633 -vt 0.479099 0.898632 -vt 0.457894 0.898632 -vt 0.437496 0.804734 -vt 0.436689 0.898632 -vt 0.415484 0.898632 -vt 0.415484 0.815515 -vt 0.461000 0.919976 -vt 0.458701 0.909413 -vt 0.478292 0.909413 -vt 0.475994 0.919976 -vt 0.472554 0.930224 -vt 0.479906 0.909413 -vt 0.499497 0.909413 -vt 0.497199 0.919976 -vt 0.482205 0.919976 -vt 0.493759 0.930224 -vt 0.333768 0.919975 -vt 0.348763 0.919975 -vt 0.345323 0.930224 -vt 0.331470 0.909412 -vt 0.330663 0.898632 -vt 0.351868 0.898632 -vt 0.351061 0.909412 -vt 0.373073 0.898632 -vt 0.372266 0.909412 -vt 0.352675 0.909412 -vt 0.369968 0.919975 -vt 0.354974 0.919975 -vt 0.366528 0.930224 -vt 0.373881 0.909412 -vt 0.393472 0.909412 -vt 0.391173 0.919975 -vt 0.376179 0.919975 -vt 0.387733 0.930224 -vt 0.394279 0.898632 -vt 0.400824 0.930224 -vt 0.397384 0.919976 -vt 0.412378 0.919976 -vt 0.395086 0.909412 -vt 0.414677 0.909413 -vt 0.418589 0.919976 -vt 0.433584 0.919976 -vt 0.430144 0.930224 -vt 0.435882 0.909413 -vt 0.416291 0.909413 -vt 0.239640 0.947512 -vt 0.231541 0.947006 -vt 0.232233 0.935945 -vt 0.895743 0.409236 -vt 0.903946 0.408532 -vt 0.903250 0.416617 -vt 0.437496 0.909413 -vt 0.457087 0.909413 -vt 0.454789 0.919976 -vt 0.443234 0.930224 -vt 0.439794 0.919976 -vt 0.330663 0.815514 -vt 0.850384 0.290224 -vt 0.850713 0.282116 -vt 0.864672 0.282464 -vt 0.530152 0.806284 -vt 0.545310 0.806592 -vt 0.544113 0.814618 -vt 0.896225 0.368688 -vt 0.896728 0.360589 -vt 0.904896 0.361625 -vt 0.223442 0.946502 -vt 0.215366 0.945701 -vt 0.216371 0.938702 -vt 0.895568 0.401123 -vt 0.906647 0.400880 -vt 0.895718 0.376787 -vt 0.907286 0.369380 -vt 0.897529 0.352514 -vt 0.904529 0.353518 -vt 0.247748 0.947841 -vt 0.239987 0.933554 -vt 0.255863 0.947841 -vt 0.256082 0.933880 -vt 0.263733 0.936583 -vt 0.248055 0.932683 -vt 0.272089 0.947488 -vt 0.271385 0.939285 -vt 0.279470 0.939980 -vt 0.895389 0.384895 -vt 0.909677 0.377134 -vt 0.224478 0.938334 -vt 0.895389 0.393010 -vt 0.909351 0.393229 -vt 0.263976 0.947663 -vt 0.910548 0.385202 -vt 0.865364 0.368728 -vt 0.854285 0.368971 -vt 0.856986 0.361319 -vt 0.895568 0.306452 -vt 0.906647 0.306209 -vt 0.903946 0.313861 -vt 0.530481 0.798176 -vt 0.544440 0.798523 -vt 0.851220 0.274017 -vt 0.862280 0.274709 -vt 0.851723 0.265918 -vt 0.859891 0.266954 -vt 0.530988 0.790077 -vt 0.542048 0.790769 -vt 0.531491 0.781978 -vt 0.539659 0.783014 -vt 0.852524 0.257843 -vt 0.859524 0.258848 -vt 0.532292 0.773903 -vt 0.539292 0.774907 -vt 0.850737 0.314565 -vt 0.858940 0.313861 -vt 0.858245 0.321946 -vt 0.530505 0.830625 -vt 0.538708 0.829921 -vt 0.538013 0.838006 -vt 0.850562 0.306452 -vt 0.861642 0.306209 -vt 0.530330 0.822512 -vt 0.541410 0.822269 -vt 0.850384 0.298339 -vt 0.864346 0.298558 -vt 0.530152 0.814399 -vt 0.865542 0.290532 -vt 0.543971 0.925322 -vt 0.543170 0.933397 -vt 0.536171 0.932392 -vt 0.937729 0.536715 -vt 0.937226 0.544814 -vt 0.929058 0.543778 -vt 0.895389 0.298339 -vt 0.909351 0.298558 -vt 0.865542 0.376841 -vt 0.851581 0.376622 -vt 0.895389 0.290225 -vt 0.910548 0.290532 -vt 0.865542 0.384955 -vt 0.850384 0.384648 -vt 0.895718 0.282116 -vt 0.909677 0.282464 -vt 0.865214 0.393064 -vt 0.851255 0.392716 -vt 0.896225 0.274017 -vt 0.907285 0.274709 -vt 0.896728 0.265918 -vt 0.904896 0.266954 -vt 0.864707 0.401163 -vt 0.853646 0.400471 -vt 0.864203 0.409262 -vt 0.856036 0.408226 -vt 0.897529 0.257843 -vt 0.904529 0.258847 -vt 0.863402 0.417337 -vt 0.856403 0.416332 -vt 0.895743 0.314565 -vt 0.903250 0.321946 -vt 0.865189 0.360615 -vt 0.857682 0.353234 -vt 0.141976 0.953465 -vt 0.133868 0.953136 -vt 0.134215 0.939178 -vt 0.047305 0.953465 -vt 0.047612 0.938307 -vt 0.055638 0.939504 -vt 0.936424 0.552889 -vt 0.929425 0.551884 -vt 0.544957 0.876674 -vt 0.536754 0.877379 -vt 0.537449 0.869294 -vt 0.938211 0.496167 -vt 0.930008 0.496871 -vt 0.930704 0.488786 -vt 0.545132 0.884787 -vt 0.534052 0.885031 -vt 0.938386 0.504280 -vt 0.927307 0.504523 -vt 0.545310 0.892900 -vt 0.531349 0.892682 -vt 0.938564 0.512393 -vt 0.924603 0.512174 -vt 0.545310 0.901015 -vt 0.530152 0.900708 -vt 0.938564 0.520507 -vt 0.923406 0.520200 -vt 0.544981 0.909123 -vt 0.531023 0.908776 -vt 0.938236 0.528616 -vt 0.924277 0.528268 -vt 0.544475 0.917222 -vt 0.533414 0.916530 -vt 0.535804 0.924285 -vt 0.926668 0.536023 -vt 0.890928 0.227737 -vt 0.890701 0.213775 -vt 0.898435 0.216234 -vt 0.914375 0.760316 -vt 0.903295 0.760559 -vt 0.905997 0.752908 -vt 0.039197 0.953136 -vt 0.039544 0.939178 -vt 0.125769 0.952630 -vt 0.126461 0.941569 -vt 0.117670 0.952126 -vt 0.118706 0.943958 -vt 0.031098 0.952630 -vt 0.031790 0.941569 -vt 0.022999 0.952126 -vt 0.024035 0.943959 -vt 0.109594 0.951325 -vt 0.110599 0.944326 -vt 0.014924 0.951325 -vt 0.015928 0.944326 -vt 0.166317 0.953112 -vt 0.165613 0.944909 -vt 0.173698 0.945604 -vt 0.071646 0.953112 -vt 0.070942 0.944909 -vt 0.079027 0.945604 -vt 0.158204 0.953287 -vt 0.157961 0.942207 -vt 0.063533 0.953287 -vt 0.063290 0.942207 -vt 0.150091 0.953465 -vt 0.150309 0.939504 -vt 0.055420 0.953465 -vt 0.142283 0.938307 -vt 0.387411 0.961410 -vt 0.395487 0.962211 -vt 0.394482 0.969211 -vt 0.859256 0.219236 -vt 0.851165 0.219862 -vt 0.850928 0.212795 -vt 0.914553 0.768429 -vt 0.900591 0.768211 -vt 0.882818 0.227996 -vt 0.882641 0.212835 -vt 0.914553 0.776544 -vt 0.899395 0.776237 -vt 0.874703 0.227926 -vt 0.874605 0.213963 -vt 0.914224 0.784652 -vt 0.900265 0.784305 -vt 0.866592 0.227678 -vt 0.866931 0.216601 -vt 0.858481 0.227433 -vt 0.913718 0.792751 -vt 0.902657 0.792059 -vt 0.913214 0.800850 -vt 0.905047 0.799814 -vt 0.850384 0.226890 -vt 0.912413 0.808926 -vt 0.905414 0.807921 -vt 0.907135 0.226866 -vt 0.906169 0.218690 -vt 0.914272 0.219127 -vt 0.914200 0.752203 -vt 0.906692 0.744823 -vt 0.899032 0.227300 -vt 0.457715 0.975230 -vt 0.449607 0.974901 -vt 0.449955 0.960942 -vt 0.931776 0.853931 -vt 0.923668 0.853602 -vt 0.924016 0.839643 -vt 0.907324 0.211686 -vt 0.905194 0.203734 -vt 0.913275 0.203002 -vt 0.338764 0.960425 -vt 0.339468 0.968628 -vt 0.331383 0.967932 -vt 0.899367 0.213280 -vt 0.897187 0.202414 -vt 0.346877 0.960250 -vt 0.347120 0.971329 -vt 0.891411 0.214876 -vt 0.889180 0.201092 -vt 0.354990 0.960071 -vt 0.354772 0.974033 -vt 0.883421 0.216297 -vt 0.881068 0.201320 -vt 0.363105 0.960071 -vt 0.362798 0.975230 -vt 0.875381 0.217394 -vt 0.873278 0.203590 -vt 0.371213 0.960400 -vt 0.370866 0.974359 -vt 0.867318 0.218314 -vt 0.866062 0.207303 -vt 0.858845 0.211013 -vt 0.379312 0.960907 -vt 0.378620 0.971968 -vt 0.386375 0.969578 -vt 0.264056 0.985076 -vt 0.255941 0.985076 -vt 0.255941 0.977688 -vt 0.899073 0.454572 -vt 0.899073 0.447184 -vt 0.907188 0.447184 -vt 0.915569 0.853096 -vt 0.916261 0.842035 -vt 0.907470 0.852592 -vt 0.908506 0.844424 -vt 0.441508 0.974394 -vt 0.442200 0.963334 -vt 0.433409 0.973891 -vt 0.434445 0.965723 -vt 0.899395 0.851791 -vt 0.900399 0.844792 -vt 0.425334 0.973090 -vt 0.426338 0.966090 -vt 0.956117 0.853578 -vt 0.955413 0.845375 -vt 0.963498 0.846070 -vt 0.482056 0.974876 -vt 0.481352 0.966674 -vt 0.489437 0.967369 -vt 0.948004 0.853753 -vt 0.947761 0.842673 -vt 0.473943 0.975052 -vt 0.473700 0.963972 -vt 0.939891 0.853931 -vt 0.940110 0.839970 -vt 0.465830 0.975230 -vt 0.466049 0.961268 -vt 0.932084 0.838773 -vt 0.458023 0.960071 -vt 0.890959 0.454573 -vt 0.890959 0.447184 -vt 0.247826 0.985076 -vt 0.247826 0.977688 -vt 0.882844 0.454573 -vt 0.882844 0.447184 -vt 0.239711 0.985076 -vt 0.239711 0.977688 -vt 0.874729 0.454573 -vt 0.874729 0.447184 -vt 0.231596 0.985076 -vt 0.231596 0.977688 -vt 0.223481 0.985076 -vt 0.223481 0.977688 -vt 0.866614 0.454573 -vt 0.866614 0.447184 -vt 0.858499 0.454573 -vt 0.858499 0.447184 -vt 0.215366 0.985076 -vt 0.215366 0.977688 -vt 0.850384 0.454573 -vt 0.850384 0.447184 -vt 0.272171 0.985076 -vt 0.272171 0.977688 -vt 0.280285 0.977688 -vt 0.907188 0.454572 -vt 0.915303 0.447184 -vt 0.264056 0.977688 -vt 0.674682 0.802285 -vt 0.674682 0.820755 -vt 0.616500 0.820755 -vt 0.811365 0.802285 -vt 0.811365 0.820755 -vt 0.869548 0.802285 -vt 0.869547 0.820755 -vt 0.811365 0.878938 -vt 0.674682 0.744102 -vt 0.056225 0.889989 -vt 0.167049 0.889989 -vt 0.167049 0.908460 -vt 0.167049 0.853048 -vt 0.185519 0.853048 -vt 0.185519 0.889989 -vt 0.056225 0.853048 -vt 0.019284 0.834577 -vt 0.167049 0.834577 -vt 0.014924 0.889989 -vt 0.014924 0.853048 -vt 0.497840 0.488066 -vt 0.586653 0.655243 -vt 0.419476 0.744055 -vt 0.330663 0.576878 -vt 0.300816 0.612470 -vt 0.300816 0.572887 -vt 0.300816 0.533304 -vt 0.300816 0.493721 -vt 0.300816 0.799075 -vt 0.300816 0.759492 -vt 0.300816 0.680326 -vt 0.300816 0.719909 -vt 0.283625 0.854570 -vt 0.283625 0.882843 -vt 0.235359 0.902836 -vt 0.215366 0.854570 -vt 0.263633 0.834577 -vt 0.783596 0.201092 -vt 0.661698 0.910940 -vt 0.616500 0.714255 -vt 0.616500 0.488066 -vt 0.681825 0.910262 -vt 0.657653 0.910280 -vt 0.636448 0.908785 -vt 0.917372 0.171245 -vt 0.938577 0.171245 -vt 0.798256 0.171245 -vt 0.811346 0.171245 -vt 0.832551 0.171245 -vt 0.853756 0.171245 -vt 0.874962 0.171245 -vt 0.904282 0.171245 -vt 0.464439 0.930224 -vt 0.485644 0.930224 -vt 0.337208 0.930224 -vt 0.358413 0.930224 -vt 0.379619 0.930224 -vt 0.408939 0.930224 -vt 0.422029 0.930224 -vt 0.896216 0.417337 -vt 0.451349 0.930224 -vt 0.280190 0.947015 -vt 0.851210 0.322666 -vt 0.530978 0.838726 -vt 0.896216 0.322666 -vt 0.864716 0.352514 -vt 0.544484 0.868573 -vt 0.937738 0.488066 -vt 0.174418 0.952639 -vt 0.079747 0.952638 -vt 0.915217 0.226135 -vt 0.913726 0.744102 -vt 0.915217 0.209802 -vt 0.330663 0.960898 -vt 0.964218 0.853105 -vt 0.490157 0.974403 -vt 0.280285 0.985076 -vt 0.915303 0.454572 -vt 0.616500 0.802285 -vt 0.674682 0.878938 -vt 0.811365 0.744102 -vt 0.019284 0.908460 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.382700 -0.923900 0.000000 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn -0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 0.923900 0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.707100 -0.707100 -0.000000 -vn 0.000000 -0.382700 -0.923900 -vn -0.650400 0.650400 -0.392200 -vn 0.000000 -0.923900 -0.382700 -vn -0.707100 0.707100 0.000000 -vn 0.000000 -0.923900 0.382700 -vn 0.707100 -0.707100 0.000000 -vn 0.000000 -0.382700 0.923900 -vn 0.651300 -0.651300 0.389400 -vn -0.000000 0.382700 0.923900 -vn 0.707100 0.707100 0.000000 -vn -0.000000 0.923900 0.382700 -vn -0.000000 0.382700 -0.923900 -vn -0.000000 0.923900 -0.382700 -vn -0.510700 0.510700 -0.691600 -vn 0.468000 -0.468000 0.749700 -vn -0.786200 -0.525300 0.325600 -vn -0.908700 -0.180700 0.376400 -vn -0.541400 -0.810300 0.224300 -vn -0.376400 -0.180700 0.908700 -vn -0.224300 -0.810300 0.541400 -vn -0.325600 -0.525300 0.786200 -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.541400 -0.810300 -0.224300 -vn 0.786200 -0.525300 -0.325600 -vn 0.376400 -0.180700 -0.908700 -vn 0.224300 -0.810300 -0.541400 -vn 0.325600 -0.525300 -0.786200 -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.786200 -0.525300 -0.325600 -vn -0.194500 -0.977600 -0.080500 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn -0.908700 -0.180700 -0.376400 -vn -0.541400 -0.810300 -0.224300 -vn -0.923900 0.000000 -0.382700 -vn -0.382700 0.000000 -0.923900 -vn -0.786200 0.525300 0.325600 -vn -0.541400 0.810300 0.224300 -vn -0.908700 0.180700 0.376400 -vn -0.325600 0.525300 0.786200 -vn -0.224300 0.810300 0.541400 -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.908700 0.180700 0.376400 -vn 0.786200 0.525300 0.325600 -vn 0.541400 0.810300 0.224300 -vn 0.786200 0.525300 -0.325600 -vn 0.541400 0.810300 -0.224300 -vn 0.908700 0.180700 -0.376400 -vn 0.224300 0.810300 -0.541400 -vn 0.376400 0.180700 -0.908700 -vn 0.325600 0.525300 -0.786200 -vn -0.224300 0.810300 -0.541400 -vn -0.376400 0.180700 -0.908700 -vn -0.325600 0.525300 -0.786200 -vn -0.786200 0.525300 -0.325600 -vn -0.541400 0.810300 -0.224300 -vn -0.908700 0.180700 -0.376400 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn 0.347600 0.065000 0.935400 -vn -0.382400 0.388200 -0.838500 -vn 0.363800 0.401800 -0.840400 -vn -0.923600 0.026600 0.382500 -vn -0.380500 0.105500 0.918700 -vn 0.912500 0.000000 0.409100 -vn -0.382400 0.037800 -0.923200 -vn 0.914900 0.016500 -0.403400 -vn 0.363800 0.049600 -0.930200 -vn 0.912500 -0.289300 0.289300 -vn -0.923900 0.146400 -0.353600 -vn -0.923600 -0.121800 0.363600 -vn -0.380500 -0.254100 0.889200 -vn 0.347600 -0.297900 0.889000 -vn 0.912500 -0.156600 0.378000 -vn 0.914900 0.169600 -0.366300 -vn -0.380500 -0.808400 0.449100 -vn -0.923600 -0.343300 0.171000 -vn 0.914900 0.296900 -0.273500 -vn 0.363800 0.692800 -0.622700 -vn -0.382400 0.679500 -0.626100 -vn -0.923900 0.270600 -0.270600 -vn -0.923600 -0.251700 0.289300 -vn -0.380500 -0.575000 0.724300 -vn 0.347600 -0.615500 0.707400 -vn -0.382400 0.923200 0.037800 -vn 0.363800 0.930200 0.049600 -vn 0.347600 -0.839300 0.418000 -vn 0.912500 -0.378000 0.156600 -vn 0.914900 0.379000 -0.139100 -vn 0.363800 0.878300 -0.310100 -vn -0.382400 0.867400 -0.318400 -vn -0.923900 0.353600 -0.146400 -vn 0.914900 0.366300 0.169600 -vn 0.912500 -0.378000 -0.156600 -vn -0.923600 -0.382500 0.026600 -vn -0.380500 -0.918700 0.105500 -vn 0.347600 -0.935400 0.065000 -vn 0.912500 -0.409100 0.000000 -vn 0.914900 0.403400 0.016500 -vn -0.380500 -0.724300 -0.575000 -vn 0.363800 0.840400 0.401800 -vn -0.382400 0.838500 0.388200 -vn -0.923900 0.353600 0.146400 -vn -0.923600 -0.363600 -0.121800 -vn -0.380500 -0.889200 -0.254100 -vn 0.347600 -0.889000 -0.297900 -vn -0.382400 0.318400 0.867400 -vn 0.347600 -0.707400 -0.615500 -vn 0.912500 -0.289300 -0.289300 -vn 0.914900 0.273500 0.296900 -vn 0.363800 0.622700 0.692800 -vn -0.382400 0.626100 0.679500 -vn -0.923900 0.270600 0.270600 -vn -0.923600 -0.289300 -0.251700 -vn -0.923900 0.146400 0.353600 -vn -0.923600 -0.171000 -0.343300 -vn -0.380500 -0.449100 -0.808400 -vn 0.347600 -0.418000 -0.839300 -vn 0.912500 -0.156600 -0.378000 -vn 0.914900 0.139100 0.379000 -vn 0.363800 0.310100 0.878300 -vn 0.000000 0.894400 0.447200 -vn -0.914900 0.016500 -0.403400 -vn 0.380500 0.105500 0.918700 -vn -0.363800 0.401800 -0.840400 -vn 0.382400 0.388200 -0.838500 -vn -0.912500 0.000000 0.409100 -vn -0.347600 0.065000 0.935400 -vn 0.923600 0.026600 0.382500 -vn -0.363800 0.049600 -0.930200 -vn 0.382400 0.037800 -0.923200 -vn 0.923600 -0.251700 0.289300 -vn -0.914900 0.169600 -0.366300 -vn -0.912500 -0.156600 0.378000 -vn -0.347600 -0.297900 0.889000 -vn 0.380500 -0.254100 0.889200 -vn 0.923600 -0.121800 0.363600 -vn 0.923900 0.146400 -0.353600 -vn -0.347600 -0.839300 0.418000 -vn -0.912500 -0.378000 0.156600 -vn 0.923900 0.270600 -0.270600 -vn 0.382400 0.679500 -0.626100 -vn -0.363800 0.692800 -0.622700 -vn -0.914900 0.296900 -0.273500 -vn -0.912500 -0.289300 0.289300 -vn -0.347600 -0.615500 0.707400 -vn 0.380500 -0.575000 0.724300 -vn -0.363800 0.930200 0.049600 -vn 0.382400 0.923200 0.037800 -vn 0.380500 -0.808400 0.449100 -vn 0.923600 -0.343300 0.171000 -vn 0.923900 0.353600 -0.146400 -vn 0.382400 0.867400 -0.318400 -vn -0.363800 0.878300 -0.310100 -vn -0.914900 0.379000 -0.139100 -vn 0.923900 0.353600 0.146400 -vn 0.923600 -0.363600 -0.121800 -vn -0.914900 0.403400 0.016500 -vn -0.912500 -0.409100 0.000000 -vn -0.347600 -0.935400 0.065000 -vn 0.380500 -0.918700 0.105500 -vn 0.923600 -0.382500 0.026600 -vn -0.347600 -0.707400 -0.615400 -vn 0.382400 0.838500 0.388200 -vn -0.363800 0.840400 0.401800 -vn -0.914900 0.366300 0.169600 -vn -0.912500 -0.378000 -0.156600 -vn -0.347600 -0.889000 -0.297900 -vn 0.380500 -0.889200 -0.254100 -vn -0.363800 0.310100 0.878300 -vn 0.380500 -0.724300 -0.575000 -vn 0.923600 -0.289300 -0.251700 -vn 0.923900 0.270600 0.270600 -vn 0.382400 0.626100 0.679500 -vn -0.363800 0.622700 0.692800 -vn -0.914900 0.273500 0.296900 -vn -0.912500 -0.289300 -0.289300 -vn -0.914900 0.139100 0.379000 -vn -0.912500 -0.156600 -0.378000 -vn -0.347600 -0.418000 -0.839300 -vn 0.380500 -0.449100 -0.808400 -vn 0.923600 -0.171000 -0.343300 -vn 0.923900 0.146400 0.353600 -vn 0.382400 0.318400 0.867400 -s off -f 4/1/1 3/2/1 1/3/1 -f 8/4/2 7/5/2 3/6/2 -f 6/7/3 5/8/3 7/9/3 -f 1/10/4 9/11/4 10/12/4 -f 3/13/5 7/14/5 5/15/5 -f 8/4/6 4/1/6 2/16/6 -f 11/17/3 15/18/3 16/19/3 -f 5/15/4 12/20/4 9/11/4 -f 2/16/4 10/12/4 11/21/4 -f 6/7/4 11/21/4 12/20/4 -f 14/22/4 13/23/4 16/19/4 -f 10/24/6 14/22/6 15/18/6 -f 9/25/1 13/23/1 14/22/1 -f 12/26/5 16/19/5 13/23/5 -f 37/27/7 45/28/7 44/29/7 -f 22/30/2 18/31/2 35/32/2 -f 19/33/8 20/34/8 22/35/8 -f 17/36/8 41/37/8 48/38/8 -f 30/39/2 28/40/2 37/27/2 -f 21/41/9 22/30/9 24/42/9 -f 18/31/9 48/38/9 47/43/9 -f 34/44/2 40/45/2 17/36/2 -f 23/46/10 24/47/10 26/48/10 -f 38/49/11 44/29/11 43/50/11 -f 26/51/2 36/52/2 37/53/2 -f 25/54/12 26/51/12 28/55/12 -f 40/45/13 42/56/13 41/37/13 -f 34/57/2 32/58/2 39/59/2 -f 28/40/7 30/39/7 29/60/7 -f 41/37/4 49/61/4 50/62/4 -f 24/47/2 35/32/2 36/52/2 -f 30/63/11 32/64/11 31/65/11 -f 22/35/2 20/34/2 17/36/2 -f 34/44/13 20/66/13 19/67/13 -f 32/58/14 34/57/14 33/68/14 -f 39/59/14 43/50/14 42/56/14 -f 30/63/2 38/49/2 39/59/2 -f 35/32/10 47/43/10 46/69/10 -f 36/52/12 46/69/12 45/70/12 -f 50/71/4 51/72/4 47/43/4 -f 51/73/4 52/74/4 46/69/4 -f 52/75/4 53/76/4 45/70/4 -f 45/28/4 53/77/4 54/78/4 -f 54/79/4 55/80/4 43/50/4 -f 55/81/4 56/82/4 42/56/4 -f 56/83/4 49/84/4 41/37/4 -f 55/85/14 63/86/14 64/87/14 -f 55/88/4 53/89/4 49/90/4 -f 53/91/7 61/92/7 62/93/7 -f 52/94/10 51/95/10 59/96/10 -f 49/97/8 58/98/8 57/99/8 -f 56/100/13 64/87/13 58/98/13 -f 54/101/11 62/93/11 63/86/11 -f 53/102/12 52/94/12 60/103/12 -f 51/95/9 50/104/9 57/99/9 -f 65/105/15 66/106/15 89/107/15 -f 68/108/16 70/109/16 69/110/16 -f 86/111/17 65/112/17 92/113/17 -f 69/110/18 70/109/18 72/114/18 -f 88/115/19 84/116/19 65/117/19 -f 72/118/20 74/119/20 73/120/20 -f 83/121/21 87/122/21 85/123/21 -f 74/119/22 76/124/22 75/125/22 -f 85/123/23 90/126/23 89/107/23 -f 76/124/24 78/127/24 77/128/24 -f 86/129/25 85/123/25 87/122/25 -f 78/127/26 80/130/26 79/131/26 -f 84/132/15 83/121/15 66/106/15 -f 82/133/27 68/108/27 67/134/27 -f 80/130/28 82/133/28 81/135/28 -f 86/111/25 91/136/25 90/126/25 -f 90/126/25 91/137/25 95/138/25 -f 96/139/4 100/140/4 97/141/4 -f 92/142/29 94/143/29 95/138/29 -f 90/126/30 96/139/30 93/144/30 -f 89/107/15 93/144/15 94/145/15 -f 100/140/19 99/146/19 98/147/19 -f 96/139/25 95/148/25 99/149/25 -f 95/148/2 94/150/2 98/151/2 -f 93/144/15 97/141/15 98/152/15 -f 102/153/31 106/154/31 107/155/31 -f 104/156/32 103/157/32 107/155/32 -f 102/153/33 101/158/33 105/159/33 -f 107/160/34 111/161/34 112/162/34 -f 105/163/35 109/164/35 110/165/35 -f 106/166/36 110/165/36 111/161/36 -f 111/167/37 110/168/37 115/169/37 -f 111/167/38 116/170/38 117/171/38 -f 109/172/39 114/173/39 115/169/39 -f 115/174/40 119/175/40 120/176/40 -f 116/177/41 120/176/41 121/178/41 -f 114/179/42 118/180/42 119/175/42 -f 120/181/43 124/182/43 125/183/43 -f 118/184/44 122/185/44 123/186/44 -f 119/187/45 123/186/45 124/182/45 -f 125/183/46 124/188/46 128/189/46 -f 122/190/47 126/191/47 127/192/47 -f 124/188/48 123/193/48 127/192/48 -f 127/194/49 131/195/49 132/196/49 -f 128/197/50 132/196/50 133/198/50 -f 126/199/51 130/200/51 131/195/51 -f 101/158/52 113/201/52 105/159/52 -f 105/163/53 113/202/53 109/164/53 -f 109/172/54 113/203/54 114/173/54 -f 114/179/55 113/204/55 118/180/55 -f 118/184/56 113/205/56 122/185/56 -f 122/190/57 113/206/57 126/191/57 -f 126/199/58 113/207/58 130/200/58 -f 131/208/59 102/209/59 103/210/59 -f 130/211/60 113/212/60 101/213/60 -f 112/162/61 142/214/61 138/215/61 -f 108/216/62 138/215/62 134/217/62 -f 132/218/63 103/210/63 104/156/63 -f 131/208/64 130/211/64 101/213/64 -f 162/219/65 133/198/65 104/156/65 -f 162/219/66 158/220/66 129/221/66 -f 135/222/67 139/223/67 140/224/67 -f 136/225/68 140/224/68 141/226/68 -f 135/222/69 134/217/69 138/215/69 -f 139/227/70 143/228/70 144/229/70 -f 140/230/71 144/229/71 145/231/71 -f 139/227/72 138/215/72 142/214/72 -f 145/232/73 144/233/73 148/234/73 -f 142/235/74 146/236/74 147/237/74 -f 144/233/75 143/238/75 147/237/75 -f 146/236/76 150/239/76 151/240/76 -f 148/241/77 147/242/77 151/240/77 -f 148/241/78 152/243/78 153/244/78 -f 152/245/79 151/246/79 155/247/79 -f 152/245/80 156/248/80 157/249/80 -f 150/239/81 154/250/81 155/247/81 -f 156/251/82 160/252/82 161/253/82 -f 154/250/83 158/220/83 159/254/83 -f 156/251/84 155/255/84 159/254/84 -f 160/256/85 164/257/85 165/258/85 -f 158/220/86 162/219/86 163/259/86 -f 159/260/87 163/259/87 164/257/87 -f 163/261/88 135/262/88 136/263/88 -f 165/264/89 164/265/89 136/263/89 -f 162/219/90 134/217/90 135/262/90 -f 129/221/91 158/220/91 154/250/91 -f 125/183/92 154/250/92 150/239/92 -f 150/239/93 146/236/93 117/171/93 -f 146/236/94 142/235/94 112/266/94 -f 167/267/31 171/268/31 172/269/31 -f 169/270/32 168/271/32 172/269/32 -f 167/267/33 166/272/33 170/273/33 -f 173/274/34 172/275/34 176/276/34 -f 170/277/35 174/278/35 175/279/35 -f 171/280/36 175/279/36 176/276/36 -f 176/281/37 175/282/37 180/283/37 -f 176/281/38 181/284/38 182/285/38 -f 174/286/39 179/287/39 180/283/39 -f 180/288/40 184/289/40 185/290/40 -f 181/291/41 185/290/41 186/292/41 -f 179/293/42 183/294/42 184/289/42 -f 185/295/43 189/296/43 190/297/43 -f 183/298/44 187/299/44 188/300/44 -f 184/301/45 188/300/45 189/296/45 -f 190/297/46 189/302/46 193/303/46 -f 188/304/47 187/305/47 191/306/47 -f 189/302/48 188/304/48 192/307/48 -f 192/308/49 196/309/49 197/310/49 -f 193/311/50 197/310/50 198/312/50 -f 191/313/51 195/314/51 196/309/51 -f 166/272/52 178/315/52 170/273/52 -f 170/277/53 178/316/53 174/278/53 -f 174/286/54 178/317/54 179/287/54 -f 179/293/55 178/318/55 183/294/55 -f 183/298/56 178/319/56 187/299/56 -f 187/305/57 178/320/57 191/306/57 -f 191/313/58 178/321/58 195/314/58 -f 196/322/59 167/323/59 168/324/59 -f 195/325/60 178/326/60 166/327/60 -f 177/328/61 207/329/61 203/330/61 -f 173/274/62 203/330/62 199/331/62 -f 198/312/63 197/332/63 168/324/63 -f 196/322/64 195/325/64 166/327/64 -f 227/333/65 198/312/65 169/270/65 -f 227/333/66 223/334/66 194/335/66 -f 201/336/67 200/337/67 204/338/67 -f 201/336/68 205/339/68 206/340/68 -f 199/331/69 203/330/69 204/338/69 -f 204/341/70 208/342/70 209/343/70 -f 205/344/71 209/343/71 210/345/71 -f 203/330/72 207/329/72 208/342/72 -f 209/346/73 213/347/73 214/348/73 -f 208/349/74 207/350/74 211/351/74 -f 209/346/75 208/349/75 212/352/75 -f 211/351/76 215/353/76 216/354/76 -f 212/355/77 216/354/77 217/356/77 -f 213/357/78 217/356/78 218/358/78 -f 216/359/79 220/360/79 221/361/79 -f 217/362/80 221/361/80 222/363/80 -f 215/353/81 219/364/81 220/360/81 -f 222/365/82 221/366/82 225/367/82 -f 220/368/83 219/364/83 223/334/83 -f 221/366/84 220/368/84 224/369/84 -f 225/370/85 229/371/85 230/372/85 -f 223/334/86 227/333/86 228/373/86 -f 224/374/87 228/373/87 229/371/87 -f 165/375/65 137/376/65 231/377/65 -f 214/378/95 242/379/95 241/380/95 -f 228/381/88 200/382/88 201/383/88 -f 230/384/89 229/385/89 201/383/89 -f 227/333/90 199/331/90 200/382/90 -f 194/335/91 223/334/91 219/364/91 -f 190/297/92 219/364/92 215/353/92 -f 215/353/93 211/351/93 182/285/93 -f 211/351/94 207/350/94 177/386/94 -f 237/387/96 238/388/96 254/389/96 -f 245/390/97 261/391/97 260/392/97 -f 202/393/98 206/394/98 240/395/98 -f 141/396/99 145/397/99 233/398/99 -f 218/399/100 243/400/100 242/379/100 -f 230/401/65 202/393/65 239/402/65 -f 206/394/99 210/403/99 241/404/99 -f 161/405/101 165/375/101 238/406/101 -f 157/407/102 236/408/102 235/409/102 -f 161/405/103 237/410/103 236/408/103 -f 149/411/95 234/412/95 233/413/95 -f 226/414/101 230/401/101 246/415/101 -f 137/376/98 141/396/98 232/416/98 -f 222/417/102 244/418/102 243/400/102 -f 153/419/100 235/409/100 234/412/100 -f 226/414/103 245/420/103 244/418/103 -f 259/421/104 275/422/104 274/423/104 -f 251/424/104 267/425/104 266/426/104 -f 245/390/96 246/427/96 262/428/96 -f 238/388/105 231/429/105 247/430/105 -f 231/429/106 232/431/106 248/432/106 -f 246/427/105 239/433/105 255/434/105 -f 239/433/106 240/435/106 256/436/106 -f 232/431/107 233/437/107 249/438/107 -f 240/435/107 241/439/107 257/440/107 -f 234/441/108 250/442/108 249/443/108 -f 242/444/108 258/445/108 257/446/108 -f 235/447/109 251/448/109 250/442/109 -f 243/449/109 259/450/109 258/445/109 -f 236/451/110 252/452/110 251/448/110 -f 244/453/110 260/392/110 259/450/110 -f 237/387/97 253/454/97 252/452/97 -f 264/455/111 265/456/111 281/457/111 -f 271/458/112 272/459/112 288/460/112 -f 252/461/113 268/462/113 267/425/113 -f 260/463/113 276/464/113 275/422/113 -f 253/465/114 269/466/114 268/462/114 -f 261/467/114 277/468/114 276/464/114 -f 253/465/115 254/469/115 270/470/115 -f 261/467/115 262/471/115 278/472/115 -f 254/469/116 247/473/116 263/474/116 -f 247/473/117 248/475/117 264/476/117 -f 262/471/116 255/477/116 271/478/116 -f 255/477/117 256/479/117 272/480/117 -f 248/475/118 249/481/118 265/482/118 -f 256/479/118 257/483/118 273/484/118 -f 250/485/119 266/426/119 265/486/119 -f 258/487/119 274/423/119 273/488/119 -f 285/489/120 286/490/120 302/491/120 -f 293/492/121 309/493/121 308/494/121 -f 272/459/111 273/495/111 289/496/111 -f 266/497/122 282/498/122 281/499/122 -f 274/500/122 290/501/122 289/502/122 -f 267/503/123 283/504/123 282/498/123 -f 275/505/123 291/506/123 290/501/123 -f 268/507/124 284/508/124 283/504/124 -f 276/509/124 292/510/124 291/506/124 -f 269/511/125 285/512/125 284/508/125 -f 277/513/125 293/514/125 292/510/125 -f 269/511/126 270/515/126 286/516/126 -f 277/513/126 278/517/126 294/518/126 -f 270/515/127 263/519/127 279/520/127 -f 263/519/112 264/455/112 280/521/112 -f 278/517/127 271/458/127 287/522/127 -f 300/523/128 316/524/128 315/525/128 -f 307/526/129 323/527/129 322/528/129 -f 293/492/120 294/529/120 310/530/120 -f 286/490/14 279/531/14 295/532/14 -f 279/531/130 280/533/130 296/534/130 -f 294/529/14 287/535/14 303/536/14 -f 287/535/130 288/537/130 304/538/130 -f 280/533/131 281/539/131 297/540/131 -f 288/537/131 289/541/131 305/542/131 -f 282/543/132 298/544/132 297/545/132 -f 290/546/132 306/547/132 305/548/132 -f 283/549/133 299/550/133 298/544/133 -f 291/551/133 307/552/133 306/547/133 -f 284/553/134 300/554/134 299/550/134 -f 292/555/134 308/494/134 307/552/134 -f 285/489/121 301/556/121 300/554/121 -f 320/557/135 321/558/135 337/559/135 -f 312/560/135 313/561/135 329/562/135 -f 308/563/128 324/564/128 323/527/128 -f 301/565/136 317/566/136 316/524/136 -f 309/567/136 325/568/136 324/564/136 -f 301/565/137 302/569/137 318/570/137 -f 309/567/137 310/571/137 326/572/137 -f 302/569/138 295/573/138 311/574/138 -f 295/573/139 296/575/139 312/560/139 -f 310/571/138 303/576/138 319/577/138 -f 303/576/139 304/578/139 320/579/139 -f 296/575/140 297/580/140 313/561/140 -f 304/578/140 305/581/140 321/582/140 -f 298/583/141 314/584/141 313/585/141 -f 306/586/141 322/528/141 321/587/141 -f 299/588/129 315/525/129 314/584/129 -f 341/589/142 342/590/142 358/591/142 -f 333/592/142 334/593/142 350/594/142 -f 314/595/143 330/596/143 329/597/143 -f 322/598/143 338/599/143 337/600/143 -f 315/601/144 331/602/144 330/596/144 -f 323/603/144 339/604/144 338/599/144 -f 316/605/145 332/606/145 331/602/145 -f 324/607/145 340/608/145 339/604/145 -f 317/609/146 333/610/146 332/606/146 -f 325/611/146 341/612/146 340/608/146 -f 317/609/147 318/613/147 334/614/147 -f 325/611/147 326/615/147 342/616/147 -f 318/613/148 311/617/148 327/618/148 -f 311/617/149 312/560/149 328/619/149 -f 326/615/148 319/620/148 335/621/148 -f 319/620/149 320/557/149 336/622/149 -f 347/623/93 348/624/93 364/625/93 -f 355/626/92 371/627/92 370/628/92 -f 334/593/150 327/629/150 343/630/150 -f 327/629/151 328/631/151 344/632/151 -f 342/590/150 335/633/150 351/634/150 -f 335/633/151 336/635/151 352/636/151 -f 328/631/152 329/637/152 345/638/152 -f 336/635/152 337/639/152 353/640/152 -f 330/641/153 346/642/153 345/643/153 -f 338/644/153 354/645/153 353/646/153 -f 331/647/154 347/648/154 346/642/154 -f 339/649/154 355/650/154 354/645/154 -f 332/651/155 348/652/155 347/648/155 -f 340/653/155 356/654/155 355/650/155 -f 333/592/156 349/655/156 348/652/156 -f 341/589/156 357/656/156 356/654/156 -f 355/626/93 356/657/93 372/658/93 -f 348/624/94 349/659/94 365/660/94 -f 356/657/94 357/661/94 373/662/94 -f 350/663/61 366/664/61 365/660/61 -f 358/665/61 374/666/61 373/662/61 -f 343/667/62 359/668/62 366/664/62 -f 343/667/65 344/669/65 360/670/65 -f 358/665/62 351/671/62 367/672/62 -f 352/673/65 368/674/65 367/672/65 -f 344/669/66 345/675/66 361/676/66 -f 352/673/66 353/677/66 369/678/66 -f 346/679/91 362/680/91 361/681/91 -f 354/682/91 370/628/91 369/683/91 -f 346/679/92 347/623/92 363/684/92 -f 378/685/1 377/686/1 375/687/1 -f 382/688/2 381/689/2 377/686/2 -f 380/690/3 379/691/3 381/689/3 -f 377/686/5 381/689/5 379/692/5 -f 382/688/6 378/685/6 376/693/6 -f 384/694/1 386/695/1 385/696/1 -f 390/697/2 389/698/2 385/699/2 -f 388/700/3 387/701/3 389/702/3 -f 384/694/157 383/703/157 387/704/157 -f 390/697/6 386/695/6 384/694/6 -f 2/16/1 4/1/1 1/3/1 -f 4/1/2 8/4/2 3/6/2 -f 8/4/3 6/7/3 7/9/3 -f 2/16/4 1/10/4 10/12/4 -f 1/10/5 3/13/5 5/15/5 -f 6/7/6 8/4/6 2/16/6 -f 12/705/3 11/17/3 16/19/3 -f 1/10/4 5/15/4 9/11/4 -f 6/7/4 2/16/4 11/21/4 -f 5/15/4 6/7/4 12/20/4 -f 15/18/4 14/22/4 16/19/4 -f 11/706/6 10/24/6 15/18/6 -f 10/707/1 9/25/1 14/22/1 -f 9/708/5 12/26/5 13/23/5 -f 38/49/7 37/27/7 44/29/7 -f 24/42/2 22/30/2 35/32/2 -f 21/709/8 19/33/8 22/35/8 -f 18/31/8 17/36/8 48/38/8 -f 38/49/2 30/39/2 37/27/2 -f 23/710/9 21/41/9 24/42/9 -f 35/32/9 18/31/9 47/43/9 -f 20/66/2 34/44/2 17/36/2 -f 25/711/10 23/46/10 26/48/10 -f 39/59/11 38/49/11 43/50/11 -f 28/55/2 26/51/2 37/53/2 -f 27/712/12 25/54/12 28/55/12 -f 17/36/13 40/45/13 41/37/13 -f 40/45/2 34/57/2 39/59/2 -f 27/713/7 28/40/7 29/60/7 -f 48/38/4 41/37/4 50/62/4 -f 26/48/2 24/47/2 36/52/2 -f 29/714/11 30/63/11 31/65/11 -f 18/31/2 22/35/2 17/36/2 -f 33/715/13 34/44/13 19/67/13 -f 31/716/14 32/58/14 33/68/14 -f 40/45/14 39/59/14 42/56/14 -f 32/64/2 30/63/2 39/59/2 -f 36/52/10 35/32/10 46/69/10 -f 37/53/12 36/52/12 45/70/12 -f 48/38/4 50/71/4 47/43/4 -f 47/43/4 51/73/4 46/69/4 -f 46/69/4 52/75/4 45/70/4 -f 44/29/4 45/28/4 54/78/4 -f 44/29/4 54/79/4 43/50/4 -f 43/50/4 55/81/4 42/56/4 -f 42/56/4 56/83/4 41/37/4 -f 56/100/14 55/85/14 64/87/14 -f 51/717/4 50/718/4 49/90/4 -f 49/90/4 56/719/4 55/88/4 -f 55/88/4 54/720/4 53/89/4 -f 53/89/4 52/721/4 51/717/4 -f 51/717/4 49/90/4 53/89/4 -f 54/101/7 53/91/7 62/93/7 -f 60/103/10 52/94/10 59/96/10 -f 50/104/8 49/97/8 57/99/8 -f 49/97/13 56/100/13 58/98/13 -f 55/85/11 54/101/11 63/86/11 -f 61/722/12 53/102/12 60/103/12 -f 59/96/9 51/95/9 57/99/9 -f 92/723/15 65/105/15 89/107/15 -f 67/134/16 68/108/16 69/110/16 -f 91/136/17 86/111/17 92/113/17 -f 71/724/18 69/110/18 72/114/18 -f 86/129/19 88/115/19 65/117/19 -f 71/725/20 72/118/20 73/120/20 -f 66/106/21 83/121/21 85/123/21 -f 73/120/22 74/119/22 75/125/22 -f 66/106/23 85/123/23 89/107/23 -f 75/125/24 76/124/24 77/128/24 -f 88/115/25 86/129/25 87/122/25 -f 77/128/26 78/127/26 79/131/26 -f 65/726/15 84/132/15 66/106/15 -f 81/135/27 82/133/27 67/134/27 -f 79/131/28 80/130/28 81/135/28 -f 85/123/25 86/111/25 90/126/25 -f 96/139/25 90/126/25 95/138/25 -f 93/144/4 96/139/4 97/141/4 -f 91/137/29 92/142/29 95/138/29 -f 89/107/30 90/126/30 93/144/30 -f 92/727/15 89/107/15 94/145/15 -f 97/141/19 100/140/19 98/147/19 -f 100/140/25 96/139/25 99/149/25 -f 99/149/2 95/148/2 98/151/2 -f 94/728/15 93/144/15 98/152/15 -f 103/157/31 102/153/31 107/155/31 -f 108/216/32 104/156/32 107/155/32 -f 106/154/33 102/153/33 105/159/33 -f 108/216/34 107/160/34 112/162/34 -f 106/166/35 105/163/35 110/165/35 -f 107/160/36 106/166/36 111/161/36 -f 116/170/37 111/167/37 115/169/37 -f 112/266/38 111/167/38 117/171/38 -f 110/168/39 109/172/39 115/169/39 -f 116/177/40 115/174/40 120/176/40 -f 117/171/41 116/177/41 121/178/41 -f 115/174/42 114/179/42 119/175/42 -f 121/178/43 120/181/43 125/183/43 -f 119/187/44 118/184/44 123/186/44 -f 120/181/45 119/187/45 124/182/45 -f 129/221/46 125/183/46 128/189/46 -f 123/193/47 122/190/47 127/192/47 -f 128/189/48 124/188/48 127/192/48 -f 128/197/49 127/194/49 132/196/49 -f 129/221/50 128/197/50 133/198/50 -f 127/194/51 126/199/51 131/195/51 -f 132/218/59 131/208/59 103/210/59 -f 108/216/61 112/162/61 138/215/61 -f 104/156/62 108/216/62 134/217/62 -f 133/198/63 132/218/63 104/156/63 -f 102/209/64 131/208/64 101/213/64 -f 134/217/65 162/219/65 104/156/65 -f 133/198/66 162/219/66 129/221/66 -f 136/225/67 135/222/67 140/224/67 -f 137/729/68 136/225/68 141/226/68 -f 139/223/69 135/222/69 138/215/69 -f 140/230/70 139/227/70 144/229/70 -f 141/730/71 140/230/71 145/231/71 -f 143/228/72 139/227/72 142/214/72 -f 149/731/73 145/232/73 148/234/73 -f 143/238/74 142/235/74 147/237/74 -f 148/234/75 144/233/75 147/237/75 -f 147/242/76 146/236/76 151/240/76 -f 152/243/77 148/241/77 151/240/77 -f 149/732/78 148/241/78 153/244/78 -f 156/248/79 152/245/79 155/247/79 -f 153/733/80 152/245/80 157/249/80 -f 151/246/81 150/239/81 155/247/81 -f 157/734/82 156/251/82 161/253/82 -f 155/255/83 154/250/83 159/254/83 -f 160/252/84 156/251/84 159/254/84 -f 161/735/85 160/256/85 165/258/85 -f 159/260/86 158/220/86 163/259/86 -f 160/256/87 159/260/87 164/257/87 -f 164/265/88 163/261/88 136/263/88 -f 137/736/89 165/264/89 136/263/89 -f 163/261/90 162/219/90 135/262/90 -f 125/183/91 129/221/91 154/250/91 -f 121/178/92 125/183/92 150/239/92 -f 121/178/93 150/239/93 117/171/93 -f 117/171/94 146/236/94 112/266/94 -f 168/271/31 167/267/31 172/269/31 -f 173/274/32 169/270/32 172/269/32 -f 171/268/33 167/267/33 170/273/33 -f 177/328/34 173/274/34 176/276/34 -f 171/280/35 170/277/35 175/279/35 -f 172/275/36 171/280/36 176/276/36 -f 181/284/37 176/281/37 180/283/37 -f 177/386/38 176/281/38 182/285/38 -f 175/282/39 174/286/39 180/283/39 -f 181/291/40 180/288/40 185/290/40 -f 182/285/41 181/291/41 186/292/41 -f 180/288/42 179/293/42 184/289/42 -f 186/292/43 185/295/43 190/297/43 -f 184/301/44 183/298/44 188/300/44 -f 185/295/45 184/301/45 189/296/45 -f 194/335/46 190/297/46 193/303/46 -f 192/307/47 188/304/47 191/306/47 -f 193/303/48 189/302/48 192/307/48 -f 193/311/49 192/308/49 197/310/49 -f 194/335/50 193/311/50 198/312/50 -f 192/308/51 191/313/51 196/309/51 -f 197/332/59 196/322/59 168/324/59 -f 173/274/61 177/328/61 203/330/61 -f 169/270/62 173/274/62 199/331/62 -f 169/270/63 198/312/63 168/324/63 -f 167/323/64 196/322/64 166/327/64 -f 199/331/65 227/333/65 169/270/65 -f 198/312/66 227/333/66 194/335/66 -f 205/339/67 201/336/67 204/338/67 -f 202/737/68 201/336/68 206/340/68 -f 200/337/69 199/331/69 204/338/69 -f 205/344/70 204/341/70 209/343/70 -f 206/738/71 205/344/71 210/345/71 -f 204/341/72 203/330/72 208/342/72 -f 210/739/73 209/346/73 214/348/73 -f 212/352/74 208/349/74 211/351/74 -f 213/347/75 209/346/75 212/352/75 -f 212/355/76 211/351/76 216/354/76 -f 213/357/77 212/355/77 217/356/77 -f 214/740/78 213/357/78 218/358/78 -f 217/362/79 216/359/79 221/361/79 -f 218/741/80 217/362/80 222/363/80 -f 216/359/81 215/353/81 220/360/81 -f 226/742/82 222/365/82 225/367/82 -f 224/369/83 220/368/83 223/334/83 -f 225/367/84 221/366/84 224/369/84 -f 226/743/85 225/370/85 230/372/85 -f 224/374/86 223/334/86 228/373/86 -f 225/370/87 224/374/87 229/371/87 -f 238/406/158 165/375/158 231/377/158 -f 210/744/159 214/378/159 241/380/159 -f 229/385/88 228/381/88 201/383/88 -f 202/745/89 230/384/89 201/383/89 -f 228/381/90 227/333/90 200/382/90 -f 190/297/91 194/335/91 219/364/91 -f 186/292/92 190/297/92 215/353/92 -f 186/292/93 215/353/93 182/285/93 -f 182/285/94 211/351/94 177/386/94 -f 253/454/160 237/387/160 254/389/160 -f 244/453/161 245/390/161 260/392/161 -f 239/402/162 202/393/162 240/395/162 -f 232/416/163 141/396/163 233/398/163 -f 214/378/164 218/399/164 242/379/164 -f 246/415/158 230/401/158 239/402/158 -f 240/395/163 206/394/163 241/404/163 -f 237/410/165 161/405/165 238/406/165 -f 153/419/92 157/407/92 235/409/92 -f 157/407/166 161/405/166 236/408/166 -f 145/746/159 149/411/159 233/413/159 -f 245/420/165 226/414/165 246/415/165 -f 231/377/162 137/376/162 232/416/162 -f 218/399/92 222/417/92 243/400/92 -f 149/411/164 153/419/164 234/412/164 -f 222/417/166 226/414/166 244/418/166 -f 258/487/167 259/421/167 274/423/167 -f 250/485/167 251/424/167 266/426/167 -f 261/391/160 245/390/160 262/428/160 -f 254/389/168 238/388/168 247/430/168 -f 247/430/169 231/429/169 248/432/169 -f 262/428/168 246/427/168 255/434/168 -f 255/434/169 239/433/169 256/436/169 -f 248/432/170 232/431/170 249/438/170 -f 256/436/170 240/435/170 257/440/170 -f 233/747/171 234/441/171 249/443/171 -f 241/748/171 242/444/171 257/446/171 -f 234/441/172 235/447/172 250/442/172 -f 242/444/172 243/449/172 258/445/172 -f 235/447/173 236/451/173 251/448/173 -f 243/449/173 244/453/173 259/450/173 -f 236/451/161 237/387/161 252/452/161 -f 280/521/174 264/455/174 281/457/174 -f 287/522/175 271/458/175 288/460/175 -f 251/424/176 252/461/176 267/425/176 -f 259/421/176 260/463/176 275/422/176 -f 252/461/177 253/465/177 268/462/177 -f 260/463/177 261/467/177 276/464/177 -f 269/466/178 253/465/178 270/470/178 -f 277/468/178 261/467/178 278/472/178 -f 270/470/179 254/469/179 263/474/179 -f 263/474/180 247/473/180 264/476/180 -f 278/472/179 262/471/179 271/478/179 -f 271/478/180 255/477/180 272/480/180 -f 264/476/181 248/475/181 265/482/181 -f 272/480/181 256/479/181 273/484/181 -f 249/749/182 250/485/182 265/486/182 -f 257/750/182 258/487/182 273/488/182 -f 301/556/183 285/489/183 302/491/183 -f 292/555/184 293/492/184 308/494/184 -f 288/460/174 272/459/174 289/496/174 -f 265/751/185 266/497/185 281/499/185 -f 273/752/185 274/500/185 289/502/185 -f 266/497/186 267/503/186 282/498/186 -f 274/500/186 275/505/186 290/501/186 -f 267/503/187 268/507/187 283/504/187 -f 275/505/187 276/509/187 291/506/187 -f 268/507/188 269/511/188 284/508/188 -f 276/509/188 277/513/188 292/510/188 -f 285/512/189 269/511/189 286/516/189 -f 293/514/189 277/513/189 294/518/189 -f 286/516/190 270/515/190 279/520/190 -f 279/520/175 263/519/175 280/521/175 -f 294/518/190 278/517/190 287/522/190 -f 299/588/191 300/523/191 315/525/191 -f 306/586/192 307/526/192 322/528/192 -f 309/493/183 293/492/183 310/530/183 -f 302/491/193 286/490/193 295/532/193 -f 295/532/194 279/531/194 296/534/194 -f 310/530/193 294/529/193 303/536/193 -f 303/536/194 287/535/194 304/538/194 -f 296/534/195 280/533/195 297/540/195 -f 304/538/195 288/537/195 305/542/195 -f 281/753/196 282/543/196 297/545/196 -f 289/754/196 290/546/196 305/548/196 -f 282/543/197 283/549/197 298/544/197 -f 290/546/197 291/551/197 306/547/197 -f 283/549/9 284/553/9 299/550/9 -f 291/551/9 292/555/9 307/552/9 -f 284/553/184 285/489/184 300/554/184 -f 336/622/198 320/557/198 337/559/198 -f 328/619/198 312/560/198 329/562/198 -f 307/526/191 308/563/191 323/527/191 -f 300/523/199 301/565/199 316/524/199 -f 308/563/199 309/567/199 324/564/199 -f 317/566/200 301/565/200 318/570/200 -f 325/568/200 309/567/200 326/572/200 -f 318/570/201 302/569/201 311/574/201 -f 311/574/202 295/573/202 312/560/202 -f 326/572/201 310/571/201 319/577/201 -f 319/577/202 303/576/202 320/579/202 -f 312/560/203 296/575/203 313/561/203 -f 320/579/203 304/578/203 321/582/203 -f 297/755/204 298/583/204 313/585/204 -f 305/756/204 306/586/204 321/587/204 -f 298/583/192 299/588/192 314/584/192 -f 357/656/205 341/589/205 358/591/205 -f 349/655/205 333/592/205 350/594/205 -f 313/757/206 314/595/206 329/597/206 -f 321/758/206 322/598/206 337/600/206 -f 314/595/207 315/601/207 330/596/207 -f 322/598/207 323/603/207 338/599/207 -f 315/601/208 316/605/208 331/602/208 -f 323/603/208 324/607/208 339/604/208 -f 316/605/209 317/609/209 332/606/209 -f 324/607/209 325/611/209 340/608/209 -f 333/610/210 317/609/210 334/614/210 -f 341/612/210 325/611/210 342/616/210 -f 334/614/211 318/613/211 327/618/211 -f 327/618/212 311/617/212 328/619/212 -f 342/616/211 326/615/211 335/621/211 -f 335/621/212 319/620/212 336/622/212 -f 363/684/93 347/623/93 364/625/93 -f 354/682/92 355/626/92 370/628/92 -f 350/594/213 334/593/213 343/630/213 -f 343/630/214 327/629/214 344/632/214 -f 358/591/213 342/590/213 351/634/213 -f 351/634/214 335/633/214 352/636/214 -f 344/632/215 328/631/215 345/638/215 -f 352/636/215 336/635/215 353/640/215 -f 329/759/216 330/641/216 345/643/216 -f 337/760/216 338/644/216 353/646/216 -f 330/641/217 331/647/217 346/642/217 -f 338/644/217 339/649/217 354/645/217 -f 331/647/218 332/651/218 347/648/218 -f 339/649/218 340/653/218 355/650/218 -f 332/651/219 333/592/219 348/652/219 -f 340/653/219 341/589/219 356/654/219 -f 371/627/93 355/626/93 372/658/93 -f 364/625/94 348/624/94 365/660/94 -f 372/658/94 356/657/94 373/662/94 -f 349/659/61 350/663/61 365/660/61 -f 357/661/61 358/665/61 373/662/61 -f 350/663/62 343/667/62 366/664/62 -f 359/668/65 343/667/65 360/670/65 -f 374/666/62 358/665/62 367/672/62 -f 351/671/65 352/673/65 367/672/65 -f 360/670/66 344/669/66 361/676/66 -f 368/674/66 352/673/66 369/678/66 -f 345/761/91 346/679/91 361/681/91 -f 353/762/91 354/682/91 369/683/91 -f 362/680/92 346/679/92 363/684/92 -f 376/763/1 378/685/1 375/687/1 -f 378/685/2 382/688/2 377/686/2 -f 382/688/3 380/690/3 381/689/3 -f 375/764/5 377/686/5 379/692/5 -f 380/765/6 382/688/6 376/693/6 -f 383/766/1 384/694/1 385/696/1 -f 386/695/2 390/697/2 385/699/2 -f 390/697/3 388/700/3 389/702/3 -f 388/700/157 384/694/157 387/704/157 -f 388/700/6 390/697/6 384/694/6 diff --git a/src/main/resources/assets/hbm/models/turret_heavy_base.obj b/src/main/resources/assets/hbm/models/turret_heavy_base.obj deleted file mode 100644 index a90b51be6..000000000 --- a/src/main/resources/assets/hbm/models/turret_heavy_base.obj +++ /dev/null @@ -1,218 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_heavy_base.blend' -# www.blender.org -o Cube_Cube.001 -v -0.500000 0.000000 0.250000 -v 0.250000 0.000000 -0.500000 -v -0.500000 0.000000 -0.250000 -v 0.250000 0.000000 0.500000 -v 0.500000 0.000000 0.250000 -v -0.250000 0.000000 -0.500000 -v 0.500000 0.000000 -0.250000 -v -0.250000 0.000000 0.500000 -v -0.500000 0.125000 -0.250000 -v -0.500000 0.125000 0.250000 -v -0.250000 0.125000 0.500000 -v 0.250000 0.125000 0.500000 -v 0.250000 0.125000 -0.500000 -v -0.250000 0.125000 -0.500000 -v 0.500000 0.125000 0.250000 -v 0.500000 0.125000 -0.250000 -v -0.000000 0.125000 -0.425000 -v -0.000000 0.250000 -0.425000 -v 0.212500 0.125000 -0.368061 -v 0.212500 0.250000 -0.368061 -v 0.368061 0.125000 -0.212500 -v 0.368061 0.250000 -0.212500 -v 0.425000 0.125000 0.000000 -v 0.425000 0.250000 0.000000 -v 0.368061 0.125000 0.212500 -v 0.368061 0.250000 0.212500 -v 0.212500 0.125000 0.368061 -v 0.212500 0.250000 0.368061 -v 0.000000 0.125000 0.425000 -v 0.000000 0.250000 0.425000 -v -0.212500 0.125000 0.368061 -v -0.212500 0.250000 0.368061 -v -0.368061 0.125000 0.212500 -v -0.368061 0.250000 0.212500 -v -0.425000 0.125000 0.000000 -v -0.425000 0.250000 0.000000 -v -0.368061 0.125000 -0.212500 -v -0.368061 0.250000 -0.212500 -v -0.212500 0.125000 -0.368061 -v -0.212500 0.250000 -0.368061 -vt 0.698520 0.032316 -vt 0.963791 0.164951 -vt 0.831156 0.430222 -vt 0.172997 0.501253 -vt 0.172997 0.454359 -vt 0.360572 0.454359 -vt 0.032316 0.172997 -vt 0.079210 0.172997 -vt 0.079210 0.360572 -vt 0.487518 0.139838 -vt 0.454359 0.172997 -vt 0.360572 0.079210 -vt 0.046051 0.393730 -vt 0.501253 0.360572 -vt 0.454359 0.360572 -vt 0.360572 0.032316 -vt 0.172997 0.079210 -vt 0.393731 0.487518 -vt 0.139839 0.046051 -vt 0.191950 0.920790 -vt 0.274481 0.920790 -vt 0.274481 0.967684 -vt 0.345955 0.879524 -vt 0.369402 0.920135 -vt 0.387221 0.808050 -vt 0.427832 0.831497 -vt 0.387221 0.725519 -vt 0.434115 0.725519 -vt 0.345955 0.654045 -vt 0.386567 0.630598 -vt 0.274481 0.612779 -vt 0.297928 0.572168 -vt 0.191950 0.612779 -vt 0.191950 0.565885 -vt 0.120476 0.654045 -vt 0.097029 0.613433 -vt 0.079210 0.725519 -vt 0.038599 0.702072 -vt 0.079210 0.808050 -vt 0.032316 0.808050 -vt 0.120475 0.879524 -vt 0.168503 0.961401 -vt 0.079864 0.902971 -vt 0.346504 0.404862 -vt 0.266784 0.426223 -vt 0.187065 0.404862 -vt 0.128707 0.346503 -vt 0.107346 0.266784 -vt 0.128707 0.187065 -vt 0.187065 0.128707 -vt 0.404862 0.346504 -vt 0.426223 0.266784 -vt 0.404862 0.187065 -vt 0.346504 0.128707 -vt 0.266785 0.107346 -vt 0.698520 0.430222 -vt 0.565885 0.297587 -vt 0.565885 0.164951 -vt 0.831156 0.032316 -vt 0.963791 0.297587 -vt 0.360572 0.501253 -vt 0.032316 0.360572 -vt 0.393731 0.046051 -vt 0.139838 0.487518 -vt 0.501253 0.172997 -vt 0.172997 0.032316 -vt 0.487518 0.393731 -vt 0.046051 0.139838 -vt 0.191950 0.967684 -vt 0.297928 0.961401 -vt 0.386567 0.902971 -vt 0.434115 0.808050 -vt 0.427832 0.702072 -vt 0.369402 0.613433 -vt 0.274481 0.565885 -vt 0.168503 0.572168 -vt 0.079864 0.630598 -vt 0.032316 0.725519 -vt 0.097029 0.920135 -vt 0.038599 0.831497 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -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 0.707100 0.000000 -0.707100 -vn -0.707100 0.000000 0.707100 -vn 0.258800 0.000000 -0.965900 -vn 0.965900 0.000000 -0.258800 -vn 0.965900 0.000000 0.258800 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -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 -s off -f 2/1/1 5/2/1 8/3/1 -f 6/4/2 14/5/2 13/6/2 -f 1/7/3 10/8/3 9/9/3 -f 5/10/4 15/11/4 12/12/4 -f 3/13/5 9/9/5 14/5/5 -f 7/14/6 16/15/6 15/11/6 -f 4/16/7 12/12/7 11/17/7 -f 2/18/8 13/6/8 16/15/8 -f 8/19/9 11/17/9 10/8/9 -f 18/20/10 20/21/10 19/22/10 -f 20/21/8 22/23/8 21/24/8 -f 22/23/11 24/25/11 23/26/11 -f 24/25/12 26/27/12 25/28/12 -f 26/27/4 28/29/4 27/30/4 -f 28/29/13 30/31/13 29/32/13 -f 30/31/14 32/33/14 31/34/14 -f 32/33/9 34/35/9 33/36/9 -f 34/35/15 36/37/15 35/38/15 -f 36/37/16 38/39/16 37/40/16 -f 38/39/17 30/31/17 22/23/17 -f 40/41/18 18/20/18 17/42/18 -f 38/39/5 40/41/5 39/43/5 -f 16/15/17 13/6/17 19/44/17 -f 19/44/17 13/6/17 17/45/17 -f 13/6/17 14/5/17 17/45/17 -f 17/45/17 14/5/17 39/46/17 -f 9/9/17 37/47/17 39/46/17 -f 37/47/17 9/9/17 35/48/17 -f 9/9/17 10/8/17 35/48/17 -f 35/48/17 10/8/17 33/49/17 -f 11/17/17 31/50/17 33/49/17 -f 21/51/17 23/52/17 16/15/17 -f 15/11/17 25/53/17 27/54/17 -f 25/53/17 15/11/17 23/52/17 -f 15/11/17 16/15/17 23/52/17 -f 27/54/17 29/55/17 12/12/17 -f 31/50/17 11/17/17 29/55/17 -f 11/17/17 12/12/17 29/55/17 -f 8/3/1 1/56/1 3/57/1 -f 3/57/1 6/58/1 2/1/1 -f 2/1/1 7/59/1 5/2/1 -f 5/2/1 4/60/1 8/3/1 -f 8/3/1 3/57/1 2/1/1 -f 2/61/2 6/4/2 13/6/2 -f 3/62/3 1/7/3 9/9/3 -f 4/63/4 5/10/4 12/12/4 -f 6/64/5 3/13/5 14/5/5 -f 5/65/6 7/14/6 15/11/6 -f 8/66/7 4/16/7 11/17/7 -f 7/67/8 2/18/8 16/15/8 -f 1/68/9 8/19/9 10/8/9 -f 17/69/10 18/20/10 19/22/10 -f 19/70/8 20/21/8 21/24/8 -f 21/71/11 22/23/11 23/26/11 -f 23/72/12 24/25/12 25/28/12 -f 25/73/4 26/27/4 27/30/4 -f 27/74/13 28/29/13 29/32/13 -f 29/75/14 30/31/14 31/34/14 -f 31/76/9 32/33/9 33/36/9 -f 33/77/15 34/35/15 35/38/15 -f 35/78/16 36/37/16 37/40/16 -f 22/23/17 20/21/17 18/20/17 -f 18/20/17 40/41/17 22/23/17 -f 38/39/17 36/37/17 30/31/17 -f 34/35/17 32/33/17 30/31/17 -f 30/31/17 28/29/17 22/23/17 -f 26/27/17 24/25/17 22/23/17 -f 22/23/17 40/41/17 38/39/17 -f 36/37/17 34/35/17 30/31/17 -f 28/29/17 26/27/17 22/23/17 -f 39/79/18 40/41/18 17/42/18 -f 37/80/5 38/39/5 39/43/5 -f 21/51/17 16/15/17 19/44/17 -f 14/5/17 9/9/17 39/46/17 -f 10/8/17 11/17/17 33/49/17 -f 12/12/17 15/11/17 27/54/17 diff --git a/src/main/resources/assets/hbm/models/turret_heavy_gun.obj b/src/main/resources/assets/hbm/models/turret_heavy_gun.obj deleted file mode 100644 index b4eafcede..000000000 --- a/src/main/resources/assets/hbm/models/turret_heavy_gun.obj +++ /dev/null @@ -1,479 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_heavy_gun.blend' -# www.blender.org -o Cylinder.001 -v 0.000000 0.100000 0.500000 -v 0.000000 0.100000 1.750000 -v 0.070711 0.070711 0.500000 -v 0.070711 0.070711 1.750000 -v 0.100000 -0.000000 0.500000 -v 0.100000 0.000000 1.750000 -v 0.070711 -0.070711 0.500000 -v 0.070711 -0.070711 1.750000 -v -0.000000 -0.100000 0.500000 -v -0.000000 -0.100000 1.750000 -v -0.070711 -0.070711 0.500000 -v -0.070711 -0.070711 1.750000 -v -0.100000 -0.000000 0.500000 -v -0.100000 0.000000 1.750000 -v -0.070711 0.070711 0.500000 -v -0.070711 0.070711 1.750000 -v -0.200000 -0.250000 0.250000 -v -0.200000 0.250000 0.250000 -v -0.200000 -0.100000 -0.750000 -v -0.200000 0.200000 -0.750000 -v 0.200000 -0.250000 0.250000 -v 0.200000 0.250000 0.250000 -v 0.200000 -0.100000 -0.750000 -v 0.200000 0.200000 -0.750000 -v -0.200000 0.250000 -0.250000 -v -0.200000 -0.250000 -0.250000 -v 0.200000 0.250000 -0.250000 -v 0.200000 -0.250000 -0.250000 -v 0.000000 0.150000 0.500000 -v 0.106066 0.106066 0.500000 -v 0.150000 -0.000000 0.500000 -v 0.106066 -0.106066 0.500000 -v -0.000000 -0.150000 0.500000 -v -0.106066 -0.106066 0.500000 -v -0.150000 -0.000000 0.500000 -v -0.106066 0.106066 0.500000 -v 0.106066 0.106066 0.250000 -v 0.150000 -0.000000 0.250000 -v 0.000000 0.150000 0.250000 -v 0.106066 -0.106066 0.250000 -v -0.000000 -0.150000 0.250000 -v -0.106066 -0.106066 0.250000 -v -0.150000 -0.000000 0.250000 -v -0.106066 0.106066 0.250000 -v -0.074375 -0.131250 2.250000 -v -0.148750 0.131250 2.250000 -v -0.074375 -0.131250 1.750000 -v -0.148750 0.131250 1.750000 -v 0.074375 -0.131250 2.250000 -v 0.148750 0.131250 2.250000 -v 0.074375 -0.131250 1.750000 -v 0.148750 0.131250 1.750000 -v 0.000000 0.075000 1.750000 -v 0.000000 0.075000 2.250000 -v 0.053033 0.053033 1.750000 -v 0.053033 0.053033 2.250000 -v 0.075000 -0.000000 1.750000 -v 0.075000 0.000000 2.250000 -v 0.053033 -0.053033 1.750000 -v 0.053033 -0.053033 2.250000 -v -0.000000 -0.075000 1.750000 -v -0.000000 -0.075000 2.250000 -v -0.053033 -0.053033 1.750000 -v -0.053033 -0.053033 2.250000 -v -0.075000 -0.000000 1.750000 -v -0.075000 0.000000 2.250000 -v -0.053033 0.053033 1.750000 -v -0.053033 0.053033 2.250000 -v -0.375000 0.000000 -0.100000 -v 0.375000 0.000000 -0.100000 -v -0.375000 -0.070711 -0.070711 -v 0.375000 -0.070711 -0.070711 -v -0.375000 -0.100000 0.000000 -v 0.375000 -0.100000 0.000000 -v -0.375000 -0.070711 0.070711 -v 0.375000 -0.070711 0.070711 -v -0.375000 0.000000 0.100000 -v 0.375000 0.000000 0.100000 -v -0.375000 0.070711 0.070711 -v 0.375000 0.070711 0.070711 -v -0.375000 0.100000 -0.000000 -v 0.375000 0.100000 -0.000000 -v -0.375000 0.070711 -0.070711 -v 0.375000 0.070711 -0.070711 -v -0.250000 -0.250000 -0.400000 -v -0.250000 0.150000 -0.400000 -v -0.250000 -0.250000 -0.500000 -v -0.250000 0.150000 -0.500000 -v 0.250000 -0.250000 -0.400000 -v 0.250000 0.150000 -0.400000 -v 0.250000 -0.250000 -0.500000 -v 0.250000 0.150000 -0.500000 -v -0.075000 0.200000 0.100000 -v -0.075000 0.319533 0.098137 -v -0.075000 0.200000 -0.400000 -v -0.075000 0.380467 -0.398137 -v 0.075000 0.200000 0.100000 -v 0.075000 0.319533 0.098137 -v 0.075000 0.200000 -0.400000 -v 0.075000 0.380467 -0.398137 -v -0.075000 0.438402 0.110854 -v -0.075000 0.559362 -0.374294 -v 0.075000 0.559362 -0.374294 -v 0.075000 0.438402 0.110854 -v -0.075000 0.554834 0.137964 -v -0.075000 0.734018 -0.328826 -v 0.075000 0.734018 -0.328826 -v 0.075000 0.554834 0.137964 -vt 0.433336 0.891529 -vt 0.433336 0.871043 -vt 0.767919 0.871043 -vt 0.433336 0.850557 -vt 0.767919 0.850557 -vt 0.433336 0.830070 -vt 0.767919 0.830070 -vt 0.433336 0.809584 -vt 0.767919 0.809584 -vt 0.433337 0.973475 -vt 0.433337 0.952988 -vt 0.767919 0.952988 -vt 0.433336 0.932502 -vt 0.767919 0.932502 -vt 0.433336 0.912016 -vt 0.767919 0.891529 -vt 0.767919 0.912015 -vt 0.880596 0.024656 -vt 0.892961 0.019535 -vt 0.892961 0.050264 -vt 0.880596 0.198789 -vt 0.880596 0.178303 -vt 0.892961 0.173182 -vt 0.260434 0.695260 -vt 0.260434 0.775560 -vt 0.153367 0.775559 -vt 0.892961 0.111723 -vt 0.959877 0.111723 -vt 0.959877 0.142452 -vt 0.153368 0.426926 -vt 0.153368 0.293093 -vt 0.260434 0.293093 -vt 0.153368 0.019535 -vt 0.260434 0.019535 -vt 0.260434 0.159260 -vt 0.153367 0.695260 -vt 0.153368 0.560759 -vt 0.260434 0.560759 -vt 0.153368 0.159260 -vt 0.260434 0.426926 -vt 0.394267 0.560759 -vt 0.059684 0.694592 -vt 0.019535 0.560759 -vt 0.880596 0.106601 -vt 0.880596 0.086115 -vt 0.892961 0.080993 -vt 0.880596 0.239762 -vt 0.892961 0.234640 -vt 0.892961 0.265370 -vt 0.880596 0.168060 -vt 0.880596 0.147574 -vt 0.892961 0.142452 -vt 0.880596 0.116844 -vt 0.880596 0.055386 -vt 0.880596 0.209033 -vt 0.892961 0.203911 -vt 0.959877 0.173182 -vt 0.959877 0.234640 -vt 0.959877 0.265370 -vt 0.959877 0.050264 -vt 0.959877 0.080993 -vt 0.959877 0.203911 -vt 0.959877 0.019535 -vt 0.637432 0.148299 -vt 0.567169 0.168207 -vt 0.530686 0.039442 -vt 0.637432 0.227930 -vt 0.567169 0.208022 -vt 0.600948 0.356694 -vt 0.530686 0.336786 -vt 0.433336 0.208022 -vt 0.771265 0.148299 -vt 0.806396 0.208189 -vt 0.771265 0.227929 -vt 0.792201 0.202309 -vt 0.393186 0.829994 -vt 0.259353 0.829994 -vt 0.259353 0.814629 -vt 0.786321 0.188114 -vt 0.792201 0.173919 -vt 0.393186 0.845358 -vt 0.259353 0.845358 -vt 0.806396 0.168039 -vt 0.393186 0.860723 -vt 0.259353 0.860723 -vt 0.820591 0.202309 -vt 0.841527 0.208022 -vt 0.393186 0.876088 -vt 0.259353 0.876088 -vt 0.826471 0.188114 -vt 0.393186 0.891452 -vt 0.259353 0.891453 -vt 0.841527 0.168206 -vt 0.393186 0.906817 -vt 0.259353 0.906817 -vt 0.820591 0.173919 -vt 0.393186 0.922182 -vt 0.393186 0.937547 -vt 0.259353 0.937547 -vt 0.259353 0.922182 -vt 0.220284 0.937547 -vt 0.220284 0.958033 -vt 0.019535 0.958033 -vt 0.220284 0.978519 -vt 0.019535 0.978519 -vt 0.220284 0.814629 -vt 0.220284 0.835115 -vt 0.019535 0.835115 -vt 0.220284 0.855602 -vt 0.019535 0.855602 -vt 0.220284 0.876088 -vt 0.019535 0.876088 -vt 0.220284 0.896574 -vt 0.019535 0.896574 -vt 0.220284 0.917060 -vt 0.019535 0.937547 -vt 0.019535 0.917060 -vt 0.819866 0.422530 -vt 0.819866 0.529596 -vt 0.793099 0.529596 -vt 0.953699 0.422530 -vt 0.953699 0.529596 -vt 0.980465 0.422530 -vt 0.980465 0.529596 -vt 0.819866 0.663429 -vt 0.819866 0.556363 -vt 0.953699 0.556363 -vt 0.819866 0.395763 -vt 0.676377 0.687137 -vt 0.708754 0.557280 -vt 0.754030 0.574125 -vt 0.573608 0.444071 -vt 0.573608 0.395763 -vt 0.613758 0.395763 -vt 0.510989 0.687137 -vt 0.481298 0.699069 -vt 0.433336 0.574125 -vt 0.613758 0.738516 -vt 0.613758 0.770515 -vt 0.573608 0.770515 -vt 0.613758 0.444071 -vt 0.613758 0.492378 -vt 0.573608 0.492378 -vt 0.573608 0.706517 -vt 0.573608 0.674519 -vt 0.613758 0.674519 -vt 0.478612 0.557280 -vt 0.525602 0.546078 -vt 0.541913 0.678913 -vt 0.645454 0.678913 -vt 0.573608 0.738516 -vt 0.613758 0.706517 -vt 0.573608 0.540686 -vt 0.613758 0.540686 -vt 0.661764 0.546078 -vt 0.767919 0.973474 -vt 0.880596 0.045142 -vt 0.354117 0.694592 -vt 0.273817 0.694592 -vt 0.394267 0.426926 -vt 0.019535 0.426926 -vt 0.139984 0.694592 -vt 0.880596 0.260248 -vt 0.880596 0.137331 -vt 0.880596 0.075872 -vt 0.880596 0.229519 -vt 0.600948 0.019535 -vt 0.433336 0.168207 -vt 0.393186 0.814629 -vt 0.019535 0.814629 -vt 0.793099 0.422530 -vt 0.953699 0.663429 -vt 0.953699 0.395763 -vt 0.706068 0.699069 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -0.957800 -0.287300 -vn 0.000000 0.995000 -0.099500 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.962100 -0.272600 0.000000 -vn 0.962100 -0.272600 0.000000 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 0.923900 -vn -0.000000 0.382700 0.923900 -vn -0.000000 0.923900 0.382700 -vn 0.000000 0.382700 -0.923900 -vn -0.000000 0.923900 -0.382700 -vn 0.000000 0.010300 -0.999900 -vn 0.000000 0.015600 0.999900 -vn 0.000000 0.132100 -0.991200 -vn 0.000000 -0.226800 0.973900 -vn 0.000000 -0.106400 0.994300 -vn 0.000000 0.933600 0.358400 -vn 0.000000 0.251900 -0.967700 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/10/5 12/11/5 11/12/5 -f 12/11/6 14/13/6 13/14/6 -f 16/15/7 2/1/7 1/16/7 -f 14/13/8 16/15/8 15/17/8 -f 9/18/9 33/19/9 32/20/9 -f 13/21/9 15/22/9 36/23/9 -f 24/24/10 23/25/10 19/26/10 -f 30/27/1 37/28/1 39/29/1 -f 18/30/9 17/31/9 21/32/9 -f 19/33/11 23/34/11 28/35/11 -f 24/24/12 20/36/12 25/37/12 -f 27/38/13 25/37/13 18/30/13 -f 26/39/14 28/35/14 21/32/14 -f 27/38/15 22/40/15 28/41/15 -f 25/37/16 19/42/16 26/43/16 -f 3/44/9 5/45/9 31/46/9 -f 11/47/9 34/48/9 33/49/9 -f 15/50/9 1/51/9 29/52/9 -f 3/53/9 30/27/9 29/52/9 -f 7/54/9 32/20/9 31/46/9 -f 13/55/9 35/56/9 34/48/9 -f 35/56/8 36/23/8 44/57/8 -f 34/48/5 42/58/5 41/59/5 -f 32/20/3 40/60/3 38/61/3 -f 31/46/2 38/61/2 37/28/2 -f 29/52/7 39/29/7 44/57/7 -f 34/48/6 35/56/6 43/62/6 -f 33/19/4 41/63/4 40/60/4 -f 48/64/17 47/65/17 45/66/17 -f 52/67/10 51/68/10 47/65/10 -f 50/69/18 49/70/18 51/68/18 -f 47/65/14 51/68/14 49/71/14 -f 52/67/13 48/64/13 46/72/13 -f 58/73/9 50/74/9 56/75/9 -f 55/76/5 56/77/5 54/78/5 -f 54/79/9 46/72/9 68/80/9 -f 57/81/6 58/82/6 56/77/6 -f 68/80/9 46/72/9 66/83/9 -f 59/84/8 60/85/8 58/82/8 -f 58/73/9 60/86/9 49/87/9 -f 61/88/7 62/89/7 60/85/7 -f 60/86/9 62/90/9 49/87/9 -f 63/91/1 64/92/1 62/89/1 -f 50/74/9 46/72/9 54/79/9 -f 45/93/9 49/87/9 62/90/9 -f 65/94/2 66/95/2 64/92/2 -f 62/90/9 64/96/9 45/93/9 -f 67/97/4 53/98/4 54/99/4 -f 67/97/3 68/100/3 66/95/3 -f 56/75/9 50/74/9 54/79/9 -f 45/93/9 64/96/9 66/83/9 -f 70/101/19 72/102/19 71/103/19 -f 72/102/20 74/104/20 73/105/20 -f 74/106/21 76/107/21 75/108/21 -f 76/107/22 78/109/22 77/110/22 -f 78/109/23 80/111/23 79/112/23 -f 80/111/24 82/113/24 81/114/24 -f 84/115/25 70/101/25 69/116/25 -f 82/113/26 84/115/26 83/117/26 -f 88/118/16 87/119/16 85/120/16 -f 92/121/10 91/122/10 87/119/10 -f 90/123/15 89/124/15 91/122/15 -f 86/125/9 85/126/9 89/127/9 -f 87/119/14 91/122/14 89/127/14 -f 92/121/13 88/118/13 86/128/13 -f 94/129/16 96/130/16 95/131/16 -f 100/132/27 99/133/27 95/134/27 -f 98/135/15 97/136/15 99/137/15 -f 94/138/28 93/139/28 97/140/28 -f 96/141/29 102/142/29 103/143/29 -f 104/144/30 108/145/30 105/146/30 -f 100/147/15 103/148/15 104/149/15 -f 96/130/16 94/129/16 101/150/16 -f 98/151/31 104/144/31 101/152/31 -f 107/153/32 106/154/32 105/146/32 -f 102/142/33 106/154/33 107/153/33 -f 103/148/15 107/153/15 108/145/15 -f 102/155/16 101/150/16 105/146/16 -f 1/16/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/156/5 10/10/5 11/12/5 -f 11/12/6 12/11/6 13/14/6 -f 15/17/7 16/15/7 1/16/7 -f 13/14/8 14/13/8 15/17/8 -f 7/157/9 9/18/9 32/20/9 -f 35/56/9 13/21/9 36/23/9 -f 20/36/10 24/24/10 19/26/10 -f 29/52/1 30/27/1 39/29/1 -f 22/40/9 18/30/9 21/32/9 -f 26/39/11 19/33/11 28/35/11 -f 27/38/12 24/24/12 25/37/12 -f 22/40/13 27/38/13 18/30/13 -f 17/31/14 26/39/14 21/32/14 -f 28/41/15 23/158/15 27/38/15 -f 24/159/15 27/38/15 23/158/15 -f 22/40/15 21/160/15 28/41/15 -f 26/43/16 17/161/16 18/30/16 -f 18/30/16 25/37/16 26/43/16 -f 20/162/16 19/42/16 25/37/16 -f 30/27/9 3/44/9 31/46/9 -f 9/163/9 11/47/9 33/49/9 -f 36/23/9 15/50/9 29/52/9 -f 1/164/9 3/53/9 29/52/9 -f 5/165/9 7/54/9 31/46/9 -f 11/166/9 13/55/9 34/48/9 -f 43/62/8 35/56/8 44/57/8 -f 33/49/5 34/48/5 41/59/5 -f 31/46/3 32/20/3 38/61/3 -f 30/27/2 31/46/2 37/28/2 -f 36/23/7 29/52/7 44/57/7 -f 42/58/6 34/48/6 43/62/6 -f 32/20/4 33/19/4 40/60/4 -f 46/167/17 48/64/17 45/66/17 -f 48/64/10 52/67/10 47/65/10 -f 52/67/18 50/69/18 51/68/18 -f 45/168/14 47/65/14 49/71/14 -f 50/74/13 52/67/13 46/72/13 -f 53/169/5 55/76/5 54/78/5 -f 55/76/6 57/81/6 56/77/6 -f 57/81/8 59/84/8 58/82/8 -f 50/74/9 58/73/9 49/87/9 -f 59/84/7 61/88/7 60/85/7 -f 61/88/1 63/91/1 62/89/1 -f 63/91/2 65/94/2 64/92/2 -f 68/100/4 67/97/4 54/99/4 -f 65/94/3 67/97/3 66/95/3 -f 46/72/9 45/93/9 66/83/9 -f 69/116/19 70/101/19 71/103/19 -f 71/103/20 72/102/20 73/105/20 -f 73/170/21 74/106/21 75/108/21 -f 75/108/22 76/107/22 77/110/22 -f 77/110/23 78/109/23 79/112/23 -f 79/112/24 80/111/24 81/114/24 -f 83/117/25 84/115/25 69/116/25 -f 81/114/26 82/113/26 83/117/26 -f 86/171/16 88/118/16 85/120/16 -f 88/118/10 92/121/10 87/119/10 -f 92/121/15 90/123/15 91/122/15 -f 90/172/9 86/125/9 89/127/9 -f 85/126/14 87/119/14 89/127/14 -f 90/173/13 92/121/13 86/128/13 -f 93/174/16 94/129/16 95/131/16 -f 96/141/27 100/132/27 95/134/27 -f 100/147/15 98/135/15 99/137/15 -f 98/151/28 94/138/28 97/140/28 -f 100/132/29 96/141/29 103/143/29 -f 101/152/30 104/144/30 105/146/30 -f 98/135/15 100/147/15 104/149/15 -f 102/155/16 96/130/16 101/150/16 -f 94/138/31 98/151/31 101/152/31 -f 108/145/32 107/153/32 105/146/32 -f 103/143/33 102/142/33 107/153/33 -f 104/149/15 103/148/15 108/145/15 -f 106/154/16 102/155/16 105/146/16 diff --git a/src/main/resources/assets/hbm/models/turret_heavy_rotor.obj b/src/main/resources/assets/hbm/models/turret_heavy_rotor.obj deleted file mode 100644 index 307fc5a6f..000000000 --- a/src/main/resources/assets/hbm/models/turret_heavy_rotor.obj +++ /dev/null @@ -1,275 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_heavy_rotor.blend' -# www.blender.org -o Cylinder -v -0.282588 1.117500 -0.222228 -v -0.282588 0.250000 -0.222229 -v 0.332588 0.250000 -0.222228 -v 0.332588 1.117500 -0.222228 -v 0.369552 0.250000 -0.153073 -v 0.369552 1.192500 -0.153073 -v 0.392314 0.250000 -0.078036 -v 0.392314 1.237500 -0.078036 -v 0.400000 0.250000 -0.000000 -v 0.400000 1.250000 -0.000000 -v 0.392314 0.250000 0.078036 -v 0.392314 1.237500 0.078036 -v 0.369552 0.250000 0.153073 -v 0.369552 1.192500 0.153073 -v 0.332588 0.250000 0.222228 -v 0.332588 1.117500 0.222228 -v -0.319552 1.192500 0.153073 -v -0.319552 0.250000 0.153073 -v -0.282588 1.117500 0.222228 -v -0.282588 0.250000 0.222228 -v 0.282588 1.117500 0.222228 -v 0.282588 0.250000 0.222228 -v 0.319552 1.192500 0.153073 -v 0.319552 0.250000 0.153073 -v 0.342314 1.237500 0.078036 -v 0.342314 0.250000 0.078036 -v 0.350000 1.250000 -0.000000 -v 0.350000 0.250000 -0.000000 -v 0.342314 1.237500 -0.078036 -v 0.342314 0.250000 -0.078036 -v 0.319552 1.192500 -0.153073 -v 0.319552 0.250000 -0.153073 -v 0.282588 1.117500 -0.222228 -v 0.282588 0.250000 -0.222228 -v -0.332588 0.250000 0.222228 -v -0.332588 1.117500 0.222228 -v -0.369552 0.250000 0.153073 -v -0.369552 1.192500 0.153073 -v -0.392314 0.250000 0.078036 -v -0.392314 1.237500 0.078036 -v -0.400000 0.250000 -0.000000 -v -0.400000 1.250000 -0.000000 -v -0.392314 0.250000 -0.078037 -v -0.392314 1.237500 -0.078037 -v -0.369552 0.250000 -0.153074 -v -0.369552 1.192500 -0.153074 -v -0.332588 0.250000 -0.222229 -v -0.332588 1.117500 -0.222228 -v -0.319552 1.192500 -0.153074 -v -0.319552 0.250000 -0.153074 -v -0.342314 1.237500 -0.078037 -v -0.342314 0.250000 -0.078037 -v -0.350000 1.250000 -0.000000 -v -0.350000 0.250000 -0.000000 -v -0.342314 1.237500 0.078036 -v -0.342314 0.250000 0.078036 -v -0.700000 0.507596 0.386824 -v -0.200000 0.507596 0.386824 -v -0.700000 1.342404 0.213176 -v -0.200000 1.492404 0.213176 -v 0.200000 0.507596 0.386824 -v 0.700000 0.507596 0.386824 -v 0.200000 1.492404 0.213176 -v 0.700000 1.342404 0.213176 -vt 0.471550 0.978182 -vt 0.442112 0.981045 -vt 0.442112 0.962420 -vt 0.412674 0.978182 -vt 0.412674 0.959558 -vt 0.752477 0.642507 -vt 0.780414 0.671715 -vt 0.429349 0.671715 -vt 0.797175 0.700923 -vt 0.429349 0.700923 -vt 0.801831 0.730131 -vt 0.429349 0.730131 -vt 0.797175 0.759339 -vt 0.429349 0.759339 -vt 0.780413 0.788547 -vt 0.429349 0.788547 -vt 0.752477 0.817754 -vt 0.018956 0.516973 -vt 0.018956 0.487765 -vt 0.386782 0.487765 -vt 0.391438 0.516973 -vt 0.386782 0.546181 -vt 0.018956 0.546180 -vt 0.370020 0.575389 -vt 0.018955 0.575388 -vt 0.342084 0.604596 -vt 0.018955 0.671715 -vt 0.018955 0.642508 -vt 0.342084 0.642507 -vt 0.018955 0.700923 -vt 0.370020 0.671715 -vt 0.018956 0.730131 -vt 0.386782 0.700923 -vt 0.391438 0.730131 -vt 0.386782 0.759339 -vt 0.018956 0.759339 -vt 0.370020 0.788547 -vt 0.018956 0.788546 -vt 0.342084 0.817754 -vt 0.752477 0.429349 -vt 0.780414 0.458557 -vt 0.429349 0.458557 -vt 0.797175 0.487765 -vt 0.429349 0.487765 -vt 0.801831 0.516972 -vt 0.429349 0.516973 -vt 0.797175 0.546180 -vt 0.429349 0.546181 -vt 0.780413 0.575388 -vt 0.429349 0.575389 -vt 0.752478 0.604596 -vt 0.380083 0.969703 -vt 0.380083 0.951079 -vt 0.342084 0.955935 -vt 0.342084 0.937311 -vt 0.018955 0.937311 -vt 0.018955 0.458557 -vt 0.018955 0.429349 -vt 0.342084 0.429349 -vt 0.370020 0.458557 -vt 0.471550 0.959558 -vt 0.504140 0.951079 -vt 0.504140 0.969703 -vt 0.542140 0.937311 -vt 0.542140 0.955935 -vt 0.865269 0.937310 -vt 0.542140 0.899399 -vt 0.542140 0.880775 -vt 0.865269 0.880774 -vt 0.504141 0.885631 -vt 0.504141 0.867006 -vt 0.471550 0.877152 -vt 0.471550 0.858528 -vt 0.442112 0.874289 -vt 0.442112 0.855665 -vt 0.412674 0.877152 -vt 0.412674 0.858528 -vt 0.380084 0.885631 -vt 0.380084 0.867007 -vt 0.342084 0.899399 -vt 0.342084 0.880775 -vt 0.018955 0.899399 -vt 0.205197 0.018955 -vt 0.205493 0.391438 -vt 0.018955 0.336563 -vt 0.243700 0.018955 -vt 0.429942 0.018955 -vt 0.429942 0.336563 -vt 0.429349 0.642507 -vt 0.429349 0.817754 -vt 0.018955 0.604596 -vt 0.018955 0.817754 -vt 0.429349 0.429349 -vt 0.429349 0.604596 -vt 0.018955 0.955935 -vt 0.865269 0.955935 -vt 0.865269 0.899399 -vt 0.018955 0.880775 -vt 0.018955 0.018955 -vt 0.243404 0.391438 -vn 0.000000 0.987400 0.158200 -vn 0.000000 0.987400 -0.158200 -vn 0.881900 -0.000000 -0.471400 -vn 0.956900 0.000000 -0.290300 -vn 0.995200 0.000000 -0.098000 -vn 0.995200 0.000000 0.098000 -vn 0.956900 0.000000 0.290300 -vn 0.881900 -0.000000 0.471400 -vn -0.881900 -0.000000 -0.471400 -vn -0.956900 0.000000 -0.290300 -vn -0.995200 0.000000 -0.098000 -vn -0.995200 0.000000 0.098000 -vn -0.956900 0.000000 0.290300 -vn -0.881900 -0.000000 0.471400 -vn 0.000000 0.857600 -0.514300 -vn 0.000000 0.677900 -0.735200 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.857600 0.514300 -vn 0.000000 0.677900 0.735200 -vn 0.000000 -0.000000 1.000000 -vn -0.052000 0.173400 0.983500 -vn 0.000000 0.203700 0.979000 -vn 0.052000 0.173400 0.983500 -s off -f 12/1/1 10/2/1 27/3/1 -f 8/4/2 29/5/2 27/3/2 -f 4/6/3 6/7/3 5/8/3 -f 6/7/4 8/9/4 7/10/4 -f 8/9/5 10/11/5 9/12/5 -f 9/12/6 10/11/6 12/13/6 -f 11/14/7 12/13/7 14/15/7 -f 13/16/8 14/15/8 16/17/8 -f 54/18/6 52/19/6 51/20/6 -f 54/18/5 53/21/5 55/22/5 -f 56/23/4 55/22/4 17/24/4 -f 18/25/3 17/24/3 19/26/3 -f 24/27/9 22/28/9 21/29/9 -f 26/30/10 24/27/10 23/31/10 -f 28/32/11 26/30/11 25/33/11 -f 28/32/12 27/34/12 29/35/12 -f 30/36/13 29/35/13 31/37/13 -f 32/38/14 31/37/14 33/39/14 -f 36/40/14 38/41/14 37/42/14 -f 38/41/13 40/43/13 39/44/13 -f 40/43/12 42/45/12 41/46/12 -f 41/46/11 42/45/11 44/47/11 -f 43/48/10 44/47/10 46/49/10 -f 45/50/9 46/49/9 48/51/9 -f 6/52/15 31/53/15 29/5/15 -f 4/54/16 33/55/16 31/53/16 -f 34/56/17 33/55/17 4/54/17 -f 50/57/8 2/58/8 1/59/8 -f 52/19/7 50/57/7 49/60/7 -f 25/61/18 23/62/18 14/63/18 -f 23/62/19 21/64/19 16/65/19 -f 16/65/20 21/64/20 22/66/20 -f 19/67/20 36/68/20 35/69/20 -f 17/70/19 38/71/19 36/68/19 -f 55/72/18 40/73/18 38/71/18 -f 53/74/1 42/75/1 40/73/1 -f 53/74/2 51/76/2 44/77/2 -f 51/76/15 49/78/15 46/79/15 -f 49/78/16 1/80/16 48/81/16 -f 48/81/17 1/80/17 2/82/17 -f 58/83/21 60/84/21 59/85/21 -f 61/86/22 62/87/22 64/88/22 -f 25/61/1 12/1/1 27/3/1 -f 10/2/2 8/4/2 27/3/2 -f 3/89/3 4/6/3 5/8/3 -f 5/8/4 6/7/4 7/10/4 -f 7/10/5 8/9/5 9/12/5 -f 11/14/6 9/12/6 12/13/6 -f 13/16/7 11/14/7 14/15/7 -f 15/90/8 13/16/8 16/17/8 -f 53/21/6 54/18/6 51/20/6 -f 56/23/5 54/18/5 55/22/5 -f 18/25/4 56/23/4 17/24/4 -f 20/91/3 18/25/3 19/26/3 -f 23/31/9 24/27/9 21/29/9 -f 25/33/10 26/30/10 23/31/10 -f 27/34/11 28/32/11 25/33/11 -f 30/36/12 28/32/12 29/35/12 -f 32/38/13 30/36/13 31/37/13 -f 34/92/14 32/38/14 33/39/14 -f 35/93/14 36/40/14 37/42/14 -f 37/42/13 38/41/13 39/44/13 -f 39/44/12 40/43/12 41/46/12 -f 43/48/11 41/46/11 44/47/11 -f 45/50/10 43/48/10 46/49/10 -f 47/94/9 45/50/9 48/51/9 -f 8/4/15 6/52/15 29/5/15 -f 6/52/16 4/54/16 31/53/16 -f 3/95/17 34/56/17 4/54/17 -f 49/60/8 50/57/8 1/59/8 -f 51/20/7 52/19/7 49/60/7 -f 12/1/18 25/61/18 14/63/18 -f 14/63/19 23/62/19 16/65/19 -f 15/96/20 16/65/20 22/66/20 -f 20/97/20 19/67/20 35/69/20 -f 19/67/19 17/70/19 36/68/19 -f 17/70/18 55/72/18 38/71/18 -f 55/72/1 53/74/1 40/73/1 -f 42/75/2 53/74/2 44/77/2 -f 44/77/15 51/76/15 46/79/15 -f 46/79/16 49/78/16 48/81/16 -f 47/98/17 48/81/17 2/82/17 -f 57/99/22 58/83/22 59/85/22 -f 63/100/23 61/86/23 64/88/23 diff --git a/src/main/resources/assets/hbm/models/turret_light_gun.obj b/src/main/resources/assets/hbm/models/turret_light_gun.obj deleted file mode 100644 index a8504b499..000000000 --- a/src/main/resources/assets/hbm/models/turret_light_gun.obj +++ /dev/null @@ -1,581 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_light_gun.blend' -# www.blender.org -o Cylinder.001 -v 0.150000 0.200000 -0.650000 -v 0.150000 -0.100000 -0.650000 -v 0.150000 0.200000 0.150000 -v 0.150000 -0.200000 0.150000 -v -0.150000 0.200000 -0.650000 -v -0.150000 -0.100000 -0.650000 -v -0.150000 0.200000 0.150000 -v -0.150000 -0.200000 0.150000 -v -0.090000 -0.120000 0.150000 -v 0.090000 -0.120000 0.150000 -v 0.090000 0.170000 0.150000 -v -0.090000 0.170000 0.150000 -v -0.090000 -0.070000 0.650000 -v 0.090000 -0.070000 0.650000 -v 0.090000 0.170000 0.650000 -v -0.090000 0.170000 0.650000 -v 0.000000 0.125000 0.650000 -v 0.000000 0.125000 1.650000 -v 0.017678 0.117678 0.650000 -v 0.017678 0.117678 1.650000 -v 0.025000 0.100000 0.650000 -v 0.025000 0.100000 1.650000 -v 0.017678 0.082322 0.650000 -v 0.017678 0.082322 1.650000 -v -0.000000 0.075000 0.650000 -v -0.000000 0.075000 1.650000 -v -0.017678 0.082322 0.650000 -v -0.017678 0.082322 1.650000 -v -0.025000 0.100000 0.650000 -v -0.025000 0.100000 1.650000 -v -0.017678 0.117678 0.650000 -v -0.017678 0.117678 1.650000 -v 0.000000 0.065000 0.650000 -v 0.000000 0.065000 1.200000 -v 0.010607 0.060607 0.650000 -v 0.010607 0.060607 1.200000 -v 0.015000 0.050000 0.650000 -v 0.015000 0.050000 1.200000 -v 0.010607 0.039393 0.650000 -v 0.010607 0.039393 1.200000 -v -0.000000 0.035000 0.650000 -v -0.000000 0.035000 1.200000 -v -0.010607 0.039393 0.650000 -v -0.010607 0.039393 1.200000 -v -0.015000 0.050000 0.650000 -v -0.015000 0.050000 1.200000 -v -0.010607 0.060607 0.650000 -v -0.010607 0.060607 1.200000 -v -0.200000 -0.150000 0.500000 -v -0.200000 0.050000 0.500000 -v -0.200000 -0.150000 0.200000 -v -0.200000 0.050000 0.200000 -v -0.100000 -0.150000 0.500000 -v -0.100000 0.050000 0.500000 -v -0.100000 -0.150000 0.200000 -v -0.100000 0.050000 0.200000 -v -0.145000 0.050000 0.360000 -v -0.145000 0.050000 0.240000 -v -0.105000 0.050000 0.240000 -v -0.105000 0.050000 0.360000 -v -0.144754 0.083129 0.360000 -v -0.144754 0.083129 0.240000 -v -0.105246 0.076871 0.240000 -v -0.105246 0.076871 0.360000 -v -0.139328 0.115811 0.360000 -v -0.139328 0.115811 0.240000 -v -0.101286 0.103450 0.240000 -v -0.101286 0.103450 0.360000 -v -0.128857 0.147242 0.360000 -v -0.128857 0.147242 0.240000 -v -0.093216 0.129083 0.240000 -v -0.093216 0.129083 0.360000 -v -0.113597 0.176648 0.360000 -v -0.113597 0.176648 0.240000 -v -0.081236 0.153137 0.240000 -v -0.081236 0.153137 0.360000 -v -0.087918 0.207434 0.360000 -v -0.087918 0.207434 0.240000 -v -0.071648 0.170892 0.240000 -v -0.071648 0.170892 0.360000 -v -0.052028 0.221362 0.360000 -v -0.052028 0.221362 0.240000 -v -0.052726 0.181368 0.240000 -v -0.052726 0.181368 0.360000 -v -0.012081 0.217985 0.360000 -v -0.012081 0.217985 0.240000 -v -0.032682 0.183698 0.240000 -v -0.032682 0.183698 0.360000 -v 0.019914 0.196574 0.360000 -v 0.019914 0.196574 0.240000 -v -0.013247 0.174207 0.240000 -v -0.013247 0.174207 0.360000 -v 0.039863 0.163648 0.360000 -v 0.039863 0.163648 0.240000 -v 0.000356 0.157391 0.240000 -v 0.000356 0.157391 0.360000 -v -0.200000 -0.150000 -0.475000 -v -0.200000 0.150000 -0.475000 -v -0.200000 -0.150000 -0.525000 -v -0.200000 0.150000 -0.525000 -v 0.200000 -0.150000 -0.475000 -v 0.200000 0.150000 -0.475000 -v 0.200000 -0.150000 -0.525000 -v 0.200000 0.150000 -0.525000 -v -0.050000 -0.025000 -0.200000 -v -0.050000 0.225000 -0.200000 -v -0.050000 -0.025000 -0.700000 -v -0.050000 0.225000 -0.700000 -v 0.050000 -0.025000 -0.200000 -v 0.050000 0.225000 -0.200000 -v 0.050000 -0.025000 -0.700000 -v 0.050000 0.225000 -0.700000 -v -0.375000 0.000000 -0.100000 -v 0.375000 0.000000 -0.100000 -v -0.375000 -0.070711 -0.070711 -v 0.375000 -0.070711 -0.070711 -v -0.375000 -0.100000 0.000000 -v 0.375000 -0.100000 0.000000 -v -0.375000 -0.070711 0.070711 -v 0.375000 -0.070711 0.070711 -v -0.375000 0.000000 0.100000 -v 0.375000 0.000000 0.100000 -v -0.375000 0.070711 0.070711 -v 0.375000 0.070711 0.070711 -v -0.375000 0.100000 -0.000000 -v 0.375000 0.100000 -0.000000 -v -0.375000 0.070711 -0.070711 -v 0.375000 0.070711 -0.070711 -vt 0.409216 0.148396 -vt 0.409216 0.246203 -vt 0.148396 0.246203 -vt 0.507024 0.246204 -vt 0.507024 0.148396 -vt 0.769874 0.148396 -vt 0.148396 0.148396 -vt 0.138615 0.167957 -vt 0.044067 0.167957 -vt 0.148396 0.017985 -vt 0.409216 0.050588 -vt 0.409216 0.344011 -vt 0.260057 0.412584 -vt 0.260057 0.575597 -vt 0.181811 0.575597 -vt 0.138615 0.226642 -vt 0.017985 0.148395 -vt 0.044067 0.226642 -vt 0.017985 0.246203 -vt 0.260057 0.634281 -vt 0.181811 0.634281 -vt 0.017985 0.575597 -vt 0.260057 0.797294 -vt 0.165510 0.797294 -vt 0.423070 0.634281 -vt 0.017986 0.858219 -vt 0.017986 0.851981 -vt 0.344029 0.851991 -vt 0.017986 0.845742 -vt 0.344029 0.845753 -vt 0.017986 0.839503 -vt 0.344029 0.839516 -vt 0.017986 0.833265 -vt 0.344030 0.833279 -vt 0.017985 0.883174 -vt 0.017985 0.876935 -vt 0.344029 0.876939 -vt 0.017985 0.870696 -vt 0.344029 0.870702 -vt 0.468077 0.897383 -vt 0.468077 0.893640 -vt 0.647390 0.893639 -vt 0.017986 0.864458 -vt 0.344029 0.858228 -vt 0.344029 0.864465 -vt 0.468077 0.889897 -vt 0.647390 0.889896 -vt 0.468077 0.886154 -vt 0.647389 0.886153 -vt 0.468077 0.882411 -vt 0.647389 0.882410 -vt 0.468077 0.912355 -vt 0.468077 0.908612 -vt 0.647390 0.908611 -vt 0.468077 0.904869 -vt 0.468077 0.901126 -vt 0.647390 0.897382 -vt 0.647390 0.901125 -vt 0.465430 0.879764 -vt 0.465430 0.888801 -vt 0.902544 0.741978 -vt 0.902544 0.807183 -vt 0.804736 0.807183 -vt 0.902544 0.709376 -vt 0.967748 0.709375 -vt 0.967748 0.741978 -vt 0.804736 0.709375 -vt 0.804736 0.644170 -vt 0.902544 0.644171 -vt 0.804736 0.741978 -vt 0.739530 0.741978 -vt 0.739530 0.709375 -vt 0.902544 0.839786 -vt 0.804736 0.839786 -vt 0.889503 0.724047 -vt 0.740128 0.942905 -vt 0.739889 0.929866 -vt 0.748650 0.929785 -vt 0.889503 0.711006 -vt 0.850380 0.711006 -vt 0.850380 0.724047 -vt 0.750328 0.890466 -vt 0.759089 0.890386 -vt 0.759447 0.929507 -vt 0.739530 0.877703 -vt 0.750331 0.877784 -vt 0.748291 0.890664 -vt 0.739530 0.890744 -vt 0.750925 0.942626 -vt 0.751933 0.981737 -vt 0.761723 0.942348 -vt 0.772520 0.942070 -vt 0.773528 0.981180 -vt 0.762731 0.981458 -vt 0.750686 0.929588 -vt 0.750328 0.877425 -vt 0.761129 0.877505 -vt 0.772281 0.929031 -vt 0.781042 0.928951 -vt 0.761484 0.929309 -vt 0.770245 0.929229 -vt 0.761125 0.877147 -vt 0.771926 0.877227 -vt 0.769886 0.890108 -vt 0.761125 0.890188 -vt 0.790639 0.890232 -vt 0.797118 0.891373 -vt 0.790333 0.929903 -vt 0.771923 0.876869 -vt 0.782724 0.876949 -vt 0.780684 0.889829 -vt 0.771923 0.889910 -vt 0.783318 0.941792 -vt 0.784326 0.980902 -vt 0.796384 0.941455 -vt 0.796683 0.928418 -vt 0.803692 0.929189 -vt 0.797391 0.980565 -vt 0.783854 0.928762 -vt 0.794586 0.877802 -vt 0.806751 0.882582 -vt 0.820199 0.877142 -vt 0.832364 0.881922 -vt 0.822731 0.890713 -vt 0.803510 0.876739 -vt 0.815687 0.879785 -vt 0.807975 0.890301 -vt 0.800965 0.889530 -vt 0.808931 0.941132 -vt 0.809939 0.980242 -vt 0.826578 0.888870 -vt 0.833588 0.889642 -vt 0.829305 0.928530 -vt 0.816252 0.889572 -vt 0.815946 0.929243 -vt 0.821997 0.940795 -vt 0.823005 0.979905 -vt 0.809467 0.928102 -vt 0.834544 0.940472 -vt 0.834843 0.927434 -vt 0.841852 0.928206 -vt 0.835552 0.979582 -vt 0.822296 0.927758 -vt 0.829123 0.876079 -vt 0.841300 0.879125 -vt 0.805844 0.229902 -vt 0.805844 0.132094 -vt 0.822146 0.132094 -vt 0.841671 0.875756 -vt 0.853847 0.878802 -vt 0.846135 0.889318 -vt 0.839126 0.888546 -vt 0.847091 0.940149 -vt 0.848099 0.979259 -vt 0.952556 0.017985 -vt 0.952556 0.115793 -vt 0.822146 0.115793 -vt 0.952556 0.229902 -vt 0.952556 0.132094 -vt 0.968857 0.132094 -vt 0.822146 0.229902 -vt 0.952556 0.246203 -vt 0.822146 0.246203 -vt 0.703560 0.494090 -vt 0.703560 0.412584 -vt 0.866573 0.412584 -vt 0.703560 0.526693 -vt 0.622054 0.526693 -vt 0.622054 0.494090 -vt 0.866573 0.526693 -vt 0.866573 0.608199 -vt 0.703560 0.608199 -vt 0.866573 0.494090 -vt 0.948079 0.494090 -vt 0.948079 0.526693 -vt 0.459041 0.526693 -vt 0.703560 0.793888 -vt 0.703560 0.818841 -vt 0.459041 0.818841 -vt 0.703560 0.843794 -vt 0.459041 0.843794 -vt 0.703560 0.644170 -vt 0.703560 0.669123 -vt 0.459041 0.669123 -vt 0.703560 0.694076 -vt 0.459041 0.694076 -vt 0.703560 0.719029 -vt 0.459041 0.719029 -vt 0.703560 0.743982 -vt 0.459041 0.743982 -vt 0.703560 0.768935 -vt 0.459041 0.793888 -vt 0.459041 0.768935 -vt 0.769874 0.246204 -vt 0.148395 0.376613 -vt 0.165510 0.412584 -vt 0.017985 0.634281 -vt 0.423070 0.575597 -vt 0.344029 0.883176 -vt 0.647390 0.912354 -vt 0.647390 0.904868 -vt 0.461687 0.888801 -vt 0.459041 0.886154 -vt 0.459041 0.882411 -vt 0.461687 0.879765 -vt 0.741136 0.982015 -vt 0.822146 0.017985 -vt 0.968857 0.229902 -vt 0.459041 0.494090 -vt 0.459041 0.644170 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.992300 -0.124000 -vn -0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -0.995000 0.099500 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.989100 -0.147400 0.000000 -vn 1.000000 0.009200 0.000000 -vn -1.000000 0.007400 0.000000 -vn -0.948700 0.316100 0.000000 -vn -0.986500 0.163800 0.000000 -vn 0.953800 -0.300300 0.000000 -vn 0.879900 -0.475200 0.000000 -vn 0.895100 -0.445800 0.000000 -vn -0.887600 0.460600 0.000000 -vn -0.767900 0.640500 0.000000 -vn 0.484400 -0.874900 0.000000 -vn -0.361800 0.932300 0.000000 -vn -0.438800 -0.898600 0.000000 -vn 0.115500 -0.993300 0.000000 -vn 0.084200 0.996400 0.000000 -vn 0.556200 0.831100 0.000000 -vn -0.777500 -0.628900 0.000000 -vn 0.855300 0.518200 0.000000 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 0.923900 -vn -0.000000 0.382700 0.923900 -vn -0.000000 0.923900 0.382700 -vn -0.000000 0.382700 -0.923900 -vn -0.000000 0.923900 -0.382700 -vn 0.556100 0.831100 0.000000 -s off -f 1/1/1 5/2/1 7/3/1 -f 6/4/2 2/5/2 4/6/2 -f 3/7/3 11/8/3 10/9/3 -f 3/7/4 4/10/4 2/11/4 -f 1/1/5 2/5/5 6/4/5 -f 7/3/6 5/2/6 6/12/6 -f 11/13/4 15/14/4 14/15/4 -f 7/3/3 12/16/3 11/8/3 -f 4/17/3 10/9/3 9/18/3 -f 7/3/3 8/19/3 9/18/3 -f 16/20/3 13/21/3 14/15/3 -f 10/22/7 14/15/7 13/21/7 -f 12/23/6 9/24/6 13/21/6 -f 12/25/1 16/20/1 15/14/1 -f 18/26/8 20/27/8 19/28/8 -f 20/27/9 22/29/9 21/30/9 -f 22/29/10 24/31/10 23/32/10 -f 24/31/11 26/33/11 25/34/11 -f 26/35/12 28/36/12 27/37/12 -f 28/36/13 30/38/13 29/39/13 -f 34/40/8 36/41/8 35/42/8 -f 32/43/14 18/26/14 17/44/14 -f 30/38/15 32/43/15 31/45/15 -f 36/41/9 38/46/9 37/47/9 -f 38/46/10 40/48/10 39/49/10 -f 40/48/11 42/50/11 41/51/11 -f 42/52/12 44/53/12 43/54/12 -f 43/54/13 44/53/13 46/55/13 -f 48/56/14 34/40/14 33/57/14 -f 46/55/15 48/56/15 47/58/15 -f 44/59/3 42/50/3 38/60/3 -f 52/61/6 51/62/6 49/63/6 -f 56/64/5 55/65/5 51/66/5 -f 54/67/4 53/68/4 55/69/4 -f 50/70/3 49/71/3 53/72/3 -f 51/62/16 55/73/16 53/74/16 -f 56/64/1 52/61/1 58/75/1 -f 57/76/3 60/77/3 64/78/3 -f 56/64/1 59/79/1 60/80/1 -f 52/61/1 50/70/1 57/81/1 -f 54/67/1 60/80/1 57/81/1 -f 63/82/17 67/83/17 68/84/17 -f 58/85/5 62/86/5 63/87/5 -f 59/88/18 63/87/18 64/78/18 -f 57/76/19 61/89/19 62/90/19 -f 65/91/20 69/92/20 70/93/20 -f 61/89/21 65/91/21 66/94/21 -f 61/89/3 64/95/3 68/84/3 -f 62/96/5 66/97/5 67/83/5 -f 69/92/3 72/98/3 76/99/3 -f 65/91/3 68/100/3 72/101/3 -f 66/102/5 70/103/5 71/104/5 -f 67/105/22 71/104/22 72/101/22 -f 75/106/23 79/107/23 80/108/23 -f 70/109/5 74/110/5 75/111/5 -f 71/112/24 75/111/24 76/99/24 -f 69/92/25 73/113/25 74/114/25 -f 77/115/3 80/116/3 84/117/3 -f 73/113/26 77/115/26 78/118/26 -f 73/113/3 76/119/3 80/108/3 -f 74/120/5 78/121/5 79/107/5 -f 82/122/5 86/123/5 87/124/5 -f 78/125/5 82/126/5 83/127/5 -f 79/128/27 83/127/27 84/117/27 -f 77/115/28 81/129/28 82/130/28 -f 87/131/29 91/132/29 92/133/29 -f 83/134/30 87/124/30 88/135/30 -f 81/129/31 85/136/31 86/137/31 -f 81/129/3 84/138/3 88/135/3 -f 89/139/3 92/140/3 96/141/3 -f 85/136/32 89/139/32 90/142/32 -f 85/136/3 88/143/3 92/133/3 -f 86/144/5 90/145/5 91/132/5 -f 100/146/6 99/147/6 97/148/6 -f 90/149/5 94/150/5 95/151/5 -f 91/152/33 95/151/33 96/141/33 -f 89/139/34 93/153/34 94/154/34 -f 104/155/5 103/156/5 99/157/5 -f 102/158/4 101/159/4 103/160/4 -f 98/161/3 97/148/3 101/159/3 -f 99/157/16 103/156/16 101/159/16 -f 104/162/1 100/163/1 98/161/1 -f 108/164/6 107/165/6 105/166/6 -f 112/167/5 111/168/5 107/169/5 -f 110/170/4 109/171/4 111/172/4 -f 106/173/3 105/174/3 109/175/3 -f 107/169/16 111/168/16 109/176/16 -f 112/167/1 108/164/1 106/173/1 -f 114/177/35 116/178/35 115/179/35 -f 116/178/36 118/180/36 117/181/36 -f 118/182/37 120/183/37 119/184/37 -f 120/183/38 122/185/38 121/186/38 -f 122/185/39 124/187/39 123/188/39 -f 124/187/40 126/189/40 125/190/40 -f 128/191/41 114/177/41 113/192/41 -f 126/189/42 128/191/42 127/193/42 -f 3/7/1 1/1/1 7/3/1 -f 8/194/2 6/4/2 4/6/2 -f 4/17/3 3/7/3 10/9/3 -f 1/1/4 3/7/4 2/11/4 -f 5/2/5 1/1/5 6/4/5 -f 8/195/6 7/3/6 6/12/6 -f 10/196/4 11/13/4 14/15/4 -f 3/7/3 7/3/3 11/8/3 -f 8/19/3 4/17/3 9/18/3 -f 12/16/3 7/3/3 9/18/3 -f 15/14/3 16/20/3 14/15/3 -f 9/197/7 10/22/7 13/21/7 -f 16/20/6 12/23/6 13/21/6 -f 11/198/1 12/25/1 15/14/1 -f 17/44/8 18/26/8 19/28/8 -f 19/28/9 20/27/9 21/30/9 -f 21/30/10 22/29/10 23/32/10 -f 23/32/11 24/31/11 25/34/11 -f 25/199/12 26/35/12 27/37/12 -f 27/37/13 28/36/13 29/39/13 -f 33/57/8 34/40/8 35/42/8 -f 31/45/14 32/43/14 17/44/14 -f 29/39/15 30/38/15 31/45/15 -f 35/42/9 36/41/9 37/47/9 -f 37/47/10 38/46/10 39/49/10 -f 39/49/11 40/48/11 41/51/11 -f 41/200/12 42/52/12 43/54/12 -f 45/201/13 43/54/13 46/55/13 -f 47/58/14 48/56/14 33/57/14 -f 45/201/15 46/55/15 47/58/15 -f 38/60/3 36/202/3 34/203/3 -f 34/203/3 48/204/3 38/60/3 -f 46/205/3 44/59/3 38/60/3 -f 42/50/3 40/48/3 38/60/3 -f 38/60/3 48/204/3 46/205/3 -f 50/70/6 52/61/6 49/63/6 -f 52/61/5 56/64/5 51/66/5 -f 56/64/4 54/67/4 55/69/4 -f 54/67/3 50/70/3 53/72/3 -f 49/63/16 51/62/16 53/74/16 -f 59/79/1 56/64/1 58/75/1 -f 61/89/3 57/76/3 64/78/3 -f 54/67/1 56/64/1 60/80/1 -f 58/75/1 52/61/1 57/81/1 -f 50/70/1 54/67/1 57/81/1 -f 64/95/17 63/82/17 68/84/17 -f 59/88/5 58/85/5 63/87/5 -f 60/77/18 59/88/18 64/78/18 -f 58/206/19 57/76/19 62/90/19 -f 66/94/20 65/91/20 70/93/20 -f 62/90/21 61/89/21 66/94/21 -f 65/91/3 61/89/3 68/84/3 -f 63/82/5 62/96/5 67/83/5 -f 73/113/3 69/92/3 76/99/3 -f 69/92/3 65/91/3 72/101/3 -f 67/105/5 66/102/5 71/104/5 -f 68/100/22 67/105/22 72/101/22 -f 76/119/23 75/106/23 80/108/23 -f 71/112/5 70/109/5 75/111/5 -f 72/98/24 71/112/24 76/99/24 -f 70/93/25 69/92/25 74/114/25 -f 81/129/3 77/115/3 84/117/3 -f 74/114/26 73/113/26 78/118/26 -f 77/115/3 73/113/3 80/108/3 -f 75/106/5 74/120/5 79/107/5 -f 83/134/5 82/122/5 87/124/5 -f 79/128/5 78/125/5 83/127/5 -f 80/116/27 79/128/27 84/117/27 -f 78/118/28 77/115/28 82/130/28 -f 88/143/29 87/131/29 92/133/29 -f 84/138/30 83/134/30 88/135/30 -f 82/130/31 81/129/31 86/137/31 -f 85/136/3 81/129/3 88/135/3 -f 93/153/3 89/139/3 96/141/3 -f 86/137/43 85/136/43 90/142/43 -f 89/139/3 85/136/3 92/133/3 -f 87/131/5 86/144/5 91/132/5 -f 98/161/6 100/146/6 97/148/6 -f 91/152/5 90/149/5 95/151/5 -f 92/140/33 91/152/33 96/141/33 -f 90/142/34 89/139/34 94/154/34 -f 100/207/5 104/155/5 99/157/5 -f 104/208/4 102/158/4 103/160/4 -f 102/158/3 98/161/3 101/159/3 -f 97/148/16 99/157/16 101/159/16 -f 102/158/1 104/162/1 98/161/1 -f 106/173/6 108/164/6 105/166/6 -f 108/164/5 112/167/5 107/169/5 -f 112/167/4 110/170/4 111/172/4 -f 110/170/3 106/173/3 109/175/3 -f 105/209/16 107/169/16 109/176/16 -f 110/170/1 112/167/1 106/173/1 -f 113/192/35 114/177/35 115/179/35 -f 115/179/36 116/178/36 117/181/36 -f 117/210/37 118/182/37 119/184/37 -f 119/184/38 120/183/38 121/186/38 -f 121/186/39 122/185/39 123/188/39 -f 123/188/40 124/187/40 125/190/40 -f 127/193/41 128/191/41 113/192/41 -f 125/190/42 126/189/42 127/193/42 diff --git a/src/main/resources/assets/hbm/models/turret_rocket_gun.obj b/src/main/resources/assets/hbm/models/turret_rocket_gun.obj deleted file mode 100644 index b50e0c05a..000000000 --- a/src/main/resources/assets/hbm/models/turret_rocket_gun.obj +++ /dev/null @@ -1,554 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_rocket_gun.blend' -# www.blender.org -o Cylinder.001 -v 0.130000 0.200000 -0.500000 -v 0.130000 -0.200000 -0.500000 -v 0.130000 0.200000 1.250000 -v 0.130000 -0.200000 1.250000 -v -0.130000 0.200000 -0.500000 -v -0.130000 -0.200000 -0.500000 -v -0.130000 0.200000 1.250000 -v -0.130000 -0.200000 1.250000 -v 0.200000 0.130000 -0.500000 -v 0.200000 -0.130000 -0.500000 -v 0.200000 0.130000 1.250000 -v 0.200000 -0.130000 1.250000 -v -0.200000 0.130000 -0.500000 -v -0.200000 -0.130000 -0.500000 -v -0.200000 0.130000 1.250000 -v -0.200000 -0.130000 1.250000 -v -0.075000 -0.012500 0.250000 -v -0.075000 -0.012500 1.250000 -v -0.030806 -0.030806 0.250000 -v -0.030806 -0.030806 1.250000 -v -0.012500 -0.075000 0.250000 -v -0.012500 -0.075000 1.250000 -v -0.030806 -0.119194 0.250000 -v -0.030806 -0.119194 1.250000 -v -0.075000 -0.137500 0.250000 -v -0.075000 -0.137500 1.250000 -v -0.119194 -0.119194 0.250000 -v -0.119194 -0.119194 1.250000 -v -0.137500 -0.075000 0.250000 -v -0.137500 -0.075000 1.250000 -v -0.119194 -0.030806 0.250000 -v -0.119194 -0.030806 1.250000 -v 0.075000 -0.012500 0.250000 -v 0.075000 -0.012500 1.250000 -v 0.119194 -0.030806 0.250000 -v 0.119194 -0.030806 1.250000 -v 0.137500 -0.075000 0.250000 -v 0.137500 -0.075000 1.250000 -v 0.119194 -0.119194 0.250000 -v 0.119194 -0.119194 1.250000 -v 0.075000 -0.137500 0.250000 -v 0.075000 -0.137500 1.250000 -v 0.030806 -0.119194 0.250000 -v 0.030806 -0.119194 1.250000 -v 0.012500 -0.075000 0.250000 -v 0.012500 -0.075000 1.250000 -v 0.030806 -0.030806 0.250000 -v 0.030806 -0.030806 1.250000 -v -0.075000 0.137500 0.250000 -v -0.075000 0.137500 1.250000 -v -0.030806 0.119194 0.250000 -v -0.030806 0.119194 1.250000 -v -0.012500 0.075000 0.250000 -v -0.012500 0.075000 1.250000 -v -0.030806 0.030806 0.250000 -v -0.030806 0.030806 1.250000 -v -0.075000 0.012500 0.250000 -v -0.075000 0.012500 1.250000 -v -0.119194 0.030806 0.250000 -v -0.119194 0.030806 1.250000 -v -0.137500 0.075000 0.250000 -v -0.137500 0.075000 1.250000 -v -0.119194 0.119194 0.250000 -v -0.119194 0.119194 1.250000 -v 0.075000 0.137500 0.250000 -v 0.075000 0.137500 1.250000 -v 0.119194 0.119194 0.250000 -v 0.119194 0.119194 1.250000 -v 0.137500 0.075000 0.250000 -v 0.137500 0.075000 1.250000 -v 0.119194 0.030806 0.250000 -v 0.119194 0.030806 1.250000 -v 0.075000 0.012500 0.250000 -v 0.075000 0.012500 1.250000 -v 0.030806 0.030806 0.250000 -v 0.030806 0.030806 1.250000 -v 0.012500 0.075000 0.250000 -v 0.012500 0.075000 1.250000 -v 0.030806 0.119194 0.250000 -v 0.030806 0.119194 1.250000 -v -0.100000 -0.200000 -0.500000 -v -0.100000 0.125000 -0.500000 -v -0.060000 0.050000 -0.800000 -v 0.100000 -0.200000 -0.500000 -v 0.100000 0.125000 -0.500000 -v 0.060000 0.050000 -0.800000 -v -0.100000 -0.250000 -0.500000 -v 0.100000 -0.250000 -0.500000 -v -0.060000 -0.250000 -0.800000 -v 0.060000 -0.250000 -0.800000 -v 0.180000 0.400000 0.131250 -v 0.180000 0.400000 -0.131250 -v -0.375000 0.000000 -0.100000 -v 0.375000 0.000000 -0.100000 -v -0.375000 -0.070711 -0.070711 -v 0.375000 -0.070711 -0.070711 -v -0.375000 -0.100000 0.000000 -v 0.375000 -0.100000 0.000000 -v -0.375000 -0.070711 0.070711 -v 0.375000 -0.070711 0.070711 -v -0.375000 0.000000 0.100000 -v 0.375000 0.000000 0.100000 -v -0.375000 0.070711 0.070711 -v 0.375000 0.070711 0.070711 -v -0.375000 0.100000 -0.000000 -v 0.375000 0.100000 -0.000000 -v -0.375000 0.070711 -0.070711 -v 0.375000 0.070711 -0.070711 -v -0.005000 0.400000 -0.131250 -v -0.005000 0.400000 0.131250 -v 0.250000 0.330000 -0.131250 -v 0.250000 -0.080000 -0.131250 -v 0.250000 0.330000 0.131250 -v 0.250000 -0.080000 0.131250 -vt 0.546756 0.160984 -vt 0.546756 0.238616 -vt 0.024234 0.238615 -vt 0.546756 0.053793 -vt 0.024235 0.053793 -vt 0.024235 0.024234 -vt 0.024235 0.131425 -vt 0.546756 0.131425 -vt 0.546756 0.268174 -vt 0.024234 0.268174 -vt 0.024234 0.345806 -vt 0.546756 0.345806 -vt 0.546756 0.375365 -vt 0.587914 0.572912 -vt 0.289294 0.572912 -vt 0.289295 0.558627 -vt 0.587914 0.587197 -vt 0.289294 0.587196 -vt 0.587914 0.601481 -vt 0.289294 0.601481 -vt 0.587914 0.615766 -vt 0.289294 0.615765 -vt 0.587914 0.515774 -vt 0.289295 0.515773 -vt 0.289295 0.501489 -vt 0.587914 0.530058 -vt 0.289295 0.530058 -vt 0.587914 0.558627 -vt 0.289295 0.544342 -vt 0.587914 0.544343 -vt 0.598015 0.625867 -vt 0.598015 0.591380 -vt 0.612299 0.591381 -vt 0.895198 0.268504 -vt 0.596579 0.268503 -vt 0.596579 0.254219 -vt 0.895198 0.282788 -vt 0.596579 0.282788 -vt 0.895198 0.297073 -vt 0.596579 0.297072 -vt 0.895198 0.311358 -vt 0.596579 0.311357 -vt 0.895198 0.211365 -vt 0.596579 0.211365 -vt 0.596579 0.197081 -vt 0.895198 0.225650 -vt 0.596579 0.225650 -vt 0.895198 0.254219 -vt 0.596579 0.239934 -vt 0.895198 0.239934 -vt 0.905299 0.321458 -vt 0.905299 0.286972 -vt 0.919584 0.286972 -vt 0.895199 0.095657 -vt 0.596579 0.095657 -vt 0.596579 0.081372 -vt 0.895198 0.109942 -vt 0.596579 0.109941 -vt 0.895198 0.124227 -vt 0.596579 0.124226 -vt 0.895198 0.138511 -vt 0.596579 0.138510 -vt 0.895199 0.038519 -vt 0.596579 0.038519 -vt 0.596579 0.024234 -vt 0.895199 0.052804 -vt 0.596579 0.052803 -vt 0.895199 0.081373 -vt 0.596579 0.067088 -vt 0.895199 0.067088 -vt 0.905299 0.148612 -vt 0.905299 0.114126 -vt 0.919584 0.114126 -vt 0.587914 0.745758 -vt 0.289294 0.745758 -vt 0.289294 0.731473 -vt 0.587914 0.760043 -vt 0.289294 0.760042 -vt 0.587914 0.774328 -vt 0.289294 0.774327 -vt 0.587914 0.788612 -vt 0.289294 0.788611 -vt 0.587914 0.688620 -vt 0.289295 0.688620 -vt 0.289295 0.674335 -vt 0.587914 0.702904 -vt 0.289295 0.702904 -vt 0.587914 0.731474 -vt 0.289295 0.717189 -vt 0.587914 0.717189 -vt 0.598014 0.798713 -vt 0.598015 0.764227 -vt 0.612299 0.764227 -vt 0.740550 0.815492 -vt 0.727353 0.820958 -vt 0.722074 0.815679 -vt 0.759026 0.789285 -vt 0.753560 0.802482 -vt 0.740550 0.789472 -vt 0.759026 0.815679 -vt 0.753747 0.820958 -vt 0.727540 0.802482 -vt 0.722074 0.789285 -vt 0.727353 0.784006 -vt 0.721886 0.770809 -vt 0.772223 0.783818 -vt 0.753747 0.784006 -vt 0.772223 0.821146 -vt 0.759214 0.834155 -vt 0.785421 0.815679 -vt 0.755331 0.872163 -vt 0.753747 0.847353 -vt 0.790887 0.802482 -vt 0.810231 0.817263 -vt 0.810231 0.787701 -vt 0.785421 0.789285 -vt 0.759214 0.770809 -vt 0.753747 0.757611 -vt 0.740550 0.752145 -vt 0.755331 0.732800 -vt 0.725769 0.732800 -vt 0.727353 0.757611 -vt 0.721886 0.834155 -vt 0.708877 0.821146 -vt 0.727353 0.847353 -vt 0.740550 0.852819 -vt 0.725769 0.872163 -vt 0.670869 0.817263 -vt 0.695679 0.815679 -vt 0.690213 0.802482 -vt 0.670869 0.787701 -vt 0.695679 0.789285 -vt 0.708877 0.783818 -vt 0.114613 0.695591 -vt 0.114613 0.606006 -vt 0.150447 0.606006 -vt 0.024234 0.375364 -vt 0.546756 0.453020 -vt 0.024234 0.452996 -vt 0.150447 0.695591 -vt 0.162392 0.787934 -vt 0.024234 0.920865 -vt 0.046406 0.911363 -vt 0.088637 0.953594 -vt 0.102668 0.516420 -vt 0.162392 0.501489 -vt 0.162392 0.516420 -vt 0.024234 0.620937 -vt 0.024234 0.606006 -vt 0.240826 0.620937 -vt 0.894833 0.638621 -vt 0.894833 0.661476 -vt 0.670869 0.661477 -vt 0.894833 0.684332 -vt 0.670869 0.684332 -vt 0.894833 0.501489 -vt 0.894833 0.524344 -vt 0.670869 0.524344 -vt 0.894833 0.547200 -vt 0.670869 0.547200 -vt 0.894833 0.570055 -vt 0.670869 0.570055 -vt 0.858700 0.855234 -vt 0.858700 0.732800 -vt 0.937087 0.732801 -vt 0.894833 0.592910 -vt 0.670869 0.592910 -vt 0.937087 0.855234 -vt 0.937087 0.884796 -vt 0.894833 0.615766 -vt 0.670869 0.638621 -vt 0.670869 0.615766 -vt 0.937087 0.940041 -vt 0.858700 0.940041 -vt 0.024234 0.891303 -vt 0.079135 0.836403 -vt 0.163597 0.920865 -vt 0.108697 0.975766 -vt 0.024235 0.160983 -vt 0.546756 0.024235 -vt 0.587914 0.501489 -vt 0.622400 0.601481 -vt 0.622400 0.615766 -vt 0.612299 0.625867 -vt 0.895198 0.197081 -vt 0.929685 0.297073 -vt 0.929685 0.311358 -vt 0.919584 0.321458 -vt 0.895199 0.024234 -vt 0.929685 0.124227 -vt 0.929685 0.138511 -vt 0.919584 0.148612 -vt 0.587914 0.674335 -vt 0.622400 0.774328 -vt 0.622400 0.788612 -vt 0.612299 0.798713 -vt 0.548110 0.452986 -vt 0.102668 0.787934 -vt 0.079135 0.975766 -vt 0.102668 0.501489 -vt 0.024234 0.717988 -vt 0.240826 0.606006 -vt 0.240826 0.717988 -vt 0.670869 0.501489 -vt 0.858700 0.884796 -vt 0.108697 0.836403 -vt 0.115031 0.842738 -vt 0.157262 0.884969 -vt 0.163597 0.891303 -vn 0.000000 1.000000 0.000000 -vn 0.707100 -0.707100 0.000000 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 1.000000 0.000000 0.000000 -vn -0.707100 -0.707100 0.000000 -vn -1.000000 0.000000 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.382700 0.923900 -0.000000 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.382700 -0.923900 0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 0.970100 -0.242500 -vn 0.991200 0.000000 -0.132200 -vn -0.991200 0.000000 -0.132200 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 0.923900 -vn -0.000000 0.382700 0.923900 -vn -0.000000 0.923900 0.382700 -vn -0.000000 0.382700 -0.923900 -vn -0.000000 0.923900 -0.382700 -s off -f 1/1/1 5/2/1 7/3/1 -f 10/4/2 12/5/2 4/6/2 -f 11/7/3 9/8/3 1/1/3 -f 13/9/4 15/10/4 7/3/4 -f 11/7/5 12/5/5 10/4/5 -f 16/11/6 14/12/6 6/13/6 -f 13/9/7 14/12/7 16/11/7 -f 19/14/8 20/15/8 18/16/8 -f 21/17/9 22/18/9 20/15/9 -f 23/19/10 24/20/10 22/18/10 -f 25/21/11 26/22/11 24/20/11 -f 27/23/12 28/24/12 26/25/12 -f 29/26/13 30/27/13 28/24/13 -f 17/28/14 18/16/14 32/29/14 -f 31/30/15 32/29/15 30/27/15 -f 27/31/16 21/32/16 19/33/16 -f 35/34/8 36/35/8 34/36/8 -f 37/37/9 38/38/9 36/35/9 -f 39/39/10 40/40/10 38/38/10 -f 41/41/11 42/42/11 40/40/11 -f 43/43/12 44/44/12 42/45/12 -f 45/46/13 46/47/13 44/44/13 -f 33/48/14 34/36/14 48/49/14 -f 47/50/15 48/49/15 46/47/15 -f 43/51/16 37/52/16 35/53/16 -f 51/54/8 52/55/8 50/56/8 -f 53/57/9 54/58/9 52/55/9 -f 55/59/10 56/60/10 54/58/10 -f 57/61/11 58/62/11 56/60/11 -f 59/63/12 60/64/12 58/65/12 -f 61/66/13 62/67/13 60/64/13 -f 49/68/14 50/56/14 64/69/14 -f 63/70/15 64/69/15 62/67/15 -f 59/71/16 53/72/16 51/73/16 -f 67/74/8 68/75/8 66/76/8 -f 69/77/9 70/78/9 68/75/9 -f 71/79/10 72/80/10 70/78/10 -f 73/81/11 74/82/11 72/80/11 -f 75/83/12 76/84/12 74/85/12 -f 77/86/13 78/87/13 76/84/13 -f 65/88/14 66/76/14 80/89/14 -f 79/90/15 80/89/15 78/87/15 -f 75/91/16 69/92/16 67/93/16 -f 56/94/16 58/95/16 18/96/16 -f 74/97/16 76/98/16 48/99/16 -f 76/98/16 78/100/16 54/101/16 -f 56/94/16 20/102/16 48/99/16 -f 22/103/16 46/104/16 48/99/16 -f 44/105/16 46/104/16 22/103/16 -f 72/106/16 74/97/16 34/107/16 -f 54/101/16 78/100/16 80/108/16 -f 52/109/16 80/108/16 66/110/16 -f 7/111/16 50/112/16 66/110/16 -f 66/110/16 68/113/16 3/114/16 -f 3/114/16 68/113/16 11/115/16 -f 68/113/16 70/116/16 11/115/16 -f 70/116/16 72/106/16 36/117/16 -f 11/115/16 70/116/16 38/118/16 -f 38/118/16 40/119/16 12/120/16 -f 12/120/16 40/119/16 4/121/16 -f 40/119/16 42/122/16 4/121/16 -f 58/95/16 60/123/16 32/124/16 -f 32/124/16 60/123/16 62/125/16 -f 50/112/16 7/111/16 64/126/16 -f 7/111/16 15/127/16 64/126/16 -f 64/126/16 15/127/16 62/125/16 -f 15/127/16 16/128/16 30/129/16 -f 30/129/16 16/128/16 28/130/16 -f 16/128/16 8/131/16 28/130/16 -f 28/130/16 8/131/16 26/132/16 -f 42/122/16 44/105/16 24/133/16 -f 42/122/16 26/132/16 8/131/16 -f 86/134/17 90/135/17 89/136/17 -f 8/137/18 84/138/18 4/139/18 -f 86/134/19 83/140/19 82/141/19 -f 1/142/17 85/143/17 82/144/17 -f 89/136/18 90/135/18 88/145/18 -f 81/146/16 87/147/16 88/145/16 -f 84/148/20 88/149/20 90/135/20 -f 83/140/21 89/136/21 81/150/21 -f 94/151/22 96/152/22 95/153/22 -f 96/152/23 98/154/23 97/155/23 -f 98/156/24 100/157/24 99/158/24 -f 100/157/25 102/159/25 101/160/25 -f 102/159/26 104/161/26 103/162/26 -f 113/163/5 114/164/5 112/165/5 -f 104/161/27 106/166/27 105/167/27 -f 113/163/3 111/168/3 92/169/3 -f 108/170/28 94/151/28 93/171/28 -f 106/166/29 108/170/29 107/172/29 -f 92/169/1 109/173/1 110/174/1 -f 85/143/17 9/175/17 10/176/17 -f 82/144/17 14/177/17 13/178/17 -f 3/179/1 1/1/1 7/3/1 -f 2/180/2 10/4/2 4/6/2 -f 3/179/3 11/7/3 1/1/3 -f 5/2/4 13/9/4 7/3/4 -f 9/8/5 11/7/5 10/4/5 -f 8/137/6 16/11/6 6/13/6 -f 15/10/7 13/9/7 16/11/7 -f 17/28/8 19/14/8 18/16/8 -f 19/14/9 21/17/9 20/15/9 -f 21/17/10 23/19/10 22/18/10 -f 23/19/11 25/21/11 24/20/11 -f 25/181/12 27/23/12 26/25/12 -f 27/23/13 29/26/13 28/24/13 -f 31/30/14 17/28/14 32/29/14 -f 29/26/15 31/30/15 30/27/15 -f 19/33/16 17/182/16 27/31/16 -f 31/183/16 29/184/16 27/31/16 -f 27/31/16 25/21/16 23/19/16 -f 23/19/16 21/32/16 27/31/16 -f 17/182/16 31/183/16 27/31/16 -f 33/48/8 35/34/8 34/36/8 -f 35/34/9 37/37/9 36/35/9 -f 37/37/10 39/39/10 38/38/10 -f 39/39/11 41/41/11 40/40/11 -f 41/185/12 43/43/12 42/45/12 -f 43/43/13 45/46/13 44/44/13 -f 47/50/14 33/48/14 48/49/14 -f 45/46/15 47/50/15 46/47/15 -f 35/53/16 33/186/16 43/51/16 -f 47/187/16 45/188/16 43/51/16 -f 43/51/16 41/41/16 39/39/16 -f 39/39/16 37/52/16 43/51/16 -f 33/186/16 47/187/16 43/51/16 -f 49/68/8 51/54/8 50/56/8 -f 51/54/9 53/57/9 52/55/9 -f 53/57/10 55/59/10 54/58/10 -f 55/59/11 57/61/11 56/60/11 -f 57/189/12 59/63/12 58/65/12 -f 59/63/13 61/66/13 60/64/13 -f 63/70/14 49/68/14 64/69/14 -f 61/66/15 63/70/15 62/67/15 -f 51/73/16 49/190/16 59/71/16 -f 63/191/16 61/192/16 59/71/16 -f 59/71/16 57/61/16 55/59/16 -f 55/59/16 53/72/16 59/71/16 -f 49/190/16 63/191/16 59/71/16 -f 65/88/8 67/74/8 66/76/8 -f 67/74/9 69/77/9 68/75/9 -f 69/77/10 71/79/10 70/78/10 -f 71/79/11 73/81/11 72/80/11 -f 73/193/12 75/83/12 74/85/12 -f 75/83/13 77/86/13 76/84/13 -f 79/90/14 65/88/14 80/89/14 -f 77/86/15 79/90/15 78/87/15 -f 67/93/16 65/194/16 75/91/16 -f 79/195/16 77/196/16 75/91/16 -f 75/91/16 73/81/16 71/79/16 -f 71/79/16 69/92/16 75/91/16 -f 65/194/16 79/195/16 75/91/16 -f 20/102/16 56/94/16 18/96/16 -f 34/107/16 74/97/16 48/99/16 -f 56/94/16 76/98/16 54/101/16 -f 76/98/16 56/94/16 48/99/16 -f 20/102/16 22/103/16 48/99/16 -f 24/133/16 44/105/16 22/103/16 -f 36/117/16 72/106/16 34/107/16 -f 52/109/16 54/101/16 80/108/16 -f 50/112/16 52/109/16 66/110/16 -f 3/114/16 7/111/16 66/110/16 -f 38/118/16 70/116/16 36/117/16 -f 12/120/16 11/115/16 38/118/16 -f 18/96/16 58/95/16 32/124/16 -f 30/129/16 32/124/16 62/125/16 -f 62/125/16 15/127/16 30/129/16 -f 26/132/16 42/122/16 24/133/16 -f 4/121/16 42/122/16 8/131/16 -f 83/140/17 86/134/17 89/136/17 -f 2/138/18 4/139/18 84/138/18 -f 8/137/18 6/13/18 81/197/18 -f 81/197/18 84/138/18 8/137/18 -f 85/198/19 86/134/19 82/141/19 -f 5/199/17 1/142/17 82/144/17 -f 87/147/18 89/136/18 88/145/18 -f 84/200/16 81/146/16 88/145/16 -f 90/135/20 86/134/20 84/148/20 -f 85/201/20 84/148/20 86/134/20 -f 87/202/21 81/150/21 89/136/21 -f 82/203/21 83/140/21 81/150/21 -f 93/171/22 94/151/22 95/153/22 -f 95/153/23 96/152/23 97/155/23 -f 97/204/24 98/156/24 99/158/24 -f 99/158/25 100/157/25 101/160/25 -f 101/160/26 102/159/26 103/162/26 -f 111/168/5 113/163/5 112/165/5 -f 103/162/27 104/161/27 105/167/27 -f 91/205/3 113/163/3 92/169/3 -f 107/172/28 108/170/28 93/171/28 -f 105/167/29 106/166/29 107/172/29 -f 91/205/1 92/169/1 110/174/1 -f 10/176/17 2/206/17 84/207/17 -f 84/207/17 85/143/17 10/176/17 -f 1/142/17 9/175/17 85/143/17 -f 13/178/17 5/199/17 82/144/17 -f 82/144/17 81/208/17 14/177/17 -f 6/209/17 14/177/17 81/208/17 diff --git a/src/main/resources/assets/hbm/models/turret_spitfire_base.obj b/src/main/resources/assets/hbm/models/turret_spitfire_base.obj deleted file mode 100644 index 43f87177e..000000000 --- a/src/main/resources/assets/hbm/models/turret_spitfire_base.obj +++ /dev/null @@ -1,94 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_spitfire_base.blend' -# www.blender.org -o Cylinder -v 0.000000 0.000000 -1.000000 -v 0.000000 0.125000 -1.000000 -v 0.707107 0.000000 -0.707107 -v 0.707107 0.125000 -0.707107 -v 1.000000 0.000000 0.000000 -v 1.000000 0.125000 0.000000 -v 0.707107 0.000000 0.707107 -v 0.707107 0.125000 0.707107 -v -0.000000 0.000000 1.000000 -v -0.000000 0.125000 1.000000 -v -0.707107 0.000000 0.707107 -v -0.707107 0.125000 0.707107 -v -1.000000 0.000000 -0.000000 -v -1.000000 0.125000 -0.000000 -v -0.707107 0.000000 -0.707107 -v -0.707107 0.125000 -0.707107 -vt 0.735344 0.677457 -vt 0.561566 0.677457 -vt 0.561566 0.649076 -vt 0.387788 0.677457 -vt 0.387788 0.649076 -vt 0.214009 0.677457 -vt 0.214009 0.649076 -vt 0.040231 0.677457 -vt 0.040231 0.649076 -vt 0.040231 0.540232 -vt 0.214009 0.540232 -vt 0.214009 0.568613 -vt 0.387787 0.540232 -vt 0.387787 0.568613 -vt 0.040231 0.163111 -vt 0.459769 0.163111 -vt 0.459769 0.336889 -vt 0.561565 0.540231 -vt 0.735344 0.540231 -vt 0.735344 0.568613 -vt 0.561565 0.568613 -vt 0.836889 0.459769 -vt 0.540231 0.336889 -vt 0.663111 0.040231 -vt 0.735344 0.649076 -vt 0.040231 0.568613 -vt 0.336889 0.459769 -vt 0.163111 0.459769 -vt 0.040231 0.336889 -vt 0.163111 0.040231 -vt 0.336889 0.040231 -vt 0.836889 0.040231 -vt 0.959769 0.163111 -vt 0.959769 0.336889 -vt 0.663111 0.459769 -vt 0.540231 0.163111 -vn 0.382700 0.000000 -0.923900 -vn 0.923900 0.000000 -0.382700 -vn 0.923900 0.000000 0.382700 -vn 0.382700 0.000000 0.923900 -vn -0.382700 0.000000 0.923900 -vn -0.923900 0.000000 0.382700 -vn 0.000000 1.000000 -0.000000 -vn -0.382700 0.000000 -0.923900 -vn -0.923900 0.000000 -0.382700 -vn 0.000000 -1.000000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/10/5 12/11/5 11/12/5 -f 12/11/6 14/13/6 13/14/6 -f 14/15/7 8/16/7 6/17/7 -f 16/18/8 2/19/8 1/20/8 -f 14/13/9 16/18/9 15/21/9 -f 7/22/10 11/23/10 15/24/10 -f 1/25/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/26/5 10/10/5 11/12/5 -f 11/12/6 12/11/6 13/14/6 -f 6/17/7 4/27/7 2/28/7 -f 2/28/7 16/29/7 6/17/7 -f 14/15/7 12/30/7 10/31/7 -f 10/31/7 8/16/7 14/15/7 -f 6/17/7 16/29/7 14/15/7 -f 15/21/8 16/18/8 1/20/8 -f 13/14/9 14/13/9 15/21/9 -f 15/24/10 1/32/10 3/33/10 -f 3/33/10 5/34/10 15/24/10 -f 7/22/10 9/35/10 11/23/10 -f 11/23/10 13/36/10 15/24/10 -f 15/24/10 5/34/10 7/22/10 diff --git a/src/main/resources/assets/hbm/models/turret_spitfire_gun.obj b/src/main/resources/assets/hbm/models/turret_spitfire_gun.obj deleted file mode 100644 index c627f8eda..000000000 --- a/src/main/resources/assets/hbm/models/turret_spitfire_gun.obj +++ /dev/null @@ -1,1105 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_spitfire_gun.blend' -# www.blender.org -o Cube.001_Cube.002 -v -0.250000 -0.250000 0.500000 -v -0.250000 0.250000 0.500000 -v -0.250000 -0.250000 -0.500000 -v -0.250000 0.250000 -0.500000 -v 0.250000 -0.250000 0.500000 -v 0.250000 0.250000 0.500000 -v 0.250000 -0.250000 -0.500000 -v 0.250000 0.250000 -0.500000 -v -0.125000 -0.250000 0.375000 -v -0.125000 -0.250000 -0.375000 -v -0.750000 -0.000000 -0.150000 -v 0.750000 0.000000 -0.150000 -v -0.750000 -0.075000 -0.129904 -v 0.750000 -0.075000 -0.129904 -v -0.750000 -0.129904 -0.075000 -v 0.750000 -0.129904 -0.075000 -v -0.750000 -0.150000 0.000000 -v 0.750000 -0.150000 0.000000 -v -0.750000 -0.129904 0.075000 -v 0.750000 -0.129904 0.075000 -v -0.750000 -0.075000 0.129904 -v 0.750000 -0.075000 0.129904 -v -0.750000 -0.000000 0.150000 -v 0.750000 0.000000 0.150000 -v -0.750000 0.075000 0.129904 -v 0.750000 0.075000 0.129904 -v -0.750000 0.129904 0.075000 -v 0.750000 0.129904 0.075000 -v -0.750000 0.150000 0.000000 -v 0.750000 0.150000 0.000000 -v -0.750000 0.129904 -0.075000 -v 0.750000 0.129904 -0.075000 -v -0.750000 0.075000 -0.129904 -v 0.750000 0.075000 -0.129904 -v 0.125000 -0.250000 -0.375000 -v 0.125000 -0.250000 0.375000 -v -0.125000 -0.400000 0.375000 -v 0.125000 -0.400000 0.375000 -v 0.125000 -0.400000 -0.375000 -v -0.125000 -0.400000 -0.375000 -v 0.000000 0.150000 0.500000 -v 0.000000 0.150000 2.000000 -v 0.106066 0.106066 0.500000 -v 0.106066 0.106066 2.000000 -v 0.150000 -0.000000 0.500000 -v 0.150000 0.000000 2.000000 -v 0.106066 -0.106066 0.500000 -v 0.106066 -0.106066 2.000000 -v -0.000000 -0.150000 0.500000 -v -0.000000 -0.150000 2.000000 -v -0.106066 -0.106066 0.500000 -v -0.106066 -0.106066 2.000000 -v -0.150000 -0.000000 0.500000 -v -0.150000 0.000000 2.000000 -v -0.106066 0.106066 0.500000 -v -0.106066 0.106066 2.000000 -v 0.079550 0.079550 2.100000 -v -0.000000 0.112500 2.100000 -v 0.112500 0.000000 2.100000 -v 0.079550 -0.079550 2.100000 -v -0.000000 -0.112500 2.100000 -v -0.079550 -0.079549 2.100000 -v -0.112500 0.000000 2.100000 -v -0.079550 0.079550 2.100000 -v 0.079550 0.079549 3.350000 -v -0.000000 0.112500 3.350000 -v 0.112500 -0.000000 3.350000 -v 0.079550 -0.079550 3.350000 -v -0.000000 -0.112500 3.350000 -v -0.079550 -0.079550 3.350000 -v -0.112500 -0.000000 3.350000 -v -0.079550 0.079549 3.350000 -v 0.059662 0.059662 3.350000 -v -0.000000 0.084375 3.350000 -v 0.084375 -0.000000 3.350000 -v 0.059662 -0.059662 3.350000 -v -0.000000 -0.084375 3.350000 -v -0.059662 -0.059662 3.350000 -v -0.084375 -0.000000 3.350000 -v -0.059662 0.059662 3.350000 -v 0.059662 0.059662 1.350000 -v -0.000000 0.084375 1.350000 -v 0.084375 -0.000000 1.350000 -v 0.059662 -0.059662 1.350000 -v -0.000000 -0.084375 1.350000 -v -0.059662 -0.059662 1.350000 -v -0.084375 -0.000000 1.350000 -v -0.059662 0.059662 1.350000 -v -0.187500 0.187500 -0.600000 -v -0.187500 -0.187500 -0.600000 -v 0.187500 0.187500 -0.600000 -v 0.187500 -0.187500 -0.600000 -v -0.159375 0.000625 -0.600000 -v -0.159375 -0.130625 -0.600000 -v 0.159375 0.000625 -0.600000 -v 0.159375 -0.130625 -0.600000 -v -0.000000 0.150000 -1.100000 -v -0.000000 0.150000 -0.600000 -v 0.079550 0.106066 -1.100000 -v 0.079550 0.106066 -0.600000 -v 0.112500 -0.000000 -1.100000 -v 0.112500 0.000000 -0.600000 -v -0.112500 -0.000000 -1.100000 -v -0.112500 0.000000 -0.600000 -v -0.079550 0.106066 -1.100000 -v -0.079550 0.106066 -0.600000 -v -0.159375 0.000625 -1.200000 -v -0.159375 -0.130625 -1.200000 -v 0.159375 0.000625 -1.200000 -v 0.159375 -0.130625 -1.200000 -v -0.325000 -0.100000 -1.200000 -v -0.325000 -0.050000 -1.200000 -v -0.325000 -0.100000 -1.600000 -v -0.325000 -0.050000 -1.600000 -v -0.075000 -0.100000 -1.200000 -v -0.075000 -0.050000 -1.200000 -v -0.075000 -0.100000 -1.600000 -v -0.075000 -0.050000 -1.600000 -v -0.075000 -0.100000 -1.400000 -v -0.075000 -0.050000 -1.400000 -v 0.075000 -0.100000 -1.200000 -v 0.075000 -0.050000 -1.200000 -v -0.300000 0.187500 0.450000 -v -0.300000 0.187500 -0.450000 -v -0.300000 -0.187500 -0.450000 -v -0.300000 -0.187500 0.450000 -v 0.300000 0.187500 -0.450000 -v 0.300000 0.187500 0.450000 -v 0.300000 -0.187500 0.450000 -v 0.300000 -0.187500 -0.450000 -v -0.375000 -0.250000 3.183013 -v 0.375000 -0.250000 3.183013 -v -0.375000 -0.129410 3.232963 -v 0.375000 -0.129410 3.232963 -v -0.375000 -0.000000 3.250000 -v 0.375000 -0.000000 3.250000 -v -0.375000 0.129409 3.232963 -v 0.375000 0.129409 3.232963 -v -0.375000 0.250000 3.183013 -v 0.375000 0.250000 3.183013 -v 0.072467 -0.072941 3.240397 -v -0.000855 -0.102059 3.236564 -v -0.072664 -0.069579 3.240839 -v -0.073672 0.070604 3.240705 -v -0.001470 0.101724 3.236608 -v 0.067748 0.072911 3.240401 -v -0.102959 -0.000000 3.250000 -v 0.103956 -0.000000 3.250000 -v 0.100000 -0.337500 0.600000 -v 0.144194 -0.355806 0.600000 -v 0.100000 -0.275000 -0.500000 -v 0.100000 -0.275000 0.500000 -v 0.188388 -0.311612 -0.500000 -v 0.188388 -0.311612 0.500000 -v 0.225000 -0.400000 -0.500000 -v 0.225000 -0.400000 0.500000 -v 0.188388 -0.488388 -0.500000 -v 0.188388 -0.488388 0.500000 -v 0.100000 -0.525000 -0.500000 -v 0.100000 -0.525000 0.500000 -v 0.011612 -0.488388 -0.500000 -v 0.011612 -0.488388 0.500000 -v -0.025000 -0.400000 -0.500000 -v -0.025000 -0.400000 0.500000 -v 0.011612 -0.311612 -0.500000 -v 0.011612 -0.311612 0.500000 -v 0.055806 -0.355806 0.600000 -v 0.037500 -0.400000 0.600000 -v 0.055806 -0.444194 0.600000 -v 0.100000 -0.462500 0.600000 -v 0.144194 -0.444194 0.600000 -v 0.162500 -0.400000 0.600000 -v 0.100000 -0.337500 -0.600000 -v 0.144194 -0.355806 -0.600000 -v 0.162500 -0.400000 -0.600000 -v 0.144194 -0.444194 -0.600000 -v 0.100000 -0.462500 -0.600000 -v 0.055806 -0.444194 -0.600000 -v 0.037500 -0.400000 -0.600000 -v 0.055806 -0.355806 -0.600000 -v 0.066291 0.566291 1.000000 -v -0.000000 0.593750 1.000000 -v 0.000000 0.625000 -0.500000 -v 0.000000 0.625000 1.000000 -v 0.088388 0.588388 -0.500000 -v 0.088388 0.588388 1.000000 -v 0.125000 0.500000 -0.500000 -v 0.125000 0.500000 1.000000 -v 0.088388 0.411612 -0.500000 -v 0.088388 0.411612 1.000000 -v -0.000000 0.375000 -0.500000 -v -0.000000 0.375000 1.000000 -v -0.088388 0.411612 -0.500000 -v -0.088388 0.411612 1.000000 -v -0.125000 0.500000 -0.500000 -v -0.125000 0.500000 1.000000 -v -0.088388 0.588388 -0.500000 -v -0.088388 0.588388 1.000000 -v 0.093750 0.500000 1.000000 -v 0.066291 0.433709 1.000000 -v -0.000000 0.406250 1.000000 -v -0.066291 0.433709 1.000000 -v -0.093750 0.500000 1.000000 -v -0.066291 0.566291 1.000000 -v -0.000000 0.593750 0.750000 -v -0.066291 0.566291 0.750000 -v -0.093750 0.500000 0.750000 -v -0.066291 0.433709 0.750000 -v -0.000000 0.406250 0.750000 -v 0.066291 0.433709 0.750000 -v 0.093750 0.500000 0.750000 -v 0.066291 0.566291 0.750000 -v -0.175000 0.250000 -0.125000 -v -0.125000 0.500000 -0.125000 -v -0.175000 0.250000 -0.375000 -v -0.125000 0.500000 -0.375000 -v -0.075000 0.250000 -0.125000 -v -0.025000 0.500000 -0.125000 -v -0.075000 0.250000 -0.375000 -v -0.025000 0.500000 -0.375000 -v -0.175000 0.250000 0.375000 -v -0.125000 0.500000 0.375000 -v -0.175000 0.250000 0.125000 -v -0.125000 0.500000 0.125000 -v -0.075000 0.250000 0.375000 -v -0.025000 0.500000 0.375000 -v -0.075000 0.250000 0.125000 -v -0.025000 0.500000 0.125000 -v 0.152188 -0.129410 3.232963 -v 0.152706 0.129409 3.232963 -v 0.151137 -0.000000 3.250000 -v -0.151336 -0.129410 3.232963 -v -0.151015 -0.000000 3.250000 -v -0.148109 0.129409 3.232963 -vt 0.864157 0.514072 -vt 0.837312 0.499844 -vt 0.837312 0.414475 -vt 0.513339 0.238965 -vt 0.513339 0.352789 -vt 0.399514 0.352789 -vt 0.427970 0.381245 -vt 0.427970 0.551981 -vt 0.399514 0.011317 -vt 0.513339 0.011317 -vt 0.352808 0.402233 -vt 0.352802 0.419909 -vt 0.011329 0.419791 -vt 0.352795 0.437585 -vt 0.011323 0.437467 -vt 0.352789 0.455261 -vt 0.011317 0.455143 -vt 0.352862 0.243149 -vt 0.352856 0.260825 -vt 0.011384 0.260708 -vt 0.570119 0.740411 -vt 0.570119 0.706264 -vt 0.740855 0.706264 -vt 0.352850 0.278501 -vt 0.011378 0.278384 -vt 0.535972 0.649352 -vt 0.570119 0.649352 -vt 0.352844 0.296177 -vt 0.011371 0.296060 -vt 0.740855 0.615204 -vt 0.740855 0.649352 -vt 0.352838 0.313853 -vt 0.011365 0.313736 -vt 0.352832 0.331529 -vt 0.011359 0.331411 -vt 0.484883 0.381245 -vt 0.352826 0.349205 -vt 0.011353 0.349087 -vt 0.399514 0.580437 -vt 0.484882 0.551981 -vt 0.352820 0.366881 -vt 0.011347 0.366763 -vt 0.775003 0.706264 -vt 0.352814 0.384557 -vt 0.011335 0.402115 -vt 0.011341 0.384439 -vt 0.513339 0.580437 -vt 0.035409 0.115858 -vt 0.035409 0.089723 -vt 0.376881 0.089722 -vt 0.035409 0.063587 -vt 0.376881 0.063587 -vt 0.035409 0.037452 -vt 0.376881 0.037452 -vt 0.035409 0.011317 -vt 0.376881 0.011317 -vt 0.376881 0.220399 -vt 0.035409 0.220398 -vt 0.035409 0.194263 -vt 0.376881 0.194264 -vt 0.035409 0.168128 -vt 0.011317 0.034185 -vt 0.035409 0.141993 -vt 0.376881 0.115858 -vt 0.376881 0.168128 -vt 0.826448 0.089722 -vt 0.541887 0.089723 -vt 0.541887 0.070122 -vt 0.011317 0.164861 -vt 0.011317 0.145260 -vt 0.011317 0.086456 -vt 0.011317 0.217132 -vt 0.011317 0.197530 -vt 0.011317 0.138726 -vt 0.011317 0.119125 -vt 0.011317 0.112591 -vt 0.011317 0.092989 -vt 0.011317 0.060321 -vt 0.011317 0.190996 -vt 0.011317 0.171395 -vt 0.541887 0.128926 -vt 0.535972 0.126476 -vt 0.535972 0.111775 -vt 0.826448 0.109324 -vt 0.541887 0.109324 -vt 0.826448 0.148527 -vt 0.541887 0.148527 -vt 0.826448 0.030918 -vt 0.541887 0.030919 -vt 0.541887 0.011318 -vt 0.826448 0.070121 -vt 0.541887 0.050521 -vt 0.826448 0.128925 -vt 0.826448 0.168128 -vt 0.541887 0.168128 -vt 0.826448 0.050520 -vt 0.466613 0.689464 -vt 0.466613 0.704165 -vt 0.011317 0.704165 -vt 0.535972 0.165678 -vt 0.535972 0.150977 -vt 0.535972 0.048070 -vt 0.535972 0.033369 -vt 0.535972 0.087273 -vt 0.535972 0.072572 -vt 0.535972 0.106874 -vt 0.535972 0.092173 -vt 0.535972 0.146077 -vt 0.535972 0.131376 -vt 0.535972 0.028469 -vt 0.535972 0.067672 -vt 0.735493 0.549322 -vt 0.750194 0.549322 -vt 0.760590 0.574419 -vt 0.466613 0.718866 -vt 0.011317 0.718866 -vt 0.466613 0.674763 -vt 0.011317 0.689464 -vt 0.466613 0.777670 -vt 0.466613 0.792371 -vt 0.011317 0.792371 -vt 0.466613 0.762969 -vt 0.011317 0.777670 -vt 0.466613 0.733567 -vt 0.466613 0.748268 -vt 0.011317 0.748268 -vt 0.011317 0.733567 -vt 0.011317 0.762969 -vt 0.830909 0.486896 -vt 0.830909 0.457017 -vt 0.737716 0.526689 -vt 0.751944 0.499844 -vt 0.851540 0.387630 -vt 0.751944 0.414475 -vt 0.725098 0.400247 -vt 0.535997 0.519951 -vt 0.672586 0.519998 -vt 0.672561 0.592561 -vt 0.758346 0.457017 -vt 0.758346 0.486896 -vt 0.271028 0.860976 -vt 0.271028 0.840289 -vt 0.384852 0.840289 -vt 0.271028 0.815005 -vt 0.271028 0.881664 -vt 0.384852 0.860976 -vt 0.271028 0.906948 -vt 0.384852 0.881664 -vt 0.702440 0.592571 -vt 0.536032 0.417509 -vt 0.672621 0.417556 -vt 0.672596 0.490119 -vt 0.536043 0.387630 -vt 0.672632 0.387677 -vt 0.536007 0.490072 -vt 0.433767 0.891752 -vt 0.384852 0.906948 -vt 0.501956 0.762425 -vt 0.513339 0.762425 -vt 0.513339 0.853484 -vt 0.501956 0.705513 -vt 0.513339 0.705513 -vt 0.501956 0.659983 -vt 0.501956 0.603071 -vt 0.513339 0.603071 -vt 0.501956 0.853484 -vt 0.513339 0.910396 -vt 0.513339 0.659983 -vt 0.513339 0.944543 -vt 0.501956 0.944543 -vt 0.501956 0.910396 -vt 0.797636 0.706264 -vt 0.797636 0.672116 -vt 0.843166 0.672116 -vt 0.797636 0.615204 -vt 0.849082 0.102376 -vt 0.883229 0.056846 -vt 0.883229 0.102376 -vt 0.883229 0.011317 -vt 0.940141 0.011317 -vt 0.756953 0.781265 -vt 0.756953 0.866633 -vt 0.552069 0.866633 -vt 0.552069 0.781265 -vt 0.540687 0.763044 -vt 0.773050 0.767037 -vt 0.768335 0.884854 -vt 0.535972 0.880861 -vt 0.027414 0.918593 -vt 0.027414 0.833225 -vt 0.232297 0.833225 -vt 0.232297 0.918593 -vt 0.243680 0.936814 -vt 0.011317 0.932821 -vt 0.016031 0.815005 -vt 0.248394 0.818997 -vt 0.956990 0.190761 -vt 0.837170 0.220476 -vt 0.786254 0.190762 -vt 0.837244 0.250190 -vt 0.786254 0.250190 -vt 0.837243 0.272823 -vt 0.837905 0.302537 -vt 0.786254 0.302537 -vt 0.956990 0.332251 -vt 0.786254 0.332251 -vt 0.684679 0.960065 -vt 0.692379 0.952364 -vt 0.714817 0.967103 -vt 0.576570 0.933857 -vt 0.566509 0.938025 -vt 0.551419 0.915822 -vt 0.535972 0.364997 -vt 0.535972 0.343217 -vt 0.763620 0.343217 -vt 0.668344 0.986352 -vt 0.673789 0.960065 -vt 0.562342 0.948085 -vt 0.535972 0.943056 -vt 0.535972 0.321438 -vt 0.763620 0.321438 -vt 0.714817 0.926737 -vt 0.692379 0.941475 -vt 0.684679 0.933775 -vt 0.535972 0.953115 -vt 0.566509 0.958146 -vt 0.535972 0.299659 -vt 0.763620 0.299659 -vt 0.666089 0.952364 -vt 0.576570 0.962313 -vt 0.571541 0.988683 -vt 0.535972 0.277880 -vt 0.763620 0.277879 -vt 0.586631 0.958146 -vt 0.590798 0.948085 -vt 0.617168 0.953115 -vt 0.581599 0.988683 -vt 0.535972 0.256100 -vt 0.763620 0.256100 -vt 0.586631 0.938025 -vt 0.608833 0.922934 -vt 0.535972 0.234321 -vt 0.763620 0.234320 -vt 0.886790 0.387630 -vt 0.943703 0.387630 -vt 0.943703 0.403965 -vt 0.535972 0.212542 -vt 0.535972 0.190762 -vt 0.763620 0.190761 -vt 0.763620 0.212541 -vt 0.718666 0.936030 -vt 0.581599 0.907487 -vt 0.017889 0.652129 -vt 0.011317 0.649407 -vt 0.011317 0.633072 -vt 0.659051 0.982503 -vt 0.666089 0.941475 -vt 0.639801 0.957809 -vt 0.673789 0.933775 -vt 0.643651 0.926737 -vt 0.668344 0.907487 -vt 0.017889 0.565012 -vt 0.017889 0.543232 -vt 0.359362 0.543232 -vt 0.017889 0.521453 -vt 0.011317 0.540510 -vt 0.886790 0.469302 -vt 0.943703 0.469302 -vt 0.943703 0.485637 -vt 0.359362 0.521453 -vt 0.017889 0.499673 -vt 0.011317 0.496951 -vt 0.011317 0.480616 -vt 0.886790 0.403965 -vt 0.943703 0.420299 -vt 0.017889 0.608570 -vt 0.011317 0.605848 -vt 0.011317 0.589513 -vt 0.886790 0.436634 -vt 0.886790 0.420299 -vt 0.017889 0.477894 -vt 0.359363 0.477895 -vt 0.011317 0.518730 -vt 0.011317 0.502396 -vt 0.399514 0.630956 -vt 0.411065 0.603071 -vt 0.438949 0.614621 -vt 0.017889 0.630350 -vt 0.359363 0.630349 -vt 0.886790 0.485637 -vt 0.943703 0.501971 -vt 0.011317 0.627627 -vt 0.011317 0.611293 -vt 0.359362 0.608570 -vt 0.017889 0.586791 -vt 0.359362 0.565012 -vt 0.911329 0.630605 -vt 0.963909 0.630605 -vt 0.963909 0.652384 -vt 0.359362 0.586791 -vt 0.011317 0.584068 -vt 0.011317 0.567734 -vt 0.886790 0.452968 -vt 0.943703 0.452968 -vt 0.011317 0.562289 -vt 0.943703 0.436634 -vt 0.886790 0.501971 -vt 0.943703 0.518306 -vt 0.874918 0.906220 -vt 0.874918 0.848181 -vt 0.931830 0.848181 -vt 0.852595 0.910685 -vt 0.852595 0.852646 -vt 0.795683 0.910685 -vt 0.795683 0.852646 -vt 0.931830 0.906220 -vt 0.954153 0.852646 -vt 0.874918 0.821083 -vt 0.874918 0.763044 -vt 0.931830 0.763044 -vt 0.852595 0.825548 -vt 0.852595 0.767509 -vt 0.795683 0.825548 -vt 0.795683 0.767509 -vt 0.931830 0.821083 -vt 0.954153 0.767509 -vt 0.906385 0.302537 -vt 0.906028 0.272823 -vt 0.956990 0.272823 -vt 0.906267 0.220476 -vt 0.956990 0.220476 -vt 0.956990 0.250190 -vt 0.854850 0.289035 -vt 0.848183 0.272823 -vt 0.871287 0.296180 -vt 0.887044 0.289565 -vt 0.895287 0.272823 -vt 0.895287 0.250190 -vt 0.906028 0.250190 -vt 0.888119 0.233442 -vt 0.871427 0.226756 -vt 0.855080 0.234214 -vt 0.848183 0.250190 -vt 0.864157 0.400247 -vt 0.399514 0.238965 -vt 0.011390 0.243032 -vt 0.740855 0.740411 -vt 0.535972 0.706264 -vt 0.570119 0.615204 -vt 0.775003 0.649352 -vt 0.011317 0.014584 -vt 0.376881 0.141993 -vt 0.011317 0.066854 -vt 0.011317 0.040719 -vt 0.826448 0.011317 -vt 0.535972 0.013768 -vt 0.535972 0.052971 -vt 0.750194 0.584814 -vt 0.735493 0.584814 -vt 0.725098 0.574419 -vt 0.725098 0.559718 -vt 0.760590 0.559718 -vt 0.011317 0.674762 -vt 0.851540 0.526689 -vt 0.737716 0.387630 -vt 0.725098 0.514072 -vt 0.535972 0.592514 -vt 0.384852 0.815005 -vt 0.702465 0.520008 -vt 0.399179 0.866740 -vt 0.419440 0.870919 -vt 0.888695 0.615204 -vt 0.888695 0.672116 -vt 0.940141 0.102376 -vt 0.768335 0.763044 -vt 0.773050 0.880861 -vt 0.540687 0.884854 -vt 0.535972 0.767037 -vt 0.016031 0.936814 -vt 0.011317 0.818997 -vt 0.243680 0.815005 -vt 0.248395 0.932821 -vt 0.786254 0.220476 -vt 0.786254 0.272823 -vt 0.956990 0.302537 -vt 0.699416 0.982503 -vt 0.571541 0.907487 -vt 0.763620 0.364997 -vt 0.690123 0.986352 -vt 0.544307 0.922934 -vt 0.699417 0.911337 -vt 0.544307 0.973236 -vt 0.551419 0.980349 -vt 0.608833 0.973236 -vt 0.601721 0.980349 -vt 0.617168 0.943056 -vt 0.718666 0.957809 -vt 0.601721 0.915822 -vt 0.643651 0.967102 -vt 0.639801 0.936030 -vt 0.659051 0.911337 -vt 0.690123 0.907487 -vt 0.011317 0.524175 -vt 0.359362 0.499674 -vt 0.438949 0.630956 -vt 0.427399 0.642506 -vt 0.411065 0.642506 -vt 0.399514 0.614621 -vt 0.427399 0.603071 -vt 0.359363 0.652128 -vt 0.948508 0.667784 -vt 0.926729 0.667784 -vt 0.911329 0.652384 -vt 0.926729 0.615204 -vt 0.948508 0.615204 -vt 0.011317 0.545955 -vt 0.886790 0.518306 -vt 0.954153 0.910685 -vt 0.954153 0.825548 -vn 0.848000 0.000000 -0.530000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.258800 -0.965900 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 -0.965900 -0.258800 -vn 0.000000 -0.965900 0.258800 -vn 1.000000 0.000000 0.000000 -vn 0.000000 -0.707100 0.707100 -vn 0.000000 -0.258800 0.965900 -vn -1.000000 0.000000 0.000000 -vn -0.000000 0.258800 0.965900 -vn 0.000000 0.707100 0.707100 -vn -0.000000 0.965900 0.258800 -vn -0.000000 0.965900 -0.258800 -vn 0.000000 0.000000 -1.000000 -vn -0.000000 0.258800 -0.965900 -vn -0.000000 0.707100 -0.707100 -vn 0.382700 0.923900 -0.000000 -vn 0.923900 0.382700 -0.000000 -vn 0.923900 -0.382700 0.000000 -vn 0.382700 -0.923900 0.000000 -vn -0.382700 -0.923900 0.000000 -vn -0.923900 -0.382700 0.000000 -vn 0.361600 -0.873000 0.327400 -vn -0.382700 0.923900 -0.000000 -vn -0.923900 0.382700 -0.000000 -vn -0.873000 0.361600 0.327400 -vn 0.873000 0.361600 0.327400 -vn -0.361600 -0.873000 0.327400 -vn -0.361600 0.873000 0.327400 -vn 0.361600 0.873000 0.327400 -vn 0.873000 -0.361600 0.327400 -vn -0.873000 -0.361600 0.327400 -vn 0.000000 -0.848000 -0.530000 -vn 0.000000 0.848000 -0.530000 -vn -0.848000 0.000000 -0.530000 -vn 0.483500 0.875400 -0.000000 -vn 0.955000 0.296700 -0.000000 -vn -0.483500 0.875400 -0.000000 -vn -0.955000 0.296700 -0.000000 -vn 0.800000 0.000000 -0.600000 -vn -0.780900 0.624700 0.000000 -vn -0.707100 0.000000 -0.707100 -vn -0.780900 -0.624700 0.000000 -vn -0.707100 0.000000 0.707100 -vn 0.780900 0.624700 0.000000 -vn 0.707100 0.000000 0.707100 -vn 0.780900 -0.624700 0.000000 -vn 0.707100 0.000000 -0.707100 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.130500 0.991400 -vn 0.000000 0.130500 0.991400 -vn 0.000000 0.382700 0.923900 -vn 0.800100 -0.331400 -0.500000 -vn -0.331400 -0.800100 0.500000 -vn 0.331400 -0.800100 -0.500000 -vn -0.800100 -0.331400 0.500000 -vn 0.331400 0.800100 -0.500000 -vn -0.800100 0.331400 0.500000 -vn -0.331400 0.800100 0.500000 -vn 0.800100 0.331400 0.500000 -vn 0.331400 0.800100 0.500000 -vn 0.800100 -0.331400 0.500000 -vn 0.800100 0.331400 -0.500000 -vn 0.331400 -0.800100 0.500000 -vn -0.331400 -0.800100 -0.500000 -vn -0.800100 -0.331400 -0.500000 -vn -0.800100 0.331400 -0.500000 -vn -0.331400 0.800100 -0.500000 -vn -0.980600 0.196100 0.000000 -vn 0.980600 -0.196100 0.000000 -s off -f 7/1/1 92/2/1 91/3/1 -f 2/4/2 1/5/2 5/6/2 -f 5/6/3 36/7/3 35/8/3 -f 8/9/4 4/10/4 2/4/4 -f 12/11/5 14/12/5 13/13/5 -f 14/12/6 16/14/6 15/15/6 -f 16/14/7 18/16/7 17/17/7 -f 18/18/8 20/19/8 19/20/8 -f 36/21/9 38/22/9 39/23/9 -f 20/19/10 22/24/10 21/25/10 -f 9/26/2 37/27/2 38/22/2 -f 22/24/11 24/28/11 23/29/11 -f 10/30/12 40/31/12 37/27/12 -f 24/28/13 26/32/13 25/33/13 -f 40/31/3 39/23/3 38/22/3 -f 26/32/14 28/34/14 27/35/14 -f 1/5/3 9/36/3 36/7/3 -f 28/34/15 30/37/15 29/38/15 -f 7/39/3 35/8/3 10/40/3 -f 30/37/16 32/41/16 31/42/16 -f 35/43/17 39/23/17 40/31/17 -f 34/44/18 12/11/18 11/45/18 -f 32/41/19 34/44/19 33/46/19 -f 3/47/3 10/40/3 9/36/3 -f 42/48/20 44/49/20 43/50/20 -f 44/49/21 46/51/21 45/52/21 -f 46/51/22 48/53/22 47/54/22 -f 48/53/23 50/55/23 49/56/23 -f 49/57/24 50/58/24 52/59/24 -f 51/60/25 52/59/25 54/61/25 -f 50/55/26 48/53/26 60/62/26 -f 56/63/27 42/48/27 41/64/27 -f 53/65/28 54/61/28 56/63/28 -f 58/66/20 66/67/20 65/68/20 -f 54/61/29 63/69/29 64/70/29 -f 46/51/30 44/49/30 57/71/30 -f 50/58/31 61/72/31 62/73/31 -f 56/63/32 64/74/32 58/75/32 -f 42/48/33 58/76/33 57/77/33 -f 48/53/34 46/51/34 59/78/34 -f 52/59/35 62/79/35 63/80/35 -f 71/81/2 79/82/2 80/83/2 -f 64/84/27 72/85/27 66/67/27 -f 62/86/25 70/87/25 71/81/25 -f 60/88/23 68/89/23 69/90/23 -f 57/91/21 65/68/21 67/92/21 -f 63/93/28 71/81/28 72/85/28 -f 61/94/24 69/95/24 70/87/24 -f 59/96/22 67/92/22 68/89/22 -f 86/97/21 87/98/21 79/99/21 -f 69/95/2 77/100/2 78/101/2 -f 67/92/2 75/102/2 76/103/2 -f 66/67/2 74/104/2 73/105/2 -f 72/85/2 80/106/2 74/107/2 -f 70/87/2 78/108/2 79/109/2 -f 69/90/2 68/89/2 76/110/2 -f 67/92/2 65/68/2 73/111/2 -f 86/112/2 85/113/2 83/114/2 -f 87/98/22 88/115/22 80/116/22 -f 85/117/20 86/97/20 78/118/20 -f 84/119/27 85/120/27 77/121/27 -f 83/122/28 84/119/28 76/123/28 -f 82/124/24 81/125/24 73/126/24 -f 88/115/23 82/124/23 74/127/23 -f 81/125/25 83/122/25 75/128/25 -f 92/2/17 96/129/17 95/130/17 -f 3/131/36 90/132/36 92/2/36 -f 8/133/37 91/3/37 89/134/37 -f 4/135/38 89/134/38 90/132/38 -f 94/136/3 108/137/3 110/138/3 -f 90/132/17 89/134/17 93/139/17 -f 90/132/17 94/140/17 96/129/17 -f 91/3/17 95/130/17 93/139/17 -f 98/141/39 100/142/39 99/143/39 -f 99/143/40 100/142/40 102/144/40 -f 106/145/41 98/141/41 97/146/41 -f 104/147/42 106/145/42 105/148/42 -f 109/149/17 110/138/17 108/137/17 -f 95/150/4 109/151/4 107/152/4 -f 96/153/9 110/154/9 109/151/9 -f 93/155/12 107/152/12 108/137/12 -f 101/156/17 103/157/17 105/148/17 -f 114/158/12 113/159/12 111/160/12 -f 118/161/17 117/162/17 113/159/17 -f 120/163/43 122/164/43 121/165/43 -f 112/166/2 111/160/2 115/167/2 -f 118/161/9 120/163/9 119/168/9 -f 121/169/2 122/170/2 116/171/2 -f 121/172/3 115/173/3 119/174/3 -f 119/174/3 115/173/3 111/175/3 -f 122/176/4 120/177/4 116/178/4 -f 120/177/4 118/179/4 114/180/4 -f 124/181/12 125/182/12 126/183/12 -f 124/181/44 123/184/44 2/185/44 -f 125/182/45 124/181/45 4/186/45 -f 126/183/46 125/182/46 3/187/46 -f 123/184/47 126/183/47 1/188/47 -f 128/189/9 129/190/9 130/191/9 -f 128/189/48 127/192/48 8/193/48 -f 129/190/49 128/189/49 6/194/49 -f 130/191/50 129/190/50 5/195/50 -f 127/192/51 130/191/51 7/196/51 -f 132/197/52 232/198/52 131/199/52 -f 232/198/53 233/200/53 135/201/53 -f 233/202/54 234/203/54 137/204/54 -f 234/203/55 140/205/55 139/206/55 -f 176/207/56 175/208/56 155/209/56 -f 170/210/57 169/211/57 162/212/57 -f 152/213/20 154/214/20 153/215/20 -f 159/216/58 177/217/58 176/207/58 -f 169/211/59 168/218/59 164/219/59 -f 154/214/21 156/220/21 155/221/21 -f 153/222/60 174/223/60 173/224/60 -f 164/225/61 168/218/61 167/226/61 -f 156/220/22 158/227/22 157/228/22 -f 176/207/17 178/229/17 174/223/17 -f 167/226/62 149/230/62 152/231/62 -f 158/227/23 160/232/23 159/233/23 -f 150/234/63 172/235/63 156/236/63 -f 152/237/64 149/230/64 150/234/64 -f 160/232/24 162/238/24 161/239/24 -f 172/235/65 171/240/65 158/241/65 -f 168/218/2 170/210/2 149/230/2 -f 162/238/25 164/242/25 163/243/25 -f 201/244/20 209/245/20 208/246/20 -f 166/247/27 152/248/27 151/249/27 -f 164/242/28 166/247/28 165/250/28 -f 175/208/66 174/223/66 153/251/66 -f 171/240/67 170/210/67 160/252/67 -f 192/253/2 201/254/2 202/255/2 -f 178/229/68 177/217/68 159/256/68 -f 179/257/69 178/229/69 161/258/69 -f 180/259/70 179/257/70 163/260/70 -f 173/224/71 180/259/71 165/261/71 -f 184/262/20 186/263/20 185/264/20 -f 188/265/2 186/263/2 181/266/2 -f 181/267/25 212/268/25 211/269/25 -f 186/263/21 188/265/21 187/270/21 -f 190/271/2 200/272/2 201/273/2 -f 202/274/21 208/246/21 207/275/21 -f 187/270/22 188/265/22 190/271/22 -f 196/276/2 203/277/2 204/278/2 -f 204/279/22 203/280/22 207/275/22 -f 190/271/23 192/281/23 191/282/23 -f 188/265/2 199/283/2 200/284/2 -f 207/285/2 209/286/2 211/287/2 -f 192/253/24 194/288/24 193/289/24 -f 199/290/28 211/269/28 210/291/28 -f 194/288/2 202/292/2 203/293/2 -f 194/288/25 196/276/25 195/294/25 -f 198/295/27 184/262/27 183/296/27 -f 189/297/17 195/298/17 197/299/17 -f 196/276/28 198/295/28 197/300/28 -f 198/295/2 204/301/2 182/302/2 -f 182/303/24 205/304/24 212/268/24 -f 186/263/2 184/262/2 182/305/2 -f 204/279/23 206/306/23 205/304/23 -f 200/307/27 210/291/27 209/308/27 -f 216/309/72 215/310/72 213/311/72 -f 216/309/17 220/312/17 219/313/17 -f 218/314/73 217/315/73 219/313/73 -f 214/316/2 213/311/2 217/317/2 -f 224/318/72 223/319/72 221/320/72 -f 224/318/17 228/321/17 227/322/17 -f 226/323/73 225/324/73 227/322/73 -f 222/325/2 221/320/2 225/326/2 -f 230/327/54 231/328/54 136/329/54 -f 229/330/53 134/331/53 136/332/53 -f 144/333/54 234/203/54 147/334/54 -f 233/202/54 147/334/54 234/203/54 -f 145/335/54 234/203/54 144/333/54 -f 230/327/54 234/203/54 145/335/54 -f 146/336/54 230/327/54 145/335/54 -f 146/336/54 148/337/54 230/327/54 -f 231/328/54 230/327/54 148/337/54 -f 148/338/53 229/330/53 231/339/53 -f 141/340/53 229/330/53 148/338/53 -f 142/341/53 229/330/53 141/340/53 -f 229/330/53 142/341/53 232/198/53 -f 143/342/53 232/198/53 142/341/53 -f 143/342/53 147/343/53 232/198/53 -f 233/200/53 232/198/53 147/343/53 -f 8/344/1 7/1/1 91/3/1 -f 6/345/2 2/4/2 5/6/2 -f 7/39/3 5/6/3 35/8/3 -f 6/345/4 8/9/4 2/4/4 -f 11/45/5 12/11/5 13/13/5 -f 13/13/6 14/12/6 15/15/6 -f 15/15/7 16/14/7 17/17/7 -f 17/346/8 18/18/8 19/20/8 -f 35/347/9 36/21/9 39/23/9 -f 19/20/10 20/19/10 21/25/10 -f 36/348/2 9/26/2 38/22/2 -f 21/25/11 22/24/11 23/29/11 -f 9/349/12 10/30/12 37/27/12 -f 23/29/13 24/28/13 25/33/13 -f 37/27/3 40/31/3 38/22/3 -f 25/33/14 26/32/14 27/35/14 -f 5/6/3 1/5/3 36/7/3 -f 27/35/15 28/34/15 29/38/15 -f 3/47/3 7/39/3 10/40/3 -f 29/38/16 30/37/16 31/42/16 -f 10/350/17 35/43/17 40/31/17 -f 33/46/18 34/44/18 11/45/18 -f 31/42/19 32/41/19 33/46/19 -f 1/5/3 3/47/3 9/36/3 -f 41/64/20 42/48/20 43/50/20 -f 43/50/21 44/49/21 45/52/21 -f 45/52/22 46/51/22 47/54/22 -f 47/54/23 48/53/23 49/56/23 -f 51/60/24 49/57/24 52/59/24 -f 53/65/25 51/60/25 54/61/25 -f 61/351/26 50/55/26 60/62/26 -f 55/352/27 56/63/27 41/64/27 -f 55/352/28 53/65/28 56/63/28 -f 57/91/20 58/66/20 65/68/20 -f 56/63/29 54/61/29 64/70/29 -f 59/353/30 46/51/30 57/71/30 -f 52/59/31 50/58/31 62/73/31 -f 42/48/32 56/63/32 58/75/32 -f 44/49/33 42/48/33 57/77/33 -f 60/354/34 48/53/34 59/78/34 -f 54/61/35 52/59/35 63/80/35 -f 72/85/2 71/81/2 80/83/2 -f 58/66/27 64/84/27 66/67/27 -f 63/93/25 62/86/25 71/81/25 -f 61/355/23 60/88/23 69/90/23 -f 59/96/21 57/91/21 67/92/21 -f 64/84/28 63/93/28 72/85/28 -f 62/86/24 61/94/24 70/87/24 -f 60/88/22 59/96/22 68/89/22 -f 78/118/21 86/97/21 79/99/21 -f 70/87/2 69/95/2 78/101/2 -f 68/89/2 67/92/2 76/103/2 -f 65/68/2 66/67/2 73/105/2 -f 66/67/2 72/85/2 74/107/2 -f 71/81/2 70/87/2 79/109/2 -f 77/356/2 69/90/2 76/110/2 -f 75/357/2 67/92/2 73/111/2 -f 83/114/2 81/358/2 82/359/2 -f 82/359/2 88/360/2 83/114/2 -f 87/361/2 86/112/2 83/114/2 -f 85/113/2 84/362/2 83/114/2 -f 83/114/2 88/360/2 87/361/2 -f 79/99/22 87/98/22 80/116/22 -f 77/363/20 85/117/20 78/118/20 -f 76/123/27 84/119/27 77/121/27 -f 75/128/28 83/122/28 76/123/28 -f 74/127/24 82/124/24 73/126/24 -f 80/116/23 88/115/23 74/127/23 -f 73/126/25 81/125/25 75/128/25 -f 91/3/17 92/2/17 95/130/17 -f 7/364/36 3/131/36 92/2/36 -f 4/365/37 8/133/37 89/134/37 -f 3/366/38 4/135/38 90/132/38 -f 96/367/3 94/136/3 110/138/3 -f 94/140/17 90/132/17 93/139/17 -f 92/2/17 90/132/17 96/129/17 -f 89/134/17 91/3/17 93/139/17 -f 97/146/39 98/141/39 99/143/39 -f 101/368/40 99/143/40 102/144/40 -f 105/148/41 106/145/41 97/146/41 -f 103/157/42 104/147/42 105/148/42 -f 107/369/17 109/149/17 108/137/17 -f 93/155/4 95/150/4 107/152/4 -f 95/150/9 96/153/9 109/151/9 -f 94/136/12 93/155/12 108/137/12 -f 105/148/17 97/370/17 99/371/17 -f 99/371/17 101/156/17 105/148/17 -f 112/166/12 114/158/12 111/160/12 -f 114/158/17 118/161/17 113/159/17 -f 119/168/43 120/163/43 121/165/43 -f 116/171/2 112/166/2 115/167/2 -f 117/162/9 118/161/9 119/168/9 -f 115/167/2 121/169/2 116/171/2 -f 111/175/3 113/372/3 119/174/3 -f 117/373/3 119/174/3 113/372/3 -f 114/180/4 112/374/4 120/177/4 -f 116/178/4 120/177/4 112/374/4 -f 123/184/12 124/181/12 126/183/12 -f 4/375/44 124/181/44 2/185/44 -f 3/376/45 125/182/45 4/186/45 -f 1/377/46 126/183/46 3/187/46 -f 2/378/47 123/184/47 1/188/47 -f 127/192/9 128/189/9 130/191/9 -f 6/379/48 128/189/48 8/193/48 -f 5/380/49 129/190/49 6/194/49 -f 7/381/50 130/191/50 5/195/50 -f 8/382/51 127/192/51 7/196/51 -f 133/383/52 131/199/52 232/198/52 -f 132/197/52 134/331/52 229/330/52 -f 229/330/52 232/198/52 132/197/52 -f 133/383/53 232/198/53 135/201/53 -f 135/384/54 233/202/54 137/204/54 -f 139/206/55 137/204/55 234/203/55 -f 234/203/55 230/327/55 140/205/55 -f 138/385/55 140/205/55 230/327/55 -f 157/386/56 176/207/56 155/209/56 -f 160/387/57 170/210/57 162/212/57 -f 151/388/20 152/213/20 153/215/20 -f 157/389/58 159/216/58 176/207/58 -f 162/390/59 169/211/59 164/219/59 -f 153/215/21 154/214/21 155/221/21 -f 151/391/60 153/222/60 173/224/60 -f 166/392/61 164/225/61 167/226/61 -f 155/221/22 156/220/22 157/228/22 -f 180/259/17 173/224/17 174/223/17 -f 174/223/17 175/208/17 176/207/17 -f 176/207/17 177/217/17 178/229/17 -f 178/229/17 179/257/17 180/259/17 -f 180/259/17 174/223/17 178/229/17 -f 166/393/62 167/226/62 152/231/62 -f 157/228/23 158/227/23 159/233/23 -f 154/394/63 150/234/63 156/236/63 -f 154/395/64 152/237/64 150/234/64 -f 159/233/24 160/232/24 161/239/24 -f 156/396/65 172/235/65 158/241/65 -f 172/235/2 150/234/2 149/230/2 -f 149/230/2 167/226/2 168/218/2 -f 168/218/2 169/211/2 170/210/2 -f 170/210/2 171/240/2 172/235/2 -f 172/235/2 149/230/2 170/210/2 -f 161/239/25 162/238/25 163/243/25 -f 202/274/20 201/244/20 208/246/20 -f 165/250/27 166/247/27 151/249/27 -f 163/243/28 164/242/28 165/250/28 -f 155/397/66 175/208/66 153/251/66 -f 158/398/67 171/240/67 160/252/67 -f 194/288/2 192/253/2 202/255/2 -f 161/399/68 178/229/68 159/256/68 -f 163/400/69 179/257/69 161/258/69 -f 165/401/70 180/259/70 163/260/70 -f 151/402/71 173/224/71 165/261/71 -f 183/296/20 184/262/20 185/264/20 -f 199/403/2 188/265/2 181/266/2 -f 199/290/25 181/267/25 211/269/25 -f 185/264/21 186/263/21 187/270/21 -f 192/281/2 190/271/2 201/273/2 -f 203/280/21 202/274/21 207/275/21 -f 189/404/22 187/270/22 190/271/22 -f 198/295/2 196/276/2 204/278/2 -f 206/306/22 204/279/22 207/275/22 -f 189/404/23 190/271/23 191/282/23 -f 190/271/2 188/265/2 200/284/2 -f 211/287/2 212/405/2 207/285/2 -f 205/406/2 206/407/2 207/285/2 -f 207/285/2 208/408/2 209/286/2 -f 209/286/2 210/409/2 211/287/2 -f 212/405/2 205/406/2 207/285/2 -f 191/410/24 192/253/24 193/289/24 -f 200/307/28 199/290/28 210/291/28 -f 196/276/2 194/288/2 203/293/2 -f 193/289/25 194/288/25 195/294/25 -f 197/300/27 198/295/27 183/296/27 -f 197/299/17 183/411/17 185/412/17 -f 185/412/17 187/413/17 197/299/17 -f 189/297/17 191/414/17 193/415/17 -f 193/415/17 195/298/17 189/297/17 -f 197/299/17 187/413/17 189/297/17 -f 195/294/28 196/276/28 197/300/28 -f 184/262/2 198/295/2 182/302/2 -f 181/267/24 182/303/24 212/268/24 -f 181/416/2 186/263/2 182/305/2 -f 182/303/23 204/279/23 205/304/23 -f 201/417/27 200/307/27 209/308/27 -f 214/316/72 216/309/72 213/311/72 -f 215/310/17 216/309/17 219/313/17 -f 220/312/73 218/314/73 219/313/73 -f 218/418/2 214/316/2 217/317/2 -f 222/325/72 224/318/72 221/320/72 -f 223/319/17 224/318/17 227/322/17 -f 228/321/73 226/323/73 227/322/73 -f 226/419/2 222/325/2 225/326/2 -f 138/385/54 230/327/54 136/329/54 -f 231/339/53 229/330/53 136/332/53 diff --git a/src/main/resources/assets/hbm/models/turret_spitfire_rotor.obj b/src/main/resources/assets/hbm/models/turret_spitfire_rotor.obj deleted file mode 100644 index 7c315afb0..000000000 --- a/src/main/resources/assets/hbm/models/turret_spitfire_rotor.obj +++ /dev/null @@ -1,468 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_spitfire_rotor.blend' -# www.blender.org -o Cube_Cube.001 -v -0.750000 0.125000 1.000000 -v -0.750000 0.250000 1.000000 -v -0.750000 0.125000 0.000000 -v -0.750000 0.250000 0.000000 -v 0.750000 0.125000 1.000000 -v 0.500000 0.250000 1.000000 -v 0.750000 0.125000 0.000000 -v 0.750000 0.250000 0.000000 -v -0.500000 0.125000 0.000000 -v -0.500000 0.250000 0.000000 -v -0.500000 0.125000 -1.000000 -v -0.500000 0.250000 -1.000000 -v 0.500000 0.125000 0.000000 -v 0.500000 0.250000 0.000000 -v 0.500000 0.125000 -1.000000 -v 0.500000 0.250000 -1.000000 -v 0.500000 1.750000 0.250000 -v 0.500000 1.250000 -0.250000 -v 0.500000 1.750000 -0.250000 -v 0.750000 1.750000 0.250000 -v 0.750000 1.250000 -0.250000 -v 0.750000 1.750000 -0.250000 -v 0.500000 0.750000 0.750000 -v 0.500000 1.250000 0.750000 -v 0.500000 0.750000 0.250000 -v 0.750000 0.750000 0.750000 -v 0.750000 1.250000 0.750000 -v 0.750000 0.750000 0.250000 -v 0.500000 0.250000 0.250000 -v 0.750000 0.250000 1.000000 -v 0.750000 0.250000 0.250000 -v -0.750000 0.250000 1.000000 -v -0.750000 1.750000 0.250000 -v -0.750000 1.250000 -0.250000 -v -0.750000 1.750000 -0.250000 -v -0.500000 1.750000 0.250000 -v -0.500000 1.250000 -0.250000 -v -0.500000 1.750000 -0.250000 -v -0.750000 0.750000 0.750000 -v -0.750000 1.250000 0.750000 -v -0.750000 0.750000 0.250000 -v -0.500000 0.750000 0.750000 -v -0.500000 1.250000 0.750000 -v -0.500000 0.750000 0.250000 -v -0.750000 0.250000 0.250000 -v -0.500000 0.250000 1.000000 -v -0.500000 0.250000 0.250000 -v -0.150000 1.500000 -1.500000 -v -0.150000 1.888229 -1.448889 -v -0.150000 2.250000 -1.299038 -v -0.150000 2.560660 -1.060660 -v -0.250000 1.111770 -1.448888 -v -0.250000 0.749999 -1.299038 -v -0.250000 0.439339 -1.060659 -v -0.250000 0.200961 -0.749999 -v -0.250000 2.560660 -1.060660 -v -0.250000 2.250000 -1.299038 -v -0.250000 1.888229 -1.448889 -v -0.250000 1.500000 -1.500000 -v -0.150000 0.200961 -0.749999 -v -0.150000 0.439339 -1.060659 -v -0.150000 0.749999 -1.299038 -v -0.150000 1.111770 -1.448888 -v -0.150000 1.500000 -1.300000 -v -0.150000 1.836465 -1.255704 -v -0.150000 2.150000 -1.125833 -v -0.150000 2.419239 -0.919239 -v -0.150000 0.244296 -0.336464 -v -0.150000 0.374166 -0.649999 -v -0.150000 0.580761 -0.919238 -v -0.150000 0.849999 -1.125833 -v -0.150000 1.163534 -1.255703 -v -0.250000 1.500000 -1.300000 -v -0.250000 1.836465 -1.255704 -v -0.250000 2.150000 -1.125833 -v -0.250000 2.419239 -0.919239 -v -0.250000 0.244296 -0.336464 -v -0.250000 0.374166 -0.649999 -v -0.250000 0.580761 -0.919238 -v -0.250000 0.849999 -1.125833 -v -0.250000 1.163534 -1.255703 -v 0.500000 0.250000 0.812500 -v 0.500000 0.250000 0.437500 -v -0.500000 0.250000 0.812500 -v -0.500000 0.250000 0.437500 -v 0.500000 0.650000 0.625000 -v -0.500000 0.650000 0.625000 -vt 0.934617 0.376312 -vt 0.855934 0.393798 -vt 0.838448 0.315114 -vt 0.691617 0.711333 -vt 0.611014 0.671031 -vt 0.772220 0.711333 -vt 0.305324 0.501217 -vt 0.466530 0.501217 -vt 0.466530 0.531443 -vt 0.565404 0.581820 -vt 0.525102 0.581820 -vt 0.525102 0.501217 -vt 0.426229 0.210643 -vt 0.265022 0.250945 -vt 0.265022 0.009135 -vt 0.305324 0.911922 -vt 0.305324 0.932073 -vt 0.265022 0.932073 -vt 0.466530 0.911922 -vt 0.466530 0.932073 -vt 0.627737 0.911922 -vt 0.627737 0.932073 -vt 0.788943 0.911922 -vt 0.788943 0.932073 -vt 0.829244 0.911922 -vt 0.829244 0.932073 -vt 0.587435 0.049437 -vt 0.587435 0.210643 -vt 0.466530 0.732951 -vt 0.305324 0.732951 -vt 0.305324 0.571745 -vt 0.246664 0.300452 -vt 0.207569 0.300496 -vt 0.207445 0.189919 -vt 0.525102 0.776413 -vt 0.525102 0.695810 -vt 0.565404 0.695810 -vt 0.772220 0.872540 -vt 0.691617 0.791936 -vt 0.535749 0.368957 -vt 0.421759 0.482947 -vt 0.421759 0.368957 -vt 0.246752 0.378642 -vt 0.207657 0.378686 -vt 0.364763 0.425952 -vt 0.279271 0.397454 -vt 0.364763 0.311961 -vt 0.207264 0.028727 -vt 0.246359 0.028683 -vt 0.265022 0.383205 -vt 0.956474 0.288886 -vt 0.952103 0.454996 -vt 0.246337 0.009135 -vt 0.009135 0.009135 -vt 0.204732 0.501489 -vt 0.164431 0.501489 -vt 0.164431 0.420886 -vt 0.050884 0.319118 -vt 0.009135 0.319118 -vt 0.009135 0.201036 -vt 0.164431 0.696082 -vt 0.164431 0.615479 -vt 0.204732 0.615479 -vt 0.794735 0.489967 -vt 0.807213 0.170341 -vt 0.646007 0.170342 -vt 0.726610 0.089738 -vt 0.050884 0.402616 -vt 0.009135 0.402616 -vt 0.646007 0.089738 -vt 0.605705 0.009135 -vt 0.009135 0.830061 -vt 0.170342 0.830061 -vt 0.170342 0.860287 -vt 0.009135 0.028902 -vt 0.050884 0.028902 -vt 0.794735 0.304185 -vt 0.952103 0.269215 -vt 0.305324 0.531443 -vt 0.239123 0.799636 -vt 0.239123 0.862761 -vt 0.223003 0.862761 -vt 0.239123 0.736511 -vt 0.223003 0.799636 -vt 0.239123 0.673386 -vt 0.223003 0.736511 -vt 0.223003 0.673386 -vt 0.223003 0.610261 -vt 0.239123 0.547136 -vt 0.239123 0.610260 -vt 0.239123 0.484011 -vt 0.223003 0.547136 -vt 0.223003 0.484011 -vt 0.223003 0.420886 -vt 0.990865 0.323923 -vt 0.974744 0.323923 -vt 0.974744 0.269215 -vt 0.990865 0.378632 -vt 0.974744 0.378632 -vt 0.990865 0.433340 -vt 0.974744 0.433340 -vt 0.990865 0.488048 -vt 0.974744 0.488048 -vt 0.990865 0.542757 -vt 0.974744 0.542757 -vt 0.990865 0.597465 -vt 0.974744 0.597465 -vt 0.990865 0.652173 -vt 0.974744 0.652173 -vt 0.990865 0.706882 -vt 0.974744 0.706882 -vt 0.164431 0.714352 -vt 0.180551 0.714352 -vt 0.180551 0.746594 -vt 0.079960 0.773363 -vt 0.102758 0.750564 -vt 0.146161 0.783869 -vt 0.069453 0.707161 -vt 0.048517 0.656617 -vt 0.041531 0.723282 -vt 0.009135 0.602377 -vt 0.041376 0.602377 -vt 0.017375 0.539792 -vt 0.048517 0.548137 -vt 0.069453 0.497593 -vt 0.102757 0.454190 -vt 0.041531 0.481472 -vt 0.079959 0.431392 -vt 0.146160 0.420886 -vt 0.731644 0.606959 -vt 0.688206 0.652761 -vt 0.667908 0.627712 -vt 0.705555 0.588016 -vt 0.731644 0.539929 -vt 0.761748 0.551474 -vt 0.744399 0.486729 -vt 0.774793 0.426986 -vt 0.776465 0.490089 -vt 0.756846 0.366466 -vt 0.742950 0.432039 -vt 0.727396 0.379589 -vt 0.698796 0.332951 -vt 0.723846 0.312653 -vt 0.659101 0.295305 -vt 0.611014 0.269215 -vt 0.678044 0.269215 -vt 0.265022 0.822437 -vt 0.426229 0.822437 -vt 0.426229 0.893652 -vt 0.696384 0.009135 -vt 0.611014 0.761710 -vt 0.611014 0.701258 -vt 0.426229 0.751221 -vt 0.565404 0.501217 -vt 0.426229 0.009135 -vt 0.426229 0.049437 -vt 0.426229 0.250945 -vt 0.265022 0.911922 -vt 0.466530 0.571745 -vt 0.246540 0.189875 -vt 0.565404 0.776413 -vt 0.852824 0.791936 -vt 0.852824 0.872540 -vt 0.592744 0.425952 -vt 0.535749 0.482947 -vt 0.379012 0.269215 -vt 0.393261 0.283464 -vt 0.204732 0.420886 -vt 0.050884 0.201036 -vt 0.204732 0.696082 -vt 0.890904 0.551165 -vt 0.812220 0.568650 -vt 0.807213 0.250945 -vt 0.726610 0.250945 -vt 0.009135 0.860287 -vt 0.799106 0.323856 -vt 0.506832 0.571745 -vt 0.265022 0.571745 -vt 0.265022 0.531443 -vt 0.506832 0.531443 -vt 0.239123 0.420886 -vt 0.990865 0.269215 -vt 0.164431 0.746594 -vt 0.130040 0.811791 -vt 0.017375 0.664962 -vt 0.265022 0.893652 -vt 0.635931 0.009135 -vt 0.726610 0.009135 -vt 0.611014 0.791936 -vt 0.265022 0.751221 -vn -1.000000 0.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.707100 0.707100 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 0.242500 0.970100 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.608800 -0.793400 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.130500 -0.991400 -vn 0.000000 -0.130500 -0.991400 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.608800 -0.793400 -vn 0.000000 -0.793400 -0.608800 -vn 0.000000 0.923900 0.382700 -vn 0.000000 0.793400 0.608800 -vn 0.000000 0.608800 0.793400 -vn 0.000000 0.382700 0.923900 -vn 0.000000 0.130500 0.991400 -vn 0.000000 -0.130500 0.991400 -vn 0.000000 -0.382700 0.923900 -vn 0.000000 -0.608800 0.793400 -vn 0.000000 0.424400 -0.905500 -vn 0.000000 0.424400 0.905500 -s off -f 39/1/1 41/2/1 45/3/1 -f 23/4/1 6/5/1 24/6/1 -f 85/7/2 83/8/2 29/9/2 -f 25/10/3 28/11/3 31/12/3 -f 13/13/4 5/14/4 1/15/4 -f 10/16/3 9/17/3 3/18/3 -f 12/19/1 11/20/1 9/17/1 -f 16/21/3 15/22/3 11/20/3 -f 14/23/5 13/24/5 15/22/5 -f 14/23/3 8/25/3 7/26/3 -f 11/27/4 15/28/4 13/13/4 -f 16/29/2 12/30/2 10/31/2 -f 20/32/6 17/33/6 24/34/6 -f 22/35/3 21/36/3 18/37/3 -f 18/38/1 25/39/1 24/6/1 -f 21/40/5 27/41/5 28/42/5 -f 25/10/7 18/37/7 21/36/7 -f 22/43/2 19/44/2 17/33/2 -f 26/45/5 27/41/5 30/46/5 -f 31/47/5 28/42/5 26/45/5 -f 24/34/8 6/48/8 30/49/8 -f 31/47/5 30/46/5 5/50/5 -f 39/1/1 32/51/1 40/52/1 -f 5/53/9 6/48/9 1/54/9 -f 41/55/3 44/56/3 47/57/3 -f 36/58/6 33/59/6 40/60/6 -f 38/61/3 37/62/3 34/63/3 -f 34/64/1 41/2/1 40/52/1 -f 37/65/5 43/66/5 44/67/5 -f 41/55/7 34/63/7 37/62/7 -f 38/68/2 35/69/2 33/59/2 -f 42/70/5 43/66/5 46/71/5 -f 46/72/2 6/73/2 82/74/2 -f 40/60/8 32/75/8 46/76/8 -f 45/3/1 3/77/1 1/78/1 -f 47/79/2 29/9/2 10/31/2 -f 57/80/10 56/81/10 51/82/10 -f 58/83/11 57/80/11 50/84/11 -f 59/85/12 58/83/12 49/86/12 -f 59/85/13 48/87/13 63/88/13 -f 53/89/14 52/90/14 63/88/14 -f 54/91/15 53/89/15 62/92/15 -f 54/91/16 61/93/16 60/94/16 -f 69/95/17 78/96/17 77/97/17 -f 70/98/18 79/99/18 78/96/18 -f 71/100/19 80/101/19 79/99/19 -f 72/102/20 81/103/20 80/101/20 -f 64/104/21 73/105/21 81/103/21 -f 65/106/22 74/107/22 73/105/22 -f 66/108/23 75/109/23 74/107/23 -f 67/110/24 76/111/24 75/109/24 -f 76/112/6 67/113/6 51/114/6 -f 57/115/1 75/116/1 76/117/1 -f 74/118/1 75/116/1 57/115/1 -f 73/119/1 74/118/1 58/120/1 -f 52/121/1 81/122/1 73/119/1 -f 53/123/1 80/124/1 81/122/1 -f 79/125/1 80/124/1 53/123/1 -f 78/126/1 79/125/1 54/127/1 -f 78/126/1 55/128/1 77/129/1 -f 50/130/5 51/131/5 67/132/5 -f 50/130/5 66/133/5 65/134/5 -f 49/135/5 65/134/5 64/136/5 -f 63/137/5 48/138/5 64/136/5 -f 62/139/5 63/137/5 72/140/5 -f 62/139/5 71/141/5 70/142/5 -f 61/143/5 70/142/5 69/144/5 -f 69/144/5 68/145/5 60/146/5 -f 87/147/25 86/148/25 83/149/25 -f 85/150/5 44/67/5 42/70/5 -f 83/151/1 82/152/1 23/4/1 -f 82/153/26 86/148/26 87/147/26 -f 32/51/1 39/1/1 45/3/1 -f 47/79/2 85/7/2 29/9/2 -f 29/154/3 25/10/3 31/12/3 -f 1/15/4 3/155/4 9/156/4 -f 9/156/4 13/13/4 1/15/4 -f 7/157/4 5/14/4 13/13/4 -f 4/158/3 10/16/3 3/18/3 -f 10/16/1 12/19/1 9/17/1 -f 12/19/3 16/21/3 11/20/3 -f 16/21/5 14/23/5 15/22/5 -f 13/24/3 14/23/3 7/26/3 -f 9/156/4 11/27/4 13/13/4 -f 14/159/2 16/29/2 10/31/2 -f 27/160/6 20/32/6 24/34/6 -f 19/161/3 22/35/3 18/37/3 -f 24/6/1 17/162/1 18/38/1 -f 19/163/1 18/38/1 17/162/1 -f 25/39/1 23/4/1 24/6/1 -f 26/45/5 28/42/5 27/41/5 -f 21/40/5 22/164/5 20/165/5 -f 20/165/5 27/41/5 21/40/5 -f 28/11/7 25/10/7 21/36/7 -f 20/32/2 22/43/2 17/33/2 -f 30/46/5 31/47/5 26/45/5 -f 27/160/8 24/34/8 30/49/8 -f 5/50/5 7/166/5 31/47/5 -f 8/167/5 31/47/5 7/166/5 -f 32/75/9 1/54/9 46/76/9 -f 5/53/9 30/49/9 6/48/9 -f 6/48/9 46/76/9 1/54/9 -f 45/168/3 41/55/3 47/57/3 -f 43/169/6 36/58/6 40/60/6 -f 35/170/3 38/61/3 34/63/3 -f 40/52/1 33/171/1 34/64/1 -f 35/172/1 34/64/1 33/171/1 -f 41/2/1 39/1/1 40/52/1 -f 42/70/5 44/67/5 43/66/5 -f 37/65/5 38/173/5 36/174/5 -f 36/174/5 43/66/5 37/65/5 -f 44/56/7 41/55/7 37/62/7 -f 36/58/2 38/68/2 33/59/2 -f 84/175/2 46/72/2 82/74/2 -f 43/169/8 40/60/8 46/76/8 -f 1/78/1 32/51/1 45/3/1 -f 45/3/1 4/176/1 3/77/1 -f 8/177/2 14/159/2 29/9/2 -f 10/31/2 4/178/2 45/179/2 -f 45/179/2 47/79/2 10/31/2 -f 29/9/2 31/180/2 8/177/2 -f 14/159/2 10/31/2 29/9/2 -f 50/84/10 57/80/10 51/82/10 -f 49/86/11 58/83/11 50/84/11 -f 48/87/12 59/85/12 49/86/12 -f 52/90/13 59/85/13 63/88/13 -f 62/92/14 53/89/14 63/88/14 -f 61/93/15 54/91/15 62/92/15 -f 55/181/16 54/91/16 60/94/16 -f 68/182/17 69/95/17 77/97/17 -f 69/95/18 70/98/18 78/96/18 -f 70/98/19 71/100/19 79/99/19 -f 71/100/20 72/102/20 80/101/20 -f 72/102/21 64/104/21 81/103/21 -f 64/104/22 65/106/22 73/105/22 -f 65/106/23 66/108/23 74/107/23 -f 66/108/24 67/110/24 75/109/24 -f 56/183/6 76/112/6 51/114/6 -f 56/184/1 57/115/1 76/117/1 -f 58/120/1 74/118/1 57/115/1 -f 59/185/1 73/119/1 58/120/1 -f 59/185/1 52/121/1 73/119/1 -f 52/121/1 53/123/1 81/122/1 -f 54/127/1 79/125/1 53/123/1 -f 55/128/1 78/126/1 54/127/1 -f 66/133/5 50/130/5 67/132/5 -f 49/135/5 50/130/5 65/134/5 -f 48/138/5 49/135/5 64/136/5 -f 72/140/5 63/137/5 64/136/5 -f 71/141/5 62/139/5 72/140/5 -f 61/143/5 62/139/5 70/142/5 -f 60/146/5 61/143/5 69/144/5 -f 85/186/25 87/147/25 83/149/25 -f 42/70/5 46/71/5 84/187/5 -f 84/187/5 85/150/5 42/70/5 -f 47/188/5 44/67/5 85/150/5 -f 23/4/1 25/39/1 83/151/1 -f 29/189/1 83/151/1 25/39/1 -f 82/152/1 6/5/1 23/4/1 -f 84/190/26 82/153/26 87/147/26 -l 2 32 diff --git a/src/main/resources/assets/hbm/models/turret_tau_gun.obj b/src/main/resources/assets/hbm/models/turret_tau_gun.obj deleted file mode 100644 index 098555a9b..000000000 --- a/src/main/resources/assets/hbm/models/turret_tau_gun.obj +++ /dev/null @@ -1,628 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'turret_tau_gun.blend' -# www.blender.org -o Cube.001_Cube -v 0.200000 0.200000 -0.400000 -v 0.200000 -0.075000 -0.400000 -v 0.200000 0.200000 0.400000 -v 0.200000 -0.200000 0.400000 -v -0.200000 0.200000 -0.400000 -v -0.200000 -0.075000 -0.400000 -v -0.200000 0.200000 0.400000 -v -0.200000 -0.200000 0.400000 -v 0.000000 0.112500 0.400000 -v 0.000000 0.150000 0.900000 -v 0.097428 0.056250 0.400000 -v 0.129904 0.075000 0.900000 -v 0.097428 -0.056250 0.400000 -v 0.129904 -0.075000 0.900000 -v -0.000000 -0.112500 0.400000 -v -0.000000 -0.150000 0.900000 -v -0.097428 -0.056250 0.400000 -v -0.129904 -0.075000 0.900000 -v -0.097428 0.056250 0.400000 -v -0.129904 0.075000 0.900000 -v 0.000000 0.150000 0.650000 -v 0.129904 0.075000 0.650000 -v 0.129904 0.075000 0.900000 -v 0.000000 0.150000 0.900000 -v 0.129904 -0.075000 0.650000 -v 0.129904 -0.075000 0.900000 -v -0.000000 -0.150000 0.650000 -v -0.000000 -0.150000 0.900000 -v -0.129904 -0.075000 0.650000 -v -0.129904 -0.075000 0.900000 -v -0.129904 0.075000 0.650000 -v -0.129904 0.075000 0.900000 -v 0.012990 0.142500 0.675000 -v 0.012990 0.142500 0.875000 -v 0.116913 0.082500 0.875000 -v 0.116913 0.082500 0.675000 -v 0.129904 0.060000 0.675000 -v 0.129904 0.060000 0.875000 -v 0.129904 -0.060000 0.875000 -v 0.129904 -0.060000 0.675000 -v 0.116913 -0.082500 0.675000 -v 0.116913 -0.082500 0.875000 -v 0.012990 -0.142500 0.875000 -v 0.012990 -0.142500 0.675000 -v -0.012990 -0.142500 0.675000 -v -0.012990 -0.142500 0.875000 -v -0.116913 -0.082500 0.875000 -v -0.116913 -0.082500 0.675000 -v -0.116913 0.082500 0.675000 -v -0.116913 0.082500 0.875000 -v -0.012990 0.142500 0.875000 -v -0.012990 0.142500 0.675000 -v -0.129904 -0.060000 0.675000 -v -0.129904 -0.060000 0.875000 -v -0.129904 0.060000 0.875000 -v -0.129904 0.060000 0.675000 -v 0.000490 0.120849 0.675000 -v 0.000490 0.120849 0.875000 -v 0.104413 0.060849 0.875000 -v 0.104413 0.060849 0.675000 -v 0.104904 0.060000 0.675000 -v 0.104904 0.060000 0.875000 -v 0.104904 -0.060000 0.875000 -v 0.104904 -0.060000 0.675000 -v 0.104413 -0.060849 0.675000 -v 0.104413 -0.060849 0.875000 -v 0.000490 -0.120849 0.875000 -v 0.000490 -0.120849 0.675000 -v -0.000490 -0.120849 0.675000 -v -0.000490 -0.120849 0.875000 -v -0.104413 -0.060849 0.875000 -v -0.104413 -0.060849 0.675000 -v -0.104413 0.060849 0.675000 -v -0.104413 0.060849 0.875000 -v -0.000490 0.120849 0.875000 -v -0.000490 0.120849 0.675000 -v -0.104904 -0.060000 0.675000 -v -0.104904 -0.060000 0.875000 -v -0.104904 0.060000 0.875000 -v -0.104904 0.060000 0.675000 -v 0.000000 0.025000 0.900000 -v 0.000000 0.025000 1.400000 -v 0.021651 0.012500 0.900000 -v 0.021651 0.012500 1.400000 -v 0.021651 -0.012500 0.900000 -v 0.021651 -0.012500 1.400000 -v -0.000000 -0.025000 0.900000 -v -0.000000 -0.025000 1.400000 -v -0.021651 -0.012500 0.900000 -v -0.021651 -0.012500 1.400000 -v -0.021651 0.012500 0.900000 -v -0.021651 0.012500 1.400000 -v -0.050000 -0.086603 1.300000 -v -0.100000 0.000000 1.050000 -v -0.070711 -0.000000 0.979289 -v 0.000000 -0.000000 0.950000 -v 0.050000 -0.086603 1.300000 -v -0.050000 0.086603 1.050000 -v -0.035355 0.061237 0.979289 -v 0.100000 0.000000 1.300000 -v 0.050000 0.086603 1.050000 -v 0.035355 0.061237 0.979289 -v 0.050000 0.086603 1.300000 -v 0.100000 0.000000 1.050000 -v 0.070711 -0.000000 0.979289 -v -0.050000 0.086603 1.300000 -v 0.050000 -0.086603 1.050000 -v 0.035355 -0.061237 0.979289 -v -0.100000 0.000000 1.300000 -v -0.050000 -0.086603 1.050000 -v -0.035355 -0.061237 0.979289 -v -0.125000 0.250000 0.050000 -v -0.125000 -0.050000 0.050000 -v -0.375000 -0.000000 -0.100000 -v 0.375000 0.000000 -0.100000 -v -0.375000 -0.070711 -0.070711 -v 0.375000 -0.070711 -0.070711 -v -0.375000 -0.100000 0.000000 -v 0.375000 -0.100000 0.000000 -v -0.375000 -0.070711 0.070711 -v 0.375000 -0.070711 0.070711 -v -0.375000 -0.000000 0.100000 -v 0.375000 0.000000 0.100000 -v -0.375000 0.070711 0.070711 -v 0.375000 0.070711 0.070711 -v -0.375000 0.100000 -0.000000 -v 0.375000 0.100000 -0.000000 -v -0.375000 0.070711 -0.070711 -v 0.375000 0.070711 -0.070711 -v -0.125000 -0.050000 -0.450000 -v -0.125000 0.250000 -0.450000 -v 0.125000 -0.050000 0.050000 -v 0.125000 0.250000 0.050000 -v 0.125000 -0.050000 -0.450000 -v 0.125000 0.250000 -0.450000 -vt 0.671849 0.152564 -vt 0.671849 0.281602 -vt 0.413772 0.281603 -vt 0.023526 0.281603 -vt 0.023526 0.152564 -vt 0.284734 0.152564 -vt 0.284734 0.281603 -vt 0.413772 0.152564 -vt 0.413772 0.023526 -vt 0.671849 0.063850 -vt 0.760563 0.152564 -vt 0.760563 0.281602 -vt 0.671849 0.370316 -vt 0.828328 0.500121 -vt 0.746833 0.506182 -vt 0.746833 0.457692 -vt 0.828329 0.597100 -vt 0.746834 0.603161 -vt 0.746833 0.554672 -vt 0.625537 0.677453 -vt 0.587672 0.704803 -vt 0.586731 0.704392 -vt 0.828329 0.742568 -vt 0.746834 0.748630 -vt 0.746834 0.700140 -vt 0.665077 0.748220 -vt 0.627212 0.775570 -vt 0.828329 0.694079 -vt 0.746834 0.651651 -vt 0.828329 0.645589 -vt 0.665139 0.700704 -vt 0.625415 0.676385 -vt 0.828328 0.512243 -vt 0.828328 0.548610 -vt 0.666018 0.700141 -vt 0.587610 0.752319 -vt 0.586731 0.752882 -vt 0.666018 0.748630 -vt 0.627334 0.776637 -vt 0.674099 0.598312 -vt 0.738752 0.598312 -vt 0.674099 0.559521 -vt 0.666017 0.603161 -vt 0.738752 0.559521 -vt 0.674099 0.549823 -vt 0.738752 0.549823 -vt 0.666017 0.506182 -vt 0.674099 0.511031 -vt 0.738752 0.511031 -vt 0.674099 0.501333 -vt 0.738752 0.501333 -vt 0.674099 0.462541 -vt 0.738752 0.462541 -vt 0.674100 0.743781 -vt 0.738753 0.743781 -vt 0.674099 0.704990 -vt 0.738752 0.704989 -vt 0.674099 0.646802 -vt 0.738752 0.646802 -vt 0.674099 0.608010 -vt 0.738752 0.608010 -vt 0.674099 0.695292 -vt 0.738752 0.695291 -vt 0.674099 0.656500 -vt 0.738752 0.656500 -vt 0.594796 0.870465 -vt 0.594796 0.831754 -vt 0.659315 0.831754 -vt 0.659315 0.870465 -vt 0.659315 0.878530 -vt 0.586731 0.831754 -vt 0.594796 0.823689 -vt 0.667380 0.831754 -vt 0.815679 0.278652 -vt 0.815679 0.239940 -vt 0.880199 0.239940 -vt 0.880199 0.278652 -vt 0.880199 0.286717 -vt 0.807615 0.278652 -vt 0.815679 0.231875 -vt 0.888264 0.278652 -vt 0.722496 0.870465 -vt 0.722496 0.831754 -vt 0.787015 0.831754 -vt 0.787015 0.870465 -vt 0.787015 0.878530 -vt 0.714431 0.870465 -vt 0.722496 0.823689 -vt 0.795080 0.831754 -vt 0.850197 0.870465 -vt 0.850197 0.831754 -vt 0.914716 0.831754 -vt 0.914716 0.870465 -vt 0.914716 0.878530 -vt 0.842132 0.870465 -vt 0.850197 0.823689 -vt 0.922781 0.870465 -vt 0.815679 0.380544 -vt 0.815679 0.341833 -vt 0.880199 0.341833 -vt 0.880199 0.380544 -vt 0.880199 0.388609 -vt 0.807615 0.380544 -vt 0.815679 0.333768 -vt 0.888264 0.380544 -vt 0.922157 0.530276 -vt 0.883446 0.530276 -vt 0.883446 0.465757 -vt 0.922157 0.465757 -vt 0.930222 0.465757 -vt 0.922157 0.538341 -vt 0.875381 0.530276 -vt 0.883446 0.457692 -vt 0.326493 0.807178 -vt 0.326493 0.799113 -vt 0.487791 0.799112 -vt 0.326493 0.791048 -vt 0.487791 0.791048 -vt 0.326493 0.782983 -vt 0.487791 0.782983 -vt 0.326493 0.831372 -vt 0.326493 0.823308 -vt 0.487791 0.823307 -vt 0.312524 0.791048 -vt 0.326493 0.815243 -vt 0.487791 0.807177 -vt 0.487791 0.815242 -vt 0.888263 0.088045 -vt 0.888263 0.055785 -vt 0.912498 0.060510 -vt 0.888263 0.023526 -vt 0.912498 0.028250 -vt 0.875381 0.585393 -vt 0.907640 0.585393 -vt 0.902916 0.609627 -vt 0.888264 0.184824 -vt 0.888264 0.152564 -vt 0.912498 0.157288 -vt 0.888263 0.120305 -vt 0.912498 0.125029 -vt 0.934396 0.071915 -vt 0.912498 0.083321 -vt 0.934396 0.039656 -vt 0.912498 0.051061 -vt 0.807615 0.088045 -vt 0.807615 0.055785 -vt 0.807615 0.023526 -vt 0.891510 0.631525 -vt 0.880105 0.609627 -vt 0.807615 0.120305 -vt 0.934396 0.168694 -vt 0.912498 0.180099 -vt 0.807615 0.184824 -vt 0.807615 0.152564 -vt 0.934396 0.136434 -vt 0.912498 0.147840 -vt 0.912498 0.115580 -vt 0.934396 0.104175 -vt 0.912498 0.092769 -vt 0.265472 0.927093 -vt 0.265472 0.951784 -vt 0.023526 0.951784 -vt 0.265473 0.976474 -vt 0.023526 0.976474 -vt 0.281602 0.635120 -vt 0.281602 0.554471 -vt 0.442900 0.554471 -vt 0.265472 0.778951 -vt 0.265472 0.803641 -vt 0.023526 0.803641 -vt 0.184824 0.554471 -vt 0.184824 0.635120 -vt 0.023526 0.635120 -vt 0.265472 0.828332 -vt 0.023526 0.828331 -vt 0.539679 0.554471 -vt 0.539679 0.635120 -vt 0.265472 0.853022 -vt 0.023526 0.853022 -vt 0.442900 0.635120 -vt 0.442900 0.731899 -vt 0.281602 0.731899 -vt 0.265472 0.877712 -vt 0.023526 0.877712 -vt 0.265472 0.902403 -vt 0.023526 0.927093 -vt 0.023526 0.902403 -vt 0.281602 0.457692 -vt 0.442900 0.457692 -vt 0.413772 0.410641 -vt 0.828328 0.463754 -vt 0.828328 0.560733 -vt 0.828329 0.706201 -vt 0.828329 0.657711 -vt 0.828329 0.609222 -vt 0.666017 0.554672 -vt 0.666017 0.457692 -vt 0.666018 0.651651 -vt 0.594796 0.878530 -vt 0.586731 0.870465 -vt 0.659315 0.823689 -vt 0.667380 0.870465 -vt 0.815679 0.286717 -vt 0.807615 0.239940 -vt 0.880199 0.231875 -vt 0.888264 0.239940 -vt 0.722496 0.878530 -vt 0.714431 0.831754 -vt 0.787015 0.823689 -vt 0.795080 0.870465 -vt 0.850197 0.878530 -vt 0.842132 0.831754 -vt 0.914716 0.823689 -vt 0.922781 0.831754 -vt 0.815679 0.388609 -vt 0.807615 0.341833 -vt 0.880199 0.333768 -vt 0.888263 0.341833 -vt 0.930222 0.530276 -vt 0.883446 0.538341 -vt 0.875381 0.465757 -vt 0.922157 0.457692 -vt 0.487791 0.831372 -vt 0.319508 0.795080 -vt 0.312524 0.782983 -vt 0.319508 0.778950 -vt 0.023526 0.778950 -vt 0.023526 0.554471 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.988000 -0.154400 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.495800 -0.858800 -0.128800 -vn 0.495800 0.858800 -0.128800 -vn -0.495800 -0.858800 -0.128800 -vn -0.991700 0.000000 -0.128800 -vn -0.495800 0.858800 -0.128800 -vn 0.991700 -0.000000 -0.128800 -vn 0.500000 0.866000 0.000000 -vn 0.500000 -0.866000 0.000000 -vn -0.500000 -0.866000 0.000000 -vn -0.500000 0.866000 0.000000 -vn 0.866000 -0.500000 0.000000 -vn -0.866000 0.500000 0.000000 -vn -0.000000 -1.000000 0.000000 -vn -0.866000 -0.500000 0.000000 -vn 0.866000 0.500000 0.000000 -vn -0.815200 0.470600 -0.337700 -vn 0.000000 0.941300 -0.337700 -vn 0.815200 0.470600 -0.337700 -vn 0.815200 -0.470600 -0.337700 -vn 0.000000 -0.941300 -0.337700 -vn -0.373700 0.215700 -0.902100 -vn 0.000000 0.431500 -0.902100 -vn 0.373700 0.215700 -0.902100 -vn 0.373700 -0.215700 -0.902100 -vn 0.000000 -0.431500 -0.902100 -vn -0.815200 -0.470600 -0.337700 -vn -0.373700 -0.215700 -0.902100 -vn 0.000000 -0.382700 -0.923900 -vn 0.000000 -0.923900 -0.382700 -vn 0.000000 -0.923900 0.382700 -vn 0.000000 -0.382700 0.923900 -vn -0.000000 0.382700 0.923900 -vn -0.000000 0.923900 0.382700 -vn -0.000000 0.382700 -0.923900 -vn -0.000000 0.923900 -0.382700 -s off -f 1/1/1 5/2/1 7/3/1 -f 6/4/2 2/5/2 4/6/2 -f 7/3/3 8/7/3 4/6/3 -f 3/8/4 4/9/4 2/10/4 -f 1/1/5 2/11/5 6/12/5 -f 7/3/6 5/2/6 6/13/6 -f 13/14/7 25/15/7 27/16/7 -f 9/17/8 21/18/8 22/19/8 -f 20/20/3 10/21/3 24/22/3 -f 15/23/9 27/24/9 29/25/9 -f 10/21/3 16/26/3 14/27/3 -f 17/28/10 29/25/10 31/29/10 -f 19/30/11 31/29/11 21/18/11 -f 18/31/3 20/20/3 32/32/3 -f 13/33/12 11/34/12 22/19/12 -f 16/26/3 18/31/3 30/35/3 -f 10/21/3 12/36/3 23/37/3 -f 14/27/3 16/26/3 28/38/3 -f 12/36/3 14/27/3 26/39/3 -f 34/40/13 33/41/13 21/18/13 -f 35/42/13 34/40/13 24/43/13 -f 22/19/13 36/44/13 35/42/13 -f 33/41/13 36/44/13 22/19/13 -f 38/45/4 37/46/4 22/19/4 -f 26/47/4 39/48/4 38/45/4 -f 25/15/4 40/49/4 39/48/4 -f 37/46/4 40/49/4 25/15/4 -f 42/50/14 41/51/14 25/15/14 -f 43/52/14 42/50/14 26/47/14 -f 27/16/14 44/53/14 43/52/14 -f 41/51/14 44/53/14 27/16/14 -f 46/54/15 45/55/15 27/24/15 -f 47/56/15 46/54/15 28/38/15 -f 29/25/15 48/57/15 47/56/15 -f 45/55/15 48/57/15 29/25/15 -f 50/58/16 49/59/16 31/29/16 -f 24/43/16 51/60/16 50/58/16 -f 21/18/16 52/61/16 51/60/16 -f 49/59/16 52/61/16 21/18/16 -f 54/62/6 53/63/6 29/25/6 -f 55/64/6 54/62/6 30/35/6 -f 31/29/6 56/65/6 55/64/6 -f 53/63/6 56/65/6 31/29/6 -f 58/66/13 59/67/13 60/68/13 -f 58/66/17 57/69/17 33/70/17 -f 35/71/5 59/67/5 58/66/5 -f 60/68/18 59/67/18 35/72/18 -f 57/69/3 60/68/3 36/73/3 -f 62/74/4 63/75/4 64/76/4 -f 62/74/19 61/77/19 37/78/19 -f 63/75/5 62/74/5 38/79/5 -f 64/76/1 63/75/1 39/80/1 -f 37/81/3 61/77/3 64/76/3 -f 66/82/14 67/83/14 68/84/14 -f 66/82/20 65/85/20 41/86/20 -f 67/83/5 66/82/5 42/87/5 -f 68/84/21 67/83/21 43/88/21 -f 65/85/3 68/84/3 44/89/3 -f 70/90/15 71/91/15 72/92/15 -f 70/90/18 69/93/18 45/94/18 -f 71/91/5 70/90/5 46/95/5 -f 72/92/17 71/91/17 47/96/17 -f 45/97/3 69/93/3 72/92/3 -f 74/98/16 75/99/16 76/100/16 -f 74/98/21 73/101/21 49/102/21 -f 75/99/5 74/98/5 50/103/5 -f 76/100/20 75/99/20 51/104/20 -f 49/105/3 73/101/3 76/100/3 -f 78/106/6 79/107/6 80/108/6 -f 78/106/1 77/109/1 53/110/1 -f 79/107/5 78/106/5 54/111/5 -f 80/108/19 79/107/19 55/112/19 -f 77/109/3 80/108/3 56/113/3 -f 82/114/13 84/115/13 83/116/13 -f 84/115/4 86/117/4 85/118/4 -f 86/117/14 88/119/14 87/120/14 -f 88/121/15 90/122/15 89/123/15 -f 82/124/3 88/119/3 86/117/3 -f 92/125/16 82/114/16 81/126/16 -f 90/122/6 92/125/6 91/127/6 -f 94/128/22 98/129/22 99/130/22 -f 98/129/23 101/131/23 102/132/23 -f 101/133/24 104/134/24 105/135/24 -f 104/136/25 107/137/25 108/138/25 -f 107/137/26 110/139/26 111/140/26 -f 96/141/27 95/142/27 99/130/27 -f 96/143/28 99/144/28 102/132/28 -f 94/128/18 109/145/18 106/146/18 -f 106/146/1 103/147/1 101/131/1 -f 96/148/29 102/149/29 105/135/29 -f 94/128/20 110/139/20 93/150/20 -f 96/151/30 105/152/30 108/138/30 -f 104/136/17 100/153/17 97/154/17 -f 96/155/31 108/156/31 111/140/31 -f 111/157/32 110/139/32 94/128/32 -f 110/139/19 107/137/19 97/154/19 -f 96/158/33 111/157/33 95/159/33 -f 115/160/34 117/161/34 116/162/34 -f 117/161/35 119/163/35 118/164/35 -f 135/165/1 131/166/1 112/167/1 -f 119/168/36 121/169/36 120/170/36 -f 130/171/19 134/172/19 132/173/19 -f 121/169/37 123/174/37 122/175/37 -f 112/167/3 113/176/3 132/177/3 -f 123/174/38 125/178/38 124/179/38 -f 133/180/4 132/181/4 134/182/4 -f 125/178/39 127/183/39 126/184/39 -f 135/165/5 134/172/5 130/171/5 -f 129/185/40 115/160/40 114/186/40 -f 127/183/41 129/185/41 128/187/41 -f 131/166/6 130/188/6 113/189/6 -f 3/8/1 1/1/1 7/3/1 -f 8/7/2 6/4/2 4/6/2 -f 3/8/3 7/3/3 4/6/3 -f 1/1/4 3/8/4 2/10/4 -f 5/2/5 1/1/5 6/12/5 -f 8/190/6 7/3/6 6/13/6 -f 15/191/7 13/14/7 27/16/7 -f 11/192/8 9/17/8 22/19/8 -f 32/32/3 20/20/3 24/22/3 -f 17/193/9 15/23/9 29/25/9 -f 14/27/3 12/36/3 10/21/3 -f 10/21/3 20/20/3 18/31/3 -f 18/31/3 16/26/3 10/21/3 -f 19/194/10 17/28/10 31/29/10 -f 9/195/11 19/30/11 21/18/11 -f 30/35/3 18/31/3 32/32/3 -f 25/15/12 13/33/12 22/19/12 -f 28/38/3 16/26/3 30/35/3 -f 24/22/3 10/21/3 23/37/3 -f 26/39/3 14/27/3 28/38/3 -f 23/37/3 12/36/3 26/39/3 -f 24/43/13 34/40/13 21/18/13 -f 23/196/13 35/42/13 24/43/13 -f 23/196/13 22/19/13 35/42/13 -f 21/18/13 33/41/13 22/19/13 -f 23/196/4 38/45/4 22/19/4 -f 23/196/4 26/47/4 38/45/4 -f 26/47/4 25/15/4 39/48/4 -f 22/19/4 37/46/4 25/15/4 -f 26/47/14 42/50/14 25/15/14 -f 28/197/14 43/52/14 26/47/14 -f 28/197/14 27/16/14 43/52/14 -f 25/15/14 41/51/14 27/16/14 -f 28/38/15 46/54/15 27/24/15 -f 30/35/15 47/56/15 28/38/15 -f 30/35/15 29/25/15 47/56/15 -f 27/24/15 45/55/15 29/25/15 -f 32/198/16 50/58/16 31/29/16 -f 32/198/16 24/43/16 50/58/16 -f 24/43/16 21/18/16 51/60/16 -f 31/29/16 49/59/16 21/18/16 -f 30/35/6 54/62/6 29/25/6 -f 32/198/6 55/64/6 30/35/6 -f 32/198/6 31/29/6 55/64/6 -f 29/25/6 53/63/6 31/29/6 -f 57/69/13 58/66/13 60/68/13 -f 34/199/17 58/66/17 33/70/17 -f 34/200/5 35/71/5 58/66/5 -f 36/201/18 60/68/18 35/72/18 -f 33/202/3 57/69/3 36/73/3 -f 61/77/4 62/74/4 64/76/4 -f 38/203/19 62/74/19 37/78/19 -f 39/204/5 63/75/5 38/79/5 -f 40/205/1 64/76/1 39/80/1 -f 40/206/3 37/81/3 64/76/3 -f 65/85/14 66/82/14 68/84/14 -f 42/207/20 66/82/20 41/86/20 -f 43/208/5 67/83/5 42/87/5 -f 44/209/21 68/84/21 43/88/21 -f 41/210/3 65/85/3 44/89/3 -f 69/93/15 70/90/15 72/92/15 -f 46/211/18 70/90/18 45/94/18 -f 47/212/5 71/91/5 46/95/5 -f 48/213/17 72/92/17 47/96/17 -f 48/214/3 45/97/3 72/92/3 -f 73/101/16 74/98/16 76/100/16 -f 50/215/21 74/98/21 49/102/21 -f 51/216/5 75/99/5 50/103/5 -f 52/217/20 76/100/20 51/104/20 -f 52/218/3 49/105/3 76/100/3 -f 77/109/6 78/106/6 80/108/6 -f 54/219/1 78/106/1 53/110/1 -f 55/220/5 79/107/5 54/111/5 -f 56/221/19 80/108/19 55/112/19 -f 53/222/3 77/109/3 56/113/3 -f 81/126/13 82/114/13 83/116/13 -f 83/116/4 84/115/4 85/118/4 -f 85/118/14 86/117/14 87/120/14 -f 87/223/15 88/121/15 89/123/15 -f 86/117/3 84/224/3 82/124/3 -f 82/124/3 92/225/3 90/226/3 -f 90/226/3 88/119/3 82/124/3 -f 91/127/16 92/125/16 81/126/16 -f 89/123/6 90/122/6 91/127/6 -f 95/142/22 94/128/22 99/130/22 -f 99/144/23 98/129/23 102/132/23 -f 102/149/24 101/133/24 105/135/24 -f 105/152/25 104/136/25 108/138/25 -f 108/156/26 107/137/26 111/140/26 -f 98/129/18 94/128/18 106/146/18 -f 98/129/1 106/146/1 101/131/1 -f 109/145/20 94/128/20 93/150/20 -f 107/137/17 104/136/17 97/154/17 -f 95/159/32 111/157/32 94/128/32 -f 93/150/19 110/139/19 97/154/19 -f 114/186/34 115/160/34 116/162/34 -f 116/162/35 117/161/35 118/164/35 -f 133/180/1 135/165/1 112/167/1 -f 118/227/36 119/168/36 120/170/36 -f 113/228/19 130/171/19 132/173/19 -f 120/170/37 121/169/37 122/175/37 -f 133/180/3 112/167/3 132/177/3 -f 122/175/38 123/174/38 124/179/38 -f 135/165/4 133/180/4 134/182/4 -f 124/179/39 125/178/39 126/184/39 -f 131/166/5 135/165/5 130/171/5 -f 128/187/40 129/185/40 114/186/40 -f 126/184/41 127/183/41 128/187/41 -f 112/167/6 131/166/6 113/189/6 diff --git a/src/main/resources/assets/hbm/sounds/music/jungleDrums.ogg b/src/main/resources/assets/hbm/sounds/music/jungleDrums.ogg deleted file mode 100644 index 527670bf2..000000000 Binary files a/src/main/resources/assets/hbm/sounds/music/jungleDrums.ogg and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_arm.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_arm.png deleted file mode 100644 index bfaffafe9..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_arm.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_arm_1.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_arm_1.png deleted file mode 100644 index a8252459b..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_arm_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_chest.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_chest.png deleted file mode 100644 index db7a73fdf..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_chest.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_chest_1.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_chest_1.png deleted file mode 100644 index 3ac98df7f..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_chest_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_helmet.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_helmet.png deleted file mode 100644 index 3a6d6eaad..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_helmet_1.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_helmet_1.png deleted file mode 100644 index 60111df35..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_helmet_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_leg.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_leg.png deleted file mode 100644 index 4e35c9c40..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_leg.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/dnt_leg_1.png b/src/main/resources/assets/hbm/textures/armor/base/dnt_leg_1.png deleted file mode 100644 index 813b33471..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/dnt_leg_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/rpa_arm.png b/src/main/resources/assets/hbm/textures/armor/base/rpa_arm.png deleted file mode 100644 index 191bdc0ab..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/rpa_arm.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/rpa_chest.png b/src/main/resources/assets/hbm/textures/armor/base/rpa_chest.png deleted file mode 100644 index 3511c43a6..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/rpa_chest.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/rpa_helmet.png b/src/main/resources/assets/hbm/textures/armor/base/rpa_helmet.png deleted file mode 100644 index 436c4c652..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/rpa_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/base/rpa_leg.png b/src/main/resources/assets/hbm/textures/armor/base/rpa_leg.png deleted file mode 100644 index d7ddbbcb7..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/base/rpa_leg.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/bHoleSwirl.png b/src/main/resources/assets/hbm/textures/entity/bHoleSwirl.png deleted file mode 100644 index 614940c3f..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/bHoleSwirl.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/bholeBase.png b/src/main/resources/assets/hbm/textures/entity/bholeBase.png deleted file mode 100644 index fa4118bb0..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/bholeBase.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/entity/bholeDiscAlt.png b/src/main/resources/assets/hbm/textures/entity/bholeDiscAlt.png deleted file mode 100644 index eef976334..000000000 Binary files a/src/main/resources/assets/hbm/textures/entity/bholeDiscAlt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/ItemStorage.png b/src/main/resources/assets/hbm/textures/gui/ItemStorage.png deleted file mode 100644 index a35c94459..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/ItemStorage.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/UraniumEnrichment.png b/src/main/resources/assets/hbm/textures/gui/UraniumEnrichment.png deleted file mode 100644 index 8e9e917a8..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/UraniumEnrichment.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids.png b/src/main/resources/assets/hbm/textures/gui/fluids.png deleted file mode 100644 index cbf76299d..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids1.png b/src/main/resources/assets/hbm/textures/gui/fluids1.png deleted file mode 100755 index b0aa1850e..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids2.png b/src/main/resources/assets/hbm/textures/gui/fluids2.png deleted file mode 100755 index dd9d3e67c..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_planner_alt.png b/src/main/resources/assets/hbm/textures/gui/gui_planner_alt.png deleted file mode 100644 index 5fc1db986..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_planner_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_friendly.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_friendly.png index 549f5dffb..0fe96d925 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_friendly.png and b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_friendly.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_sentry.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_sentry.png index dea3f93af..93d9e4cbf 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_sentry.png and b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_sentry.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png new file mode 100644 index 000000000..f010e6675 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_12gauge_percussion.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_45.png b/src/main/resources/assets/hbm/textures/items/ammo_45.png new file mode 100644 index 000000000..cf405752f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_45.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_45_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_45_ap.png new file mode 100644 index 000000000..43cf97448 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_45_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_45_du.png b/src/main/resources/assets/hbm/textures/items/ammo_45_du.png new file mode 100644 index 000000000..f46671ea3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_45_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm.png index c0853664a..a8f597739 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm.png and b/src/main/resources/assets/hbm/textures/items/ammo_5mm.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_alt2.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_alt2.png deleted file mode 100644 index a8f597739..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_alt2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png index 6199867e9..4c6d8c99a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png and b/src/main/resources/assets/hbm/textures/items/ammo_5mm_chlorophyte.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png index 3e5de3d14..e508b69e0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png and b/src/main/resources/assets/hbm/textures/items/ammo_5mm_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png index 9ee89e1e5..065481ff2 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png and b/src/main/resources/assets/hbm/textures/items/ammo_5mm_explosive.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png b/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png index 6b0002f7f..f270f4bb3 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png and b/src/main/resources/assets/hbm/textures/items/ammo_5mm_star.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762.png b/src/main/resources/assets/hbm/textures/items/ammo_762.png new file mode 100644 index 000000000..e1b2e9726 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_762.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_ap.png b/src/main/resources/assets/hbm/textures/items/ammo_762_ap.png new file mode 100644 index 000000000..0b55a7515 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_762_ap.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_du.png b/src/main/resources/assets/hbm/textures/items/ammo_762_du.png new file mode 100644 index 000000000..3443e8b11 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_762_du.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_k.png b/src/main/resources/assets/hbm/textures/items/ammo_762_k.png new file mode 100644 index 000000000..c1206a564 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_762_k.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png b/src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png new file mode 100644 index 000000000..6db355757 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_762_phosphorus.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png b/src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png new file mode 100644 index 000000000..818aa8c8c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_762_tracer.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna.png b/src/main/resources/assets/hbm/textures/items/ammo_luna.png new file mode 100644 index 000000000..7b826c3eb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_luna.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png b/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png new file mode 100644 index 000000000..822eb02b1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_luna_explosive.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png b/src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png new file mode 100644 index 000000000..3d15da550 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_luna_incendiary.png differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_45.png b/src/main/resources/assets/hbm/textures/items/assembly_45.png new file mode 100644 index 000000000..d64ceb33b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/assembly_45.png differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_762.png b/src/main/resources/assets/hbm/textures/items/assembly_762.png new file mode 100644 index 000000000..775fe97c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/assembly_762.png differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png b/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png index 9883cc8c8..7797ca9f1 100644 Binary files a/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png and b/src/main/resources/assets/hbm/textures/items/assembly_lacunae.png differ diff --git a/src/main/resources/assets/hbm/textures/items/assembly_luna.png b/src/main/resources/assets/hbm/textures/items/assembly_luna.png new file mode 100644 index 000000000..d0935642e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/assembly_luna.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ballistic_gauntlet.png b/src/main/resources/assets/hbm/textures/items/ballistic_gauntlet.png new file mode 100644 index 000000000..c6c961f7f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ballistic_gauntlet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_fireext.png b/src/main/resources/assets/hbm/textures/items/gun_fireext.png new file mode 100644 index 000000000..c7dac1a3a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_fireext.png differ diff --git a/src/main/resources/assets/hbm/textures/items/quesadilla.png b/src/main/resources/assets/hbm/textures/items/quesadilla.png new file mode 100644 index 000000000..53413b4d0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/quesadilla.png differ diff --git a/src/main/resources/assets/hbm/textures/items/singularity_micro.png b/src/main/resources/assets/hbm/textures/items/singularity_micro.png new file mode 100644 index 000000000..b1c9e4765 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/singularity_micro.png differ diff --git a/src/main/resources/assets/hbm/textures/items/source.png b/src/main/resources/assets/hbm/textures/items/source.png deleted file mode 100644 index ec7b591f5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/source.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/source.png.mcmeta b/src/main/resources/assets/hbm/textures/items/source.png.mcmeta deleted file mode 100644 index 02b390a2a..000000000 --- a/src/main/resources/assets/hbm/textures/items/source.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - - } -} diff --git a/src/main/resources/assets/hbm/textures/misc/scope_44.png b/src/main/resources/assets/hbm/textures/misc/scope_44.png new file mode 100644 index 000000000..dc53998bb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/misc/scope_44.png differ diff --git a/src/main/resources/assets/hbm/textures/misc/scope_basic.png b/src/main/resources/assets/hbm/textures/misc/scope_basic.png new file mode 100644 index 000000000..4a9fa9eef Binary files /dev/null and b/src/main/resources/assets/hbm/textures/misc/scope_basic.png differ diff --git a/src/main/resources/assets/hbm/textures/models/brimstone.png b/src/main/resources/assets/hbm/textures/models/brimstone.png deleted file mode 100644 index 45fa84d7d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/brimstone.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/balefire.png b/src/main/resources/assets/hbm/textures/models/explosion/balefire.png index e554239c8..0ac005e45 100644 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/balefire.png and b/src/main/resources/assets/hbm/textures/models/explosion/balefire.png differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/dust.png b/src/main/resources/assets/hbm/textures/models/explosion/dust.png deleted file mode 100644 index 99b0a2951..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/dust.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/fireball.png b/src/main/resources/assets/hbm/textures/models/explosion/fireball.png index 8146c06fc..f3be1a1bd 100644 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/fireball.png and b/src/main/resources/assets/hbm/textures/models/explosion/fireball.png differ diff --git a/src/main/resources/assets/hbm/textures/models/explosion/tomblast.png b/src/main/resources/assets/hbm/textures/models/explosion/tomblast.png index 83fa0fc72..f4e0e5819 100644 Binary files a/src/main/resources/assets/hbm/textures/models/explosion/tomblast.png and b/src/main/resources/assets/hbm/textures/models/explosion/tomblast.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/hatch.png b/src/main/resources/assets/hbm/textures/models/machines/hatch.png deleted file mode 100644 index f077b5ead..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/machines/hatch.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png b/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png index 591134e84..ae2ed69e4 100644 Binary files a/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png and b/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_base.png b/src/main/resources/assets/hbm/textures/models/turret_cheapo_base.png deleted file mode 100644 index 3b907d465..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_cheapo_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_gun.png b/src/main/resources/assets/hbm/textures/models/turret_cheapo_gun.png deleted file mode 100644 index b13b40cca..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_cheapo_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_head.png b/src/main/resources/assets/hbm/textures/models/turret_cheapo_head.png deleted file mode 100644 index 06a39f837..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_cheapo_head.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_cheapo_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_cheapo_rotor.png deleted file mode 100644 index a7272d99d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_cheapo_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_flamer_gun.png b/src/main/resources/assets/hbm/textures/models/turret_flamer_gun.png deleted file mode 100755 index ee190b35b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_flamer_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_flamer_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_flamer_rotor.png deleted file mode 100644 index 0e642f1fc..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_flamer_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_heavy_base.png b/src/main/resources/assets/hbm/textures/models/turret_heavy_base.png deleted file mode 100755 index 6e015981f..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_heavy_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_heavy_gun.png b/src/main/resources/assets/hbm/textures/models/turret_heavy_gun.png deleted file mode 100755 index fd3587069..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_heavy_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_heavy_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_heavy_rotor.png deleted file mode 100644 index f220c7ee0..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_heavy_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_light_gun.png b/src/main/resources/assets/hbm/textures/models/turret_light_gun.png deleted file mode 100755 index b1758fb02..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_light_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_light_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_light_rotor.png deleted file mode 100644 index 2ddc070ef..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_light_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_rocket_gun.png b/src/main/resources/assets/hbm/textures/models/turret_rocket_gun.png deleted file mode 100755 index a36e57598..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_rocket_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_rocket_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_rocket_rotor.png deleted file mode 100644 index 1dde1f912..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_rocket_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_rotor.png deleted file mode 100755 index 3345895e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_tau_gun.png b/src/main/resources/assets/hbm/textures/models/turret_tau_gun.png deleted file mode 100755 index 468451f85..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_tau_gun.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turret_tau_rotor.png b/src/main/resources/assets/hbm/textures/models/turret_tau_rotor.png deleted file mode 100644 index 42665f77b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turret_tau_rotor.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/base.png b/src/main/resources/assets/hbm/textures/models/turrets/base/base.png deleted file mode 100644 index 1f10a5a3d..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/brandon.png b/src/main/resources/assets/hbm/textures/models/turrets/base/brandon.png deleted file mode 100644 index d01dbc044..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/brandon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/brandon_drum.png b/src/main/resources/assets/hbm/textures/models/turrets/base/brandon_drum.png deleted file mode 100644 index df132ec20..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/brandon_drum.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/carriage.png b/src/main/resources/assets/hbm/textures/models/turrets/base/carriage.png deleted file mode 100644 index 69597ed4e..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/carriage.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/carriage_ciws.png b/src/main/resources/assets/hbm/textures/models/turrets/base/carriage_ciws.png deleted file mode 100644 index 70042ba00..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/carriage_ciws.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/chekhov.png b/src/main/resources/assets/hbm/textures/models/turrets/base/chekhov.png deleted file mode 100644 index 78e98e532..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/chekhov.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/chekhov_barrels.png b/src/main/resources/assets/hbm/textures/models/turrets/base/chekhov_barrels.png deleted file mode 100644 index 61d27c3c9..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/chekhov_barrels.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/ciws_barrels.png b/src/main/resources/assets/hbm/textures/models/turrets/base/ciws_barrels.png deleted file mode 100644 index fbd02a217..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/ciws_barrels.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/ciws_body.png b/src/main/resources/assets/hbm/textures/models/turrets/base/ciws_body.png deleted file mode 100644 index f5973d66c..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/ciws_body.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/fritz.png b/src/main/resources/assets/hbm/textures/models/turrets/base/fritz.png deleted file mode 100644 index 59399e0b7..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/fritz.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/jeremy.png b/src/main/resources/assets/hbm/textures/models/turrets/base/jeremy.png deleted file mode 100644 index 105cf5875..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/jeremy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/maxwell.png b/src/main/resources/assets/hbm/textures/models/turrets/base/maxwell.png deleted file mode 100644 index 7900e2b73..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/maxwell.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/base/tauon.png b/src/main/resources/assets/hbm/textures/models/turrets/base/tauon.png deleted file mode 100644 index e88089c3b..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/base/tauon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/turrets/howard.png b/src/main/resources/assets/hbm/textures/models/turrets/howard.png index 44f4817df..3e40888c2 100644 Binary files a/src/main/resources/assets/hbm/textures/models/turrets/howard.png and b/src/main/resources/assets/hbm/textures/models/turrets/howard.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/casings.png b/src/main/resources/assets/hbm/textures/particle/casings.png new file mode 100644 index 000000000..764aa5b81 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/particle/casings.png differ diff --git a/src/main/resources/assets/hbm/textures/particle/casings_base.png b/src/main/resources/assets/hbm/textures/particle/casings_base.png new file mode 100644 index 000000000..650a41de0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/particle/casings_base.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info old mode 100755 new mode 100644