diff --git a/changelog b/changelog index e3f002b80..29e0ddd73 100644 --- a/changelog +++ b/changelog @@ -1,27 +1,33 @@ ## Added -* Electrolysis machine - * A large machine that can do the chemical plant's electrolysis recipes, as well as crystal processing - * Crystals are turned into molten metals as well as byproducts, the metal can be cast using foundry blocks - * Processing crystals requires nitric acid and yields more than what the centrifuge would give -* Environment suit - * An airtight suit for diving with high radiation resistance - * Relatively cheap, but protection is comparatively low - * Has sprint assist and accelerated diving +* Analysis tool + * A more universal version of the power net analyzer + * Currently only works on fluid networks though + * In addition to seeing links and subscribers, the analysis tool also displays subscriber positions as well as a log (up to 50 entries) of what block received how much fluid + * This should finally give more insight in the bug that rarely causes fluids to disappear +* Leadburster + * A 40mm launcher grenade that doesn't explode, instead it attaches itself to a block and starts firing bullets + * Fires in circles for 2 seconds before it self-destructs +* Congo lake + * A 40mm pump-action grenade launcher with a capacity of 4 rounds +* Lantern + * Cheap and fancy illumination + * Will blind glyphids in a small radius + * Glyphids don't actually have eyes, just don't think about it too much +* Ashpit + * An optional part that can be placed under fireboxes and heating ovens + * Collects ashes, producing one ash pile for every 10 furnace operations worth of fuel + * Ash comes in different types like wood (from planks, logs and saplings), coal (coal, lignite and coke) and generic (everything else) + * Ashes can be used as dyes, for making industrial fertilizer, as low-efficiency furnace fuel or for carbon in the crucible + * Coal ashes can also be centrifuged, returning the flammable content as unburned coal dust as well as a small amount of boron ## Changed -* Bedrock ores now spawn in the nether - * Nether bedrock ores include red phosphorus, quartz and glowstone, all yielding the items directly instead of ores - * All current nether bedrock ores are tier 1 and do not require any bore fluid -* Custom machines now show their recipes in NEI - * All it took was battling NEI's source code for 3 hours and my sanity -* The chlorocalcite centrifugation process now requires 8,000mB of sulfuric acid instead of 100mB of water -* Mixed chlorocalcite solution now requires flux as a reducing agent -* All chlorine producing electrolysis recipes have been moved to the electrolysis machine and can no longer be done in the chemical plant - * If only there was a much simpler recipe that may have existed at some point, life could be a dream -* Zirconium and lithium are now recognized crucible materials -* Glowstone now yields 100mB of chlorine in the combination oven instead of the initial 50mB +* Updated polish and chinese localization +* Flechettes now get stuck in blocks for a few seconds +* NBT kits now display the amount of items in a stack +* Removed the special nuclear meteorite ## Fixed -* Fixed custom machines not sending fluid -* Fixed custom machine item IO not working beyond the first slot -* Fixed the player's arms clipping through the armor model when punching \ No newline at end of file +* Fixed thermos craching config hitting before the config is saved, resulting in an empty config the first time the server is launched +* Fixed heating oven not visually connecting to exhaust pipes +* Fixed loot blocks not correctly rendering items that require multiple render passes +* Fixed special meteorites spawning in worldgen diff --git a/gradle.properties b/gradle.properties index f40234eee..e8d659222 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4683 +mod_build_number=4690 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0e00c1c8e..fe480dde1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -336,6 +336,9 @@ public class ModBlocks { public static Block lamp_uv_on; public static Block lamp_demon; + public static Block lantern; + public static Block lantern_behemoth; + public static Block reinforced_stone; public static Block concrete_smooth; public static Block concrete_colored; @@ -665,6 +668,7 @@ public class ModBlocks { public static Block heater_oilburner; public static Block heater_electric; public static Block heater_heatex; + public static Block machine_ashpit; public static Block furnace_iron; public static Block furnace_steel; @@ -1546,6 +1550,8 @@ public class ModBlocks { lamp_uv_off = new UVLamp(false).setBlockName("lamp_uv_off").setCreativeTab(MainRegistry.blockTab); lamp_uv_on = new UVLamp(true).setBlockName("lamp_uv_on").setCreativeTab(null); lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); + lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -1555,9 +1561,9 @@ public class ModBlocks { concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken"); - concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); - brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); + concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); + brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); @@ -1811,6 +1817,7 @@ public class ModBlocks { heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_electric = new HeaterElectric().setBlockName("heater_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_heatex = new HeaterHeatex().setBlockName("heater_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_ashpit = new MachineAshpit().setBlockName("machine_ashpit").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("stonebrick"); furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2697,6 +2704,8 @@ public class ModBlocks { GameRegistry.registerBlock(lamp_uv_off, lamp_uv_off.getUnlocalizedName()); GameRegistry.registerBlock(lamp_uv_on, lamp_uv_on.getUnlocalizedName()); GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); + GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); + GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); //Reinforced Blocks GameRegistry.registerBlock(asphalt, ItemBlockBlastInfo.class, asphalt.getUnlocalizedName()); @@ -3059,6 +3068,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); register(heater_firebox); register(heater_oven); + register(machine_ashpit); register(heater_oilburner); register(heater_electric); register(heater_heatex); diff --git a/src/main/java/com/hbm/blocks/generic/BlockLantern.java b/src/main/java/com/hbm/blocks/generic/BlockLantern.java new file mode 100644 index 000000000..7b725afc9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLantern.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.deco.TileEntityLantern; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockLantern extends BlockDummyable { + + public BlockLantern() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLantern(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java new file mode 100644 index 000000000..b90c1ad44 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java @@ -0,0 +1,59 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.tileentity.IRepairable; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; + +import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockLanternBehemoth extends BlockDummyable implements IToolable, ILookOverlay { + + public BlockLanternBehemoth() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLanternBehemoth(); + return null; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.TORCH) return false; + return IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + IRepairable.addGenericOverlay(event, world, x, y, z, this); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOven.java b/src/main/java/com/hbm/blocks/machine/HeaterOven.java index 1aa60151b..a7373310a 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOven.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOven.java @@ -23,7 +23,7 @@ public class HeaterOven extends BlockDummyable implements ITooltipProvider { public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityHeaterOven(); - return new TileEntityProxyCombo(true, false, false); + return new TileEntityProxyCombo().inventory().fluid(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineAshpit.java b/src/main/java/com/hbm/blocks/machine/MachineAshpit.java new file mode 100644 index 000000000..578c7c2ce --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAshpit.java @@ -0,0 +1,47 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineAshpit extends BlockDummyable implements ITooltipProvider { + + public MachineAshpit() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityAshpit(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index abf4cc4d1..948befc56 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -151,33 +151,26 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } - @Override public String getComponentName() { return "ntm_fluid_gauge"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") - public Object[] getTick(Context context, Arguments args) { - return new Object[] {deltaTick}; + public Object[] getTransfer(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") - public Object[] getSecond(Context context, Arguments args) { - return new Object[] {deltaSecond}; + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {getType().getName()}; } - @Callback(direct = true, limit = 16) - @Optional.Method(modid = "OpenComputers") - public Object[] getType(Context context, Arguments args) { - return new Object[] {I18nUtil.resolveKey(getType().getUnlocalizedName())}; - } - - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond, I18nUtil.resolveKey(getType().getUnlocalizedName()), xCoord, yCoord, zCoord}; + return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; } } } diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 22200d0ef..20eb1a2f1 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -63,8 +63,9 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 8), new Object[] { PB.dust(), S.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 12), new Object[] { CA.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 16), new Object[] { BORAX.dust(), KEY_SAND }); - + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { CA.dust(), P_RED.dust(), KNO.dust(), S.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { ANY_ASH.any(), P_RED.dust(), KNO.dust(), S.dust() }); if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { REDSTONE.dust(), IRON.dust(), COAL.dust(), CU.dust() }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 7577f03d9..f418904f6 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -129,6 +129,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 9218f6ee6..f8f149b7f 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -75,6 +75,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', ModItems.hull_small_steel, 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', ModItems.bolt_tungsten }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', ModItems.hull_small_aluminium, 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver, 1), new Object[] { "SSM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'M', ModItems.mechanism_revolver_1 }); @@ -261,6 +262,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.NUCLEAR), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE), 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); + CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER), new Object[] { "LCL", "CHC", "LML", 'L', ModItems.pellet_buckshot, 'C', ANY_SMOKELESS.dust(), 'H', ModItems.hull_small_aluminium, 'M', ModItems.motor }); //240mm Shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 10337b458..599b66f6a 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -19,6 +19,7 @@ import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -68,6 +69,7 @@ public class EntityGlyphid extends EntityMob { @Override protected Entity findPlayerToAttack() { + if(this.isPotionActive(Potion.blindness)) return null; EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; } @@ -75,11 +77,18 @@ public class EntityGlyphid extends EntityMob { @Override protected void updateEntityActionState() { super.updateEntityActionState(); - - // hell yeah!! - if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { - this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); + + if(this.isPotionActive(Potion.blindness)) { + this.entityToAttack = null; + this.setPathToEntity(null); + } else { + + // hell yeah!! + if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); + } } + } public boolean useExtendedTargeting() { diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 65741dbd4..a1a3a0961 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -166,6 +166,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet @Override protected void entityInit() { + super.entityInit(); //style this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); //trail @@ -251,11 +252,11 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(mop.typeOfHit == mop.typeOfHit.BLOCK) { boolean hRic = rand.nextInt(100) < config.HBRC; - boolean doesRic = config.doesRicochet || hRic; + boolean doesRic = config.doesRicochet && hRic; if(!config.isSpectral && !doesRic) { this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - this.onBlockImpact(mop.blockX, mop.blockY, mop.blockZ); + this.onBlockImpact(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } if(doesRic) { @@ -302,7 +303,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet } else { if(!worldObj.isRemote) { this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - onBlockImpact(mop.blockX, mop.blockY, mop.blockZ); + onBlockImpact(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } } @@ -375,13 +376,13 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet } //for when a bullet dies by hitting a block - private void onBlockImpact(int bX, int bY, int bZ) { + private void onBlockImpact(int bX, int bY, int bZ, int sideHit) { if(config.bntImpact != null) - config.bntImpact.behaveBlockHit(this, bX, bY, bZ); + config.bntImpact.behaveBlockHit(this, bX, bY, bZ, sideHit); if(!worldObj.isRemote) { - if(!config.liveAfterImpact && !config.isSpectral && bY > -1) this.setDead(); + if(!config.liveAfterImpact && !config.isSpectral && bY > -1 && !this.inGround) this.setDead(); if(!config.doesPenetrate && bY == -1) this.setDead(); } @@ -472,7 +473,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet //for when a bullet dies by hitting an entity private void onEntityImpact(Entity e) { onEntityHurt(e); - onBlockImpact(-1, -1, -1); + onBlockImpact(-1, -1, -1, -1); if(config.bntHit != null) config.bntHit.behaveEntityHit(this, e); @@ -582,6 +583,6 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet public static interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } public static interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } public static interface IBulletRicochetBehaviorNT { public void behaveBlockRicochet(EntityBulletBaseNT bullet, int x, int y, int z); } - public static interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z); } + public static interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit); } public static interface IBulletUpdateBehaviorNT { public void behaveUpdate(EntityBulletBaseNT bullet); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index fbd99c23c..15cda441f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -2,6 +2,8 @@ package com.hbm.entity.projectile; import java.util.List; +import com.hbm.util.TrackerUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -32,7 +34,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { public int throwableShake; protected EntityLivingBase thrower; private String throwerName; - private int ticksInGround; + public int ticksInGround; private int ticksInAir; public EntityThrowableNT(World world) { @@ -41,7 +43,17 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } @Override - protected void entityInit() { } + protected void entityInit() { + this.dataWatcher.addObject(2, Byte.valueOf((byte)0)); + } + + public void setStuckIn(int side) { + this.dataWatcher.updateObject(2, (byte) side); + } + + public int getStuckIn() { + return this.dataWatcher.getWatchableObjectByte(2); + } @Override @SideOnly(Side.CLIENT) @@ -214,10 +226,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } - this.posX += this.motionX * motionMult(); - this.posY += this.motionY * motionMult(); - this.posZ += this.motionZ * motionMult(); - if(mop != null) { if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ) == Blocks.portal) { this.setInPortal(); @@ -226,30 +234,37 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } - float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; + if(!this.onGround) { + float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { + ; + } + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { + this.prevRotationPitch += 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - - this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float drag = this.getAirDrag(); double gravity = this.getGravityVelocity(); + this.posX += this.motionX * motionMult(); + this.posY += this.motionY * motionMult(); + this.posZ += this.motionZ * motionMult(); + if(this.isInWater()) { for(int i = 0; i < 4; ++i) { float f = 0.25F; @@ -264,7 +279,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.motionZ *= (double) drag; this.motionY -= gravity; this.setPosition(this.posX, this.posY, this.posZ); - } } @@ -280,7 +294,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { return 5; } - public void getStuck(int x, int y, int z) { + public void getStuck(int x, int y, int z, int side) { this.stuckBlockX = x; this.stuckBlockY = y; this.stuckBlockZ = z; @@ -289,6 +303,8 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.motionX = 0; this.motionY = 0; this.motionZ = 0; + this.setStuckIn(side); + TrackerUtil.sendTeleport(worldObj, this); } public double getGravityVelocity() { diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 19987ab65..3c2c2e7a3 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -68,6 +68,7 @@ public class BulletConfigSyncingUtil { public static int GRENADE_PHOSPHORUS = i++; public static int GRENADE_TRACER = i++; public static int GRENADE_KAMPF = i++; + public static int GRENADE_LEADBURSTER = i++; public static int G12_NORMAL = i++; public static int G12_INCENDIARY = i++; @@ -365,6 +366,7 @@ public class BulletConfigSyncingUtil { configSet.put(GRENADE_NUCLEAR, GunGrenadeFactory.getGrenadeNuclearConfig()); configSet.put(GRENADE_TRACER, GunGrenadeFactory.getGrenadeTracerConfig()); configSet.put(GRENADE_KAMPF, GunGrenadeFactory.getGrenadeKampfConfig()); + configSet.put(GRENADE_LEADBURSTER, GunGrenadeFactory.getGrenadeLeadbursterConfig()); configSet.put(G12_NORMAL, Gun12GaugeFactory.get12GaugeConfig()); configSet.put(G12_INCENDIARY, Gun12GaugeFactory.get12GaugeFireConfig()); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 1a5c07498..9a08d0c03 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -140,6 +140,7 @@ public class BulletConfiguration implements Cloneable { public static final int STYLE_BLADE = 15; public static final int STYLE_BARREL = 16; public static final int STYLE_TAU = 17; + public static final int STYLE_LEADBURSTER = 18; public static final int PLINK_NONE = 0; public static final int PLINK_BULLET = 1; diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index af8f911e7..951a5d6c2 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -51,6 +51,15 @@ public class FuelHandler implements IFuelHandler { } } + if(fuel.getItem() == ModItems.powder_ash) { + int meta = fuel.getItemDamage(); + switch(meta) { + case 0: return single / 2; + case 1: return single; + case 2: return single / 2; + } + } + return 0; } diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 43a21ce01..1763ad83a 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -105,6 +105,7 @@ public class GunConfiguration implements Cloneable { public static final String RSOUND_SHOTGUN = "hbm:weapon.shotgunReload"; public static final String RSOUND_LAUNCHER = "hbm:weapon.rpgReload"; public static final String RSOUND_GRENADE = "hbm:weapon.hkReload"; + public static final String RSOUND_GRENADE_NEW = "hbm:weapon.glReload"; public static final String RSOUND_FATMAN = "hbm:weapon.fatmanReload"; public GunConfiguration silenced() { diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 01549a613..c4672568d 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -146,7 +146,7 @@ public class BulletConfigFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(bullet.worldObj.isRemote) return; @@ -310,12 +310,19 @@ public class BulletConfigFactory { } } + public static void makeFlechette(BulletConfiguration bullet) { + + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + bulletnt.getStuck(x, y, z, sideHit); + }; + } + public static IBulletImpactBehaviorNT getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); @@ -357,7 +364,7 @@ public class BulletConfigFactory { IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index a985bf636..755296329 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -147,6 +147,7 @@ public class Gun20GaugeFactory { bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.HBRC = 2; bullet.LBRC = 95; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING20GAUGE.clone().register("20GaFlech").setColor(0x2847FF, SpentCasing.COLOR_CASE_BRASS); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index a0dff1be2..515b1b8bf 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -223,7 +223,7 @@ public class Gun44MagnumFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 191c0eb93..31447e131 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -179,6 +179,7 @@ public class Gun4GaugeFactory { bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.HBRC = 2; bullet.LBRC = 95; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING4GAUGE.clone().register("4GaFlech").setColor(0x1537FF, SpentCasing.COLOR_CASE_4GA); @@ -205,7 +206,7 @@ public class Gun4GaugeFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -251,7 +252,7 @@ public class Gun4GaugeFactory { bullet.trail = 1; bullet.explosive = 0.0F; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -283,7 +284,7 @@ public class Gun4GaugeFactory { bullet.trail = 1; bullet.explosive = 0.0F; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index beda66771..f9e0a191b 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -62,7 +62,7 @@ public class Gun50BMGFactory { bullet.leadChance = 20; bullet.blockDamage = false; - bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); + bullet.bntImpact = (projectile, x, y, z, sideHit) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaStock"); @@ -76,7 +76,7 @@ public class Gun50BMGFactory { bullet.ammo.meta = 1; bullet.incendiary = 10; - bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); + bullet.bntImpact = (projectile, x, y, z, sideHit) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaInc"); @@ -91,7 +91,7 @@ public class Gun50BMGFactory { bullet.ammo.meta = 2; bullet.explosive = 25; bullet.destroysBlocks = true; - bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); + bullet.bntImpact = (projectile, x, y, z, sideHit) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaExp"); @@ -264,7 +264,7 @@ public class Gun50BMGFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -368,7 +368,7 @@ public class Gun50BMGFactory { bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -397,6 +397,7 @@ public class Gun50BMGFactory { bullet.dmgMin = 50; bullet.dmgMax = 54; bullet.style = bullet.STYLE_FLECHETTE; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING50BMG.clone().register("50BMGFlech"); @@ -412,6 +413,7 @@ public class Gun50BMGFactory { bullet.dmgMin = 60; bullet.dmgMax = 64; bullet.style = bullet.STYLE_FLECHETTE; + BulletConfigFactory.makeFlechette(bullet); bullet.bntHit = (bulletnt, hit) -> { @@ -437,6 +439,7 @@ public class Gun50BMGFactory { bullet.dmgMin = 60; bullet.dmgMax = 64; bullet.style = bullet.STYLE_FLECHETTE; + BulletConfigFactory.makeFlechette(bullet); bullet.bntHit = (bulletnt, hit) -> { diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index d983998e8..88c9aa190 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -182,7 +182,7 @@ public class Gun556mmFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -266,7 +266,7 @@ public class Gun556mmFactory { bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -310,6 +310,7 @@ public class Gun556mmFactory { bullet.wear = 15; bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.doesPenetrate = false; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING556.clone().register("556Flec"); @@ -322,6 +323,7 @@ public class Gun556mmFactory { bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_INCENDIARY)); bullet.incendiary = 5; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING556.clone().register("556FlecInc"); @@ -340,7 +342,7 @@ public class Gun556mmFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -395,7 +397,7 @@ public class Gun556mmFactory { bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index b3d9bae6f..cc05924f6 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -134,7 +134,7 @@ public class Gun75BoltFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java index 827950fd8..2e7c68cc4 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java @@ -44,7 +44,7 @@ public class Gun9mmFactory { config.reloadSoundEnd = false; config.name = "mp40"; - config.manufacturer = EnumGunManufacturer.NAZI; + config.manufacturer = EnumGunManufacturer.ERFURT; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.P9_NORMAL); diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java index 2d8710522..411574bbe 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java @@ -84,7 +84,7 @@ public class GunCannonFactory { bullet.dmgMin = 100; bullet.dmgMax = 150; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index ab25f43bc..093a3d90b 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -88,7 +88,7 @@ public class GunDetonatorFactory { bullet.doesRicochet = false; bullet.setToBolt(BulletConfiguration.BOLT_LASER); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { World world = bulletnt.worldObj; if(!world.isRemote && y > 0) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 1e7d4342d..0ea31f450 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -431,7 +431,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); @@ -554,7 +554,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -632,7 +632,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -721,7 +721,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -812,7 +812,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { ExplosionChaos.explodeZOMG(bullet.worldObj, (int)Math.floor(bullet.posX), (int)Math.floor(bullet.posY), (int)Math.floor(bullet.posZ), 5); diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index e068b15f4..5ed0b21db 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -135,7 +135,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); } }; @@ -151,7 +151,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_LOW); } }; @@ -167,7 +167,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_HIGH); } }; @@ -187,7 +187,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); } }; @@ -203,7 +203,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_SAFE); } }; @@ -220,7 +220,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -252,7 +252,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -503,7 +503,7 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_BF; bullet.bntImpact = new IBulletImpactBehaviorNT() { - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + @Override public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index d65f964e9..092b7fd5a 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -1,7 +1,6 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; @@ -10,18 +9,28 @@ import com.hbm.handler.GunConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoGrenade; +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.render.util.RenderScreenOverlay.Crosshair; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; + public class GunGrenadeFactory { - + private static final CasingEjector EJECTOR_LAUNCHER; + private static final CasingEjector EJECTOR_CONGOLAKE; private static final SpentCasing CASING40MM; static { EJECTOR_LAUNCHER = new CasingEjector().setAngleRange(0.02F, 0.03F).setAfterReload(); + EJECTOR_CONGOLAKE = new CasingEjector().setMotion(0.3, 0.1, 0).setAngleRange(0.02F, 0.03F).setDelay(15); CASING40MM = new SpentCasing(CasingType.STRAIGHT).setScale(4F, 4F, 3F).setBounceMotion(0.02F, 0.03F).setColor(0x777777).setupSmoke(1F, 0.5D, 60, 40); } @@ -47,25 +56,42 @@ public class GunGrenadeFactory { config.name = "gPistol"; config.manufacturer = EnumGunManufacturer.H_AND_K; - - 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.durability = 300; config.ejector = EJECTOR_LAUNCHER; return config; } + + public static GunConfiguration getCongoConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 20; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.reloadDuration = 20; + config.firingDuration = 0; + config.ammoCap = 4; + config.reloadType = GunConfiguration.RELOAD_SINGLE; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CIRCUMFLEX; + config.firingSound = "hbm:weapon.glShoot"; + config.reloadSound = GunConfiguration.RSOUND_GRENADE_NEW; + + config.name = "congoLake"; + config.manufacturer = EnumGunManufacturer.NAWS; + + config.config = HbmCollection.grenade; + config.durability = 2500; + + config.ejector = EJECTOR_CONGOLAKE; + + return config; + } public static BulletConfiguration getGrenadeConfig() { @@ -211,7 +237,7 @@ public class GunGrenadeFactory { bullet.velocity = 4; bullet.explosive = 0.0F; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; @@ -253,4 +279,101 @@ public class GunGrenadeFactory { return bullet; } + + public static BulletConfiguration getGrenadeLeadbursterConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER)); + bullet.spread = 0.0F; + bullet.gravity = 0.01D; + bullet.explosive = 0F; + bullet.style = BulletConfiguration.STYLE_LEADBURSTER; + bullet.doesRicochet = false; + bullet.doesPenetrate = true; + bullet.vPFX = ""; + + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + + switch(sideHit) { + case 0: bulletnt.rotationPitch = (float) (90); break; + case 1: bulletnt.rotationPitch = (float) (-90); break; + case 2: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 0; break; + case 3: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) 180; break; + case 4: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 90; break; + case 5: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) -90; break; + } + + Vec3 vec = Vec3.createVectorHelper(0, 0, 1); + vec.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); + vec.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); + + double offset = 0.1; + bulletnt.posX -= vec.xCoord * offset; + bulletnt.posY -= vec.yCoord * offset; + bulletnt.posZ -= vec.zCoord * offset; + + bulletnt.ticksExisted = 0; + bulletnt.getStuck(x, y, z, sideHit); + }; + + bullet.bntUpdate = (bulletnt) -> { + if(bulletnt.worldObj.isRemote) return; + + switch(bulletnt.getStuckIn()) { + case 0: bulletnt.rotationPitch = (float) (90); break; + case 1: bulletnt.rotationPitch = (float) (-90); break; + case 2: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 0; break; + case 3: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) 180; break; + case 4: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 90; break; + case 5: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) -90; break; + } + + if(bulletnt.ticksInGround < 20) return; + int timer = bulletnt.ticksInGround - 20; + + Vec3 offset = Vec3.createVectorHelper(0, 0, -0.5); + offset.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); + offset.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); + + if(bulletnt.ticksExisted >= 100) { + bulletnt.setDead(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 1F); + data.setByte("count", (byte)1); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX + offset.xCoord, bulletnt.posY + offset.yCoord, bulletnt.posZ + offset.zCoord), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); + } + + if(timer > 60) return; + + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:weapon.silencerShoot", 2F, 1F); + + for(int i = 0; i < 5; i++) { + Vec3 vec = Vec3.createVectorHelper(0, 1, 0); + vec.rotateAroundX((float) Math.toRadians(11.25 * i)); + vec.rotateAroundZ((float) -Math.toRadians(13 * timer)); + vec.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); + vec.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); + + EntityBulletBaseNT pellet = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.R556_NORMAL); + double dist = 0.5; + double off = 0.5; + pellet.setPosition(bulletnt.posX + vec.xCoord * dist + offset.xCoord * off, bulletnt.posY + vec.yCoord * dist + offset.yCoord * off, bulletnt.posZ + vec.zCoord * dist + offset.zCoord * off); + double vel = 0.5; + pellet.motionX = vec.xCoord * vel; + pellet.motionY = vec.yCoord * vel; + pellet.motionZ = vec.zCoord * vel; + + float hyp = MathHelper.sqrt_double(pellet.motionX * pellet.motionX + pellet.motionZ * pellet.motionZ); + pellet.prevRotationYaw = pellet.rotationYaw = (float) (Math.atan2(pellet.motionX, pellet.motionZ) * 180.0D / Math.PI); + pellet.prevRotationPitch = pellet.rotationPitch = (float) (Math.atan2(pellet.motionY, (double) hyp) * 180.0D / Math.PI); + + bulletnt.worldObj.spawnEntityInWorld(pellet); + } + }; + + 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 8a6bffe40..d7fff5e2b 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -124,7 +124,7 @@ public class GunNPCFactory { bullet.vPFX = "reddust"; bullet.damageType = ModDamageSource.s_laser; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -252,7 +252,7 @@ public class GunNPCFactory { if(target != null) { if(bullet.getDistanceSqToEntity(target) < 5) { - bullet.getConfig().bntImpact.behaveBlockHit(bullet, -1, -1, -1); + bullet.getConfig().bntImpact.behaveBlockHit(bullet, -1, -1, -1, -1); bullet.setDead(); return; } @@ -306,7 +306,7 @@ public class GunNPCFactory { } }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + bulletnt.worldObj.rand.nextFloat() * 0.2F); bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "fireworks.blast", 5.0F, 0.5F); diff --git a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java index 720a57e2c..47c3e698c 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java @@ -127,7 +127,7 @@ public class GunOSIPRFactory { }; - bullet.bntImpact = (ball, x, y, z) -> { + bullet.bntImpact = (ball, x, y, z, sideHit) -> { final Block block = ball.worldObj.getBlock(x, y, z); if(block instanceof RedBarrel) ((RedBarrel) block).explode(ball.worldObj, x, y, z); diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index cea0490c3..b6b0714dd 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -284,7 +284,7 @@ public class GunRocketFactory { bullet.incendiary = 0; bullet.trail = 7; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); }; @@ -395,7 +395,7 @@ public class GunRocketFactory { bullet.incendiary = 0; bullet.trail = 7; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 1f96d0d4b..36a75a648 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -23,6 +23,7 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; @@ -291,6 +292,7 @@ public class OreDictManager { public static final DictGroup ANY_TAR = new DictGroup("Tar", KEY_OIL_TAR, KEY_COAL_TAR, KEY_CRACK_TAR, KEY_WOOD_TAR); /** Any special post-RBMK gating material, namely bismuth and arsenic */ public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); + public static final DictFrame ANY_ASH = new DictFrame("Ash"); public static void registerOres() { @@ -458,6 +460,7 @@ public class OreDictManager { for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); + ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC)); /* * TAR @@ -563,6 +566,10 @@ public class OreDictManager { OreDictionary.registerOre("dye", new ItemStack(oil_tar, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("dyeOrange", powder_cadmium); OreDictionary.registerOre("dye", powder_cadmium); + OreDictionary.registerOre("dyeLightGray", fromOne(powder_ash, EnumAshType.WOOD)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.COAL)); + OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); + OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); OreDictionary.registerOre("blockGlass", glass_lead); diff --git a/src/main/java/com/hbm/inventory/container/ContainerAshpit.java b/src/main/java/com/hbm/inventory/container/ContainerAshpit.java new file mode 100644 index 000000000..5d3505d63 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAshpit.java @@ -0,0 +1,73 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerAshpit extends Container { + + protected TileEntityAshpit ashpit; + + public ContainerAshpit(InventoryPlayer invPlayer, TileEntityAshpit ashpit) { + this.ashpit = ashpit; + this.ashpit.openInventory(); + + for(int i = 0; i < 5; i++) this.addSlotToContainer(new SlotTakeOnly(ashpit, i, 44 + i * 18, 27)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 144)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 4) { + if(!this.mergeItemStack(originalStack, 5, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else { + return null; + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return ashpit.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.ashpit.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAshpit.java b/src/main/java/com/hbm/inventory/gui/GUIAshpit.java new file mode 100644 index 000000000..af5a768e1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAshpit.java @@ -0,0 +1,41 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAshpit; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIAshpit extends GuiInfoContainer { + + private TileEntityAshpit firebox; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_ashpit.png"); + + public GUIAshpit(InventoryPlayer invPlayer, TileEntityAshpit tedf) { + super(new ContainerAshpit(invPlayer, tedf)); + firebox = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.firebox.hasCustomInventoryName() ? this.firebox.getInventoryName() : I18n.format(this.firebox.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 11a636399..5c04519b5 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -22,6 +22,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.util.Compat; import net.minecraft.block.Block; @@ -85,6 +86,10 @@ public class MatDistribution extends SerializableRecipe { registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3)); + + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), MAT_CARBON, NUGGET.q(1)); + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL), MAT_CARBON, NUGGET.q(2)); + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC), MAT_CARBON, NUGGET.q(1)); } public static void registerEntry(Object key, Object... matDef) { diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 992ed2e3e..a3735f8bb 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -19,6 +19,7 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; @@ -368,9 +369,14 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.block_slag), new ItemStack[] { new ItemStack(Blocks.gravel, 1), new ItemStack(ModItems.powder_fire, 1), - new ItemStack(ModItems.powder_calcium), //temp + new ItemStack(ModItems.powder_calcium), new ItemStack(ModItems.dust) }); + recipes.put(new ComparableStack(ModItems.powder_ash, 1, EnumAshType.COAL.ordinal()), new ItemStack[] { + new ItemStack(ModItems.powder_coal_tiny, 2), + new ItemStack(ModItems.powder_boron_tiny, 1), + new ItemStack(ModItems.dust_tiny, 6)}); + for(EnumBedrockOre ore : EnumBedrockOre.values()) { int i = ore.ordinal(); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index a84cae509..d1c218639 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -18,6 +18,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; @@ -47,9 +48,9 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); - recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); - recipes.put(KEY_SAPLING, new Pair(null, new FluidStack(Fluids.WOODOIL, 50))); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)), new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 500))); + recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); + recipes.put(KEY_SAPLING, new Pair(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), new FluidStack(Fluids.WOODOIL, 50))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)), new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 500))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), null)); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), null)); 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 bc29c1fc2..1a488b9cb 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -237,6 +237,13 @@ public class AnvilRecipes { new OreDictStack(CU.ingot(), 8) }, new AnvilOutput(new ItemStack(ModBlocks.heater_oven))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stone, 8), + new OreDictStack(STEEL.plate(), 2), + new OreDictStack(IRON.ingot(), 4) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_ashpit))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.tank_steel, 4), diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java index 8ef0638d7..54ad9f1c6 100644 --- a/src/main/java/com/hbm/items/ItemAmmoEnums.java +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -186,7 +186,8 @@ public class ItemAmmoEnums { 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); + KAMPF("ammo_grenade_kampf", AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR), + LEADBURSTER("ammo_grenade_leadburster", AmmoItemTrait.NEU_LEADBURSTER, AmmoItemTrait.CON_NO_EXPLODE1); private final Set traits; private final String unloc; diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index c1424f43f..a83f5171c 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -23,6 +23,12 @@ public class ItemEnums { PARAFFIN } + public static enum EnumAshType { + WOOD, + COAL, + MISC + } + public static enum EnumBriquetteType { COAL, LIGNITE, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8ec82b805..0ea177e3b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -109,6 +109,7 @@ public class ModItems { public static Item briquette; public static Item coal_infernal; public static Item cinnebar; + public static Item powder_ash; public static Item niter; public static Item ingot_copper; @@ -1522,6 +1523,7 @@ public class ModItems { public static Item gun_panzerschreck; public static Item gun_quadro; public static Item gun_hk69; + public static Item gun_congolake; public static Item gun_stinger; public static Item gun_skystinger; public static Item gun_revolver; @@ -2723,6 +2725,7 @@ public class ModItems { powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal"); cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); + powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); @@ -4127,6 +4130,7 @@ public class ModItems { gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); + gun_congolake = new ItemGunCongo(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); 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_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); @@ -5810,6 +5814,7 @@ public class ModItems { GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); + GameRegistry.registerItem(powder_ash, powder_ash.getUnlocalizedName()); //Powders GameRegistry.registerItem(powder_fire, powder_fire.getUnlocalizedName()); @@ -6992,6 +6997,7 @@ public class ModItems { GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); GameRegistry.registerItem(gun_hk69, gun_hk69.getUnlocalizedName()); + GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName()); GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); GameRegistry.registerItem(gun_proto, gun_proto.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemKitNBT.java b/src/main/java/com/hbm/items/special/ItemKitNBT.java index e310c04de..f7248759c 100644 --- a/src/main/java/com/hbm/items/special/ItemKitNBT.java +++ b/src/main/java/com/hbm/items/special/ItemKitNBT.java @@ -62,7 +62,7 @@ public class ItemKitNBT extends Item { list.add("Contains:"); for(ItemStack item : stacks) { - list.add("-" + item.getDisplayName()); + list.add("-" + item.getDisplayName() + (item.stackSize > 1 ? (" x" + item.stackSize) : "")); } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index f83ea596c..eebc241a8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -65,6 +65,7 @@ public class ItemAmmo extends ItemEnumMulti { NEU_STARMETAL, NEU_TRACER, NEU_UHH, + NEU_LEADBURSTER, NEU_WARCRIME1, NEU_WARCRIME2, PRO_ACCURATE1, diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index d4d263fa5..bb62a11b5 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -305,7 +305,7 @@ public class ItemAmmoArty extends Item { 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); + shell.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } }}; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java new file mode 100644 index 000000000..7072e772d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java @@ -0,0 +1,37 @@ +package com.hbm.items.weapon; + +import com.hbm.handler.GunConfiguration; +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 cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; + +public class ItemGunCongo extends ItemGunBase { + + public ItemGunCongo(GunConfiguration config) { + super(config); + } + + @Override + @SideOnly(Side.CLIENT) + public BusAnimation getAnimation(ItemStack stack, AnimType type) { + + if(type == AnimType.CYCLE) { + return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 50)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100))) + .addBus("PUMP", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200))); + + } + + return null; + } +} diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java index dba947b9b..06bcd4799 100644 --- a/src/main/java/com/hbm/lib/HbmCollection.java +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -70,7 +70,7 @@ public class HbmCollection { /** 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); + 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, BulletConfigSyncingUtil.GRENADE_LEADBURSTER); /** 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); @@ -133,8 +133,10 @@ public class HbmCollection { METRO, /**MWT Prototype Labs**/ MWT, + /**Naval Air Weapons Station**/ + NAWS, /**Erfurter Maschinenfabrik Geipel**/ - NAZI, + ERFURT, /**No manufacturer, just puts "-" **/ NONE, /**OxfordEM Technologies**/ diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 323e01b0c..6182148ab 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -9,11 +9,14 @@ import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; +import com.hbm.util.LootGenerator; import com.hbm.util.WeightedRandomGeneric; import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; @@ -59,6 +62,7 @@ import net.minecraft.world.biome.BiomeGenJungle; import net.minecraft.world.biome.BiomeGenRiver; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.IWorldGenerator; public class HbmWorldGen implements IWorldGenerator { @@ -389,6 +393,29 @@ public class HbmWorldGen implements IWorldGenerator { } } + if(rand.nextInt(1000) == 0) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + int y = world.getHeightValue(x, z); + + if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z) && world.getBlock(x, y, z).isReplaceable(world, x, y, z)) { + + world.setBlock(x, y, z, ModBlocks.lantern_behemoth, 12, 3); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {4, 0, 0, 0, 0, 0}, ModBlocks.lantern_behemoth, ForgeDirection.NORTH); + + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) world.getTileEntity(x, y, z); + lantern.isBroken = true; + + if(rand.nextInt(2) == 0) { + LootGenerator.setBlock(world, x, y, z - 2); + LootGenerator.lootBooklet(world, x, y, z - 2); + } + + if(GeneralConfig.enableDebugMode) + MainRegistry.logger.info("[Debug] Successfully spawned lantern at " + x + " " + (y) + " " + z); + } + } + if(GeneralConfig.enable528 && GeneralConfig.enable528BosniaSimulator && rand.nextInt(16) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -629,7 +656,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z) - rand.nextInt(10); - (new Meteorite()).generate(world, rand, x, y, z, false, true, false); + (new Meteorite()).generate(world, rand, x, y, z, false, false, false); } if (GeneralConfig.enableNITAN) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3d7045278..a941f6568 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 (4683)"; + public static final String VERSION = "1.0.27 BETA (4690)"; //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 c31870b9c..4c469d776 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -169,6 +169,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLantern.class, new RenderLantern()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLanternBehemoth.class, new RenderLanternBehemoth()); //bombs ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeGadget.class, new RenderNukeGadget()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBoy.class, new RenderNukeBoy()); @@ -264,6 +266,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceCombination.class, new RenderFurnaceCombination()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterFirebox.class, new RenderFirebox()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOven.class, new RenderHeatingOven()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAshpit.class, new RenderAshpit()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOilburner.class, new RenderOilburner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterElectric.class, new RenderElectricHeater()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterHeatex.class, new RenderHeaterHeatex()); @@ -525,6 +528,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderWeaponCongo()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1a4b56848..90dc90185 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -450,6 +450,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P', P_RED.dust(), 'T', ModItems.cell_tritium, '1', "dustSulfur", '2', CU.dust() }); addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P',P_RED.dust(), 'T', ModItems.cell_tritium, '1', AL.dust(), '2', ST.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.lantern, 1), new Object[] { "PGP", " S ", " S ", 'P', KEY_ANYPANE, 'G', Items.glowstone_dust, 'S', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire, 16), new Object[] { "AIA", "I I", "AIA", 'A', ModItems.wire_aluminium, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_fire, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', P_RED.dust() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6b7451986..438847446 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -955,6 +955,8 @@ public class MainRegistry { WeaponConfig.loadFromConfig(config); MobConfig.loadFromConfig(config); StructureConfig.loadFromConfig(config); + + config.save(); try { if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.Thermos") != null) { @@ -967,8 +969,6 @@ public class MainRegistry { + "change Thermos' config anyway so that extra change in NTM's config can't be that big of a burden."); } } catch(ClassNotFoundException e) { } - - config.save(); } private static HashSet ignoreMappings = new HashSet(); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 3fc1955e0..5959f4f48 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -306,6 +306,9 @@ public class ResourceManager { public static Animation transition_seal_anim; public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); + //Lantern + public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); + //Tesla Coil public static final IModelCustom tesla = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tesla.obj")); public static final IModelCustom teslacrab = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/teslacrab.obj")); @@ -387,6 +390,7 @@ public class ResourceManager { //Heaters public static final ResourceLocation heater_firebox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/firebox.png"); public static final ResourceLocation heater_oven_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heating_oven.png"); + public static final ResourceLocation ashpit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ashpit.png"); public static final ResourceLocation heater_oilburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/oilburner.png"); public static final ResourceLocation heater_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/electric_heater.png"); public static final ResourceLocation heater_heatex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heater_heatex.png"); @@ -664,6 +668,10 @@ public class ResourceManager { public static final ResourceLocation transition_seal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/transition_seal.png"); public static final ResourceLocation fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/fire_door.png"); + //Lantern + public static final ResourceLocation lantern_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern.png"); + public static final ResourceLocation lantern_rusty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern_rusty.png"); + //Tesla Coil public static final ResourceLocation tesla_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tesla.png"); public static final ResourceLocation teslacrab_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/teslacrab.png"); @@ -753,6 +761,7 @@ public class ResourceManager { public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asDisplayList(); public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); + public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asDisplayList(); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -848,6 +857,7 @@ public class ResourceManager { public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png"); public static final ResourceLocation cryocannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon.png"); public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); + public static final ResourceLocation congolake_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/congolake.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); @@ -952,6 +962,7 @@ public class ResourceManager { //Projectiles public static final IModelCustom projectiles = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/projectiles.obj")); + public static final IModelCustom leadburster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/leadburster.obj")); public static final IModelCustom casings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/casings.obj")); //Bomber @@ -1080,6 +1091,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 leadburster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/leadburster.png"); public static final ResourceLocation casings_tex = new ResourceLocation(RefStrings.MODID, "textures/particle/casings.png"); //Bomber diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index d8c59d98f..c97e4b982 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -3,7 +3,9 @@ package com.hbm.render.entity.projectile; import java.util.Random; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.IBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.items.ModItems; @@ -72,6 +74,7 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_BLADE: renderBlade(); break; case BulletConfiguration.STYLE_BARREL: renderNuke(3); break; case BulletConfiguration.STYLE_TAU: renderTau(bullet, trail, f1); break; + case BulletConfiguration.STYLE_LEADBURSTER: renderLeadburster(bullet, f1); break; default: renderBullet(trail); break; } @@ -589,6 +592,24 @@ public class RenderBullet extends Render { iface.prevZ(pZ); } + private void renderLeadburster(Entity bullet, float interp) { + EntityBulletBaseNT bulletnt = (EntityBulletBaseNT) bullet; + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glRotated(90, 0, 0, -1); + double scale = 0.05; + GL11.glScaled(scale, scale, scale); + bindTexture(ResourceManager.leadburster_tex); + ResourceManager.leadburster.renderPart("Based"); + if(bulletnt.getStuckIn() != -1) { + GL11.glRotated((bullet.ticksExisted + interp) * -18, 0, 1, 0); + } + ResourceManager.leadburster.renderPart("Based.001"); + ResourceManager.leadburster.renderPart("Backlight"); + GL11.glPopMatrix(); + } + @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java new file mode 100644 index 000000000..bcf9f2c02 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java @@ -0,0 +1,106 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponCongo implements IItemRenderer { + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glRotated(20, 0, 0, 1); + GL11.glTranslated(0.5, 0.0, -0.5); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(0, 0, -recoil[0]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.congolake.renderPart("Gun"); + + double[] pump = HbmAnimations.getRelevantTransformation("PUMP"); + GL11.glTranslated(0, 0, -pump[0]); + + ResourceManager.congolake.renderPart("Pump_Pummp"); + GL11.glShadeModel(GL11.GL_FLAT); + + break; + + case EQUIPPED: + + double scale = 0.35D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(15, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(1.25F, -1F, 1.5F); + + break; + + case ENTITY: + + double s1 = 0.2D; + GL11.glScaled(s1, s1, s1); + + break; + + case INVENTORY: + + double s = 2D; + GL11.glTranslated(6, 9, 0); + GL11.glRotated(-135, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.congolake.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderAshpit.java b/src/main/java/com/hbm/render/tileentity/RenderAshpit.java new file mode 100644 index 000000000..cfee40260 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderAshpit.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderAshpit extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + GL11.glRotatef(-90, 0F, 1F, 0F); + + TileEntityAshpit oven = (TileEntityAshpit) tile; + + bindTexture(ResourceManager.ashpit_tex); + ResourceManager.heater_oven.renderPart("Main"); + + GL11.glPushMatrix(); + float door = oven.prevDoorAngle + (oven.doorAngle - oven.prevDoorAngle) * interp; + GL11.glTranslated(0, 0, door * 0.75D / 135D); + ResourceManager.heater_oven.renderPart("Door"); + GL11.glPopMatrix(); + + if(oven.isFull) { + ResourceManager.heater_oven.renderPart("InnerBurning"); + } else { + ResourceManager.heater_oven.renderPart("Inner"); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ashpit); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommon() { + bindTexture(ResourceManager.ashpit_tex); + ResourceManager.heater_oven.renderPart("Main"); + ResourceManager.heater_oven.renderPart("Door"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLantern.java b/src/main/java/com/hbm/render/tileentity/RenderLantern.java new file mode 100644 index 000000000..d61594f60 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLantern.java @@ -0,0 +1,69 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderLantern extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + bindTexture(ResourceManager.lantern_tex); + ResourceManager.lantern.renderPart("Lantern"); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.1F + 0.9F; + GL11.glColor3f(1F * mult, 1F * mult, 0.7F * mult); + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.lantern); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + double scale = 2.75; + GL11.glScaled(scale, scale, scale); + } + public void renderCommon() { + bindTexture(ResourceManager.lantern_tex); + ResourceManager.lantern.renderPart("Lantern"); + GL11.glDisable(GL11.GL_TEXTURE_2D); + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.1F + 0.9F; + GL11.glColor3f(1F * mult, 1F * mult, 0.7F * mult); + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java b/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java new file mode 100644 index 000000000..b7d18c4f5 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java @@ -0,0 +1,53 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLanternBehemoth extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) tile; + if(lantern.isBroken) { + GL11.glRotated(5, 1, 0, 0); + GL11.glRotated(10, 0, 0, 1); + } + + bindTexture(ResourceManager.lantern_rusty_tex); + ResourceManager.lantern.renderPart("Lantern"); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + if(lantern.isBroken) { + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5); + GL11.glColor3f(1F * mult, 0, 0); + } else { + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.5F + 0.5F; + GL11.glColor3f(0, 1F * mult, 0); + } + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index d25492de0..1813bb7d7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -100,11 +100,22 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glRotated(90, 1, 0, 0); bindTexture(TextureMap.locationItemsTexture); - IIcon icon = stack.getIconIndex(); - float f14 = icon.getMinU(); - float f15 = icon.getMaxU(); - float f4 = icon.getMinV(); - float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + + for(int i = 0; i < stack.getItem().getRenderPasses(stack.getItemDamage()); i++) { + + IIcon icon = stack.getItem().getIcon(stack, i); + float f14 = icon.getMinU(); + float f15 = icon.getMaxU(); + float f4 = icon.getMinV(); + float f5 = icon.getMaxV(); + + int k1 = stack.getItem().getColorFromItemStack(stack, i); + float f10 = (float) (k1 >> 16 & 255) / 255.0F; + float f11 = (float) (k1 >> 8 & 255) / 255.0F; + float f12 = (float) (k1 & 255) / 255.0F; + GL11.glColor4f(1.0F * f10, 1.0F * f11, 1.0F * f12, 1.0F); + + ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + } } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 8498efeaa..74b76c50b 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -182,6 +182,8 @@ public class TileMappings { put(TileEntitySILEX.class, "tileentity_silex"); put(TileEntityFEL.class, "tileentity_fel"); put(TileEntityDemonLamp.class, "tileentity_demonlamp"); + put(TileEntityLantern.class, "tileentity_lantern_ordinary"); + put(TileEntityLanternBehemoth.class, "tileentity_lantern_behemoth"); put(TileEntityStorageDrum.class, "tileentity_waste_storage_drum"); put(TileEntityDeaerator.class, "tileentity_deaerator"); put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? @@ -257,6 +259,7 @@ public class TileMappings { private static void putMachines() { put(TileEntityHeaterFirebox.class, "tileentity_firebox"); put(TileEntityHeaterOven.class, "tileentity_heating_oven"); + put(TileEntityAshpit.class, "tileentity_ashpit"); put(TileEntityHeaterOilburner.class, "tileentity_oilburner"); put(TileEntityHeaterElectric.class, "tileentity_electric_heater"); put(TileEntityHeaterHeatex.class, "tileentity_heater_heatex"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 9e7084101..e69f71203 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -4,6 +4,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDesingator; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; @@ -280,40 +282,54 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Callback @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback @Optional.Method(modid = "OpenComputers") public Object[] getCoords(Context context, Arguments args) { if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - int xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + int xCoord2; + int zCoord2; + if (slots[1].stackTagCompound != null) { + xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); + zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + } else + return new Object[] {false}; // Not sure if i should have this + /* if(xCoord2 == xCoord && zCoord2 == zCoord) { xCoord2 += 1; } - + */ + return new Object[] {xCoord2, zCoord2}; } - return new Object[] {"Designator not found"}; + return new Object[] {false, "Designator not found"}; } @Callback @Optional.Method(modid = "OpenComputers") public Object[] setCoords(Context context, Arguments args) { if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + slots[1].stackTagCompound = new NBTTagCompound(); slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); - - return new Object[] {"Success"}; + + return new Object[] {true}; } - return new Object[] {"Designator not found"}; + return new Object[] {false, "Designator not found"}; } @Callback diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 71a0d7289..fa1018dc7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.bomb; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.LaunchPad; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; import com.hbm.interfaces.IFluidAcceptor; @@ -28,9 +30,14 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -43,7 +50,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent { private ItemStack slots[]; @@ -597,6 +605,86 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return tanks; } + // do some opencomputer stuff + @Override + public String getComponentName() { + return "large_launch_pad"; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyStored(Context context, Arguments args) { + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getMaxEnergy(Context context, Arguments args) { + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getContents(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType().getName(), solid, maxSolid}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getLaunchInfo(Context context, Arguments args) { + return new Object[] {canLaunch(), isMissileValid(), hasDesignator(), hasFuel()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getCoords(Context context, Arguments args) { + if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + int xCoord2; + int zCoord2; + if (slots[1].stackTagCompound != null) { + xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); + zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + } else + return new Object[] {false}; + + // Not sure if i should have this + /* + if(xCoord2 == xCoord && zCoord2 == zCoord) { + xCoord2 += 1; + } + */ + + return new Object[] {xCoord2, zCoord2}; + } + return new Object[] {false, "Designator not found"}; + } + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] setCoords(Context context, Arguments args) { + if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + slots[1].stackTagCompound = new NBTTagCompound(); + slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); + slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); + + return new Object[] {true}; + } + return new Object[] {false, "Designator not found"}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] launch(Context context, Arguments args) { + //worldObj.getBlock(xCoord, yCoord, zCoord).explode(worldObj, xCoord, yCoord, zCoord); + ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); + return new Object[] {}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerLaunchTable(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java new file mode 100644 index 000000000..65be4a600 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java @@ -0,0 +1,53 @@ +package com.hbm.tileentity.deco; + +import java.util.List; + +import com.hbm.entity.mob.EntityGlyphid; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityLantern extends TileEntity { + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0) { + + List glyphids = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 5.5, zCoord + 0.5, xCoord + 0.5, yCoord + 5.5, zCoord + 0.5).expand(7.5, 7.5, 7.5)); + + for(EntityGlyphid glyphid : glyphids) { + glyphid.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 0)); + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord, + yCoord, + zCoord, + xCoord + 1, + yCoord + 6, + zCoord + 1 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java new file mode 100644 index 000000000..ca5731bb2 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -0,0 +1,137 @@ +package com.hbm.tileentity.deco; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemKitCustom; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IRepairable; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketReceiver, IRepairable { + + public boolean isBroken = false; + public int comTimer = -1; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(comTimer == 360) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornNearSingle", 10F, 1F); + if(comTimer == 280) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarSingle", 10000F, 1F); + if(comTimer == 220) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornNearDual", 10F, 1F); + if(comTimer == 100) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarDual", 10000F, 1F); + + if(comTimer == 0) { + EntityBobmazon shuttle = new EntityBobmazon(worldObj); + shuttle.posX = xCoord + 0.5 + worldObj.rand.nextGaussian() * 10; + shuttle.posY = 300; + shuttle.posZ = zCoord + 0.5 + worldObj.rand.nextGaussian() * 10; + ItemStack payload = ItemKitCustom.create("Supplies", null, 0xffffff, 0x008000, + new ItemStack(ModItems.circuit_aluminium, 4 + worldObj.rand.nextInt(4)), + new ItemStack(ModItems.circuit_copper, 4 + worldObj.rand.nextInt(2)), + new ItemStack(ModItems.circuit_red_copper, 2 + worldObj.rand.nextInt(3)), + new ItemStack(ModItems.circuit_gold, 1 + worldObj.rand.nextInt(2)), + worldObj.rand.nextInt(3) == 0 ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), + new ItemStack(Blocks.red_flower)); + shuttle.payload = payload; + + worldObj.spawnEntityInWorld(shuttle); + } + + if(comTimer >= 0) { + comTimer--; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isBroken", isBroken); + INBTPacketReceiver.networkPack(this, data, 250); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.isBroken = nbt.getBoolean("isBroken"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + isBroken = nbt.getBoolean("isBroken"); + comTimer = nbt.getInteger("comTimer"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isBroken", isBroken); + nbt.setInteger("comTimer", comTimer); + } + + @Override + public boolean isDamaged() { + return isBroken; + } + + List repair = new ArrayList(); + @Override + public List getRepairMaterials() { + + if(!repair.isEmpty()) + return repair; + + repair.add(new OreDictStack(OreDictManager.STEEL.plate(), 2)); + repair.add(new ComparableStack(ModItems.circuit_copper, 1)); + return repair; + } + + @Override + public void repair() { + this.isBroken = false; + this.comTimer = 400; + this.markDirty(); + } + + @Override public void tryExtinguish(World world, int x, int y, int z, EnumExtinguishType type) { } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord, + yCoord, + zCoord, + xCoord + 1, + yCoord + 6, + zCoord + 1 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java new file mode 100644 index 000000000..d5e27e4ac --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -0,0 +1,175 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerAshpit; +import com.hbm.inventory.gui.GUIAshpit; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvider { + + private int playersUsing = 0; + public float doorAngle = 0; + public float prevDoorAngle = 0; + public boolean isFull; + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityAshpit() { + super(5); + } + + @Override + public void openInventory() { + if(!worldObj.isRemote) this.playersUsing++; + } + + @Override + public void closeInventory() { + if(!worldObj.isRemote) this.playersUsing--; + } + + @Override + public String getName() { + return "container.ashpit"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int threshold = 2000; + + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + isFull = false; + + for(int i = 0; i < 5; i++) { + if(slots[i] != null) isFull = true; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("playersUsing", this.playersUsing); + data.setBoolean("isFull", this.isFull); + this.networkPack(data, 50); + + } else { + this.prevDoorAngle = this.doorAngle; + float swingSpeed = (doorAngle / 10F) + 3; + + if(this.playersUsing > 0) { + this.doorAngle += swingSpeed; + } else { + this.doorAngle -= swingSpeed; + } + + this.doorAngle = MathHelper.clamp_float(this.doorAngle, 0F, 135F); + } + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + for(int i = 0; i < 5; i++) { + if(slots[i] == null) { + slots[i] = DictFrame.fromOne(ModItems.powder_ash, type); + ashLevelWood -= threshold; + return true; + } else if(slots[i].stackSize < slots[i].getMaxStackSize() && slots[i].getItem() == ModItems.powder_ash && slots[i].getItemDamage() == type.ordinal()) { + slots[i].stackSize++; + return true; + } + } + } + + return false; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.playersUsing = nbt.getInteger("playersUsing"); + this.isFull = nbt.getBoolean("isFull"); + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1, 2, 3, 4 }; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.ashLevelWood = nbt.getInteger("ashLevelWood"); + this.ashLevelCoal = nbt.getInteger("ashLevelCoal"); + this.ashLevelMisc = nbt.getInteger("ashLevelMisc"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("ashLevelWood", ashLevelWood); + nbt.setInteger("ashLevelCoal", ashLevelCoal); + nbt.setInteger("ashLevelMisc", ashLevelMisc); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 1, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerAshpit(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIAshpit(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 218168090..95b972949 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -279,13 +279,19 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index 7285639bd..b4fffdb9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -202,20 +202,20 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") - public Object[] getFirstFuel(Context context, Arguments args) { - return new Object[] {tanks[0].getFill()}; + public Object[] getFuel(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; } @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") - public Object[] getSecondFuel(Context context, Arguments args) { - return new Object[] {tanks[1].getFill()}; + public Object[] getTypes(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName(), tanks[1].getTankType().getName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + return new Object[] {tanks[0].getFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getTankType().getName()}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 51b79e242..57fef61d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -194,13 +194,19 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { - return new Object[] {joules}; + return new Object[] {joules, "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getOutput(Context context, Arguments args) { - return new Object[] {power}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {joules, getPower()}; //literally only doing this for the consistency between components } @Callback(direct = true, limit = 4) @@ -212,7 +218,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {joules, power, tank.getFill()}; + return new Object[] {joules, getPower(), tank.getFill()}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index de41bd82a..82ce38079 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -176,13 +176,19 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {power}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {maxPower}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 5f1801c59..8d34ffa2c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -308,6 +308,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(this.tanks[3].getFill() < 100) return false; ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); + if(recipe == null) return false; if(leftStack != null) { if(recipe.output1.material != leftStack.material) return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index e34d8eb8e..be4b8c82b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -1,13 +1,17 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.ItemStackUtil; import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; @@ -15,6 +19,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; @@ -68,9 +73,21 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i for(int i = 0; i < 2; i++) { if(slots[i] != null) { - int fuel = (int) (getModule().getBurnTime(slots[i]) * getTimeMult()); + int baseTime = getModule().getBurnTime(slots[i]); - if(fuel > 0) { + if(baseTime > 0) { + int fuel = (int) (baseTime * getTimeMult()); + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + EnumAshType type = this.getAshFromFuel(slots[i]); + if(type == EnumAshType.WOOD) ashpit.ashLevelWood += baseTime; + if(type == EnumAshType.COAL) ashpit.ashLevelCoal += baseTime; + if(type == EnumAshType.MISC) ashpit.ashLevelMisc += baseTime; + } + this.maxBurnTime = this.burnTime = fuel; this.burnHeat = getModule().getBurnHeat(getBaseHeat(), slots[i]); slots[i].stackSize--; @@ -133,6 +150,22 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } } } + + public EnumAshType getAshFromFuel(ItemStack stack) { + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + if(name.contains("Coke")) return EnumAshType.COAL; + if(name.contains("Coal")) return EnumAshType.COAL; + if(name.contains("Lignite")) return EnumAshType.COAL; + if(name.startsWith("log")) return EnumAshType.WOOD; + if(name.contains("Wood")) return EnumAshType.WOOD; + if(name.contains("Sapling")) return EnumAshType.WOOD; + } + + return EnumAshType.MISC; + } public abstract ModuleBurnTime getModule(); public abstract int getBaseHeat(); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 92dd33539..44baadde9 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -375,7 +375,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I else if(type == Fluids.HOTSTEAM) {type_1 = "1";} else if(type == Fluids.SUPERHOTSTEAM) {type_1 = "2";} else if(type == Fluids.ULTRAHOTSTEAM) {type_1 = "3";} - else {type_1 = "Steam out-of-bounds";} + else {type_1 = "Unknown Error";} return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 618f41a96..e9699b87f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -312,19 +312,19 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { - return new Object[] {feed.getTankType().getID()}; + return new Object[] {feed.getTankType().getName()}; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { - return new Object[] {steam.getTankType().getID()}; + return new Object[] {steam.getTankType().getName()}; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getID(), steam.getTankType().getID(), xCoord, yCoord, zCoord}; + return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getName(), steam.getTankType().getName(), xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 8) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index c6fea9500..360d25ebe 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -389,12 +389,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType().getUnlocalizedName()}; + return new Object[] {tank.getTankType().getName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getUnlocalizedName()}; + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 594fec515..e14db7c8e 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -392,19 +392,25 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I // do some opencomputer stuff @Override public String getComponentName() { - return "ntm_energy_storage"; // need a way to somehow detect the first word of the energy storage block so people wont get confused when it comes to multiple energy storage blocks + return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + public Object[] getEnergyStored(Context context, Arguments args) { //TODO for gamma: when ready remove these deprecated functions in all components + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback(direct = true, limit = 8) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback(direct = true, limit = 8) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 1269da0a6..9332cb750 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -487,12 +487,12 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType().getUnlocalizedName()}; + return new Object[] {tank.getTankType().getName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getUnlocalizedName()}; + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index fd95b1c4c..69b0af7f5 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.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.item.Item; @@ -21,6 +22,15 @@ public class LootGenerator { loot.addItem(stack, x + rand.nextGaussian() * 0.02, y, z + rand.nextGaussian() * 0.02); } + public static void lootBooklet(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + loot.addItem(ItemBookLore.createBook("beacon", 12, 0x404040, 0xD637B3), 0, 0, 0);; + } + } + public static void lootCapNuke(World world, int x, int y, int z) { TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); diff --git a/src/main/java/com/hbm/util/TrackerUtil.java b/src/main/java/com/hbm/util/TrackerUtil.java new file mode 100644 index 000000000..9889d0c6e --- /dev/null +++ b/src/main/java/com/hbm/util/TrackerUtil.java @@ -0,0 +1,44 @@ +package com.hbm.util; + +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityTracker; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.network.play.server.S18PacketEntityTeleport; +import net.minecraft.util.IntHashMap; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +/** + * This absolute fucking mess of a class is the direct consequence of mojank's terrible entity tracker that allows for 0 flexibility with how entities are synced. + * + * @author hbm + */ +public class TrackerUtil { + + /** Grabs the tracker entry from the given entity */ + public static EntityTrackerEntry getTrackerEntry(WorldServer world, int entityId) { + EntityTracker entitytracker = world.getEntityTracker(); + IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); + EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(entityId); + return entry; + } + + /** Force-teleports the given entity using the tracker, resetting the tick count to 0 to prevent movement during this tick */ + public static void sendTeleport(World world, Entity e) { + + if(world instanceof WorldServer) { + WorldServer server = (WorldServer) world; + EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId()); + int xScaled = e.myEntitySize.multiplyBy32AndRound(e.posX); + int yScaled = MathHelper.floor_double(e.posY * 32.0D); + int zScaled = e.myEntitySize.multiplyBy32AndRound(e.posZ); + int yaw = MathHelper.floor_float(e.rotationYaw * 256.0F / 360.0F); + int pitch = MathHelper.floor_float(e.rotationPitch * 256.0F / 360.0F); + entry.func_151259_a(new S18PacketEntityTeleport(e.getEntityId(), xScaled, yScaled, zScaled, (byte)yaw, (byte)pitch)); + //this prevents the tracker from sending movement updates in the same tick + entry.ticks = 0; + } + } +} diff --git a/src/main/java/com/hbm/world/feature/Meteorite.java b/src/main/java/com/hbm/world/feature/Meteorite.java index c383eefa0..b561d4451 100644 --- a/src/main/java/com/hbm/world/feature/Meteorite.java +++ b/src/main/java/com/hbm/world/feature/Meteorite.java @@ -8,7 +8,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -121,11 +120,6 @@ public class Meteorite { generateSphere5x5(world, rand, x, y, z, list10); setBlock(world, x, y, z, ModBlocks.taint, 9, 2); return; - case 11: - // Atomic meteorite - - ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, safe ? ExplosionNukeSmall.PARAMS_SAFE : ExplosionNukeSmall.PARAMS_MEDIUM); - return; case 12: // Star Blaster world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 10F, !safe); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 81d7d7848..c764f300e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1010,6 +1010,7 @@ item.ammo_grenade_finned.name=40mm Granate (Geflügelt) item.ammo_grenade_he.name=40mm Granate (HE) item.ammo_grenade_incendiary.name=40mm Granate (Brand) item.ammo_grenade_kampf.name=40mm Rakete +item.ammo_grenade_leadburster.name=40mm Leadburster item.ammo_grenade_nuclear.name=40mm Granate (Привет) item.ammo_grenade_phosphorus.name=40mm Granate (WP) item.ammo_grenade_sleek.name=40mm Granate (IF-F&E) @@ -3942,6 +3943,8 @@ tile.lamp_tritium_blue_off.name=Blaue Tritiumlampe tile.lamp_tritium_blue_on.name=Blaue Tritiumlampe tile.lamp_tritium_green_off.name=Grüne Tritiumlampe tile.lamp_tritium_green_on.name=Grüne Tritiumlampe +tile.lantern.name=Laterne +tile.lantern_behemoth.name=Alte Laterne tile.launch_pad.name=Raketenabschussrampe tile.launch_table.name=Große Startrampe tile.leaves_layer.name=Totes Laub @@ -3950,6 +3953,8 @@ tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch +tile.machine_ashpit.name=Ashekasten +tile.machine_ashpit.desc=Sammelt Asche von Feuerbüchsen und Heizöfen tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik tile.machine_autocrafter.name=Automatische Werkbank diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9c2194b06..6e2e10e35 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -442,8 +442,8 @@ book_lore.beacon.page.5=light up red, otherwise it will light up green. Note tha book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) communication as well as for message broadcasting. book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") -book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, -book_lore.beacon.page.10=most commonly using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, most commonly +book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] cannery.f1=[ Press F1 for help ] @@ -914,6 +914,7 @@ desc.item.ammo.neu_fun=* Fun for the whole family! desc.item.ammo.neu_heavy_metal=* Heavy Metal desc.item.ammo.neu_homing=* Homing desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_leadburster=* Attaches to surfaces and sprays bullets desc.item.ammo.neu_less_bouncy=* Less bouncy desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite @@ -1103,7 +1104,8 @@ 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.NAWS=Kayarm Industries +gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- gun.make.RAYTHEON=Raytheon Missile Systems gun.make.REMINGTON=Remington Arms @@ -1127,6 +1129,7 @@ gun.name.benelli=Benelli M4 Super 90 gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern Boltgun +gun.name.congoLake=Congo Lake Pump-Action Grenade Launcher gun.name.cPython=Colt Python gun.name.cz53=CZ53 Personal Minigun gun.name.cz57=CZ57 Avenger Minigun @@ -1657,6 +1660,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket +item.ammo_grenade_leadburster.name=40mm Leadburster item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) @@ -1736,6 +1740,7 @@ item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard item.ams_lens.name=Stabilizer Lens item.ams_muzzle.name=Ray-Emission Muzzle item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analysis_tool.name=Analysis Tool item.analyzer.name=Analyzer item.anchor_remote.name=Recall Device item.antiknock.name=Tetraethyllead Antiknock Agent @@ -2597,6 +2602,7 @@ item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun +item.gun_congolake.name=Congo Lake item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon @@ -3476,6 +3482,9 @@ item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_ash.coal.name=Coal Ash +item.powder_ash.misc.name=Ash +item.powder_ash.wood.name=Wood Ash item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -4866,6 +4875,8 @@ tile.lamp_tritium_blue_off.name=Blue Tritium Lamp tile.lamp_tritium_blue_on.name=Blue Tritium Lamp tile.lamp_tritium_green_off.name=Green Tritium Lamp tile.lamp_tritium_green_on.name=Green Tritium Lamp +tile.lantern.name=Lantern +tile.lantern_behemoth.name=Old Lantern tile.launch_pad.name=Missile Launch Pad tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves @@ -4874,6 +4885,8 @@ tile.machine_amgen.name=Ambience Radiation Generator tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace tile.machine_armor_table.name=Armor Modification Table +tile.machine_ashpit.name=Ashpit +tile.machine_ashpit.desc=Collects ashes from fireboxes and heating ovens tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 7a3f443c8..570c2eb9a 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -8,7 +8,7 @@ achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利 achievement.breeding=反话 achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 achievement.bismuth=铋 -achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 +achievement.blastFurnace.desc=他们为制造探险者1号去打捞了一艘沉没的无畏舰。 achievement.blastFurnace=煤和铁 achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! achievement.bossCreeper=四条腿的行走核弹 @@ -350,7 +350,7 @@ book_lore.resignation_note.page.0=Management downsized our department again yest book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. +book_lore.memo_stocks.page.0=投资者关系 - $ $ 最新季度报告提供的数据存在一些明显差异。财务部门做出一些调整是谨慎的,所以不必有任何担忧。 book_lore.memo_schrab_gsa.name=内部备忘录 book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 @@ -377,13 +377,13 @@ book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no go book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_4.name=私人笔记 @@ -404,6 +404,20 @@ book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hil book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.beacon.name=信号信标说明书 +book_lore.beacon.author=Flim Flam工业 +book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标(版本1.3)!这本小册子将简要介绍信标的操作及其内部工作原理。 +book_lore.beacon.page.1=第1章:建筑$每个单元由四个主要部分组成:控制电路、灯笼、雾灯和容纳其他部分的外壳。有关主电路的详细说明,请 +book_lore.beacon.page.2=灯笼由聚碳酸酯外壳组成,外壳内有一个标准200mm的双色250瓦卤素灯泡,因此灯泡可以从我们的商店订购。 +book_lore.beacon.page.3=不建议使用第三方灯泡,因为我们无法确保安全操作。外壳由专门的镀锌不锈钢制成,具有耐用性。 +book_lore.beacon.page.4=第2章:灯笼$灯笼的主要用途是在恶劣的天气条件下提供照明,便于维护,以及状态指示器。如果开机自检(POST)失败,指示灯将 +book_lore.beacon.page.5=亮起红色,否则就会亮起绿色。请注意,颜色可能因更换灯泡的不同而有所不同。 +book_lore.beacon.page.6=第3章:雾灯$雾灯是信标的主要通信设备。该信标被设计用于对等(P2P)通信以及消息广播。 +book_lore.beacon.page.7=第4章:对等$有关通信的详细信息,请参阅通信手册。建立P2P连接的简要介绍如下:首先,信标必须给出“START connection”信号, +book_lore.beacon.page.8=是单一的长音。所有可用的对等端也应使用一个长音进行响应(由接近度指定的顺序,以及手册“响应连接”一节中概述的通信指南) +book_lore.beacon.page.9=一旦所需对等端做出响应,则给出“ACCEPT CONNECTION”信号,即两个长音,然后对等端也将用两个长音调进行响应。之后的所有通信都必须使用预先协商的信号来进行, +book_lore.beacon.page.10=最常用的是FAR-5M标准。如果没有协商标准,沟通将立即结束,起到“ping”的作用。如果通信继续,可以使用另一个长单音“END connection”结束连接。 +book_lore.beacon.page.11=第5章:保修$[页面故意留空] cannery.f1=[按F1键获取帮助] cannery.centrifuge=气体离心机 cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 @@ -567,6 +581,11 @@ chem.VIT_LIQUID=液态核废料玻璃化 chem.XENON=林德循环制氙 chem.XENON_OXY=增强林德循环制氙 chem.YELLOWCAKE=黄饼生产 +commands.satellite.no_satellite=未找到使用此频率的卫星! +commands.satellite.not_a_satellite=持有的物品不是卫星! +commands.satellite.satellite_descended=卫星成功降落。 +commands.satellite.satellite_orbited=卫星发射。 +commands.satellite.should_be_run_as_player=此命令应该由玩家运行! container.amsBase=AMS基座(装饰) container.amsEmitter=AMS发射极(装饰) container.amsLimiter=AMS稳能器(装饰) @@ -592,6 +611,7 @@ container.craneUnboxer=输送带解包机 container.crateDesh=Desh箱 container.crateIron=铁箱 container.crateSteel=钢箱 +container.crateTemplate=模板箱 container.crateTungsten=钨箱 container.crystallizer=矿物酸化器 container.cyclotron=回旋加速器 @@ -636,6 +656,7 @@ container.machineCompressor=压缩机 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 +container.machineElectrolyser=电解机 container.machineFEL=FEL container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 @@ -693,6 +714,7 @@ container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] +container.rttyCounter=红石无线项目计数器 container.rttyReceiver=无线红石接收器 container.rttySender=无线红石发射器 container.safe=保险箱 @@ -980,6 +1002,11 @@ entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 entity.hbm.entity_schrabnel.name=Schrabnel +excavator.crusher=粉碎开关 +excavator.drill=挖掘开关 +excavator.silktouch=精准采集开关 +excavator.veinminer=连锁挖矿开关 +excavator.walling=填充开关 flare.ignition=点火装置 flare.valve=流量阀 fluid.acid_fluid=酸 @@ -1007,6 +1034,7 @@ gun.make.CERIX=赛里克斯·马格努斯锻造世界 gun.make.COLT=柯尔特制造公司 gun.make.COMBINE=世界工会 gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=深岩银河 gun.make.ENZINGER=Enzinger工会 gun.make.EQUESTRIA=小马国导弹系统 gun.make.FLIMFLAM=FlimFlam“欺骗”工业 @@ -1107,7 +1135,7 @@ gun.name.tommy9=M1A1冲锋枪9毫米型 gun.name.tommy=M1A1冲锋枪 gun.name.topaz=重型火焰燃烧器 gun.name.uacCarbine=UAC-41卡宾枪 -gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDeagle=UAC-H54“火星猛禽”大容量手枪 gun.name.uacDMR=UAC-30 精确射手步枪 gun.name.uacLMG=UAC-49轻机枪 gun.name.uacPistol=UAC-B950 .45 标准型手枪 @@ -1221,6 +1249,7 @@ hbmfluid.heavyoil=重油 hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 +hbmfluid.helium4=氦-4 hbmfluid.hotcrackoil=热裂化油 hbmfluid.hotoil=热原油 hbmfluid.hotsteam=热蒸汽 @@ -1259,7 +1288,7 @@ hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 -hbmfluid.plasma_xm=氙-汞等离子体 +hbmfluid.plasma_xm=液氧-氦-4等离子体 hbmfluid.potassium_chloride=氯化钾溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 @@ -1272,6 +1301,9 @@ hbmfluid.sas3=三硫化Sa hbmfluid.schrabidic=Sa酸 hbmfluid.seedslurry=播种浆料 hbmfluid.smear=工业油 +hbmfluid.smoke=烟雾 +hbmfluid.smoke_leaded=含铅烟雾 +hbmfluid.smoke_poison=有毒烟雾 hbmfluid.solvent=有机溶剂 hbmfluid.sourgas=高硫天然气 hbmfluid.spentsteam=低压蒸汽 @@ -1392,6 +1424,7 @@ hbmmat.watzmud=毒泥浆 hbmmat.whitephosphorus=白磷 hbmmat.workersalloy=Desh hbmmat.wroughtiron=锻铁 +hbmmat.zirconium=锆 matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1540,6 +1573,9 @@ item.ammo_arty_phosgene.name=16英寸光气炮弹 item.ammo_arty_phosphorus.name=16英寸磷炮弹 item.ammo_arty_phosphorus_multi.name=16英寸多弹头磷炮弹 item.ammo_cell.name=能量单元 +item.ammo_coilgun.name=钨制线圈枪子弹 +item.ammo_coilgun_du.name=铀铁合金制线圈枪子弹 +item.ammo_coilgun_rubber.name=橡胶制线圈枪子弹 item.ammo_container.name=万能弹药盒 item.ammo_dart.name=塑料镖[凋零] item.ammo_dart_nerf.name=NERF 飞镖 @@ -2208,8 +2244,8 @@ item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 item.crystal_redstone.name=红石晶体 -item.crystal_schrabidium.name=低丰度Sa326晶体 -item.crystal_schraranium.name=Sa326晶体 +item.crystal_schrabidium.name=Sa326晶体 +item.crystal_schraranium.name=低丰度Sa326晶体 item.crystal_starmetal.name=星辉晶体 item.crystal_sulfur.name=硫晶体 item.crystal_thorium.name=钍晶体 @@ -2309,6 +2345,7 @@ item.early_explosive_lenses.desc=8个炸药透镜的组装,带有铝合金推 item.egg_balefire.name=野火蛋 item.egg_balefire.desc=什么样的鸟儿才会下带有放射性的蛋? item.egg_balefire_shard.name=野火蛋碎片 +item.egg_glyphid.name=Glyphid Egg item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 @@ -2316,6 +2353,10 @@ item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 +item.envsuit_boots.name=M1TTY环保套装靴子 +item.envsuit_helmet.name=M1TTY环保套装头盔 +item.envsuit_legs.name=M1TTY环保套装护腿 +item.envsuit_plate.name=M1TTY环保套装胸甲 item.euphemium_boots.name=Ep靴子 item.euphemium_capacitor.name=Ep电容 item.euphemium_capacitor.desc=允许被动分散累积的正能量。 @@ -2430,11 +2471,14 @@ item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 +item.glyphid_meat.name=异虫肉 +item.glyphid_meat_grilled.name=熟异虫肉 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑洞手榴弹 item.grenade_breach.name=破甲手榴弹 item.grenade_burst.name=挖掘手榴弹 +item.grenate_cats.name=猫猫手榴弹 item.grenade_cloud.name=一罐云 item.grenade_cluster.name=集束手榴弹 item.grenade_electric.name=闪电炸弹 @@ -2479,6 +2523,7 @@ item.gun_avenger.name=CZ57复仇者机枪 item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r +item.gun_benelli.name=Benelli自动喷枪(Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2492,6 +2537,7 @@ item.gun_calamity.name=希特勒的电锯 item.gun_calamity_ammo.name=.50BMG子弹 item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化学喷射器 +item.gun_coilgun.name=线圈枪 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 item.gun_dampfmaschine.name=绝对不是开玩笑的武器 @@ -2585,6 +2631,7 @@ item.gun_super_shotgun.name="超级"猎枪 item.gun_super_shotgun.desc=超级烂! item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汤姆森冲锋枪 +item.gun_uac_pistol.name=UAC .45手枪 item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 item.gun_uzi.name=Uzi冲锋枪 @@ -3066,6 +3113,9 @@ item.mysteryshovel.name=易碎锹 item.n2_charge.name=大型炸药 item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 +item.night_vision.name=夜视眼镜 +item.night_vision.description.item=提供夜视功能(需要全套电动设备) +item.night_vision.description.in_armor=%s(允许夜视) item.niter.name=硝石粉 item.no9.name=矿工头盔 item.nossy_hat.name=华丽的帽子 @@ -3838,6 +3888,9 @@ item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 item.siox.desc=使用石棉的力量逆转间皮瘤! item.siren_track.name=警报声轨 +item.sliding_blast_door_skin.0.name=滑动防爆门 皮肤:默认 +item.sliding_blast_door_skin.1.name=滑动防爆门 皮肤:变型1 +item.sliding_blast_door_skin.2.name=滑动防爆门 皮肤:变型2 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 item.solid_fuel_bf.name=固体燃料(野火) @@ -4421,6 +4474,7 @@ tile.charge_semtex.name=塞姆汀采矿炸药 tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 +tile.chimney_brick.name=烟囱 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4429,6 +4483,30 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.cm_block.alloy.name=高级合金机器外壳 +tile.cm_block.desh.name=Desh机器外壳 +tile.cm_block.steel.name=钢制机器外壳 +tile.cm_block.tcalloy.name=锝钢机器外壳 +tile.cm_circuit.aluminium.name=一级电路块 +tile.cm_circuit.copper.name=二级电路块 +tile.cm_circuit.gold.name=四级电路块 +tile.cm_circuit.red_copper.name=三级电路块 +tile.cm_circuit.schrabidium.name=五级电路块 +tile.cm_engine.bismuth.name=铋电机组 +tile.cm_engine.desh.name=DESH电机组 +tile.cm_engine.standard.name=电机组 +tile.cm_port.alloy.name=高级合金端口 +tile.cm_port.desh.name=Desh端口 +tile.cm_port.steel.name=钢制端口 +tile.cm_port.tcalloy.name=锝钢端口 +tile.cm_sheet.alloy.name=高级合金建筑板 +tile.cm_sheet.desh.name=Desh建筑板 +tile.cm_sheet.steel.name=钢建筑板 +tile.cm_sheet.tcalloy.name=锝钢建筑板 +tile.cm_tank.alloy.name=高级合金储罐 +tile.cm_tank.desh.name=Desh储罐 +tile.cm_tank.steel.name=钢制储罐 +tile.cm_tank.tcalloy.name=锝钢储罐 tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 @@ -4497,6 +4575,7 @@ tile.crate_lead.name=危险品补给箱 tile.crate_metal.name=机器补给箱 tile.crate_red.name=红色补给箱 tile.crate_steel.name=钢箱 +tile.crate_template.name=模板箱 tile.crate_tungsten.name=钨箱 tile.crate_weapon.name=武器补给箱 tile.crystal_hardened.name=硬化黑水晶 @@ -4595,11 +4674,14 @@ tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 tile.fluid_duct.name=通用流体管道 tile.fluid_duct_box.name=通用流体管道(方形) +tile.fluid_duct_exhaust.name=排气管 tile.fluid_duct_gauge.name=流量计管 tile.fluid_duct_gauge.desc=显示每个游戏刻在管网有多少流体移动的管道$由桶或罐连接的分离网络被视为一个共享网络。 tile.fluid_duct_neo.name=通用流体管道 tile.fluid_duct_paintable.name=可喷漆涂层通用流体导管 tile.fluid_duct_solid.name=带涂层的通用流体导管 +tile.fluid_switch.name=红石流体阀 +tile.fluid_valve.name=流体阀 tile.foam_layer.name=泡沫层 tile.foundry_basin.name=铸造盘 tile.foundry_channel.name=铸造浇道 @@ -4671,6 +4753,10 @@ tile.hadron_coil_neodymium.name=致密钕线圈 tile.hadron_coil_schrabidate.name=致密Sa酸铁线圈 tile.hadron_coil_schrabidium.name=密集Sa326线圈 tile.hadron_coil_starmetal.name=密集星辉线圈 +tile.hadron_cooler.name=粒子加速器冷却装置 +tile.hadron_cooler.desc=冷却功率:10$过冷阈值:10$冷却加成:+10%%$过冷惩罚:-25%% +tile.hadron_cooler_mk2.name=粒子加速器冷却装置-回文特制 +tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)2/225$最高惩罚:-90%% tile.hadron_core.name=粒子加速器核心组件 tile.hadron_diode.name=肖基特二极管 tile.hadron_plating.name=粒子加速器镀层 @@ -4769,6 +4855,7 @@ tile.machine_dineutronium_battery.name=Spark蓄电池 tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 +tile.machine_electrolyser.name=电解机 tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 tile.machine_fel.name=FEL自由电子激光器 @@ -4782,6 +4869,8 @@ tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 +tile.machine_industrial_boiler.name=工业锅炉 +tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率:ΔT*0.01 TU/T$不会爆炸 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 tile.machine_large_turbine.name=工业汽轮机 @@ -4988,6 +5077,8 @@ tile.pribris.name=RBMK石墨式反应堆残骸 tile.pribris_burning.name=燃烧的RBMK反应堆残骸 tile.pribris_digamma.name=发黑的RBMK反应堆残骸 tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 +tile.radio_torch_counter.name=红石无线项目计数器 +tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 tile.radio_torch_receiver.name=无线红石信号接收器 tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 tile.radio_torch_sender.name=无线红石信号发射器 @@ -5080,6 +5171,7 @@ tile.sellafield.4.name=地狱般的放射性熔融凝固物 tile.sellafield.5.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 +tile.sliding_blast_door.name=滑动防爆门 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 diff --git a/src/main/resources/assets/hbm/models/projectiles/leadburster.obj b/src/main/resources/assets/hbm/models/projectiles/leadburster.obj new file mode 100644 index 000000000..994ea3b72 --- /dev/null +++ b/src/main/resources/assets/hbm/models/projectiles/leadburster.obj @@ -0,0 +1,1671 @@ +# Blender v2.79 (sub 0) OBJ File: 'leadburster.blend' +# www.blender.org +o Based.001 +v -0.015017 4.297415 -1.162174 +v -0.015017 4.297415 1.146320 +v 0.576962 3.955635 1.146320 +v 0.576962 3.955635 -1.162174 +v 0.576962 3.272077 1.146320 +v 0.576962 3.272077 -1.162174 +v -0.015017 2.930297 1.146320 +v -0.015017 2.930298 -1.162174 +v -0.606996 3.272077 1.146320 +v -0.606996 3.272077 -1.162174 +v 0.489972 3.322300 1.146320 +v -0.015017 3.030745 1.146320 +v -0.606996 3.955635 1.146320 +v -0.606996 3.955635 -1.162174 +v 0.491289 3.321540 -1.162174 +v 0.491289 3.906172 -1.162174 +v -0.520006 3.322300 1.146320 +v -0.015017 3.030745 0.868875 +v -0.520006 3.322300 0.868875 +v -0.520006 3.905411 1.146320 +v -0.015017 4.196967 1.146320 +v 0.489972 3.905411 1.146320 +v 0.489972 3.322300 0.868875 +v 0.455764 3.342050 0.868875 +v -0.015017 3.070245 0.868875 +v 0.489972 3.905411 0.868875 +v -0.520006 3.905411 0.868875 +v -0.015017 4.196967 0.868875 +v 0.455764 3.885662 0.868875 +v 0.394149 3.850088 1.153171 +v 0.394149 3.377624 1.153171 +v -0.015017 4.157467 0.868875 +v -0.485798 3.885662 0.868875 +v -0.485798 3.342051 0.868875 +v -0.015017 4.086320 1.153171 +v -0.424183 3.850088 1.153171 +v -0.424183 3.377624 1.153171 +v -0.015017 3.141392 1.153171 +v -0.521323 3.321540 -1.162174 +v -0.521323 3.906172 -1.162174 +v -0.487987 3.886926 -0.844068 +v -0.487987 3.340786 -0.844068 +v -0.015017 4.198488 -1.162174 +v -0.015017 3.029224 -1.162174 +v -0.015017 4.159995 -0.844068 +v -0.015017 4.086784 -1.161144 +v -0.424585 3.850320 -1.161144 +v -0.015017 3.067717 -0.844068 +v 0.457954 3.340786 -0.844068 +v 0.457954 3.886926 -0.844068 +v 0.394551 3.850320 -1.161144 +v 0.394551 3.377392 -1.161144 +v -0.015017 3.140928 -1.161144 +v -0.424585 3.377392 -1.161144 +v 0.308285 1.821139 -0.740607 +v 0.305698 1.821139 0.741679 +v -0.308285 1.821139 0.740608 +v -0.305698 1.821139 -0.741679 +v -0.308285 2.128531 0.740608 +v -0.305698 2.128531 -0.741679 +v 0.305698 2.128531 0.741679 +v 0.308285 2.128531 -0.740607 +v 0.305698 3.115462 0.741679 +v -0.308285 3.099616 0.740608 +v -0.015017 2.930297 0.741119 +v -0.305698 2.128531 -1.038465 +v -0.305698 1.821139 -1.038465 +v -0.308285 1.821139 1.036965 +v 0.305698 1.821139 1.038465 +v 0.305698 2.128531 1.038465 +v -0.308285 2.128531 1.036965 +v 0.308285 1.821139 -1.036965 +v 0.308285 2.128531 -1.036965 +v -0.305698 3.098122 -0.741679 +v -0.305698 3.098122 -1.038465 +v -0.015017 2.930297 -1.037755 +v 0.308285 3.116956 -1.036965 +v 0.305698 3.115462 1.038465 +v 0.308285 3.116956 -0.740607 +v -0.015017 2.930297 -0.741172 +v -0.308285 3.099616 1.036965 +v -0.015017 2.930297 1.037682 +vt 0.639483 0.175662 +vt 0.663689 0.275699 +vt 0.639518 0.275817 +vt 0.511157 0.563979 +vt 0.552869 0.765382 +vt 0.511157 0.765383 +vt 0.808845 0.848002 +vt 0.753093 0.471432 +vt 0.808845 0.471432 +vt 0.753093 0.848002 +vt 0.697341 0.471432 +vt 0.697340 0.848002 +vt 0.641588 0.471432 +vt 0.976102 0.471432 +vt 0.920349 0.848002 +vt 0.920349 0.471432 +vt 0.641588 0.848002 +vt 0.693244 0.862192 +vt 0.645685 0.862192 +vt 0.864597 0.471432 +vt 0.864597 0.848002 +vt 0.749058 0.457457 +vt 0.972005 0.862192 +vt 0.924446 0.907449 +vt 0.924446 0.862192 +vt 0.812941 0.862192 +vt 0.976102 0.848002 +vt 0.748996 0.862192 +vt 0.701437 0.862192 +vt 0.868694 0.862192 +vt 0.804749 0.862192 +vt 0.757189 0.862192 +vt 0.693244 0.907449 +vt 0.647296 0.913030 +vt 0.645685 0.907450 +vt 0.701437 0.907450 +vt 0.916253 0.862192 +vt 0.868694 0.907450 +vt 0.757189 0.907450 +vt 0.860501 0.862192 +vt 0.812941 0.907450 +vt 0.747386 0.913030 +vt 0.705949 0.960482 +vt 0.703048 0.913030 +vt 0.804749 0.907450 +vt 0.758800 0.913030 +vt 0.858890 0.913030 +vt 0.814552 0.913030 +vt 0.970394 0.913030 +vt 0.926057 0.913030 +vt 0.748996 0.907450 +vt 0.914642 0.913030 +vt 0.870304 0.913030 +vt 0.537788 0.150505 +vt 0.557055 0.083760 +vt 0.614858 0.150505 +vt 0.873206 0.960482 +vt 0.691633 0.913030 +vt 0.650197 0.960482 +vt 0.800236 0.960482 +vt 0.761701 0.960482 +vt 0.817454 0.960482 +vt 0.928958 0.960482 +vt 0.916315 0.457457 +vt 0.870201 0.405282 +vt 0.914745 0.405282 +vt 0.757127 0.457457 +vt 0.804811 0.457457 +vt 0.693306 0.457457 +vt 0.860563 0.457457 +vt 0.924384 0.457457 +vt 0.972067 0.457457 +vt 0.858993 0.405282 +vt 0.817435 0.352535 +vt 0.856008 0.352536 +vt 0.647192 0.405282 +vt 0.691737 0.405282 +vt 0.803241 0.405282 +vt 0.812879 0.457457 +vt 0.925954 0.405282 +vt 0.970497 0.405282 +vt 0.701375 0.457457 +vt 0.747489 0.405282 +vt 0.537788 0.313976 +vt 0.557086 0.247179 +vt 0.595659 0.247206 +vt 0.967512 0.352535 +vt 0.705930 0.352536 +vt 0.744503 0.352536 +vt 0.911760 0.352535 +vt 0.688751 0.352536 +vt 0.761682 0.352536 +vt 0.800255 0.352536 +vt 0.636347 0.765383 +vt 0.615464 0.563979 +vt 0.636347 0.563979 +vt 0.573752 0.563979 +vt 0.615464 0.765383 +vt 0.573752 0.765382 +vt 0.688760 0.026976 +vt 0.767964 0.026976 +vt 0.754154 0.074815 +vt 0.552869 0.563979 +vt 0.863701 0.015410 +vt 0.838629 0.063823 +vt 0.838629 0.015410 +vt 0.663689 0.175544 +vt 0.688760 0.275699 +vt 0.863701 0.163978 +vt 0.838629 0.163978 +vt 0.688760 0.127131 +vt 0.663689 0.127131 +vt 0.663689 0.324042 +vt 0.688760 0.324042 +vt 0.942782 0.063823 +vt 0.863701 0.063823 +vt 0.838629 0.212321 +vt 0.863701 0.212321 +vt 0.814423 0.063941 +vt 0.814458 0.164096 +vt 0.929094 0.111240 +vt 0.688760 0.175544 +vt 0.769256 0.127131 +vt 0.769256 0.175544 +vt 0.944318 0.163978 +vt 0.944318 0.212321 +vt 0.929094 0.265060 +vt 0.754154 0.227860 +vt 0.767964 0.324042 +vt 0.972005 0.907450 +vt 0.916253 0.907450 +vt 0.860501 0.907450 +vt 0.744484 0.960482 +vt 0.803138 0.913030 +vt 0.595590 0.083760 +vt 0.595590 0.217249 +vt 0.557055 0.217249 +vt 0.911741 0.960482 +vt 0.688732 0.960482 +vt 0.855989 0.960482 +vt 0.967493 0.960482 +vt 0.868631 0.457457 +vt 0.645623 0.457457 +vt 0.814449 0.405282 +vt 0.758697 0.405282 +vt 0.702945 0.405282 +vt 0.614933 0.314029 +vt 0.595636 0.380826 +vt 0.557063 0.380800 +vt 0.928939 0.352535 +vt 0.873187 0.352535 +vt 0.650178 0.352536 +vt 0.942782 0.015410 +vt 0.942782 0.312477 +vt 0.863701 0.312477 +vt 0.767964 0.275699 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9773 0.0000 0.2118 +vn -0.9773 0.0000 0.2118 +vn 0.4887 -0.8464 0.2118 +vn 0.4887 0.8464 0.2118 +vn -0.4887 0.8464 0.2118 +vn -0.4887 -0.8464 0.2118 +vn 0.9946 0.0000 -0.1042 +vn -0.4903 0.8492 -0.1961 +vn -0.4973 0.8613 -0.1042 +vn -0.4973 -0.8613 -0.1042 +vn 0.4973 -0.8613 -0.1042 +vn 0.4973 0.8613 -0.1042 +vn -0.9946 0.0000 -0.1042 +vn -0.4903 -0.8492 -0.1961 +vn 0.9806 0.0000 -0.1961 +vn -0.9806 0.0000 -0.1961 +vn 0.4903 -0.8492 -0.1961 +vn 0.4903 0.8492 -0.1961 +vn -1.0000 -0.0000 -0.0017 +vn 0.0000 1.0000 -0.0000 +vn 0.0017 0.0000 -1.0000 +vn 1.0000 0.0000 0.0017 +vn -0.0024 0.0000 1.0000 +vn 0.0024 0.0000 -1.0000 +vn -0.0017 0.0000 1.0000 +s off +f 56/1/1 68/2/1 57/3/1 +f 58/4/1 56/5/1 57/6/1 +f 2/7/2 4/8/2 1/9/2 +f 3/10/3 6/11/3 4/8/3 +f 5/12/4 8/13/4 6/11/4 +f 8/14/5 9/15/5 10/16/5 +f 7/17/6 11/18/6 12/19/6 +f 9/15/7 14/20/7 10/16/7 +f 13/21/8 1/9/8 14/20/8 +f 6/11/9 16/22/9 4/8/9 +f 12/23/2 19/24/2 17/25/2 +f 13/21/6 21/26/6 2/7/6 +f 7/27/6 17/25/6 9/15/6 +f 5/12/6 22/28/6 11/29/6 +f 9/15/6 20/30/6 13/21/6 +f 3/10/6 21/31/6 22/32/6 +f 23/33/6 25/34/6 18/35/6 +f 22/28/7 23/36/7 11/29/7 +f 17/37/3 27/38/3 20/30/3 +f 11/18/8 18/35/8 12/19/8 +f 21/31/5 26/39/5 22/32/5 +f 20/40/4 28/41/4 21/26/4 +f 29/42/10 31/43/10 24/44/10 +f 28/45/6 29/46/6 26/39/6 +f 28/41/6 33/47/6 32/48/6 +f 19/24/6 25/49/6 34/50/6 +f 26/51/6 24/44/6 23/36/6 +f 27/38/6 34/52/6 33/53/6 +f 38/54/6 31/55/6 35/56/6 +f 34/52/11 36/57/11 33/53/11 +f 24/58/12 38/59/12 25/34/12 +f 29/46/13 35/60/13 30/61/13 +f 33/47/14 35/62/14 32/48/14 +f 25/49/15 37/63/15 34/50/15 +f 39/64/16 41/65/16 42/66/16 +f 14/20/9 39/64/9 10/16/9 +f 1/9/9 16/67/9 43/68/9 +f 8/13/9 15/69/9 6/11/9 +f 1/9/9 40/70/9 14/20/9 +f 8/14/9 39/71/9 44/72/9 +f 41/73/17 46/74/17 47/75/17 +f 15/69/18 48/76/18 49/77/18 +f 16/67/19 45/78/19 43/68/19 +f 43/79/20 41/73/20 40/70/20 +f 44/72/21 42/80/21 48/81/21 +f 15/82/22 50/83/22 16/22/22 +f 53/84/9 54/85/9 47/86/9 +f 42/80/23 53/87/23 48/81/23 +f 50/83/24 52/88/24 51/89/24 +f 41/65/25 54/90/25 42/66/25 +f 48/76/26 52/91/26 49/77/26 +f 45/78/27 51/92/27 46/93/27 +f 57/94/28 60/95/28 58/96/28 +f 62/97/29 59/98/29 61/99/29 +f 59/100/30 64/101/30 65/102/30 +f 55/103/31 61/99/31 56/5/31 +f 60/104/7 67/105/7 58/106/7 +f 69/107/32 71/108/32 68/2/32 +f 67/105/33 73/109/33 72/110/33 +f 61/111/3 69/107/3 56/112/3 +f 57/113/7 71/108/7 59/114/7 +f 60/104/7 75/115/7 66/116/7 +f 55/117/3 73/109/3 62/118/3 +f 58/119/1 72/110/1 55/120/1 +f 66/116/33 75/115/33 76/121/33 +f 70/122/3 63/123/3 78/124/3 +f 62/118/3 77/125/3 79/126/3 +f 62/118/34 79/126/34 80/127/34 +f 70/122/32 78/124/32 82/128/32 +f 71/108/7 64/129/7 59/114/7 +f 56/1/1 69/107/1 68/2/1 +f 58/4/1 55/103/1 56/5/1 +f 2/7/2 3/10/2 4/8/2 +f 3/10/3 5/12/3 6/11/3 +f 5/12/4 7/17/4 8/13/4 +f 8/14/5 7/27/5 9/15/5 +f 7/17/6 5/12/6 11/18/6 +f 9/15/7 13/21/7 14/20/7 +f 13/21/8 2/7/8 1/9/8 +f 6/11/9 15/82/9 16/22/9 +f 12/23/2 18/130/2 19/24/2 +f 13/21/6 20/40/6 21/26/6 +f 7/27/6 12/23/6 17/25/6 +f 5/12/6 3/10/6 22/28/6 +f 9/15/6 17/37/6 20/30/6 +f 3/10/6 2/7/6 21/31/6 +f 23/33/6 24/58/6 25/34/6 +f 22/28/7 26/51/7 23/36/7 +f 17/37/3 19/131/3 27/38/3 +f 11/18/8 23/33/8 18/35/8 +f 21/31/5 28/45/5 26/39/5 +f 20/40/4 27/132/4 28/41/4 +f 29/42/10 30/133/10 31/43/10 +f 28/45/6 32/134/6 29/46/6 +f 28/41/6 27/132/6 33/47/6 +f 19/24/6 18/130/6 25/49/6 +f 26/51/6 29/42/6 24/44/6 +f 27/38/6 19/131/6 34/52/6 +f 31/55/6 30/135/6 35/56/6 +f 35/56/6 36/136/6 37/137/6 +f 37/137/6 38/54/6 35/56/6 +f 34/52/11 37/138/11 36/57/11 +f 24/58/12 31/139/12 38/59/12 +f 29/46/13 32/134/13 35/60/13 +f 33/47/14 36/140/14 35/62/14 +f 25/49/15 38/141/15 37/63/15 +f 39/64/16 40/142/16 41/65/16 +f 14/20/9 40/142/9 39/64/9 +f 1/9/9 4/8/9 16/67/9 +f 8/13/9 44/143/9 15/69/9 +f 1/9/9 43/79/9 40/70/9 +f 8/14/9 10/16/9 39/71/9 +f 41/73/17 45/144/17 46/74/17 +f 15/69/18 44/143/18 48/76/18 +f 16/67/19 50/145/19 45/78/19 +f 43/79/20 45/144/20 41/73/20 +f 44/72/21 39/71/21 42/80/21 +f 15/82/22 49/146/22 50/83/22 +f 47/86/9 46/147/9 53/84/9 +f 46/147/9 51/148/9 53/84/9 +f 51/148/9 52/149/9 53/84/9 +f 42/80/23 54/150/23 53/87/23 +f 50/83/24 49/146/24 52/88/24 +f 41/65/25 47/151/25 54/90/25 +f 48/76/26 53/152/26 52/91/26 +f 45/78/27 50/145/27 51/92/27 +f 57/94/28 59/98/28 60/95/28 +f 62/97/29 60/95/29 59/98/29 +f 65/102/30 63/123/30 61/111/30 +f 61/111/30 59/100/30 65/102/30 +f 55/103/31 62/97/31 61/99/31 +f 60/104/7 66/116/7 67/105/7 +f 69/107/32 70/122/32 71/108/32 +f 67/105/33 66/116/33 73/109/33 +f 61/111/3 70/122/3 69/107/3 +f 57/113/7 68/2/7 71/108/7 +f 60/104/7 74/153/7 75/115/7 +f 55/117/3 72/110/3 73/109/3 +f 58/119/1 67/105/1 72/110/1 +f 77/125/33 73/109/33 76/121/33 +f 73/109/33 66/116/33 76/121/33 +f 70/122/3 61/111/3 63/123/3 +f 62/118/3 73/109/3 77/125/3 +f 80/127/34 74/154/34 60/155/34 +f 60/155/34 62/118/34 80/127/34 +f 82/128/32 81/156/32 71/108/32 +f 71/108/32 70/122/32 82/128/32 +f 71/108/7 81/156/7 64/129/7 +o Backlight +v -1.320666 5.883319 -0.497968 +v -0.984420 5.883904 -0.491350 +v -0.987140 5.302763 -0.301741 +v -1.323386 5.302178 -0.308359 +v -0.999171 5.303525 0.309437 +v -1.335417 5.302939 0.302818 +v -1.003886 5.885137 0.497557 +v -1.340132 5.884551 0.490938 +v -0.994770 6.243831 0.002643 +v -1.331016 6.243245 -0.003975 +v 0.021235 6.075014 -0.897532 +v 0.021235 6.075014 0.897532 +v 0.288019 5.707444 0.897532 +v 0.288019 5.707444 -0.897532 +v 0.103085 5.292618 0.897532 +v 0.103085 5.292618 -0.897532 +v -0.348631 5.245362 0.897532 +v -0.348631 5.245362 -0.897532 +v -0.615414 5.612932 0.897532 +v -0.615414 5.612932 -0.897532 +v -0.430481 6.027758 0.897532 +v -0.430481 6.027758 -0.897532 +v -0.868643 2.165176 0.689521 +v -1.105512 2.543972 0.689521 +v -1.105512 2.543972 -0.689521 +v -0.868643 2.165176 -0.689521 +v 1.105512 2.543972 -0.689521 +v 0.868643 2.165176 -0.689521 +v 0.868643 2.165176 0.689521 +v 1.199654 4.481366 0.689521 +v 1.199654 4.481366 -0.689521 +v 0.857499 6.338323 -0.688818 +v 0.857499 6.338323 0.688818 +v -1.094646 5.192699 -0.689521 +v 1.105512 2.543972 0.689521 +v -1.104364 2.657593 -0.454835 +v -1.095794 5.079079 -0.454835 +v -1.094646 5.192699 0.689521 +v -1.075323 6.338323 0.688818 +v -1.075323 6.338323 -0.688818 +v 0.443011 6.780780 -0.689521 +v -0.748752 6.780780 -0.689521 +v -0.748752 6.780780 0.689521 +v 0.443011 6.780780 0.689521 +v -1.095794 5.079079 0.454835 +v -1.560949 4.983612 -0.454835 +v -1.560949 4.983612 0.454835 +v -1.104364 2.657593 0.454835 +v -1.744408 4.759537 0.454835 +v -1.751578 2.847407 0.454835 +v -1.565712 2.659905 0.454835 +v -1.565712 2.659905 -0.454835 +v -1.751578 2.847407 -0.454835 +v -1.744408 4.759537 -0.454835 +v 0.902946 2.617983 -0.365337 +v 1.624929 2.505614 -0.365337 +v 1.571494 2.162292 -0.112895 +v 0.849512 2.274660 -0.112895 +v 1.591904 2.293429 0.295564 +v 0.869922 2.405798 0.295564 +v 1.657953 2.717800 0.295564 +v 0.935971 2.830168 0.295564 +v 1.678363 2.848937 -0.112895 +v 0.956381 2.961306 -0.112895 +v 0.675515 5.594983 -0.365337 +v 1.390851 5.743908 -0.365337 +v 1.461669 5.403746 -0.112895 +v 0.746333 5.254820 -0.112895 +v 1.434619 5.533676 0.295564 +v 0.719283 5.384750 0.295564 +v 1.347083 5.954140 0.295564 +v 0.631746 5.805215 0.295564 +v 1.320033 6.084071 -0.112895 +v 0.604696 5.935145 -0.112895 +v 0.804842 4.824814 -0.365337 +v 1.529542 4.918053 -0.365337 +v 1.573880 4.573438 -0.112895 +v 0.849180 4.480198 -0.112895 +v 1.556945 4.705069 0.295564 +v 0.832244 4.611830 0.295564 +v 1.502140 5.131038 0.295564 +v 0.777439 5.037798 0.295564 +v 1.485204 5.262669 -0.112895 +v 0.760504 5.169430 -0.112895 +v 0.920711 4.059648 -0.365337 +v 1.648066 4.129222 -0.365337 +v 1.681150 3.783345 -0.112895 +v 0.953796 3.713770 -0.112895 +v 1.668513 3.915458 0.295564 +v 0.941159 3.845884 0.295564 +v 1.627618 4.342986 0.295564 +v 0.900264 4.273412 0.295564 +v 1.614981 4.475100 -0.112895 +v 0.887627 4.405526 -0.112895 +v 0.945849 3.338301 -0.365337 +v 1.676468 3.329257 -0.365337 +v 1.672167 2.981827 -0.112895 +v 0.941548 2.990872 -0.112895 +v 1.673810 3.114533 0.295564 +v 0.943191 3.123578 0.295564 +v 1.679126 3.543980 0.295564 +v 0.948508 3.553025 0.295564 +v 1.680769 3.676687 -0.112895 +v 0.950150 3.685731 -0.112895 +vt 0.734577 0.712371 +vt 0.689031 0.795268 +vt 0.706490 0.693161 +vt 0.804411 0.303943 +vt 0.758865 0.386840 +vt 0.776323 0.284733 +vt 0.786953 0.406050 +vt 0.741407 0.488948 +vt 0.752036 0.610264 +vt 0.723948 0.591054 +vt 0.704915 0.385185 +vt 0.689031 0.282055 +vt 0.633210 0.445087 +vt 0.609124 0.254698 +vt 0.633210 0.254698 +vt 0.609124 0.445087 +vt 0.585038 0.254698 +vt 0.729554 0.445087 +vt 0.705468 0.254698 +vt 0.729554 0.254698 +vt 0.705468 0.445087 +vt 0.681382 0.254698 +vt 0.729554 0.528523 +vt 0.693425 0.486805 +vt 0.681382 0.445087 +vt 0.657296 0.254698 +vt 0.657296 0.445087 +vt 0.693425 0.212980 +vt 0.705468 0.171262 +vt 0.174122 0.039077 +vt 0.146848 0.207453 +vt 0.146848 0.039077 +vt 0.137452 0.253472 +vt 0.120204 0.496470 +vt 0.115056 0.284604 +vt 0.116729 0.523112 +vt 0.010671 0.691488 +vt 0.010671 0.523112 +vt 0.262417 0.523112 +vt 0.377689 0.691402 +vt 0.262417 0.691488 +vt 0.144003 0.523112 +vt 0.144003 0.691488 +vt 0.335824 0.207453 +vt 0.181059 0.178798 +vt 0.328887 0.178799 +vt 0.335823 0.039077 +vt 0.405772 0.207367 +vt 0.298993 0.239102 +vt 0.374633 0.470381 +vt 0.487456 0.523112 +vt 0.414701 0.691488 +vt 0.414701 0.523112 +vt 0.368906 0.234669 +vt 0.400385 0.417212 +vt 0.377689 0.523198 +vt 0.405771 0.039163 +vt 0.439344 0.207453 +vt 0.120204 0.718130 +vt 0.137452 0.961127 +vt 0.115056 0.929996 +vt 0.116729 0.691488 +vt 0.374633 0.744218 +vt 0.298993 0.975498 +vt 0.400385 0.797388 +vt 0.368906 0.979930 +vt 0.347149 0.651237 +vt 0.318160 0.540170 +vt 0.347149 0.540170 +vt 0.328887 0.067731 +vt 0.174122 0.207453 +vt 0.181059 0.067731 +vt 0.300481 0.540170 +vt 0.183748 0.540170 +vt 0.172309 0.461061 +vt 0.183748 0.651237 +vt 0.300481 0.651237 +vt 0.172308 0.730346 +vt 0.167631 0.540170 +vt 0.318160 0.651237 +vt 0.139466 0.540170 +vt 0.167631 0.651237 +vt 0.139466 0.651237 +vt 0.296233 0.330392 +vt 0.392444 0.443495 +vt 0.296233 0.443495 +vt 0.392444 0.556598 +vt 0.296233 0.556598 +vt 0.296233 0.669700 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.018569 0.175984 +vt 0.392444 0.782803 +vt 0.296233 0.782803 +vt 0.296233 0.895906 +vt 0.006900 0.330392 +vt 0.103083 0.443589 +vt 0.006873 0.443495 +vt 0.006845 0.556598 +vt 0.103028 0.669794 +vt 0.006818 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.006790 0.782803 +vt 0.103001 0.782897 +vt 0.006763 0.895906 +vt 0.488888 0.330392 +vt 0.392677 0.443495 +vt 0.392677 0.330393 +vt 0.488888 0.443495 +vt 0.392677 0.556598 +vt 0.488888 0.556598 +vt 0.392677 0.669700 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.488888 0.669700 +vt 0.392677 0.782803 +vt 0.488888 0.782803 +vt 0.392677 0.895906 +vt 0.296000 0.330393 +vt 0.199789 0.443496 +vt 0.199789 0.330392 +vt 0.295999 0.443495 +vt 0.199789 0.556598 +vt 0.295999 0.669701 +vt 0.199789 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.199789 0.782803 +vt 0.296000 0.782803 +vt 0.199789 0.895906 +vt 0.103344 0.330393 +vt 0.199555 0.443495 +vt 0.103344 0.443495 +vt 0.103344 0.556598 +vt 0.199555 0.669701 +vt 0.103344 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.199555 0.782803 +vt 0.103344 0.782803 +vt 0.199555 0.895906 +vt 0.103344 0.895906 +vt 0.717118 0.814478 +vt 0.769494 0.508157 +vt 0.733164 0.219973 +vt 0.585038 0.445087 +vt 0.741597 0.486805 +vt 0.705468 0.528523 +vt 0.729554 0.171262 +vt 0.741597 0.212980 +vt 0.487456 0.691488 +vt 0.396853 0.271873 +vt 0.439343 0.039077 +vt 0.396853 0.942726 +vt 0.172344 0.517391 +vt 0.320137 0.461124 +vt 0.314202 0.517873 +vt 0.314202 0.673534 +vt 0.320137 0.730284 +vt 0.172344 0.674016 +vt 0.392444 0.330393 +vt 0.392444 0.669700 +vt 0.001075 0.068302 +vt 0.046875 0.001750 +vt 0.392444 0.895906 +vt 0.103111 0.330486 +vt 0.103056 0.556692 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.102974 0.895999 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.488888 0.895906 +vt 0.296000 0.556598 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.296000 0.895906 +vt 0.199555 0.330392 +vt 0.199555 0.556598 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vn 0.0192 -0.3102 -0.9505 +vn 0.0017 -1.0000 0.0013 +vn -0.0182 -0.3078 0.9513 +vn -0.0130 0.8097 0.5866 +vn 0.0102 0.8083 -0.5887 +vn -0.9998 -0.0017 -0.0197 +vn 0.8093 0.5874 0.0000 +vn 0.9133 -0.4072 0.0000 +vn 0.1040 -0.9946 0.0000 +vn -0.8093 -0.5874 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.9133 0.4072 0.0000 +vn -0.1040 0.9946 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8477 -0.5305 -0.0013 +vn -0.8479 -0.5302 0.0000 +vn 0.0012 -0.0007 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.9834 0.1812 0.0000 +vn 0.9835 0.1807 -0.0002 +vn 0.0012 0.0005 -1.0000 +vn 0.9988 -0.0485 0.0000 +vn -1.0000 0.0003 -0.0029 +vn -1.0000 0.0051 -0.0032 +vn -1.0000 0.0044 -0.0018 +vn -0.9998 0.0177 -0.0031 +vn -0.9999 0.0164 0.0002 +vn -0.9999 0.0169 0.0032 +vn 0.0029 0.0020 -1.0000 +vn 0.0002 -0.0001 -1.0000 +vn 0.0001 0.0004 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0005 -0.0015 -1.0000 +vn 0.0000 -0.0016 -1.0000 +vn -0.0005 -0.0016 -1.0000 +vn 0.7297 0.6838 0.0005 +vn 0.7298 0.6837 0.0000 +vn 0.7296 0.6839 -0.0004 +vn -0.8045 0.5940 -0.0004 +vn -0.8046 0.5938 0.0000 +vn -0.8044 0.5941 0.0004 +vn 0.0007 -0.0011 1.0000 +vn 0.8479 -0.5302 0.0000 +vn 0.0013 -0.0000 1.0000 +vn -0.0001 -0.0001 1.0000 +vn 0.0033 0.0010 1.0000 +vn 0.0001 0.0004 1.0000 +vn 0.0000 -0.0016 1.0000 +vn 0.0005 -0.0016 1.0000 +vn -0.0005 -0.0014 1.0000 +vn -0.2007 0.9797 -0.0015 +vn -0.2010 0.9796 0.0000 +vn -0.2010 0.9796 -0.0016 +vn -0.9999 0.0098 0.0032 +vn -0.9999 0.0108 0.0014 +vn -1.0000 0.0092 -0.0031 +vn -0.9999 0.0102 -0.0013 +vn -1.0000 0.0086 -0.0004 +vn -0.9999 0.0103 0.0013 +vn -1.0000 0.0009 -0.0030 +vn -1.0000 0.0039 -0.0014 +vn -1.0000 0.0054 -0.0029 +vn -0.0007 0.0014 1.0000 +vn -0.0013 0.0009 -1.0000 +vn -1.0000 0.0037 0.0000 +vn -0.7102 -0.7040 0.0000 +vn -0.7737 0.6335 0.0000 +vn -0.0056 -1.0000 -0.0014 +vn -0.0050 -1.0000 0.0000 +vn -0.0058 -1.0000 0.0013 +vn -0.0904 -0.5808 -0.8090 +vn -0.1463 -0.9397 0.3090 +vn 0.9881 -0.1538 -0.0000 +vn 0.1463 0.9397 0.3090 +vn 0.0904 0.5808 -0.8090 +vn 0.1198 -0.5754 -0.8090 +vn 0.1938 -0.9311 0.3090 +vn 0.9790 0.2038 0.0000 +vn -0.1938 0.9311 0.3090 +vn -0.1198 0.5754 -0.8090 +vn 0.0750 -0.5830 -0.8090 +vn 0.1214 -0.9433 0.3090 +vn 0.9918 0.1276 -0.0000 +vn -0.1214 0.9433 0.3090 +vn -0.0750 0.5830 -0.8090 +vn 0.0560 -0.5851 -0.8090 +vn 0.0906 -0.9467 0.3090 +vn 0.9955 0.0952 0.0000 +vn -0.0906 0.9467 0.3090 +vn -0.0560 0.5851 -0.8090 +vn -0.0073 -0.5877 -0.8090 +vn -0.0118 -0.9510 0.3090 +vn 0.9999 -0.0124 0.0000 +vn 0.0118 0.9510 0.3090 +vn 0.0073 0.5877 -0.8090 +vn -0.8479 -0.5302 -0.0013 +vn -0.8473 -0.5311 0.0008 +vn 0.0013 -0.0001 -1.0000 +vn 0.9835 0.1812 0.0005 +vn 0.9835 0.1810 -0.0005 +vn 0.0005 0.0013 -1.0000 +vn 0.0031 -0.0010 -1.0000 +vn -1.0000 0.0009 0.0029 +vn -1.0000 0.0052 0.0037 +vn -1.0000 0.0052 0.0019 +vn -0.9998 0.0196 -0.0016 +vn -0.9999 0.0169 -0.0005 +vn -0.9999 0.0167 0.0005 +vn 0.0001 0.0038 -1.0000 +vn 0.0004 0.0002 -1.0000 +vn -0.0005 0.0004 -1.0000 +vn 0.0004 -0.0013 -1.0000 +vn 0.7294 0.6840 0.0000 +vn -0.8043 0.5942 -0.0000 +vn 0.0013 -0.0003 1.0000 +vn 0.0022 -0.0023 1.0000 +vn 0.0010 0.0009 1.0000 +vn -0.0005 0.0005 1.0000 +vn -0.0000 0.0001 1.0000 +vn 0.0013 0.0035 1.0000 +vn 0.0005 -0.0015 1.0000 +vn -0.1997 0.9799 -0.0008 +vn -1.0000 0.0087 0.0029 +vn -0.9999 0.0103 -0.0016 +vn -0.9999 0.0107 -0.0012 +vn -1.0000 0.0094 -0.0014 +vn -0.9999 0.0100 0.0015 +vn -1.0000 0.0007 0.0016 +vn -1.0000 0.0020 0.0032 +vn -1.0000 0.0051 0.0033 +vn -0.0015 0.0004 1.0000 +vn -0.0001 0.0015 1.0000 +vn -0.0014 -0.0007 1.0000 +vn -0.0015 -0.0003 1.0000 +vn 0.0015 0.0005 -1.0000 +vn 0.0008 0.0013 -1.0000 +vn -0.0003 0.0015 -1.0000 +vn -0.0015 0.0002 -1.0000 +vn -0.0065 -1.0000 -0.0003 +s off +f 84/157/35 86/158/35 83/159/35 +f 85/160/36 88/161/36 86/162/36 +f 87/163/37 90/164/37 88/161/37 +f 90/164/38 91/165/38 92/166/38 +f 91/165/39 83/159/39 92/166/39 +f 86/162/40 90/167/40 92/168/40 +f 94/169/41 96/170/41 93/171/41 +f 95/172/42 98/173/42 96/170/42 +f 97/174/43 100/175/43 98/176/43 +f 99/177/44 102/178/44 100/175/44 +f 94/179/45 101/180/45 97/174/45 +f 101/181/46 104/182/46 102/178/46 +f 103/183/47 93/171/47 104/182/47 +f 100/175/48 102/184/48 104/185/48 +f 106/186/49 108/187/50 105/188/50 +f 107/189/51 110/190/48 108/191/48 +f 110/192/52 105/193/52 108/194/52 +f 113/195/53 115/196/54 112/197/53 +f 107/189/55 113/195/48 109/198/48 +f 109/198/56 112/197/56 117/199/56 +f 116/200/57 118/201/58 119/202/59 +f 120/203/60 122/204/61 116/200/62 +f 116/205/63 114/206/64 113/195/65 +f 124/207/66 126/208/66 123/209/66 +f 122/210/67 123/211/68 114/206/69 +f 114/212/70 126/208/71 115/196/72 +f 121/213/73 124/214/74 122/204/75 +f 111/215/45 106/216/76 105/217/45 +f 110/192/77 117/199/77 111/218/77 +f 112/197/45 106/216/78 117/199/45 +f 115/219/79 120/220/80 112/197/81 +f 126/221/82 121/222/83 115/219/84 +f 119/223/85 129/224/86 127/225/87 +f 116/200/88 127/226/89 120/203/90 +f 106/186/91 118/201/92 107/227/93 +f 120/203/94 130/228/95 106/186/96 +f 131/229/45 132/230/45 130/231/97 +f 135/232/48 136/233/48 118/234/98 +f 132/230/99 136/233/99 135/232/99 +f 135/232/100 133/235/100 132/230/100 +f 128/236/101 131/229/101 129/224/101 +f 130/237/102 134/238/103 118/239/104 +f 137/240/105 139/241/105 140/242/105 +f 140/242/106 141/243/106 142/244/106 +f 141/243/45 144/245/45 142/244/45 +f 145/246/107 143/247/107 141/248/107 +f 144/245/108 145/249/108 146/250/108 +f 145/249/109 137/251/109 146/250/109 +f 147/252/110 149/253/110 150/254/110 +f 149/253/111 152/255/111 150/254/111 +f 152/255/45 153/256/45 154/257/45 +f 148/258/112 155/259/112 153/260/112 +f 153/256/113 156/261/113 154/257/113 +f 155/262/114 147/263/114 156/261/114 +f 158/264/115 160/265/115 157/266/115 +f 159/267/116 162/268/116 160/265/116 +f 161/269/45 164/270/45 162/268/45 +f 158/271/117 165/272/117 163/273/117 +f 163/274/118 166/275/118 164/270/118 +f 165/276/119 157/277/119 166/275/119 +f 168/278/120 170/279/120 167/280/120 +f 169/281/121 172/282/121 170/279/121 +f 172/282/45 173/283/45 174/284/45 +f 168/285/122 175/286/122 173/287/122 +f 173/283/123 176/288/123 174/284/123 +f 175/289/124 167/290/124 176/288/124 +f 177/291/125 179/292/125 180/293/125 +f 179/292/126 182/294/126 180/293/126 +f 182/294/45 183/295/45 184/296/45 +f 178/297/127 185/298/127 183/299/127 +f 184/296/128 185/300/128 186/301/128 +f 186/301/129 178/302/129 177/303/129 +f 84/157/35 85/304/35 86/158/35 +f 85/160/36 87/163/36 88/161/36 +f 87/163/37 89/305/37 90/164/37 +f 90/164/38 89/305/38 91/165/38 +f 91/165/39 84/157/39 83/159/39 +f 92/168/40 83/306/40 86/162/40 +f 86/162/40 88/161/40 90/167/40 +f 94/169/41 95/172/41 96/170/41 +f 95/172/42 97/307/42 98/173/42 +f 97/174/43 99/177/43 100/175/43 +f 99/177/44 101/181/44 102/178/44 +f 97/174/45 95/308/45 94/179/45 +f 94/179/45 103/309/45 101/180/45 +f 101/180/45 99/177/45 97/174/45 +f 101/181/46 103/183/46 104/182/46 +f 103/183/47 94/169/47 93/171/47 +f 104/185/48 93/310/48 96/311/48 +f 96/311/48 98/176/48 104/185/48 +f 98/176/48 100/175/48 104/185/48 +f 106/186/130 107/227/131 108/187/50 +f 107/189/132 109/198/48 110/190/48 +f 110/192/52 111/218/52 105/193/52 +f 113/195/53 114/212/133 115/196/134 +f 107/189/135 116/205/136 113/195/48 +f 109/198/56 113/195/56 112/197/56 +f 116/200/137 107/227/138 118/201/139 +f 120/203/140 121/213/141 122/204/142 +f 116/205/143 122/210/144 114/206/145 +f 124/207/66 125/312/66 126/208/66 +f 122/210/146 124/313/68 123/211/68 +f 114/212/147 123/209/71 126/208/71 +f 121/213/148 125/314/74 124/214/74 +f 111/215/45 117/199/45 106/216/149 +f 110/192/77 109/198/77 117/199/77 +f 112/197/45 120/220/150 106/216/151 +f 115/219/152 121/222/153 120/220/154 +f 126/221/82 125/315/82 121/222/155 +f 119/223/156 128/236/86 129/224/86 +f 116/200/157 119/202/92 127/226/158 +f 106/186/159 130/228/160 118/201/161 +f 120/203/162 127/226/163 130/228/164 +f 133/316/45 130/231/165 132/230/45 +f 130/231/166 127/317/167 131/229/45 +f 127/317/168 129/318/45 131/229/45 +f 128/319/48 119/320/169 136/233/48 +f 119/320/170 118/234/171 136/233/48 +f 118/234/172 134/321/48 135/232/48 +f 132/230/99 131/229/99 136/233/99 +f 135/232/100 134/238/100 133/235/100 +f 128/236/101 136/233/101 131/229/101 +f 130/237/173 133/235/103 134/238/103 +f 137/240/105 138/322/105 139/241/105 +f 140/242/106 139/241/106 141/243/106 +f 141/243/45 143/323/45 144/245/45 +f 141/248/107 139/324/107 138/325/107 +f 138/325/107 145/246/107 141/248/107 +f 144/245/108 143/323/108 145/249/108 +f 145/249/109 138/326/109 137/251/109 +f 147/252/110 148/327/110 149/253/110 +f 149/253/111 151/328/111 152/255/111 +f 152/255/45 151/328/45 153/256/45 +f 151/329/112 149/330/112 153/260/112 +f 149/330/112 148/258/112 153/260/112 +f 153/256/113 155/262/113 156/261/113 +f 155/262/114 148/331/114 147/263/114 +f 158/264/115 159/267/115 160/265/115 +f 159/267/116 161/269/116 162/268/116 +f 161/269/45 163/274/45 164/270/45 +f 161/332/117 159/333/117 163/273/117 +f 159/333/117 158/271/117 163/273/117 +f 163/274/118 165/276/118 166/275/118 +f 165/276/119 158/334/119 157/277/119 +f 168/278/120 169/281/120 170/279/120 +f 169/281/121 171/335/121 172/282/121 +f 172/282/45 171/335/45 173/283/45 +f 171/336/122 169/337/122 173/287/122 +f 169/337/122 168/285/122 173/287/122 +f 173/283/123 175/289/123 176/288/123 +f 175/289/124 168/338/124 167/290/124 +f 177/291/125 178/339/125 179/292/125 +f 179/292/126 181/340/126 182/294/126 +f 182/294/45 181/340/45 183/295/45 +f 181/341/127 179/342/127 183/299/127 +f 179/342/127 178/297/127 183/299/127 +f 184/296/128 183/295/128 185/300/128 +f 186/301/129 185/300/129 178/302/129 +o Based +v -0.476324 0.117178 -1.155649 +v -0.476324 0.976271 -1.155649 +v 0.480355 0.976271 -1.153979 +v 0.480355 0.117178 -1.153979 +v 1.155649 0.976271 -0.476324 +v 1.155649 0.117178 -0.476324 +v 1.153979 0.976271 0.480355 +v 1.153979 0.117178 0.480355 +v 0.476324 0.976271 1.155649 +v 0.476324 0.117178 1.155649 +v -0.480355 0.976271 1.153980 +v -0.480355 0.117178 1.153980 +v -1.155649 0.976271 0.476324 +v -1.155649 0.117178 0.476324 +v 0.795350 1.043438 0.331072 +v 0.328294 1.043438 0.796501 +v -1.153980 0.976271 -0.480355 +v -1.153980 0.117178 -0.480355 +v 0.360808 0.117178 0.875387 +v 0.874122 0.117178 0.363862 +v -0.328294 1.043438 -0.796501 +v -0.795350 1.043438 -0.331072 +v -1.093998 1.088246 -0.455387 +v -0.451566 1.088246 -1.095581 +v -0.796501 1.043438 0.328294 +v 0.331072 1.043438 -0.795350 +v 0.796501 1.043438 -0.328294 +v -0.331072 1.043438 0.795350 +v 0.451566 1.088246 1.095581 +v 1.093998 1.088246 0.455387 +v 1.093998 1.310994 0.455387 +v 0.451566 1.310995 1.095581 +v -0.455387 1.088246 1.093998 +v -1.095581 1.088246 0.451566 +v 0.455387 1.088246 -1.093998 +v 1.095581 1.088246 -0.451566 +v -0.451566 1.310994 -1.095581 +v -1.093998 1.310994 -0.455387 +v -0.668254 1.435045 -0.278167 +v -0.275833 1.435045 -0.669221 +v 0.455387 1.310994 -1.093998 +v 1.095581 1.310994 -0.451566 +v -1.095581 1.310994 0.451566 +v -0.455387 1.310995 1.093998 +v -0.278167 1.435045 0.668254 +v 0.275833 1.435045 0.669221 +v 0.436165 1.536411 1.058215 +v -0.439856 1.536411 1.056686 +v -0.669221 1.435045 0.275833 +v 0.668254 1.435045 0.278168 +v 0.278167 1.435045 -0.668254 +v 0.669221 1.435045 -0.275833 +v 1.056686 1.536411 0.439856 +v 1.058215 1.536411 -0.436165 +v 1.058215 1.707899 -0.436165 +v 1.056686 1.707899 0.439856 +v -0.436165 1.536411 -1.058215 +v 0.439856 1.536411 -1.056686 +v -1.056686 1.536411 -0.439856 +v -1.058215 1.536411 0.436165 +v -1.056686 1.707899 -0.439856 +v -1.058215 1.707899 0.436165 +v -0.741679 1.821139 0.305698 +v -0.740608 1.821139 -0.308285 +v -0.436165 1.707899 -1.058215 +v 0.439856 1.707899 -1.056686 +v -0.439856 1.707899 1.056686 +v 0.436165 1.707899 1.058215 +v 0.308285 1.821139 -0.740607 +v 0.305698 1.821139 0.741679 +v 0.740607 1.821139 0.308285 +v 0.741679 1.821139 -0.305698 +v -0.308285 1.821139 0.740608 +v -0.305698 1.821139 -0.741679 +v -0.598298 -0.513317 0.246601 +v -0.597434 -0.513317 -0.248688 +v -0.597434 -1.343910 -0.248688 +v -0.598298 -1.343910 0.246601 +v -0.874122 0.117178 -0.363862 +v -0.875387 0.117178 0.360808 +v 0.875387 0.117178 -0.360808 +v 0.363862 0.117178 -0.874122 +v -0.363862 0.117178 0.874122 +v -0.360808 0.117178 -0.875387 +v -0.248688 -1.343910 0.597434 +v -0.975065 -1.373442 0.401893 +v -0.260556 -1.373442 0.625947 +v 0.246601 -0.513317 0.598298 +v -0.248688 -0.513317 0.597434 +v 0.246601 -1.343910 0.598298 +v 0.598298 -0.513317 -0.246601 +v 0.597434 -0.513317 0.248688 +v 0.597434 -1.343910 0.248688 +v 0.598298 -1.343910 -0.246601 +v -0.246601 -0.513317 -0.598298 +v 0.248688 -0.513317 -0.597434 +v 0.248688 -1.343910 -0.597434 +v -0.246601 -1.343910 -0.598298 +v -0.401893 -1.373442 -0.975065 +v 0.260556 -1.373442 -0.625947 +v 0.026543 -3.162143 -0.063765 +v -0.026320 -3.162143 -0.063857 +v 0.401893 -1.373442 0.975065 +v 0.625947 -1.373442 0.260556 +v 0.975065 -1.373442 -0.401893 +v -0.625947 -1.373442 -0.260556 +v -0.063765 -3.162143 -0.026543 +v 0.063857 -3.162143 -0.026320 +v 0.063765 -3.162143 0.026543 +v 0.026320 -3.162143 0.063857 +v -0.026543 -3.162143 0.063765 +v -0.063857 -3.162143 0.026320 +v 0.875387 -0.493910 -0.360808 +v 0.363862 -0.493910 -0.874122 +v 0.360808 -0.493910 0.875387 +v 0.874122 -0.493910 0.363862 +v -0.875387 -0.493910 0.360808 +v -0.363862 -0.493910 0.874122 +v -0.360808 -0.493910 -0.875387 +v -0.874122 -0.493910 -0.363862 +vt 0.872281 0.534636 +vt 0.822605 0.440198 +vt 0.875179 0.442976 +vt 0.820879 0.535179 +vt 0.768775 0.440298 +vt 0.767922 0.537229 +vt 0.714298 0.442725 +vt 0.714505 0.541417 +vt 0.658847 0.447191 +vt 0.660811 0.548715 +vt 0.600787 0.455120 +vt 0.606527 0.561669 +vt 0.537111 0.472517 +vt 0.661796 0.599848 +vt 0.969815 0.546227 +vt 0.925836 0.449611 +vt 0.974197 0.459371 +vt 0.921409 0.536355 +vt 0.706920 0.410802 +vt 0.870965 0.582319 +vt 0.918532 0.621801 +vt 0.869895 0.625279 +vt 0.919468 0.579715 +vt 0.767151 0.587629 +vt 0.609953 0.614303 +vt 0.819840 0.584762 +vt 0.714307 0.592268 +vt 0.546180 0.587418 +vt 0.609488 0.614399 +vt 0.561893 0.633359 +vt 0.713660 0.637878 +vt 0.663905 0.672730 +vt 0.662170 0.645110 +vt 0.556909 0.669718 +vt 0.819372 0.584716 +vt 0.766099 0.632876 +vt 0.961927 0.579016 +vt 0.661318 0.599870 +vt 0.611495 0.657113 +vt 0.766676 0.587587 +vt 0.870515 0.582267 +vt 0.818794 0.629251 +vt 0.919502 0.647338 +vt 0.870564 0.722266 +vt 0.870950 0.652394 +vt 0.767039 0.661357 +vt 0.970789 0.617301 +vt 0.613830 0.683727 +vt 0.714777 0.666196 +vt 0.819852 0.657475 +vt 0.558526 0.700429 +vt 0.663565 0.740854 +vt 0.614306 0.808200 +vt 0.616028 0.750600 +vt 0.574708 0.758346 +vt 0.714777 0.731739 +vt 0.664222 0.740881 +vt 0.767606 0.738395 +vt 0.962072 0.696043 +vt 0.919547 0.710030 +vt 0.766904 0.738360 +vt 0.715448 0.731786 +vt 0.869882 0.722252 +vt 0.819198 0.730314 +vt 0.765363 0.804002 +vt 0.712805 0.821896 +vt 0.712657 0.800660 +vt 0.818059 0.798447 +vt 0.922396 0.776157 +vt 0.870630 0.789375 +vt 0.565344 0.801835 +vt 0.662868 0.804960 +vt 0.980256 0.749479 +vt 0.982717 0.772283 +vt 0.938005 0.838340 +vt 0.924472 0.797426 +vt 0.818967 0.820347 +vt 0.871953 0.811076 +vt 0.564639 0.823456 +vt 0.663355 0.825332 +vt 0.765636 0.825797 +vt 0.614358 0.828508 +vt 0.869617 0.140202 +vt 0.858526 0.118021 +vt 0.858526 0.086653 +vt 0.622295 0.865615 +vt 0.756986 0.865737 +vt 0.719958 0.863003 +vt 0.865806 0.853105 +vt 0.828669 0.859602 +vt 0.919235 0.839751 +vt 0.882425 0.849319 +vt 0.571106 0.862348 +vt 0.671410 0.862747 +vt 0.774657 0.865888 +vt 0.943459 0.333805 +vt 0.972733 0.254883 +vt 0.968497 0.338857 +vt 0.969761 0.429873 +vt 0.816063 0.408694 +vt 0.650647 0.414159 +vt 0.920664 0.419148 +vt 0.869210 0.411858 +vt 0.761814 0.408697 +vt 0.590519 0.419948 +vt 0.715887 0.601468 +vt 0.699719 0.537434 +vt 0.702832 0.537392 +vt 0.609944 0.311349 +vt 0.636562 0.206427 +vt 0.640004 0.307244 +vt 0.725952 0.309036 +vt 0.753103 0.213184 +vt 0.754156 0.307779 +vt 0.836980 0.312416 +vt 0.865404 0.222565 +vt 0.864198 0.313854 +vt 0.891447 0.320806 +vt 0.920554 0.236280 +vt 0.917673 0.324242 +vt 0.541839 0.312744 +vt 0.567253 0.193170 +vt 0.574805 0.303737 +vt 0.669491 0.310634 +vt 0.696260 0.212038 +vt 0.698198 0.308322 +vt 0.781694 0.308754 +vt 0.809519 0.215232 +vt 0.809563 0.308702 +vt 0.797002 0.537432 +vt 0.928156 0.546644 +vt 0.799286 0.639227 +vt 0.715423 0.471720 +vt 0.748360 0.440271 +vt 0.748360 0.446543 +vt 0.781298 0.471719 +vt 0.793889 0.537390 +vt 0.748361 0.632265 +vt 0.697436 0.639229 +vt 0.696489 0.433976 +vt 0.800231 0.433973 +vt 0.780835 0.601467 +vt 0.748361 0.626098 +vt 0.826511 0.104116 +vt 0.820289 0.109271 +vt 0.817711 0.096826 +vt 0.751735 0.893085 +vt 0.748362 0.892239 +vt 0.568565 0.546652 +vt 0.568958 0.539856 +vt 0.744926 0.174843 +vt 0.748359 0.175704 +vt 0.928221 0.533067 +vt 0.927763 0.539848 +vt 0.744990 0.893085 +vt 0.568500 0.533075 +vt 0.751791 0.174843 +vt 0.775288 0.408770 +vt 0.816031 0.339926 +vt 0.664918 0.414184 +vt 0.705494 0.339963 +vt 0.542285 0.433126 +vt 0.584963 0.338601 +vt 0.882292 0.414121 +vt 0.922784 0.354432 +vt 0.829386 0.409754 +vt 0.870098 0.344694 +vt 0.720548 0.410535 +vt 0.761039 0.339101 +vt 0.606666 0.420165 +vt 0.648114 0.339985 +vt 0.933129 0.422480 +vt 0.972879 0.368090 +vt 0.713828 0.592247 +vt 0.919042 0.579655 +vt 0.918905 0.710085 +vt 0.970969 0.646088 +vt 0.615414 0.750609 +vt 0.818497 0.730271 +vt 0.978827 0.820718 +vt 0.869617 0.064471 +vt 0.885301 0.064472 +vt 0.896391 0.086653 +vt 0.896391 0.118021 +vt 0.885301 0.140202 +vt 0.656636 0.863389 +vt 0.605953 0.865889 +vt 0.706068 0.860339 +vt 0.812036 0.862068 +vt 0.947696 0.249830 +vt 0.606502 0.210532 +vt 0.724899 0.214440 +vt 0.838185 0.221126 +vt 0.894328 0.232845 +vt 0.534287 0.202177 +vt 0.667552 0.214350 +vt 0.781651 0.215285 +vt 0.820289 0.091671 +vt 0.823934 0.091671 +vt 0.826511 0.096826 +vt 0.823934 0.109271 +vt 0.817711 0.104116 +vt 0.775256 0.340002 +vt 0.663491 0.343346 +vt 0.536729 0.351779 +vt 0.884412 0.349406 +vt 0.830274 0.342590 +vt 0.719773 0.340939 +vt 0.604134 0.345991 +vt 0.936246 0.360697 +vn 0.0017 0.0000 -1.0000 +vn 0.7083 0.0000 -0.7059 +vn 1.0000 0.0000 0.0017 +vn 0.7059 -0.0000 0.7083 +vn -0.0017 0.0000 1.0000 +vn -0.7083 0.0000 0.7059 +vn 0.1299 0.9829 0.1303 +vn -1.0000 0.0000 -0.0017 +vn -0.7059 0.0000 -0.7083 +vn -0.0000 -1.0000 0.0000 +vn -0.1047 -0.9889 -0.1050 +vn -0.1840 0.9829 -0.0003 +vn 0.1303 0.9829 -0.1299 +vn -0.0003 0.9829 0.1840 +vn -0.1299 0.9829 -0.1303 +vn 0.0003 0.9829 -0.1840 +vn 0.1840 0.9829 0.0003 +vn -0.1303 0.9829 0.1299 +vn -0.1050 -0.9889 0.1047 +vn 0.1047 -0.9889 0.1050 +vn 0.1050 -0.9889 -0.1047 +vn -0.1483 -0.9889 -0.0003 +vn -0.0003 -0.9889 0.1483 +vn 0.1483 -0.9889 0.0003 +vn 0.0003 -0.9889 -0.1483 +vn -0.1973 0.9601 -0.1980 +vn -0.0004 -0.9676 0.2523 +vn -0.1980 0.9601 0.1973 +vn 0.1973 0.9601 0.1980 +vn 0.1980 0.9601 -0.1973 +vn -0.2796 0.9601 -0.0005 +vn -0.0005 0.9601 0.2796 +vn 0.2796 0.9601 0.0005 +vn 0.0005 0.9601 -0.2796 +vn 0.2523 -0.9676 0.0004 +vn 0.0004 -0.9676 -0.2523 +vn -0.1781 -0.9676 -0.1787 +vn -0.1787 -0.9676 0.1781 +vn 0.1781 -0.9676 0.1787 +vn 0.1787 -0.9676 -0.1781 +vn -0.2523 -0.9676 -0.0004 +vn -0.3371 0.9415 -0.0006 +vn 0.0000 1.0000 0.0000 +vn -0.0006 0.9415 0.3371 +vn 0.3371 0.9415 0.0006 +vn 0.0006 0.9415 -0.3371 +vn -0.2379 0.9415 -0.2388 +vn -0.2388 0.9415 0.2379 +vn 0.2379 0.9415 0.2388 +vn 0.2388 0.9415 -0.2379 +vn -0.5094 0.6948 0.5076 +vn 0.4397 -0.3327 -0.8343 +vn 0.5076 0.6948 0.5094 +vn 0.5094 0.6948 -0.5076 +vn -0.0995 0.9937 -0.0524 +vn -0.0524 0.9937 0.0995 +vn 0.0995 0.9937 0.0524 +vn 0.0524 0.9937 -0.0995 +vn -0.5076 0.6948 -0.5094 +vn -0.6733 -0.3000 -0.6757 +vn -0.6757 -0.3000 0.6733 +vn 0.6733 -0.3000 0.6757 +vn 0.6757 -0.3000 -0.6733 +vn -0.8343 -0.3327 -0.4397 +vn -0.4397 -0.3327 0.8343 +vn 0.8343 -0.3327 0.4397 +vn 0.0495 -0.9976 -0.0494 +vn 0.0494 -0.9976 0.0495 +vn -0.0495 -0.9976 0.0494 +vn -0.0494 -0.9976 -0.0495 +vn 0.0001 -0.9976 -0.0699 +vn 0.0699 -0.9976 0.0001 +vn -0.0001 -0.9976 0.0699 +vn -0.0699 -0.9976 -0.0001 +vn -0.0337 0.9937 0.1073 +vn 0.0017 -0.3000 -0.9539 +vn 0.1073 0.9937 0.0337 +vn 0.0337 0.9937 -0.1073 +vn -0.7192 0.6948 -0.0013 +vn -0.0013 0.6948 0.7192 +vn 0.7192 0.6948 0.0013 +vn 0.0013 0.6948 -0.7192 +vn -0.1073 0.9937 -0.0337 +vn -0.8998 -0.3327 -0.2822 +vn -0.2822 -0.3327 0.8998 +vn 0.8998 -0.3327 0.2822 +vn 0.2822 -0.3327 -0.8998 +vn -0.9539 -0.3000 -0.0017 +vn -0.0017 -0.3000 0.9539 +vn 0.9539 -0.3000 0.0017 +s off +f 188/343/174 190/344/174 187/345/174 +f 189/346/175 192/347/175 190/344/175 +f 191/348/176 194/349/176 192/347/176 +f 193/350/177 196/351/177 194/349/177 +f 195/352/178 198/353/178 196/351/178 +f 197/354/179 200/355/179 198/353/179 +f 193/350/180 202/356/180 195/352/180 +f 199/357/181 204/358/181 200/359/181 +f 203/360/182 187/345/182 204/358/182 +f 196/351/183 206/361/183 194/349/183 +f 207/362/184 209/363/184 210/364/184 +f 199/357/185 208/365/185 203/360/185 +f 189/346/186 213/366/186 191/348/186 +f 195/352/187 214/367/187 197/354/187 +f 203/360/188 207/362/188 188/343/188 +f 188/343/189 212/368/189 189/346/189 +f 191/348/190 201/369/190 193/350/190 +f 199/370/191 214/371/191 211/372/191 +f 216/373/177 218/374/177 215/375/177 +f 214/371/192 220/376/192 211/372/192 +f 202/356/193 216/373/193 215/375/193 +f 212/377/194 222/378/194 213/366/194 +f 211/379/195 209/363/195 208/365/195 +f 202/380/196 219/381/196 214/367/196 +f 213/382/197 216/373/197 201/369/197 +f 207/383/198 221/384/198 212/368/198 +f 224/385/199 226/386/199 223/387/199 +f 221/384/175 228/388/175 222/378/175 +f 220/389/181 224/385/181 209/363/181 +f 215/375/178 230/390/178 219/381/178 +f 222/378/176 217/391/176 216/373/176 +f 210/364/174 227/392/174 221/384/174 +f 209/363/182 223/387/182 210/364/182 +f 219/381/179 229/393/179 220/376/179 +f 232/394/200 234/395/200 231/396/200 +f 230/390/201 235/397/201 229/393/201 +f 218/374/202 236/398/202 232/399/202 +f 227/392/203 238/400/203 228/388/203 +f 224/385/204 235/401/204 225/402/204 +f 218/374/205 231/396/205 230/390/205 +f 217/391/206 238/403/206 236/404/206 +f 227/392/207 226/405/207 237/406/207 +f 240/407/176 242/408/176 239/409/176 +f 238/403/208 239/409/208 236/404/208 +f 226/405/209 244/410/209 237/406/209 +f 226/386/210 245/411/210 243/412/210 +f 235/397/211 234/395/211 246/413/211 +f 236/398/212 233/414/212 232/399/212 +f 238/400/213 244/410/213 240/407/213 +f 225/402/214 246/415/214 245/411/214 +f 248/416/215 250/417/215 247/418/215 +f 243/412/174 252/419/174 244/410/174 +f 245/411/182 251/420/182 243/412/182 +f 234/395/179 248/421/179 246/413/179 +f 239/409/177 254/422/177 233/414/177 +f 244/410/175 241/423/175 240/407/175 +f 246/415/181 247/418/181 245/411/181 +f 233/414/178 253/424/178 234/395/178 +f 260/425/216 250/426/216 249/427/216 +f 254/422/217 259/428/217 253/424/217 +f 242/408/218 258/429/218 257/430/218 +f 252/419/219 260/431/219 255/432/219 +f 251/420/220 250/433/220 260/434/220 +f 253/424/221 249/435/221 248/421/221 +f 242/408/222 256/436/222 254/422/222 +f 252/419/223 258/437/223 241/423/223 +f 262/438/181 264/439/181 261/440/181 +f 204/358/183 266/441/183 200/359/183 +f 192/347/183 268/442/183 190/344/183 +f 198/353/183 205/443/183 196/351/183 +f 187/345/183 265/444/183 204/358/183 +f 190/344/183 270/445/183 187/345/183 +f 194/349/183 267/446/183 192/347/183 +f 200/355/183 269/447/183 198/353/183 +f 264/448/224 273/449/224 271/450/224 +f 275/451/178 276/452/178 274/453/178 +f 278/454/176 280/455/176 277/456/176 +f 282/457/174 284/458/174 281/459/174 +f 281/460/182 263/461/182 262/462/182 +f 261/463/179 271/464/179 275/465/179 +f 274/466/177 279/467/177 278/468/177 +f 277/469/175 283/470/175 282/471/175 +f 286/472/225 288/473/225 285/474/225 +f 276/475/226 290/476/226 279/477/226 +f 280/478/227 286/472/227 283/479/227 +f 264/448/228 292/480/228 272/481/228 +f 276/475/229 273/449/229 289/482/229 +f 280/478/230 290/476/230 291/483/230 +f 284/484/231 286/472/231 285/474/231 +f 284/484/232 292/480/232 263/485/232 +f 294/486/183 296/487/183 298/488/183 +f 292/480/233 288/489/233 293/490/233 +f 273/449/234 298/491/234 297/492/234 +f 290/476/235 296/493/235 295/494/235 +f 286/472/236 294/495/236 287/496/236 +f 292/480/237 298/497/237 272/481/237 +f 273/449/238 296/498/238 289/482/238 +f 290/476/239 294/499/239 291/483/239 +f 267/500/175 300/501/175 268/442/175 +f 300/501/240 277/469/240 282/471/240 +f 205/502/177 302/503/177 206/361/177 +f 302/503/241 274/466/241 278/468/241 +f 266/504/179 304/505/179 269/447/179 +f 304/505/242 261/463/242 275/465/242 +f 270/506/182 306/507/182 265/444/182 +f 306/507/243 281/460/243 262/462/243 +f 268/508/174 305/509/174 270/445/174 +f 305/509/244 282/457/244 281/459/244 +f 206/510/176 299/511/176 267/446/176 +f 299/511/245 278/454/245 277/456/245 +f 269/512/178 301/513/178 205/443/178 +f 301/513/246 275/451/246 274/453/246 +f 265/514/181 303/515/181 266/441/181 +f 303/515/247 262/438/247 261/440/247 +f 188/343/174 189/346/174 190/344/174 +f 189/346/175 191/348/175 192/347/175 +f 191/348/176 193/350/176 194/349/176 +f 193/350/177 195/352/177 196/351/177 +f 195/352/178 197/354/178 198/353/178 +f 197/354/179 199/370/179 200/355/179 +f 193/350/180 201/516/180 202/356/180 +f 199/357/181 203/360/181 204/358/181 +f 203/360/182 188/343/182 187/345/182 +f 196/351/183 205/502/183 206/361/183 +f 207/362/184 208/517/184 209/363/184 +f 199/357/185 211/379/185 208/365/185 +f 189/346/186 212/377/186 213/366/186 +f 195/352/187 202/380/187 214/367/187 +f 203/360/188 208/517/188 207/362/188 +f 188/343/189 207/383/189 212/368/189 +f 191/348/190 213/382/190 201/369/190 +f 199/370/191 197/354/191 214/371/191 +f 216/373/177 217/391/177 218/374/177 +f 214/371/192 219/381/192 220/376/192 +f 202/356/193 201/516/193 216/373/193 +f 212/377/194 221/384/194 222/378/194 +f 211/379/195 220/389/195 209/363/195 +f 202/380/196 215/375/196 219/381/196 +f 213/382/197 222/378/197 216/373/197 +f 207/383/198 210/364/198 221/384/198 +f 224/385/199 225/518/199 226/386/199 +f 221/384/175 227/392/175 228/388/175 +f 220/389/181 229/519/181 224/385/181 +f 215/375/178 218/374/178 230/390/178 +f 222/378/176 228/388/176 217/391/176 +f 210/364/174 223/387/174 227/392/174 +f 209/363/182 224/385/182 223/387/182 +f 219/381/179 230/390/179 229/393/179 +f 232/394/200 233/414/200 234/395/200 +f 230/390/201 231/520/201 235/397/201 +f 218/374/202 217/391/202 236/398/202 +f 227/392/203 237/521/203 238/400/203 +f 224/385/204 229/519/204 235/401/204 +f 218/374/205 232/394/205 231/396/205 +f 217/391/206 228/388/206 238/403/206 +f 227/392/207 223/387/207 226/405/207 +f 240/407/176 241/423/176 242/408/176 +f 238/403/208 240/407/208 239/409/208 +f 226/405/209 243/412/209 244/410/209 +f 226/386/210 225/518/210 245/411/210 +f 235/397/211 231/520/211 234/395/211 +f 236/398/212 239/409/212 233/414/212 +f 238/400/213 237/521/213 244/410/213 +f 225/402/214 235/401/214 246/415/214 +f 248/416/215 249/522/215 250/417/215 +f 243/412/174 251/420/174 252/419/174 +f 245/411/182 247/418/182 251/420/182 +f 234/395/179 253/424/179 248/421/179 +f 239/409/177 242/408/177 254/422/177 +f 244/410/175 252/419/175 241/423/175 +f 246/415/181 248/416/181 247/418/181 +f 233/414/178 254/422/178 253/424/178 +f 249/427/216 259/523/216 256/524/216 +f 256/524/216 257/525/216 249/427/216 +f 257/525/216 258/526/216 249/427/216 +f 258/526/216 255/527/216 249/427/216 +f 255/527/216 260/425/216 249/427/216 +f 254/422/217 256/528/217 259/428/217 +f 242/408/218 241/423/218 258/429/218 +f 252/419/219 251/420/219 260/431/219 +f 251/420/220 247/418/220 250/433/220 +f 253/424/221 259/529/221 249/435/221 +f 242/408/222 257/530/222 256/436/222 +f 252/419/223 255/531/223 258/437/223 +f 262/438/181 263/532/181 264/439/181 +f 204/358/183 265/514/183 266/441/183 +f 192/347/183 267/500/183 268/442/183 +f 198/353/183 269/512/183 205/443/183 +f 187/345/183 270/506/183 265/444/183 +f 190/344/183 268/508/183 270/445/183 +f 194/349/183 206/510/183 267/446/183 +f 200/355/183 266/504/183 269/447/183 +f 264/448/248 272/481/248 273/449/248 +f 275/451/178 271/533/178 276/452/178 +f 278/454/176 279/534/176 280/455/176 +f 282/457/174 283/535/174 284/458/174 +f 281/460/182 284/536/182 263/461/182 +f 261/463/179 264/537/179 271/464/179 +f 274/466/177 276/538/177 279/467/177 +f 277/469/175 280/539/175 283/470/175 +f 286/472/249 287/496/249 288/473/249 +f 276/475/250 289/482/250 290/476/250 +f 280/478/251 291/483/251 286/472/251 +f 264/448/252 263/485/252 292/480/252 +f 276/475/253 271/450/253 273/449/253 +f 280/478/254 279/477/254 290/476/254 +f 284/484/255 283/479/255 286/472/255 +f 284/484/256 285/474/256 292/480/256 +f 298/488/183 293/540/183 288/541/183 +f 288/541/183 287/542/183 294/486/183 +f 294/486/183 295/543/183 296/487/183 +f 296/487/183 297/544/183 298/488/183 +f 298/488/183 288/541/183 294/486/183 +f 292/480/257 285/474/257 288/489/257 +f 273/449/258 272/481/258 298/491/258 +f 290/476/259 289/482/259 296/493/259 +f 286/472/260 291/483/260 294/495/260 +f 292/480/261 293/490/261 298/497/261 +f 273/449/262 297/492/262 296/498/262 +f 290/476/263 295/494/263 294/499/263 +f 267/500/175 299/545/175 300/501/175 +f 300/501/240 299/545/240 277/469/240 +f 205/502/177 301/546/177 302/503/177 +f 302/503/241 301/546/241 274/466/241 +f 266/504/179 303/547/179 304/505/179 +f 304/505/242 303/547/242 261/463/242 +f 270/506/182 305/548/182 306/507/182 +f 306/507/243 305/548/243 281/460/243 +f 268/508/174 300/549/174 305/509/174 +f 305/509/244 300/549/244 282/457/244 +f 206/510/176 302/550/176 299/511/176 +f 299/511/245 302/550/245 278/454/245 +f 269/512/178 304/551/178 301/513/178 +f 301/513/246 304/551/246 275/451/246 +f 265/514/181 306/552/181 303/515/181 +f 303/515/247 306/552/247 262/438/247 diff --git a/src/main/resources/assets/hbm/models/trinkets/lantern.obj b/src/main/resources/assets/hbm/models/trinkets/lantern.obj new file mode 100644 index 000000000..46f55c49d --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/lantern.obj @@ -0,0 +1,500 @@ +# Blender v2.79 (sub 0) OBJ File: 'lantern.blend' +# www.blender.org +o Light +v 0.187500 4.062500 0.187500 +v 0.312500 4.812500 0.312500 +v 0.187500 4.062500 -0.187500 +v 0.312500 4.812500 -0.312500 +v -0.181700 4.062500 0.187500 +v -0.306700 4.812500 0.312500 +v -0.181700 4.062500 -0.187500 +v -0.306700 4.812500 -0.312500 +vn 0.0000 -0.1644 0.9864 +vn -0.9864 -0.1644 0.0000 +vn 0.0000 -0.1644 -0.9864 +vn 0.9864 -0.1644 0.0000 +s off +f 2//1 5//1 1//1 +f 7//2 6//2 8//2 +f 3//3 8//3 4//3 +f 1//4 4//4 2//4 +f 2//1 6//1 5//1 +f 7//2 5//2 6//2 +f 3//3 7//3 8//3 +f 1//4 3//4 4//4 +o Lantern +v -0.125000 -0.250000 0.125000 +v 0.125000 -0.250000 0.125000 +v -0.125000 -0.250000 -0.125000 +v 0.125000 -0.250000 -0.125000 +v -0.125000 0.937500 0.125000 +v 0.125000 0.937500 0.125000 +v -0.125000 0.937500 -0.125000 +v 0.125000 0.937500 -0.125000 +v -0.062500 1.000000 0.062500 +v 0.062500 1.000000 0.062500 +v -0.062500 1.000000 -0.062500 +v 0.062500 1.000000 -0.062500 +v -0.125000 1.062500 0.125000 +v 0.125000 1.062500 0.125000 +v -0.125000 1.062500 -0.125000 +v 0.125000 1.062500 -0.125000 +v -0.125000 1.187500 0.125000 +v 0.125000 1.187500 0.125000 +v -0.125000 1.187500 -0.125000 +v 0.125000 1.187500 -0.125000 +v -0.062500 1.250000 0.062500 +v 0.062500 1.250000 0.062500 +v -0.062500 1.250000 -0.062500 +v 0.062500 1.250000 -0.062500 +v -0.062500 3.250000 -0.062500 +v -0.062500 3.250000 0.062500 +v 0.062500 3.250000 0.062500 +v 0.062500 3.250000 -0.062500 +v -0.125000 3.312500 -0.125000 +v -0.125000 3.312500 0.125000 +v 0.125000 3.312500 0.125000 +v 0.125000 3.312500 -0.125000 +v -0.125000 3.437500 -0.125000 +v -0.125000 3.437500 0.125000 +v 0.125000 3.437500 0.125000 +v 0.125000 3.437500 -0.125000 +v -0.062500 3.500000 -0.062500 +v -0.062500 3.500000 0.062500 +v 0.062500 3.500000 0.062500 +v 0.062500 3.500000 -0.062500 +v -0.062500 4.000000 -0.062500 +v -0.062500 4.000000 0.062500 +v 0.062500 4.000000 0.062500 +v 0.062500 4.000000 -0.062500 +v -0.250000 4.000000 0.250000 +v 0.250000 4.000000 0.250000 +v -0.250000 4.000000 -0.250000 +v 0.250000 4.000000 -0.250000 +v -0.250000 4.062500 -0.250000 +v -0.250000 4.062500 0.250000 +v 0.250000 4.062500 0.250000 +v 0.250000 4.062500 -0.250000 +v 0.250000 4.062500 0.250000 +v 0.250000 4.062500 0.187500 +v 0.187500 4.062500 0.250000 +v 0.187500 4.062500 0.187500 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 0.312500 +v 0.312500 4.812500 0.375000 +v 0.312500 4.812500 0.312500 +v 0.250000 4.062500 -0.187500 +v 0.250000 4.062500 -0.250000 +v 0.187500 4.062500 -0.187500 +v 0.187500 4.062500 -0.250000 +v 0.375000 4.812500 -0.312500 +v 0.375000 4.812500 -0.375000 +v 0.312500 4.812500 -0.312500 +v 0.312500 4.812500 -0.375000 +v -0.181700 4.062500 0.250000 +v -0.181700 4.062500 0.187500 +v -0.244200 4.062500 0.250000 +v -0.244200 4.062500 0.187500 +v -0.306700 4.812500 0.375000 +v -0.306700 4.812500 0.312500 +v -0.369200 4.812500 0.375000 +v -0.369200 4.812500 0.312500 +v -0.181700 4.062500 -0.187500 +v -0.181700 4.062500 -0.250000 +v -0.244200 4.062500 -0.187500 +v -0.244200 4.062500 -0.250000 +v -0.306700 4.812500 -0.312500 +v -0.306700 4.812500 -0.375000 +v -0.369200 4.812500 -0.312500 +v -0.369200 4.812500 -0.375000 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 -0.375000 +v -0.369200 4.812500 0.375000 +v -0.369200 4.812500 -0.375000 +v 0.375000 4.875000 0.375000 +v 0.375000 4.875000 -0.375000 +v -0.369200 4.875000 0.375000 +v -0.369200 4.875000 -0.375000 +v 0.125000 5.000000 -0.125000 +v 0.125000 5.000000 0.125000 +v -0.119200 5.000000 0.125000 +v -0.119200 5.000000 -0.125000 +v -0.059600 5.000000 0.062500 +v 0.065400 5.000000 0.062500 +v -0.059600 5.000000 -0.062500 +v 0.065400 5.000000 -0.062500 +v -0.059600 5.500000 0.062500 +v 0.065400 5.500000 0.062500 +v -0.059600 5.500000 -0.062500 +v 0.065400 5.500000 -0.062500 +vt 0.764706 0.176471 +vt 1.000000 0.235294 +vt 0.764706 0.235294 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.058824 0.279412 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.117647 0.294118 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.294118 0.279412 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.058824 0.308824 +vt 0.235294 0.294118 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.058824 0.338235 +vt 0.294118 0.308824 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.117647 0.352941 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.294118 0.338235 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.117647 0.823529 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.235294 0.352941 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.058824 0.867647 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.058824 0.867647 +vt 0.058824 0.867647 +vt 0.058824 0.867647 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.117647 0.882353 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.294118 0.867647 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.764706 -0.000000 +vt 0.294118 0.117647 +vt 0.294118 -0.000000 +vt 0.294118 0.132353 +vt 0.764706 0.250000 +vt 0.294118 0.250000 +vt 0.764706 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.882353 0.000000 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.000000 +vt 1.000000 0.000000 +vt 0.941176 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 0.941176 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.176471 +vt 0.882353 0.000000 +vt 0.823529 0.176471 +vt 0.941176 0.176471 +vt 0.882353 0.000000 +vt 0.941176 0.000000 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 1.000000 0.176471 +vt 1.000000 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.000000 +vt 1.000000 0.000000 +vt 0.882353 0.000000 +vt 0.941176 0.176471 +vt 0.882353 0.176471 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 0.294118 0.426471 +vt 1.000000 0.250000 +vt 1.000000 0.426471 +vt 0.294118 0.617647 +vt 0.764706 0.558824 +vt 1.000000 0.617647 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 0.294118 0.441176 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 0.529412 0.500000 +vt 0.764706 0.500000 +vt 1.000000 0.441176 +vt 0.529412 0.558824 +vt 0.529412 0.735294 +vt 0.411765 0.617647 +vt 0.529412 0.617647 +vt 0.764706 0.735294 +vt 0.647059 0.617647 +vt 0.764706 0.617647 +vt 0.647059 0.735294 +vt 0.411765 0.735294 +vt 0.294118 0.617647 +vt 0.411765 0.764706 +vt 0.529412 0.764706 +vt 1.000000 0.176471 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.882353 0.176471 +vt 1.000000 0.000000 +vt 0.882353 0.176471 +vt 0.882353 0.176471 +vt 0.294118 0.250000 +vt 1.000000 0.441176 +vt 1.000000 0.441176 +vt 1.000000 0.441176 +vt 0.294118 0.735294 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.1644 0.9864 +vn -0.9864 0.1644 0.0000 +vn 0.0000 0.1644 -0.9864 +vn 0.9864 -0.1644 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.0000 -0.1644 -0.9864 +vn -0.9864 -0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +s off +f 11/1/5 10/2/5 9/3/5 +f 16/4/6 18/5/6 14/6/6 +f 11/7/7 16/8/7 12/9/7 +f 10/10/8 13/11/8 9/12/8 +f 12/13/9 14/6/9 10/14/9 +f 9/15/10 15/16/10 11/17/10 +f 19/18/11 24/19/11 20/20/11 +f 13/21/12 19/22/12 15/16/12 +f 15/23/13 20/20/13 16/8/13 +f 14/24/14 17/25/14 13/11/14 +f 22/26/8 25/27/8 21/28/8 +f 18/29/15 21/28/15 17/25/15 +f 20/30/16 22/31/16 18/5/16 +f 17/32/17 23/33/17 19/22/17 +f 28/34/6 30/35/6 26/36/6 +f 24/37/9 26/36/9 22/31/9 +f 21/38/10 27/39/10 23/33/10 +f 23/40/7 28/41/7 24/19/7 +f 31/42/7 36/43/7 32/44/7 +f 25/45/12 31/46/12 27/39/12 +f 27/47/13 32/44/13 28/41/13 +f 26/48/14 29/49/14 25/27/14 +f 35/50/16 40/51/16 39/52/16 +f 30/53/8 34/54/8 29/49/8 +f 32/55/9 35/50/9 30/35/9 +f 29/56/10 33/57/10 31/46/10 +f 40/51/9 43/58/9 39/52/9 +f 33/57/17 38/59/17 37/60/17 +f 36/43/11 37/61/11 40/62/11 +f 34/54/15 39/63/15 38/64/15 +f 41/65/13 48/66/13 44/67/13 +f 38/59/10 41/68/10 37/60/10 +f 37/61/7 44/67/7 40/62/7 +f 39/63/8 42/69/8 38/64/8 +f 48/70/9 51/71/9 47/72/9 +f 43/73/14 46/74/14 42/69/14 +f 44/75/6 47/72/6 43/58/6 +f 42/76/12 45/77/12 41/68/12 +f 46/78/10 49/79/10 45/77/10 +f 45/80/7 52/81/7 48/66/7 +f 47/82/8 50/83/8 46/74/8 +f 55/84/5 54/85/5 53/86/5 +f 59/87/18 57/88/18 58/89/18 +f 56/90/9 59/87/9 54/85/9 +f 53/91/10 57/92/10 55/93/10 +f 55/94/7 60/95/7 56/96/7 +f 54/97/8 58/98/8 53/99/8 +f 61/100/19 67/101/19 63/102/19 +f 63/102/20 68/103/20 64/104/20 +f 68/105/21 62/106/21 64/107/21 +f 66/108/22 61/100/22 62/106/22 +f 69/109/23 75/110/23 71/111/23 +f 72/112/20 75/113/20 76/114/20 +f 76/114/24 70/115/24 72/112/24 +f 70/115/22 73/116/22 69/109/22 +f 81/117/19 79/118/19 77/119/19 +f 79/118/25 84/120/25 80/121/25 +f 80/121/21 82/122/21 78/123/21 +f 82/124/26 77/119/26 78/125/26 +f 89/126/23 87/127/23 85/128/23 +f 88/129/25 91/130/25 92/131/25 +f 88/129/24 90/132/24 86/133/24 +f 86/133/26 89/134/26 85/135/26 +f 93/136/5 96/137/5 94/138/5 +f 99/139/27 104/140/27 100/141/27 +f 95/142/10 100/143/10 96/144/10 +f 94/138/9 97/145/9 93/136/9 +f 96/146/7 98/147/7 94/148/7 +f 93/149/8 99/150/8 95/151/8 +f 104/140/18 102/152/18 101/153/18 +f 98/154/28 102/152/28 97/145/28 +f 100/141/29 101/153/29 98/154/29 +f 97/145/30 103/155/30 99/139/30 +f 112/156/9 106/157/9 108/158/9 +f 109/159/10 107/160/10 105/161/10 +f 111/162/7 108/158/7 107/160/7 +f 110/163/8 105/164/8 106/157/8 +f 109/165/18 112/156/18 111/166/18 +f 11/1/5 12/167/5 10/2/5 +f 16/4/6 20/30/6 18/5/6 +f 11/7/7 15/23/7 16/8/7 +f 10/10/8 14/24/8 13/11/8 +f 12/13/9 16/4/9 14/6/9 +f 9/15/10 13/21/10 15/16/10 +f 19/18/11 23/40/11 24/19/11 +f 13/21/12 17/32/12 19/22/12 +f 15/23/13 19/18/13 20/20/13 +f 14/24/14 18/29/14 17/25/14 +f 22/26/8 26/48/8 25/27/8 +f 18/29/15 22/26/15 21/28/15 +f 20/30/16 24/37/16 22/31/16 +f 17/32/17 21/38/17 23/33/17 +f 28/34/6 32/55/6 30/35/6 +f 24/37/9 28/34/9 26/36/9 +f 21/38/10 25/45/10 27/39/10 +f 23/40/7 27/47/7 28/41/7 +f 31/42/7 33/168/7 36/43/7 +f 25/45/12 29/56/12 31/46/12 +f 27/47/13 31/42/13 32/44/13 +f 26/48/14 30/53/14 29/49/14 +f 35/50/16 36/169/16 40/51/16 +f 30/53/8 35/170/8 34/54/8 +f 32/55/9 36/169/9 35/50/9 +f 29/56/10 34/171/10 33/57/10 +f 40/51/9 44/75/9 43/58/9 +f 33/57/17 34/171/17 38/59/17 +f 36/43/11 33/168/11 37/61/11 +f 34/54/15 35/170/15 39/63/15 +f 41/65/13 45/80/13 48/66/13 +f 38/59/10 42/76/10 41/68/10 +f 37/61/7 41/65/7 44/67/7 +f 39/63/8 43/73/8 42/69/8 +f 48/70/9 52/172/9 51/71/9 +f 43/73/14 47/82/14 46/74/14 +f 44/75/6 48/70/6 47/72/6 +f 42/76/12 46/78/12 45/77/12 +f 46/78/10 50/173/10 49/79/10 +f 45/80/7 49/174/7 52/81/7 +f 47/82/8 51/175/8 50/83/8 +f 55/84/5 56/90/5 54/85/5 +f 59/87/18 60/176/18 57/88/18 +f 56/90/9 60/176/9 59/87/9 +f 53/91/10 58/177/10 57/92/10 +f 55/94/7 57/178/7 60/95/7 +f 54/97/8 59/179/8 58/98/8 +f 61/100/19 65/180/19 67/101/19 +f 63/102/20 67/101/20 68/103/20 +f 68/105/21 66/108/21 62/106/21 +f 66/108/22 65/180/22 61/100/22 +f 69/109/23 73/116/23 75/110/23 +f 72/112/20 71/181/20 75/113/20 +f 76/114/24 74/182/24 70/115/24 +f 70/115/22 74/182/22 73/116/22 +f 81/117/19 83/183/19 79/118/19 +f 79/118/25 83/183/25 84/120/25 +f 80/121/21 84/120/21 82/122/21 +f 82/124/26 81/117/26 77/119/26 +f 89/126/23 91/130/23 87/127/23 +f 88/129/25 87/127/25 91/130/25 +f 88/129/24 92/131/24 90/132/24 +f 86/133/26 90/132/26 89/134/26 +f 93/136/5 95/184/5 96/137/5 +f 99/139/27 103/155/27 104/140/27 +f 95/142/10 99/185/10 100/143/10 +f 94/138/9 98/154/9 97/145/9 +f 96/146/7 100/186/7 98/147/7 +f 93/149/8 97/187/8 99/150/8 +f 104/140/18 103/155/18 102/152/18 +f 98/154/28 101/153/28 102/152/28 +f 100/141/29 104/140/29 101/153/29 +f 97/145/30 102/152/30 103/155/30 +f 112/156/9 110/163/9 106/157/9 +f 109/159/10 111/162/10 107/160/10 +f 111/162/7 112/156/7 108/158/7 +f 110/163/8 109/188/8 105/164/8 +f 109/165/18 110/163/18 112/156/18 diff --git a/src/main/resources/assets/hbm/models/weapons/congolake.obj b/src/main/resources/assets/hbm/models/weapons/congolake.obj new file mode 100644 index 000000000..61dba5009 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/congolake.obj @@ -0,0 +1,3494 @@ +# Blender v2.79 (sub 0) OBJ File: 'CongoLake.blend' +# www.blender.org +o Pump_Pummp +v 0.000000 0.935654 2.185543 +v -0.193840 1.015945 2.185543 +v -0.214852 0.994933 2.177396 +v 0.000000 0.905939 2.177396 +v -0.193840 1.403625 2.185543 +v -0.274131 1.209785 2.185543 +v -0.274131 1.209785 3.266089 +v -0.193840 1.403625 3.266089 +v 0.000000 1.483656 2.185543 +v 0.000000 1.483656 3.266089 +v 0.274131 1.209785 2.185543 +v 0.193656 1.403441 2.185543 +v 0.193656 1.403441 3.266089 +v 0.274131 1.209785 3.266089 +v 0.000000 0.935915 3.266089 +v -0.193840 1.015945 3.266089 +v 0.193656 1.016130 2.185543 +v 0.193656 1.016130 3.266089 +v 0.000000 1.513631 2.177396 +v 0.214852 1.424637 2.177396 +v 0.214852 1.424637 2.113585 +v 0.000000 1.513631 2.113585 +v -0.214852 1.424637 2.177396 +v 0.214852 0.994933 2.177396 +v -0.303846 1.209785 2.177396 +v 0.303846 1.209785 2.177396 +v -0.214852 0.994933 2.113585 +v -0.303846 1.209785 2.113585 +v -0.273445 1.209785 2.100498 +v -0.193355 1.016430 2.100498 +v -0.214852 1.424637 2.113585 +v 0.000000 0.905939 2.113585 +v 0.214852 0.994933 2.113585 +v 0.303846 1.209785 2.113585 +v -0.193355 1.403140 2.100498 +v 0.000000 1.483230 2.100498 +v 0.193355 1.403140 2.100498 +v 0.273445 1.209785 2.100498 +v 0.193355 1.016430 2.100498 +v 0.000000 0.936340 2.100498 +v 0.000000 0.905939 3.274235 +v -0.214852 0.994933 3.274235 +v 0.000000 1.513631 3.274235 +v 0.000000 1.513631 3.338046 +v 0.214852 1.424637 3.338046 +v 0.214852 1.424637 3.274235 +v -0.214852 1.424637 3.274235 +v 0.214852 0.994933 3.274235 +v -0.303846 1.209785 3.274235 +v 0.303846 1.209785 3.274235 +v -0.214852 0.994933 3.338046 +v -0.193355 1.016430 3.351134 +v -0.273445 1.209785 3.351134 +v -0.303846 1.209785 3.338046 +v -0.214852 1.424637 3.338046 +v 0.214852 0.994933 3.338046 +v 0.000000 0.905939 3.338046 +v 0.303846 1.209785 3.338046 +v -0.193355 1.403140 3.351134 +v 0.000000 0.936340 3.351134 +v 0.193355 1.016430 3.351134 +v 0.273445 1.209785 3.351134 +v 0.193355 1.403140 3.351134 +v 0.000000 1.483230 3.351134 +vt 0.270772 0.021748 +vt 0.259071 0.044520 +vt 0.258022 0.040873 +vt 0.124225 0.297698 +vt 0.000380 0.290063 +vt 0.124223 0.290059 +vt 0.000378 0.282428 +vt 0.124220 0.282425 +vt 0.124223 0.335878 +vt 0.000382 0.328240 +vt 0.124225 0.328243 +vt 0.124227 0.305336 +vt 0.000387 0.312974 +vt 0.000384 0.305339 +vt 0.124221 0.343509 +vt 0.000380 0.335874 +vt 0.000384 0.320605 +vt 0.124227 0.320609 +vt 0.000382 0.297701 +vt 0.124229 0.312974 +vt 0.301296 0.107856 +vt 0.311550 0.080842 +vt 0.315428 0.086659 +vt 0.319568 0.052066 +vt 0.317107 0.080578 +vt 0.317107 0.050600 +vt 0.254931 0.052066 +vt 0.257392 0.080578 +vt 0.254911 0.079099 +vt 0.303748 0.109442 +vt 0.316485 0.090335 +vt 0.316477 0.040872 +vt 0.301296 0.023322 +vt 0.303727 0.021748 +vt 0.278234 0.017112 +vt 0.297242 0.020803 +vt 0.277257 0.020803 +vt 0.270772 0.109430 +vt 0.259071 0.086659 +vt 0.273203 0.107856 +vt 0.278234 0.114066 +vt 0.297242 0.110375 +vt 0.296257 0.114096 +vt 0.297242 0.029029 +vt 0.278257 0.033023 +vt 0.277257 0.029029 +vt 0.311623 0.050600 +vt 0.257392 0.050600 +vt 0.262876 0.080578 +vt 0.315428 0.044519 +vt 0.297418 0.029138 +vt 0.277081 0.102040 +vt 0.277257 0.110375 +vt 0.297242 0.102149 +vt 0.273203 0.023322 +vt 0.262949 0.050336 +vt 0.308960 0.079078 +vt 0.278257 0.098155 +vt 0.265539 0.052100 +vt 0.277257 0.102149 +vt 0.296243 0.098155 +vt 0.311623 0.080578 +vt 0.308960 0.052100 +vt 0.262876 0.050600 +vt 0.265539 0.079078 +vt 0.296242 0.033023 +vt 0.189118 0.066082 +vt 0.194118 0.093837 +vt 0.187203 0.068873 +vt 0.246869 0.062649 +vt 0.244287 0.031805 +vt 0.251935 0.059501 +vt 0.246935 0.093837 +vt 0.251935 0.066083 +vt 0.253850 0.068873 +vt 0.196766 0.031805 +vt 0.187203 0.056711 +vt 0.194097 0.031747 +vt 0.246956 0.031747 +vt 0.253850 0.056711 +vt 0.222720 0.109905 +vt 0.241223 0.102404 +vt 0.224565 0.112754 +vt 0.199830 0.102404 +vt 0.218332 0.109905 +vt 0.216488 0.112754 +vt 0.216488 0.012829 +vt 0.199869 0.027151 +vt 0.199830 0.023147 +vt 0.241184 0.027151 +vt 0.224565 0.012829 +vt 0.241223 0.023147 +vt 0.203910 0.087717 +vt 0.220431 0.102305 +vt 0.201967 0.090833 +vt 0.239221 0.090631 +vt 0.244287 0.093779 +vt 0.201832 0.034953 +vt 0.189118 0.059501 +vt 0.220622 0.102305 +vt 0.241184 0.098433 +vt 0.220431 0.023279 +vt 0.218333 0.015679 +vt 0.199868 0.098433 +vt 0.239086 0.034751 +vt 0.222720 0.015679 +vt 0.194184 0.062935 +vt 0.196766 0.093779 +vt 0.197027 0.062792 +vt 0.220527 0.027543 +vt 0.244026 0.062792 +vt 0.237143 0.037867 +vt 0.220622 0.023278 +vt 0.201832 0.090631 +vt 0.239221 0.034953 +vt 0.237143 0.087717 +vt 0.246869 0.062935 +vt 0.203910 0.037867 +vt 0.194184 0.062649 +vt 0.239086 0.090833 +vt 0.201967 0.034750 +vt 0.000378 0.343505 +vt 0.297419 0.102040 +vt 0.319588 0.079099 +vt 0.296265 0.017112 +vt 0.258014 0.090336 +vt 0.311550 0.050336 +vt 0.262949 0.080842 +vt 0.277081 0.029138 +vt 0.220526 0.098041 +vn -0.1089 -0.2628 0.9587 +vn -0.9239 0.3827 0.0000 +vn -0.3816 0.9243 0.0000 +vn 0.9234 0.3837 0.0000 +vn -0.3816 -0.9243 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9234 -0.3837 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3837 -0.9234 0.0002 +vn -0.1089 0.2628 0.9587 +vn 0.1083 -0.2605 0.9594 +vn 0.1080 0.2607 0.9593 +vn -0.2629 0.1089 0.9587 +vn -0.2628 -0.1089 0.9587 +vn 0.2628 -0.1089 0.9587 +vn 0.2605 0.1083 0.9594 +vn -0.3902 -0.1616 -0.9064 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.3902 0.1616 -0.9064 +vn -0.1616 -0.3902 -0.9064 +vn 0.1616 0.3902 -0.9064 +vn -0.1616 0.3902 -0.9064 +vn 0.1616 -0.3902 -0.9064 +vn -0.3902 0.1616 -0.9064 +vn 0.3902 -0.1616 -0.9064 +vn -0.1076 -0.2607 -0.9594 +vn -0.1076 0.2607 -0.9594 +vn 0.1080 -0.2607 -0.9594 +vn 0.1080 0.2607 -0.9594 +vn -0.2628 0.1089 -0.9587 +vn -0.2628 -0.1089 -0.9587 +vn 0.2605 -0.1082 -0.9594 +vn 0.2605 0.1082 -0.9594 +vn -0.3902 -0.1616 0.9064 +vn 0.0000 0.0000 1.0000 +vn 0.3902 0.1616 0.9064 +vn -0.1616 -0.3902 0.9064 +vn 0.1616 0.3902 0.9064 +vn -0.1616 0.3902 0.9064 +vn 0.1616 -0.3902 0.9064 +vn -0.3902 0.1616 0.9064 +vn 0.3902 -0.1616 0.9064 +vn -0.3827 -0.9239 0.0002 +vn -0.1077 0.2608 0.9594 +vn 0.1089 -0.2628 0.9587 +vn -0.2628 0.1089 0.9587 +vn -0.2629 -0.1089 0.9587 +vn 0.2605 -0.1083 0.9594 +vn 0.2628 0.1089 0.9587 +vn -0.1089 -0.2628 -0.9587 +vn -0.1089 0.2628 -0.9587 +vn 0.2628 -0.1089 -0.9587 +vn 0.2628 0.1089 -0.9587 +s off +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 5/6/3 10/7/3 9/8/3 +f 12/9/4 14/10/4 11/11/4 +f 2/12/5 15/13/5 16/14/5 +f 9/15/6 13/16/6 12/9/6 +f 11/11/7 18/17/7 17/18/7 +f 2/12/8 7/19/8 6/4/8 +f 17/18/9 15/13/9 1/20/9 +f 20/21/6 22/22/6 19/23/6 +f 5/24/10 19/25/10 23/26/10 +f 1/27/11 24/28/11 17/29/11 +f 12/30/12 19/23/12 9/31/12 +f 5/32/13 25/33/13 6/34/13 +f 2/35/14 25/36/14 3/37/14 +f 11/38/15 24/39/15 26/40/15 +f 11/41/16 20/42/16 12/43/16 +f 28/44/17 30/45/17 27/46/17 +f 19/25/18 31/47/18 23/26/18 +f 4/48/19 33/49/19 24/28/19 +f 23/50/2 28/51/2 25/33/2 +f 24/39/20 34/52/20 26/40/20 +f 25/36/8 27/46/8 3/37/8 +f 26/53/21 21/54/21 20/42/21 +f 3/55/22 32/56/22 4/2/22 +f 36/57/23 38/58/23 40/59/23 +f 34/60/24 37/61/24 21/54/24 +f 32/56/25 30/45/25 40/59/25 +f 22/22/26 37/61/26 36/57/26 +f 22/62/27 35/63/27 31/47/27 +f 32/64/28 39/65/28 33/49/28 +f 28/51/29 35/63/29 29/66/29 +f 34/52/30 39/65/30 38/58/30 +f 41/67/31 16/68/31 15/69/31 +f 44/70/6 46/71/6 43/72/6 +f 8/73/32 43/74/32 10/75/32 +f 48/76/33 15/77/33 18/78/33 +f 43/72/34 13/79/34 10/80/34 +f 49/81/35 8/82/35 7/83/35 +f 16/84/36 49/85/36 7/86/36 +f 14/87/37 48/88/37 18/89/37 +f 46/90/38 14/91/38 13/92/38 +f 52/93/39 54/94/39 51/95/39 +f 55/96/18 43/74/18 47/97/18 +f 56/98/19 41/99/19 48/76/19 +f 54/100/2 47/101/2 49/81/2 +f 58/102/20 48/88/20 50/103/20 +f 51/95/8 49/85/8 42/104/8 +f 45/105/21 50/106/21 46/90/21 +f 57/107/22 42/108/22 41/67/22 +f 60/109/40 62/110/40 64/111/40 +f 63/112/41 58/113/41 45/105/41 +f 60/109/42 51/114/42 57/107/42 +f 44/70/43 63/112/43 45/115/43 +f 59/116/44 44/117/44 55/96/44 +f 61/118/45 57/119/45 56/98/45 +f 54/100/46 59/116/46 55/120/46 +f 58/102/47 61/118/47 56/121/47 +f 2/1/1 3/55/1 4/2/1 +f 6/4/2 7/19/2 8/5/2 +f 5/6/3 8/5/3 10/7/3 +f 12/9/4 13/16/4 14/10/4 +f 2/12/48 1/20/48 15/13/48 +f 9/15/6 10/122/6 13/16/6 +f 11/11/7 14/10/7 18/17/7 +f 2/12/8 16/14/8 7/19/8 +f 17/18/19 18/17/19 15/13/19 +f 20/21/6 21/123/6 22/22/6 +f 5/24/49 9/124/49 19/25/49 +f 1/27/50 4/48/50 24/28/50 +f 12/30/12 20/21/12 19/23/12 +f 5/32/51 23/50/51 25/33/51 +f 2/35/52 6/125/52 25/36/52 +f 11/38/53 17/126/53 24/39/53 +f 11/41/54 26/53/54 20/42/54 +f 28/44/17 29/66/17 30/45/17 +f 19/25/18 22/62/18 31/47/18 +f 4/48/19 32/64/19 33/49/19 +f 23/50/2 31/127/2 28/51/2 +f 24/39/20 33/128/20 34/52/20 +f 25/36/8 28/44/8 27/46/8 +f 26/53/21 34/60/21 21/54/21 +f 3/55/22 27/129/22 32/56/22 +f 29/66/23 35/63/23 36/57/23 +f 36/57/23 37/61/23 38/58/23 +f 38/58/23 39/65/23 40/59/23 +f 40/59/23 30/45/23 29/66/23 +f 29/66/23 36/57/23 40/59/23 +f 34/60/24 38/58/24 37/61/24 +f 32/56/25 27/129/25 30/45/25 +f 22/22/26 21/123/26 37/61/26 +f 22/62/27 36/57/27 35/63/27 +f 32/64/28 40/59/28 39/65/28 +f 28/51/29 31/127/29 35/63/29 +f 34/52/30 33/128/30 39/65/30 +f 41/67/55 42/108/55 16/68/55 +f 44/70/6 45/115/6 46/71/6 +f 8/73/56 47/97/56 43/74/56 +f 48/76/33 41/99/33 15/77/33 +f 43/72/34 46/71/34 13/79/34 +f 49/81/35 47/101/35 8/82/35 +f 16/84/36 42/104/36 49/85/36 +f 14/87/57 50/103/57 48/88/57 +f 46/90/58 50/106/58 14/91/58 +f 52/93/39 53/130/39 54/94/39 +f 55/96/18 44/117/18 43/74/18 +f 56/98/19 57/119/19 41/99/19 +f 54/100/2 55/120/2 47/101/2 +f 58/102/20 56/121/20 48/88/20 +f 51/95/8 54/94/8 49/85/8 +f 45/105/21 58/113/21 50/106/21 +f 57/107/22 51/114/22 42/108/22 +f 64/111/40 59/116/40 53/130/40 +f 53/130/40 52/93/40 60/109/40 +f 60/109/40 61/118/40 62/110/40 +f 62/110/40 63/112/40 64/111/40 +f 64/111/40 53/130/40 60/109/40 +f 63/112/41 62/110/41 58/113/41 +f 60/109/42 52/93/42 51/114/42 +f 44/70/43 64/111/43 63/112/43 +f 59/116/44 64/111/44 44/117/44 +f 61/118/45 60/109/45 57/119/45 +f 54/100/46 53/130/46 59/116/46 +f 58/102/47 62/110/47 61/118/47 +o Gun +v 0.000000 2.012847 0.929753 +v 0.000000 2.012847 1.070247 +v 0.183294 1.927366 1.070247 +v 0.183618 1.926461 0.929220 +v 0.259217 1.720997 1.070247 +v 0.257984 1.718743 0.928515 +v 0.259047 1.606972 1.070247 +v 0.257604 1.541884 0.928170 +v -0.144433 0.866083 0.913514 +v -0.144446 0.864949 1.065059 +v -0.258151 1.005157 1.070247 +v -0.257451 1.005115 0.928270 +v -0.183294 1.927366 1.070247 +v -0.259216 1.720997 1.070247 +v -0.259043 1.604334 1.070247 +v -0.258413 1.181274 1.070247 +v -0.257166 1.181723 0.927804 +v -0.257983 1.718743 0.928515 +v -0.183294 1.927366 0.929753 +v 0.257451 1.005115 0.928270 +v 0.258152 1.005157 1.070247 +v 0.144446 0.864949 1.065059 +v 0.144434 0.866083 0.913514 +v -0.257983 1.718743 -0.730968 +v -0.183294 1.927366 -0.725578 +v 0.257356 1.541884 -0.031674 +v 0.257984 1.718742 -0.031674 +v 0.213936 1.724480 -0.012808 +v 0.213408 1.585937 -0.012808 +v 0.183294 1.927366 -0.031674 +v 0.151081 1.887906 -0.012808 +v 0.000000 2.012848 -0.725578 +v 0.000000 2.012847 -0.031673 +v -0.257237 1.370989 0.927836 +v -0.256750 1.371195 -0.736357 +v 0.187757 1.476302 -0.792273 +v 0.187757 1.335660 -0.792273 +v 0.146203 1.348426 -1.160494 +v 0.146203 1.506278 -1.160494 +v 0.256751 1.371195 -0.736357 +v 0.257984 1.718742 -0.730968 +v 0.257238 1.371176 0.927836 +v 0.257167 1.182080 0.927804 +v 0.256751 1.182173 -0.736357 +v -0.145153 1.919827 -0.781493 +v -0.201659 1.715739 -0.786883 +v -0.159904 1.695958 -1.155104 +v -0.115487 1.870179 -1.149714 +v -0.061328 1.229217 -0.792273 +v -0.200726 1.335660 -0.792273 +v -0.159171 1.348426 -1.160494 +v -0.060785 1.241984 -1.160494 +v -0.061222 1.231706 -0.864069 +v -0.256750 1.182173 -0.736357 +v 0.256751 0.956724 -0.734144 +v 0.256751 0.856270 -0.117823 +v -0.256750 0.856270 -0.117823 +v -0.256750 0.956724 -0.734144 +v -0.062749 0.957195 -0.735251 +v 0.051362 0.957195 -0.735251 +v 0.256751 0.867043 0.903277 +v -0.256750 0.867043 0.903277 +v 0.258415 1.181988 1.070247 +v 0.258696 1.371157 1.070247 +v -0.258695 1.370783 1.070247 +v 0.183294 1.927366 -0.725578 +v -0.003170 1.954868 0.910839 +v 0.151354 1.887197 0.910326 +v 0.213936 1.724480 0.909649 +v -0.003170 1.954868 -0.012807 +v 0.213616 1.585937 0.909317 +v -0.159171 1.506278 -1.160494 +v -0.159904 1.390979 -1.676333 +v -0.159171 1.268371 -1.681723 +v 0.146203 1.146998 -1.681723 +v 0.146203 1.268371 -1.681723 +v -0.115487 1.524939 -1.670943 +v -0.200726 1.476302 -0.792273 +v -0.006484 2.003450 -0.781493 +v -0.006484 1.941564 -1.149714 +v 0.132185 1.919827 -0.781493 +v 0.102519 1.870179 -1.149714 +v 0.188690 1.715739 -0.786883 +v 0.146936 1.695958 -1.155104 +v -0.159904 1.204788 -1.982580 +v -0.115487 1.394869 -1.977190 +v -0.049574 1.040555 -1.681723 +v -0.159171 1.146998 -1.681723 +v -0.159171 0.816467 -1.987970 +v -0.049574 0.710024 -1.987970 +v 0.146936 1.390979 -1.676333 +v 0.102519 1.524939 -1.670943 +v 0.102519 1.394869 -1.977190 +v 0.146936 1.204788 -1.982580 +v -0.006484 1.579827 -1.670943 +v 0.102519 1.539839 -2.297575 +v 0.146936 1.349759 -2.302965 +v 0.146203 0.988688 -1.987970 +v 0.146203 1.133659 -2.308354 +v -0.006484 1.472752 -1.977190 +v -0.006484 1.617722 -2.297575 +v 0.146203 0.816467 -1.987970 +v -0.159171 0.988688 -1.987970 +v -0.159171 0.961438 -2.308354 +v -0.159171 1.133659 -2.308354 +v -0.159171 0.787673 -4.057262 +v -0.159171 0.502792 -4.057262 +v -0.115487 1.539839 -2.297575 +v -0.115487 1.525341 -4.046483 +v -0.006484 1.654172 -4.046483 +v -0.159904 1.349759 -2.302965 +v -0.159904 1.210917 -4.051873 +v -0.049574 0.854995 -2.308354 +v 0.146203 0.961438 -2.308354 +v -0.159904 1.210283 -4.199338 +v -0.159171 0.787039 -4.204728 +v 0.146203 0.787673 -4.057262 +v 0.146203 0.502792 -4.057262 +v 0.146203 0.502158 -4.204728 +v 0.146203 0.787039 -4.204728 +v -0.115487 1.524706 -4.193949 +v 0.102519 1.525341 -4.046483 +v 0.146936 1.210917 -4.051873 +v -0.049574 0.396350 -4.057262 +v -0.083889 1.075730 -0.736357 +v 0.146936 1.210283 -4.199338 +v 0.102519 1.524706 -4.193949 +v 0.036802 0.395715 -4.204728 +v -0.006484 1.653537 -4.193949 +v -0.159171 0.502158 -4.204728 +v -0.049574 0.395715 -4.204728 +v 0.036802 0.396350 -4.057262 +v 0.071739 1.075730 -0.736357 +v 0.048556 1.229217 -0.792273 +v 0.048450 1.231706 -0.864069 +v 0.048450 0.960438 -0.864069 +v -0.061222 0.960438 -0.864069 +v 0.036802 0.854995 -2.308354 +v 0.036802 0.710024 -1.987970 +v 0.048013 1.241984 -1.160494 +v 0.036802 1.040555 -1.681723 +v 0.048556 0.958818 -0.792273 +v 0.048556 0.889021 -0.793779 +v 0.048450 0.890640 -0.865575 +v -0.061222 0.890640 -0.865575 +v -0.061328 0.958818 -0.792273 +v 0.050594 0.887869 -0.737864 +v -0.062623 0.887869 -0.737864 +v -0.062623 0.859409 -0.738478 +v 0.050594 0.859409 -0.738478 +v 0.048556 0.860561 -0.794393 +v -0.061328 0.889021 -0.793779 +v -0.061328 0.860561 -0.794393 +v -0.061222 0.862180 -0.866189 +v 0.048450 0.862180 -0.866189 +v 0.048450 0.897640 -1.189937 +v -0.061222 0.897640 -1.189937 +v -0.061222 0.869180 -1.190551 +v -0.061222 0.909566 -1.231055 +v -0.061222 0.883039 -1.241383 +v 0.048450 0.869180 -1.190551 +v 0.048450 0.909566 -1.231055 +v 0.048450 0.883039 -1.241383 +v 0.048450 0.923721 -1.286653 +v 0.048450 0.939453 -1.262928 +v -0.061222 0.923721 -1.286653 +v -0.061222 0.939453 -1.262928 +v -0.061222 0.990369 -1.269143 +v -0.061222 0.991506 -1.297587 +v 0.048450 0.990369 -1.269143 +v 0.048450 0.991506 -1.297587 +v -0.027604 1.183662 -1.022258 +v -0.027604 1.241078 -1.015614 +v -0.027604 1.241078 -1.073029 +v -0.027604 1.183662 -1.079673 +v 0.014636 1.241078 -1.073029 +v 0.014636 1.183662 -1.079673 +v 0.014636 1.241078 -1.015614 +v 0.014636 1.183662 -1.022258 +v 0.014636 1.135947 -1.081794 +v -0.027604 1.135947 -1.081794 +v 0.014636 1.135947 -1.031008 +v -0.027604 1.135947 -1.031008 +v -0.027604 1.073735 -1.037243 +v 0.014636 1.073735 -1.037243 +v 0.014636 1.073735 -1.077975 +v 0.014636 1.020584 -1.027559 +v 0.014636 1.020584 -1.064708 +v -0.027604 1.073735 -1.077975 +v 0.008448 0.973270 -0.999595 +v 0.008448 0.955554 -1.018985 +v -0.027604 1.020584 -1.064708 +v -0.027604 1.020584 -1.027559 +v -0.021416 0.973270 -0.999595 +v -0.014341 0.956268 -0.989678 +v 0.001372 0.956268 -0.989678 +v -0.021416 0.955554 -1.018985 +v -0.014341 0.946947 -0.999880 +v 0.001372 0.946947 -0.999880 +v -0.259043 1.604334 1.840350 +v 0.259047 1.606972 1.840350 +v -0.259043 1.604334 2.018898 +v 0.259047 1.606972 2.018898 +v 0.259030 1.580560 1.803183 +v 0.259030 1.580560 1.107413 +v -0.258712 1.397895 1.107085 +v -0.259026 1.580701 1.107085 +v 0.258696 1.371157 1.840350 +v -0.258695 1.370783 1.840350 +v -0.258695 1.370783 2.018898 +v 0.258696 1.371157 2.018898 +v 0.258713 1.397570 1.803183 +v 0.258713 1.397570 1.107413 +v 0.220014 1.397694 1.107413 +v 0.220014 1.397694 1.803183 +v -0.259026 1.580701 1.803511 +v -0.221491 1.580821 1.107085 +v -0.221491 1.580821 1.803511 +v -0.258712 1.397895 1.803511 +v -0.221177 1.398014 1.107085 +v -0.221177 1.398014 1.803511 +v 0.220331 1.580684 1.107413 +v 0.220331 1.580684 1.803183 +v 0.268254 1.513106 -0.078803 +v 0.268254 0.963807 -0.078803 +v 0.268254 0.963807 -0.628102 +v 0.268254 1.513106 -0.628102 +v 0.121073 1.490289 3.430747 +v 0.326188 1.490289 3.430747 +v 0.326188 1.452264 3.446498 +v 0.121073 1.452264 3.446498 +v 0.326188 1.436513 3.484523 +v 0.121073 1.436513 3.484523 +v 0.326188 1.452264 3.522549 +v 0.121073 1.452264 3.522549 +v 0.326188 1.490289 3.538300 +v 0.121073 1.490289 3.538300 +v 0.326188 1.528315 3.522549 +v 0.121073 1.528315 3.522549 +v 0.326188 1.544065 3.484523 +v 0.121073 1.544065 3.484523 +v 0.326188 1.528315 3.446498 +v 0.121073 1.528315 3.446498 +v 0.406256 1.125653 3.483772 +v 0.372781 1.206173 3.302696 +v 0.405798 1.241512 3.327720 +v 0.434647 1.172119 3.483772 +v 0.377865 1.264868 3.368210 +v 0.399229 1.213480 3.483772 +v 0.327584 1.243964 3.368210 +v 0.348947 1.192576 3.483772 +v 0.324441 1.207689 3.327720 +v 0.353290 1.138296 3.483772 +v 0.297563 1.387101 3.257974 +v 0.340975 1.397436 3.289178 +v 0.329861 1.380335 3.339669 +v 0.279580 1.359431 3.339669 +v 0.259618 1.363613 3.289178 +v 0.237243 1.532194 3.383282 +v 0.288991 1.522477 3.397170 +v 0.291365 1.472933 3.419640 +v 0.241084 1.452029 3.419640 +v 0.207634 1.488654 3.397170 +v 0.237243 1.532194 3.584262 +v 0.288991 1.522477 3.570374 +v 0.291365 1.472933 3.547904 +v 0.241084 1.452029 3.547904 +v 0.207634 1.488654 3.570374 +v 0.297563 1.387101 3.709570 +v 0.340975 1.397436 3.678366 +v 0.329861 1.380335 3.627876 +v 0.279580 1.359431 3.627876 +v 0.259618 1.363613 3.678366 +v 0.372781 1.206173 3.664848 +v 0.405798 1.241512 3.639824 +v 0.377865 1.264868 3.599334 +v 0.327584 1.243964 3.599334 +v 0.324441 1.207689 3.639824 +v 0.000000 1.983355 1.070358 +v 0.156272 1.918625 1.070358 +v 0.221002 1.762353 1.070358 +v 0.156272 1.606081 1.070358 +v 0.000000 1.541351 1.070358 +v -0.156272 1.606081 1.070358 +v -0.221002 1.762353 1.070358 +v 0.000000 1.541351 3.018507 +v 0.156272 1.606081 3.018507 +v 0.156272 1.606081 3.391006 +v 0.000000 1.541351 3.391006 +v -0.156272 1.918625 1.070358 +v 0.156272 1.918625 3.391006 +v 0.000000 1.983355 3.391006 +v 0.000000 2.025926 3.417953 +v 0.186374 1.948727 3.417953 +v -0.156272 1.918625 3.018507 +v -0.221002 1.762353 3.018507 +v -0.221002 1.762353 3.391006 +v -0.156272 1.918625 3.391006 +v 0.221002 1.762353 3.018507 +v 0.156272 1.918625 3.018507 +v 0.221002 1.762353 3.391006 +v -0.156272 1.606081 3.018507 +v -0.156272 1.606081 3.391006 +v 0.000000 1.983355 3.018507 +v -0.186374 1.948727 3.417953 +v -0.263573 1.762353 3.417953 +v -0.263573 1.762353 3.553212 +v -0.186374 1.948727 3.553212 +v -0.186374 1.575979 3.417953 +v 0.186374 1.575979 3.417953 +v 0.000000 1.495447 3.414135 +v 0.263573 1.762353 3.417953 +v 0.263573 1.762353 3.553212 +v 0.186374 1.948727 3.553212 +v 0.156272 1.918625 3.580159 +v 0.221002 1.762353 3.580159 +v 0.000000 1.495447 3.558366 +v -0.186374 1.575979 3.553212 +v 0.186374 1.575979 3.553212 +v 0.000000 2.025926 3.553212 +v 0.000000 1.983355 3.580159 +v -0.156272 1.918625 3.580159 +v -0.156272 1.918625 4.205390 +v 0.000000 1.983355 4.205390 +v -0.221002 1.762353 3.580159 +v 0.000000 1.541351 3.580159 +v -0.156272 1.606081 3.580159 +v 0.156272 1.606081 3.580159 +v 0.000000 2.017086 4.028187 +v 0.136534 1.975546 4.028187 +v 0.126058 1.959349 4.031190 +v -0.156272 1.606081 4.205390 +v 0.000000 1.541351 4.205390 +v 0.000000 1.568728 4.205390 +v -0.136914 1.625439 4.205390 +v -0.221002 1.762353 4.205390 +v 0.156272 1.606081 4.205390 +v 0.156272 1.918625 4.205390 +v 0.221002 1.762353 4.205390 +v -0.136914 1.899267 4.205390 +v -0.193625 1.762353 4.205390 +v -0.193625 1.762353 3.654342 +v -0.136914 1.899267 3.654342 +v 0.193625 1.762353 4.205390 +v 0.136914 1.625439 4.205390 +v 0.000000 1.955978 4.205390 +v 0.136914 1.899267 4.205390 +v -0.136914 1.625439 3.654342 +v 0.000000 1.568728 3.654342 +v 0.136914 1.625439 3.654342 +v 0.193625 1.762353 3.654342 +v 0.136914 1.899267 3.654342 +v 0.000000 1.955978 3.654342 +v -0.156124 1.365909 1.034639 +v 0.000000 1.430577 1.034639 +v 0.156124 1.365909 1.034639 +v 0.220792 1.209785 1.034639 +v 0.156124 1.053662 1.034639 +v 0.000000 0.988993 1.034639 +v -0.156124 1.053662 1.034639 +v -0.220792 1.209785 1.034639 +v 0.000000 1.430367 3.383215 +v -0.155975 1.365760 3.383215 +v -0.199637 1.409422 3.410316 +v -0.220582 1.209785 3.383215 +v 0.155975 1.365760 3.383215 +v 0.199637 1.409422 3.410316 +v 0.155975 1.053810 3.383215 +v 0.220582 1.209785 3.383215 +v 0.282329 1.209785 3.410316 +v 0.199637 1.010148 3.410316 +v 0.000000 0.989203 3.383215 +v 0.000000 0.927456 3.410316 +v -0.155975 1.053810 3.383215 +v -0.199637 1.010148 3.410316 +v -0.282329 1.209785 3.410316 +v -0.199637 1.010148 3.563519 +v -0.282329 1.209785 3.563519 +v -0.199637 1.409422 3.563519 +v 0.199637 1.010148 3.563519 +v 0.000000 0.927456 3.563519 +v 0.199637 1.409422 3.563519 +v 0.282329 1.209785 3.563519 +v 0.157156 1.052629 3.583857 +v 0.000000 0.987533 3.583857 +v 0.157156 1.366942 3.583857 +v 0.222253 1.209785 3.583857 +v -0.222253 1.209785 3.583857 +v -0.157156 1.366942 3.583857 +v -0.157156 1.052629 3.583857 +v 0.000000 1.432038 3.583857 +v 0.000000 1.432038 4.108382 +v 0.157156 1.366942 4.108382 +v -0.222253 1.209785 4.108382 +v -0.157156 1.052629 4.108382 +v -0.170965 1.038821 4.118903 +v -0.241780 1.209785 4.118903 +v 0.222253 1.209785 4.108382 +v 0.157156 1.052629 4.108382 +v 0.000000 0.987533 4.108382 +v -0.157156 1.366942 4.108382 +v -0.170965 1.380750 4.118903 +v -0.241780 1.209785 4.156476 +v -0.170965 1.380750 4.156476 +v 0.000000 0.968005 4.118903 +v 0.000000 1.451566 4.118903 +v 0.170965 1.380750 4.118903 +v 0.241780 1.209785 4.118903 +v 0.170965 1.038821 4.118903 +v 0.170965 1.038821 4.156476 +v 0.241780 1.209785 4.156476 +v 0.208075 1.209785 4.165493 +v 0.147131 1.062654 4.165493 +v -0.170965 1.038821 4.156476 +v 0.000000 0.968005 4.156476 +v 0.000000 1.451566 4.156476 +v 0.170965 1.380750 4.156476 +v -0.147131 1.356917 4.165493 +v -0.208075 1.209785 4.165493 +v -0.147131 1.062654 4.165493 +v 0.000000 1.001710 4.165493 +v 0.147131 1.356917 4.165493 +v 0.000000 1.417861 4.165493 +v 0.000000 1.994179 4.031190 +v -0.136534 1.975546 4.028187 +v -0.126058 1.959349 4.031190 +v -0.156272 1.606081 2.843204 +v -0.221002 1.762353 2.843204 +v -0.239682 1.762353 3.000497 +v -0.169481 1.592872 3.000497 +v 0.221002 1.762353 2.843204 +v 0.156272 1.606081 2.843204 +v 0.169481 1.592872 3.000497 +v 0.239682 1.762353 3.000497 +v 0.000000 1.983355 2.843204 +v 0.156272 1.918625 2.843204 +v 0.167155 1.934229 3.000244 +v 0.000569 2.004398 3.000244 +v -0.156272 1.918625 2.843204 +v -0.167155 1.934229 3.000244 +v 0.000000 1.541351 2.843204 +v 0.000000 1.522671 3.000497 +v 0.169481 1.592872 2.860280 +v 0.000000 1.522671 2.860280 +v -0.239682 1.762353 2.860280 +v -0.167155 1.934229 2.865422 +v 0.167155 1.934229 2.865422 +v 0.239682 1.762353 2.860280 +v -0.169481 1.592872 2.860280 +v 0.000569 2.004398 2.865422 +v -0.128183 2.091560 2.999992 +v -0.128183 2.091560 2.870565 +v -0.000564 2.091560 2.870565 +v 0.128183 2.091560 2.870565 +v 0.128183 2.091560 2.999992 +v -0.000758 2.091560 2.999992 +v -0.000758 2.040556 3.941854 +v -0.000758 2.038297 3.983544 +v -0.128183 2.038297 3.983544 +v -0.103443 2.040556 3.941854 +v -0.128183 2.117034 2.999992 +v -0.000758 2.117034 2.999992 +v -0.000564 2.117035 2.870565 +v -0.128183 2.117035 2.870565 +v 0.128183 2.117034 2.999992 +v 0.128183 2.117035 2.870565 +v -0.000758 2.113045 3.073697 +v -0.103443 2.113045 3.073697 +v -0.000758 2.063745 3.984738 +v -0.128183 2.063745 3.984738 +v 0.128183 2.038297 3.983544 +v 0.128183 2.063745 3.984738 +v -0.000758 2.087663 3.071927 +v 0.103443 2.087663 3.071927 +v 0.103443 2.065968 3.943648 +v -0.000758 2.065968 3.943648 +v -0.103443 2.087663 3.071927 +v -0.103443 2.065968 3.943648 +v 0.103443 2.040556 3.941854 +v 0.103443 2.113045 3.073697 +v -0.101627 1.929570 4.174595 +v -0.101627 2.046870 4.174595 +v -0.101627 2.046870 4.045168 +v -0.101627 1.929570 4.045168 +v -0.060619 2.046870 4.045168 +v 0.001267 2.046870 4.045168 +v 0.001138 1.971165 4.045168 +v 0.101627 1.929570 4.045168 +v 0.101627 2.046870 4.045168 +v 0.101627 2.046870 4.174595 +v 0.101627 1.929570 4.174595 +v 0.056925 2.046870 4.174595 +v 0.001287 2.046870 4.174595 +v 0.001138 1.971165 4.174595 +v 0.056926 2.046870 4.045168 +v 0.056926 2.055243 4.045168 +v 0.101627 2.083730 4.045168 +v -0.060365 2.046870 4.174595 +v -0.060365 2.055243 4.174595 +v -0.101627 2.083730 4.174595 +v -0.101627 2.083730 4.045168 +v 0.101627 2.083730 4.174595 +v -0.060365 2.065117 4.148927 +v -0.060365 2.065117 4.070836 +v -0.075271 2.144081 4.070836 +v -0.075271 2.144081 4.148927 +v 0.074745 2.144397 4.070836 +v 0.056926 2.065117 4.070836 +v 0.056926 2.065117 4.148927 +v 0.074745 2.144397 4.148927 +v -0.098636 2.129495 4.154779 +v -0.098636 2.129495 4.064983 +v 0.098636 2.129495 4.064983 +v 0.098636 2.129495 4.154779 +v -0.060365 2.055243 4.045168 +v 0.056926 2.055243 4.174595 +v -0.059365 1.189290 -1.312787 +v -0.059465 1.198896 -1.284075 +v 0.046693 1.198896 -1.284075 +v 0.046593 1.189290 -1.312787 +vt 0.314366 0.961863 +vt 0.294812 0.975635 +vt 0.294657 0.961939 +vt 0.273456 0.975731 +vt 0.273229 0.961965 +vt 0.262381 0.975737 +vt 0.256051 0.961941 +vt 0.125608 0.749505 +vt 0.097336 0.727764 +vt 0.125610 0.725602 +vt 0.168440 0.696871 +vt 0.168440 0.716405 +vt 0.109231 0.716275 +vt 0.127314 0.962819 +vt 0.110436 0.977071 +vt 0.110100 0.963138 +vt 0.056961 0.977985 +vt 0.034809 0.964084 +vt 0.057052 0.963821 +vt 0.034870 0.978067 +vt 0.014902 0.964099 +vt 0.199446 0.727764 +vt 0.171174 0.749505 +vt 0.171172 0.725602 +vt 0.035307 0.807355 +vt 0.010838 0.597288 +vt 0.017874 0.618909 +vt 0.015372 0.630834 +vt 0.013899 0.556050 +vt 0.009136 0.552343 +vt 0.015271 0.870213 +vt 0.091632 0.963445 +vt 0.055268 0.806356 +vt 0.088357 0.802601 +vt 0.013764 0.139760 +vt 0.049854 0.124762 +vt 0.048730 0.157936 +vt 0.271875 0.803748 +vt 0.255984 0.868690 +vt 0.239398 0.800845 +vt 0.221112 0.961929 +vt 0.221070 0.800394 +vt 0.043269 0.233050 +vt 0.010790 0.189172 +vt 0.008714 0.234441 +vt 0.040214 0.045310 +vt 0.041285 0.072586 +vt 0.016409 0.072577 +vt 0.106773 0.801728 +vt 0.188797 0.799828 +vt 0.189454 0.860441 +vt 0.168859 0.799931 +vt 0.203932 0.961982 +vt 0.190529 0.959560 +vt 0.139611 0.860982 +vt 0.140686 0.960100 +vt 0.179637 0.960676 +vt 0.191879 0.973114 +vt 0.221110 0.975759 +vt 0.239478 0.975750 +vt 0.239470 0.961920 +vt 0.091859 0.977480 +vt 0.068629 0.977845 +vt 0.151599 0.960980 +vt 0.139629 0.973680 +vt 0.295488 0.867180 +vt 0.309465 0.800651 +vt 0.314455 0.865726 +vt 0.099265 0.557700 +vt 0.088674 0.528893 +vt 0.091711 0.518805 +vt 0.273373 0.868342 +vt 0.291054 0.804240 +vt 0.137874 0.461278 +vt 0.058604 0.420707 +vt 0.138976 0.425869 +vt 0.064584 0.393192 +vt 0.133379 0.393550 +vt 0.134776 0.484662 +vt 0.059414 0.457228 +vt 0.017282 0.517402 +vt 0.096715 0.601134 +vt 0.094272 0.561212 +vt 0.090072 0.620005 +vt 0.092216 0.630834 +vt 0.019880 0.528535 +vt 0.093170 0.596621 +vt 0.048521 0.157264 +vt 0.099086 0.151375 +vt 0.101118 0.125172 +vt 0.100614 0.125701 +vt 0.096976 0.181286 +vt 0.045608 0.196565 +vt 0.014112 0.138899 +vt 0.044187 0.260468 +vt 0.009380 0.268657 +vt 0.010839 0.235095 +vt 0.047070 0.260910 +vt 0.012396 0.269226 +vt 0.011742 0.189926 +vt 0.045438 0.233562 +vt 0.050505 0.124018 +vt 0.015811 0.109271 +vt 0.046833 0.197155 +vt 0.129115 0.163540 +vt 0.092797 0.074820 +vt 0.123836 0.051890 +vt 0.125752 0.076448 +vt 0.099258 0.151849 +vt 0.129673 0.163858 +vt 0.097922 0.181697 +vt 0.098488 0.207838 +vt 0.102467 0.099218 +vt 0.100128 0.208179 +vt 0.086379 0.050726 +vt 0.161380 0.154835 +vt 0.130349 0.120529 +vt 0.161569 0.110452 +vt 0.161572 0.193930 +vt 0.129818 0.193381 +vt 0.101290 0.099804 +vt 0.131373 0.074271 +vt 0.130916 0.120113 +vt 0.133141 0.073753 +vt 0.128491 0.193132 +vt 0.134570 0.037458 +vt 0.163321 0.074493 +vt 0.324006 0.068216 +vt 0.325470 0.009804 +vt 0.159015 0.221209 +vt 0.319147 0.219954 +vt 0.160154 0.193815 +vt 0.162323 0.110144 +vt 0.321290 0.154865 +vt 0.153411 0.072905 +vt 0.160980 0.154628 +vt 0.161642 0.074882 +vt 0.136981 0.357463 +vt 0.167260 0.372515 +vt 0.136981 0.373289 +vt 0.088568 0.357595 +vt 0.068186 0.373289 +vt 0.068186 0.357463 +vt 0.189977 0.371792 +vt 0.167260 0.356690 +vt 0.189978 0.355966 +vt 0.321611 0.219338 +vt 0.161143 0.221263 +vt 0.322066 0.154397 +vt 0.321076 0.041804 +vt 0.323456 0.071128 +vt 0.322534 0.067945 +vt 0.250154 0.792851 +vt 0.273221 0.795467 +vt 0.091316 0.794644 +vt 0.293066 0.797695 +vt 0.016873 0.804883 +vt 0.033786 0.801329 +vt 0.077381 0.795722 +vt 0.155566 0.788575 +vt 0.138639 0.778486 +vt 0.158066 0.772764 +vt 0.054011 0.798812 +vt 0.236326 0.792079 +vt 0.202051 0.371732 +vt 0.202051 0.355906 +vt 0.116599 0.357595 +vt 0.116599 0.373421 +vt 0.015190 0.355966 +vt 0.003116 0.371732 +vt 0.003116 0.355906 +vt 0.037907 0.372515 +vt 0.037907 0.356690 +vt 0.015190 0.371792 +vt 0.105668 0.357644 +vt 0.105668 0.373470 +vt 0.099489 0.357644 +vt 0.088568 0.373421 +vt 0.099489 0.373470 +vt 0.188632 0.777943 +vt 0.167878 0.772654 +vt 0.181394 0.762326 +vt 0.294067 0.647961 +vt 0.303167 0.614199 +vt 0.303167 0.647961 +vt 0.153583 0.091790 +vt 0.321316 0.117408 +vt 0.153648 0.123361 +vt 0.323510 0.088039 +vt 0.124127 0.112592 +vt 0.125603 0.089619 +vt 0.041308 0.093532 +vt 0.086689 0.119252 +vt 0.039823 0.120997 +vt 0.273195 0.559127 +vt 0.289603 0.553152 +vt 0.290452 0.556695 +vt 0.091482 0.092156 +vt 0.016236 0.091777 +vt 0.281554 0.625218 +vt 0.271561 0.618402 +vt 0.294030 0.616776 +vt 0.170751 0.788410 +vt 0.193727 0.919817 +vt 0.180297 0.708701 +vt 0.193725 0.708701 +vt 0.265671 0.609576 +vt 0.271448 0.609440 +vt 0.294067 0.614199 +vt 0.303167 0.605510 +vt 0.293952 0.607827 +vt 0.236000 0.625228 +vt 0.245972 0.618420 +vt 0.245995 0.625548 +vt 0.223524 0.616863 +vt 0.246072 0.609463 +vt 0.254076 0.629043 +vt 0.263451 0.625557 +vt 0.263443 0.629089 +vt 0.265727 0.618518 +vt 0.263353 0.618566 +vt 0.265808 0.625494 +vt 0.254047 0.637653 +vt 0.263488 0.637699 +vt 0.251845 0.609578 +vt 0.251796 0.618515 +vt 0.251734 0.625465 +vt 0.157783 0.800051 +vt 0.138954 0.800369 +vt 0.254084 0.625511 +vt 0.254163 0.618559 +vt 0.263310 0.609597 +vt 0.254206 0.609594 +vt 0.294067 0.605510 +vt 0.303167 0.565131 +vt 0.251853 0.569232 +vt 0.253156 0.562875 +vt 0.254213 0.569233 +vt 0.263295 0.569233 +vt 0.265655 0.569230 +vt 0.266567 0.564085 +vt 0.267638 0.557134 +vt 0.268986 0.560040 +vt 0.294067 0.565131 +vt 0.303167 0.559802 +vt 0.264350 0.562875 +vt 0.263295 0.562688 +vt 0.248520 0.560043 +vt 0.244268 0.555593 +vt 0.249867 0.557136 +vt 0.254213 0.562688 +vt 0.263295 0.555128 +vt 0.250939 0.564087 +vt 0.294067 0.559802 +vt 0.303167 0.554364 +vt 0.294067 0.554364 +vt 0.303167 0.547980 +vt 0.273237 0.555588 +vt 0.254213 0.555128 +vt 0.263295 0.546600 +vt 0.263141 0.521961 +vt 0.254213 0.546600 +vt 0.254367 0.521961 +vt 0.303021 0.521961 +vt 0.294067 0.547980 +vt 0.294213 0.521961 +vt 0.227901 0.553165 +vt 0.244311 0.559132 +vt 0.227053 0.556709 +vt 0.322830 0.524494 +vt 0.328472 0.528894 +vt 0.323984 0.531427 +vt 0.330014 0.547183 +vt 0.325218 0.552440 +vt 0.325218 0.547183 +vt 0.328472 0.540213 +vt 0.322830 0.544613 +vt 0.323984 0.537680 +vt 0.329035 0.552477 +vt 0.324239 0.557734 +vt 0.324239 0.552477 +vt 0.321255 0.547183 +vt 0.320214 0.557734 +vt 0.315026 0.552477 +vt 0.320214 0.552477 +vt 0.319165 0.526989 +vt 0.319165 0.542118 +vt 0.320185 0.535986 +vt 0.314282 0.539490 +vt 0.310555 0.534572 +vt 0.315100 0.534572 +vt 0.321255 0.552440 +vt 0.316083 0.547183 +vt 0.320185 0.533121 +vt 0.314282 0.529617 +vt 0.309808 0.539058 +vt 0.304377 0.538124 +vt 0.310555 0.534535 +vt 0.309808 0.530049 +vt 0.315026 0.557734 +vt 0.310543 0.552477 +vt 0.316083 0.552440 +vt 0.311538 0.547183 +vt 0.305983 0.556964 +vt 0.304350 0.554128 +vt 0.305983 0.553247 +vt 0.304377 0.530983 +vt 0.305407 0.528102 +vt 0.311538 0.552440 +vt 0.304942 0.547953 +vt 0.303203 0.554128 +vt 0.304350 0.556083 +vt 0.303203 0.556083 +vt 0.303203 0.550789 +vt 0.303203 0.548833 +vt 0.305407 0.541005 +vt 0.303203 0.540240 +vt 0.303203 0.528867 +vt 0.303745 0.527351 +vt 0.009347 0.553762 +vt 0.097357 0.642576 +vt 0.009348 0.642577 +vt 0.107587 0.829304 +vt 0.189150 0.799526 +vt 0.189194 0.829363 +vt 0.107632 0.799414 +vt 0.189109 0.771635 +vt 0.107673 0.771635 +vt 0.097357 0.553762 +vt 0.117762 0.642576 +vt 0.093110 0.647104 +vt 0.013595 0.647105 +vt 0.013557 0.518373 +vt 0.013557 0.549711 +vt 0.009348 0.683002 +vt 0.097358 0.771695 +vt 0.009348 0.771696 +vt 0.144454 0.771725 +vt 0.117763 0.683001 +vt 0.144712 0.682911 +vt 0.097357 0.513726 +vt 0.117762 0.553762 +vt 0.097357 0.683001 +vt 0.117763 0.771695 +vt 0.280600 0.402906 +vt 0.283604 0.483938 +vt 0.280600 0.483938 +vt 0.013595 0.678474 +vt 0.093110 0.678473 +vt 0.300859 0.402771 +vt 0.303774 0.483879 +vt 0.300859 0.483879 +vt 0.093147 0.549711 +vt 0.093147 0.518373 +vt 0.009347 0.513726 +vt 0.317967 0.402771 +vt 0.303774 0.402771 +vt 0.303778 0.398399 +vt 0.320881 0.483879 +vt 0.320881 0.402771 +vt 0.303778 0.488250 +vt 0.317967 0.483879 +vt 0.317971 0.488250 +vt 0.297812 0.402906 +vt 0.283604 0.402906 +vt 0.297808 0.488445 +vt 0.297812 0.483938 +vt 0.300817 0.483938 +vt 0.300817 0.402906 +vt 0.297808 0.398399 +vt 0.283600 0.398399 +vt 0.080480 0.350713 +vt 0.103363 0.346034 +vt 0.103172 0.373989 +vt 0.333333 -0.000000 +vt 1.000000 1.000000 +vt 0.333333 1.000000 +vt 0.195007 0.381137 +vt 0.201745 0.431502 +vt 0.195007 0.431502 +vt 0.201745 0.381137 +vt 0.208482 0.431502 +vt 0.154582 0.381137 +vt 0.161320 0.431502 +vt 0.154582 0.431502 +vt 0.161319 0.381137 +vt 0.168057 0.431502 +vt 0.168057 0.381137 +vt 0.174795 0.431502 +vt 0.174795 0.381137 +vt 0.181532 0.431502 +vt 0.231060 0.416867 +vt 0.226296 0.424014 +vt 0.219558 0.399615 +vt 0.181532 0.381137 +vt 0.188270 0.431502 +vt 0.188270 0.381137 +vt 0.187482 0.431554 +vt 0.156855 0.444483 +vt 0.154582 0.431555 +vt 0.181530 0.456662 +vt 0.160534 0.456663 +vt 0.181530 0.470033 +vt 0.160534 0.470034 +vt 0.156855 0.482213 +vt 0.187482 0.495142 +vt 0.154582 0.495142 +vt 0.208478 0.431554 +vt 0.177852 0.444483 +vt 0.175578 0.431554 +vt 0.202527 0.456662 +vt 0.202527 0.470033 +vt 0.177852 0.482213 +vt 0.208479 0.495141 +vt 0.175579 0.495142 +vt 0.229475 0.431554 +vt 0.198848 0.444483 +vt 0.196575 0.431554 +vt 0.227202 0.444483 +vt 0.223523 0.470033 +vt 0.198849 0.482213 +vt 0.229475 0.495141 +vt 0.196575 0.495142 +vt 0.250472 0.431554 +vt 0.219845 0.444483 +vt 0.217572 0.431554 +vt 0.248198 0.444483 +vt 0.223523 0.456662 +vt 0.244520 0.456662 +vt 0.244520 0.470033 +vt 0.219845 0.482212 +vt 0.250472 0.495141 +vt 0.217572 0.495141 +vt 0.238569 0.431554 +vt 0.269195 0.444483 +vt 0.240842 0.444483 +vt 0.265517 0.456662 +vt 0.269195 0.482213 +vt 0.240842 0.482212 +vt 0.238568 0.495141 +vt 0.259565 0.431554 +vt 0.290192 0.444483 +vt 0.261838 0.444483 +vt 0.286513 0.456663 +vt 0.265517 0.470033 +vt 0.290191 0.482213 +vt 0.261838 0.482212 +vt 0.259565 0.495141 +vt 0.280562 0.431554 +vt 0.311188 0.444483 +vt 0.282835 0.444483 +vt 0.307510 0.456663 +vt 0.286513 0.470033 +vt 0.311188 0.482213 +vt 0.282835 0.482213 +vt 0.280561 0.495142 +vt 0.126584 0.919818 +vt 0.140012 0.708701 +vt 0.140013 0.919817 +vt 0.207154 0.708701 +vt 0.207155 0.919817 +vt 0.166870 0.919817 +vt 0.153440 0.708701 +vt 0.166869 0.708701 +vt 0.180298 0.919817 +vt 0.153441 0.919817 +vt 0.234135 0.875411 +vt 0.220697 0.919762 +vt 0.220707 0.875404 +vt 0.220583 0.919816 +vt 0.220582 0.708701 +vt 0.113155 0.708702 +vt 0.126584 0.708702 +vt 0.314568 0.891555 +vt 0.309497 0.867473 +vt 0.313761 0.869278 +vt 0.301277 0.875445 +vt 0.287839 0.919797 +vt 0.287849 0.875438 +vt 0.260992 0.875425 +vt 0.247553 0.919776 +vt 0.247564 0.875418 +vt 0.328134 0.875459 +vt 0.314695 0.919811 +vt 0.314706 0.875452 +vt 0.274410 0.919790 +vt 0.274420 0.875431 +vt 0.260982 0.919783 +vt 0.234125 0.919769 +vt 0.301267 0.919804 +vt 0.308531 0.948048 +vt 0.297558 0.919947 +vt 0.309626 0.921049 +vt 0.314647 0.896518 +vt 0.310460 0.894042 +vt 0.311777 0.973256 +vt 0.312696 0.950617 +vt 0.320287 0.797781 +vt 0.307573 0.814336 +vt 0.317673 0.792250 +vt 0.313606 0.864986 +vt 0.308535 0.840905 +vt 0.312799 0.842709 +vt 0.312873 0.946256 +vt 0.313792 0.923617 +vt 0.320287 0.992004 +vt 0.307435 0.975048 +vt 0.312643 0.838418 +vt 0.311836 0.816141 +vt 0.296659 0.841873 +vt 0.293357 0.866637 +vt 0.292551 0.844359 +vt 0.295697 0.815304 +vt 0.297621 0.868441 +vt 0.298902 0.894148 +vt 0.296462 0.946946 +vt 0.260683 0.910703 +vt 0.247255 0.985157 +vt 0.247255 0.910703 +vt 0.293215 0.921738 +vt 0.295366 0.973946 +vt 0.281238 0.988439 +vt 0.291201 0.971377 +vt 0.292395 0.840068 +vt 0.291588 0.817791 +vt 0.270381 0.881699 +vt 0.294350 0.864763 +vt 0.269266 0.880790 +vt 0.292119 0.948738 +vt 0.281862 0.800912 +vt 0.284016 0.795041 +vt 0.300968 0.985157 +vt 0.288372 0.988169 +vt 0.287540 0.985157 +vt 0.287540 0.910703 +vt 0.274112 0.985157 +vt 0.274112 0.910703 +vt 0.206969 0.910703 +vt 0.193541 0.985157 +vt 0.193541 0.910703 +vt 0.233826 0.910703 +vt 0.220398 0.985157 +vt 0.220398 0.910703 +vt 0.260683 0.985157 +vt 0.300968 0.910703 +vt 0.206969 0.985157 +vt 0.233826 0.985157 +vt 0.000000 0.406250 +vt 0.052083 0.421875 +vt 0.000000 0.421875 +vt 0.207801 0.988169 +vt 0.234658 0.988169 +vt 0.259851 0.988169 +vt 0.248086 0.988169 +vt 0.286708 0.988169 +vt 0.274943 0.988169 +vt 0.206138 0.988169 +vt 0.194373 0.988169 +vt 0.232995 0.988169 +vt 0.221230 0.988169 +vt 0.261515 0.988169 +vt 0.048732 0.447842 +vt 0.045556 0.447842 +vt 0.048732 0.436341 +vt 0.000000 0.375000 +vt 0.052083 0.390625 +vt 0.000000 0.390625 +vt 0.000000 0.468750 +vt 0.052083 0.484375 +vt 0.000000 0.484375 +vt 0.000000 0.437500 +vt 0.052083 0.453125 +vt 0.000000 0.453125 +vt 0.052083 0.437500 +vt 0.052083 0.406250 +vt 0.052083 0.500000 +vt 0.000000 0.500000 +vt 0.052083 0.468750 +vt 0.077693 0.682531 +vt 0.085752 0.702806 +vt 0.072784 0.686569 +vt 0.099335 0.548750 +vt 0.085924 0.828424 +vt 0.085920 0.548750 +vt 0.194542 0.682531 +vt 0.186482 0.702806 +vt 0.184647 0.695445 +vt 0.154742 0.695445 +vt 0.169694 0.702806 +vt 0.152906 0.702806 +vt 0.137953 0.695445 +vt 0.136117 0.702806 +vt 0.171530 0.695445 +vt 0.117493 0.695445 +vt 0.102541 0.702806 +vt 0.104376 0.695445 +vt 0.134281 0.695445 +vt 0.119329 0.702806 +vt 0.121165 0.695445 +vt 0.072504 0.548751 +vt 0.072521 0.828425 +vt 0.059088 0.548753 +vt 0.045714 0.828432 +vt 0.045673 0.548757 +vt 0.126166 0.548755 +vt 0.112729 0.828426 +vt 0.112751 0.548752 +vt 0.059117 0.828428 +vt 0.032312 0.828437 +vt 0.032257 0.548762 +vt 0.099327 0.828424 +vt 0.100705 0.695445 +vt 0.087588 0.695445 +vt 0.018909 0.828443 +vt 0.018841 0.548769 +vt 0.102541 0.720660 +vt 0.085752 0.720660 +vt 0.136117 0.720660 +vt 0.169694 0.720660 +vt 0.119329 0.720660 +vt 0.152906 0.720660 +vt 0.151119 0.727549 +vt 0.137904 0.727549 +vt 0.186482 0.720660 +vt 0.171480 0.727549 +vt 0.100754 0.727549 +vt 0.087538 0.727549 +vt 0.104327 0.727549 +vt 0.121115 0.727549 +vt 0.077795 0.740943 +vt 0.073051 0.737368 +vt 0.194439 0.740943 +vt 0.184696 0.727549 +vt 0.167908 0.727549 +vt 0.154692 0.727549 +vt 0.274714 0.919931 +vt 0.261210 0.982393 +vt 0.261210 0.919931 +vt 0.288333 0.987837 +vt 0.271580 0.973788 +vt 0.289932 0.985191 +vt 0.247705 0.919931 +vt 0.234201 0.982393 +vt 0.234201 0.919931 +vt 0.220697 0.982393 +vt 0.220697 0.919931 +vt 0.247705 0.982393 +vt 0.301723 0.919931 +vt 0.288219 0.982393 +vt 0.288219 0.919931 +vt 0.315227 0.919931 +vt 0.301723 0.982393 +vt 0.328732 0.919931 +vt 0.315227 0.982393 +vt 0.274714 0.982393 +vt 0.293124 0.985191 +vt 0.309933 0.968199 +vt 0.311477 0.973788 +vt 0.266945 0.970578 +vt 0.261721 0.942874 +vt 0.269323 0.970403 +vt 0.316112 0.970578 +vt 0.321335 0.942874 +vt 0.323100 0.945273 +vt 0.316112 0.910382 +vt 0.321335 0.938086 +vt 0.313734 0.910558 +vt 0.288333 0.893123 +vt 0.271580 0.907172 +vt 0.271463 0.903605 +vt 0.266945 0.910383 +vt 0.261721 0.938086 +vt 0.259957 0.935688 +vt 0.294723 0.893123 +vt 0.311476 0.907172 +vt 0.293124 0.895769 +vt 0.294723 0.987837 +vt 0.311593 0.977356 +vt 0.273123 0.912761 +vt 0.291528 0.906976 +vt 0.275734 0.916790 +vt 0.291476 0.979602 +vt 0.273049 0.968088 +vt 0.313734 0.970403 +vt 0.317609 0.940559 +vt 0.310007 0.912873 +vt 0.289932 0.895769 +vt 0.269323 0.910558 +vt 0.265447 0.940401 +vt 0.291581 0.901359 +vt 0.291528 0.973984 +vt 0.269192 0.940480 +vt 0.309933 0.912761 +vt 0.307322 0.964171 +vt 0.273123 0.968199 +vt 0.265447 0.940559 +vt 0.275734 0.964171 +vt 0.313864 0.940480 +vt 0.317609 0.940401 +vt 0.307322 0.916789 +vt 0.282700 0.682531 +vt 0.271598 0.702003 +vt 0.270797 0.682531 +vt 0.263862 0.653767 +vt 0.276843 0.637114 +vt 0.276843 0.652877 +vt 0.272434 0.675600 +vt 0.263862 0.635913 +vt 0.272669 0.614289 +vt 0.256381 0.695742 +vt 0.297255 0.695389 +vt 0.282107 0.702003 +vt 0.269648 0.894065 +vt 0.269215 0.907339 +vt 0.267789 0.894057 +vt 0.270334 0.906440 +vt 0.294268 0.923602 +vt 0.237869 0.893926 +vt 0.237791 0.911563 +vt 0.289962 0.934035 +vt 0.303659 0.931128 +vt 0.304214 0.934035 +vt 0.261457 0.934035 +vt 0.247760 0.931128 +vt 0.260902 0.931128 +vt 0.232711 0.934065 +vt 0.222295 0.920924 +vt 0.233498 0.931227 +vt 0.318708 0.934065 +vt 0.329124 0.920924 +vt 0.330769 0.923036 +vt 0.275710 0.934035 +vt 0.289407 0.931128 +vt 0.247205 0.934035 +vt 0.246640 0.931132 +vt 0.317921 0.931228 +vt 0.262012 0.931128 +vt 0.275154 0.931128 +vt 0.262012 0.953205 +vt 0.275709 0.950376 +vt 0.275154 0.953205 +vt 0.261457 0.950376 +vt 0.317931 0.952980 +vt 0.304214 0.950376 +vt 0.318708 0.949777 +vt 0.233488 0.952980 +vt 0.247205 0.950376 +vt 0.246629 0.953196 +vt 0.232711 0.949777 +vt 0.289407 0.953206 +vt 0.289962 0.950376 +vt 0.329533 0.962240 +vt 0.331194 0.959687 +vt 0.221886 0.962240 +vt 0.247760 0.953205 +vt 0.260902 0.953205 +vt 0.290517 0.953206 +vt 0.303659 0.953205 +vt 0.286548 0.925737 +vt 0.274178 0.941902 +vt 0.276506 0.922891 +vt 0.263857 0.931768 +vt 0.253669 0.941716 +vt 0.241589 0.925551 +vt 0.251491 0.922891 +vt 0.302318 0.955878 +vt 0.296095 0.940846 +vt 0.309892 0.941203 +vt 0.276157 1.000043 +vt 0.277845 0.988719 +vt 0.279031 0.999320 +vt 0.284417 0.944018 +vt 0.263815 0.960025 +vt 0.274027 0.944968 +vt 0.273860 0.960272 +vt 0.284163 0.946906 +vt 0.263891 0.944699 +vt 0.253734 0.959924 +vt 0.253781 0.944730 +vt 0.263905 0.941721 +vt 0.262350 0.883120 +vt 0.272118 0.893652 +vt 0.262350 0.893652 +vt 0.243789 0.946439 +vt 0.243564 0.943592 +vt 0.274698 0.990680 +vt 0.275897 0.990665 +vt 0.222326 0.666214 +vt 0.223796 0.675651 +vt 0.221878 0.675521 +vt 0.276984 0.883345 +vt 0.274471 0.883120 +vt 0.209797 0.558857 +vt 0.219735 0.569163 +vt 0.209797 0.569163 +vt 0.225468 0.664276 +vt 0.226612 0.674973 +vt 0.222094 0.558857 +vt 0.223523 0.666167 +vt 0.281111 0.893792 +vt 0.279697 0.988827 +vt 0.228356 0.674554 +vt 0.227211 0.663856 +vt 0.220401 0.664219 +vt 0.217884 0.569235 +vt 0.272118 0.897282 +vt 0.279262 0.893687 +vt 0.219072 0.674722 +vt 0.289130 0.883559 +vt 0.289049 0.893859 +vt 0.272776 0.988740 +vt 0.274236 0.999907 +vt 0.271463 0.999118 +vt 0.226877 0.569238 +vt 0.236860 0.558893 +vt 0.236778 0.569413 +vt 0.208616 0.698065 +vt 0.199561 0.713051 +vt 0.199561 0.698065 +vt 0.223046 0.714223 +vt 0.228088 0.714255 +vt 0.228001 0.723082 +vt 0.247216 0.713051 +vt 0.256270 0.698065 +vt 0.256270 0.713051 +vt 0.232635 0.696906 +vt 0.228128 0.696870 +vt 0.228192 0.688045 +vt 0.236144 0.714777 +vt 0.232647 0.713361 +vt 0.236489 0.710792 +vt 0.219824 0.696340 +vt 0.223052 0.697748 +vt 0.219448 0.700309 +vt 0.211461 0.713051 +vt 0.208616 0.713051 +vt 0.244371 0.698065 +vt 0.247216 0.698065 +vt 0.223330 0.710079 +vt 0.217127 0.701037 +vt 0.223330 0.701037 +vt 0.232384 0.710079 +vt 0.238657 0.701037 +vt 0.238657 0.710079 +vt 0.215001 0.700359 +vt 0.211461 0.698065 +vt 0.240830 0.700359 +vt 0.244370 0.713051 +vt 0.240830 0.710757 +vt 0.215001 0.710756 +vt 0.212477 0.718880 +vt 0.232384 0.701037 +vt 0.217127 0.710079 +vt 0.243247 0.691947 +vt 0.223051 0.713206 +vt 0.232650 0.697917 +vt 0.236090 0.696640 +vt 0.236348 0.700497 +vt 0.219875 0.714484 +vt 0.219585 0.710645 +vt 0.243247 0.719169 +vt 0.212477 0.692235 +vt 0.223082 0.696719 +vt 0.220294 0.682531 +vt 0.232619 0.714384 +vt 0.235699 0.728531 +vt 0.236749 0.573040 +vt 0.269746 0.998630 +vt 0.144323 0.762715 +vt 0.314455 0.975508 +vt 0.097131 0.750157 +vt 0.159735 0.751740 +vt 0.138787 0.766338 +vt 0.117867 0.751648 +vt 0.109270 0.696289 +vt 0.127627 0.976678 +vt 0.014857 0.978001 +vt 0.199651 0.750157 +vt 0.014710 0.592571 +vt 0.014697 0.110197 +vt 0.010653 0.072850 +vt 0.010554 0.041223 +vt 0.199186 0.800615 +vt 0.128645 0.801487 +vt 0.203942 0.975766 +vt 0.062578 0.483566 +vt 0.131861 0.038058 +vt 0.318354 0.254488 +vt 0.153393 0.041207 +vt 0.321715 0.253791 +vt 0.322483 0.009668 +vt 0.308636 0.795153 +vt 0.018435 0.799670 +vt 0.009876 0.122906 +vt 0.010440 0.091074 +vt 0.271559 0.625547 +vt 0.223589 0.607923 +vt 0.327319 0.521961 +vt 0.330014 0.552440 +vt 0.327319 0.547146 +vt 0.329035 0.557734 +vt 0.315100 0.534535 +vt 0.310543 0.557734 +vt 0.304942 0.551670 +vt 0.303745 0.541756 +vt 0.117762 0.513726 +vt 0.317971 0.398399 +vt 0.283600 0.488445 +vt 0.141926 0.346559 +vt 0.168187 0.351749 +vt 0.141640 0.374054 +vt 0.180275 0.360697 +vt 0.167479 0.368991 +vt 0.081648 0.369717 +vt 0.075115 0.362544 +vt 0.074695 0.357469 +vt 1.000000 -0.000000 +vt 0.208482 0.381137 +vt 0.219558 0.424014 +vt 0.214794 0.416868 +vt 0.214794 0.406761 +vt 0.226296 0.399615 +vt 0.231060 0.406761 +vt 0.185209 0.444483 +vt 0.185209 0.482213 +vt 0.206205 0.444482 +vt 0.206205 0.482213 +vt 0.227202 0.482212 +vt 0.248198 0.482212 +vt 0.271468 0.431554 +vt 0.271468 0.495142 +vt 0.292465 0.431554 +vt 0.292465 0.495142 +vt 0.313461 0.431555 +vt 0.307510 0.470034 +vt 0.313461 0.495142 +vt 0.113156 0.919818 +vt 0.328124 0.919818 +vt 0.313949 0.919163 +vt 0.317605 0.997602 +vt 0.292296 0.944377 +vt 0.283402 0.994429 +vt 0.300137 0.988169 +vt 0.219566 0.988169 +vt 0.246423 0.988169 +vt 0.273280 0.988169 +vt 0.043310 0.444474 +vt 0.043310 0.439710 +vt 0.045556 0.436341 +vt 0.050978 0.439710 +vt 0.050978 0.444474 +vt 0.052083 0.375000 +vt 0.199450 0.686569 +vt 0.167858 0.695445 +vt 0.151070 0.695445 +vt 0.126132 0.828429 +vt 0.117543 0.727549 +vt 0.134331 0.727549 +vt 0.199184 0.737368 +vt 0.271463 0.977356 +vt 0.328732 0.982393 +vt 0.291581 0.979602 +vt 0.259957 0.945273 +vt 0.323100 0.935687 +vt 0.311593 0.903605 +vt 0.291476 0.901359 +vt 0.310007 0.968087 +vt 0.273049 0.912873 +vt 0.237860 0.876290 +vt 0.290517 0.931128 +vt 0.220707 0.923131 +vt 0.276265 0.931128 +vt 0.304779 0.931132 +vt 0.304790 0.953196 +vt 0.276265 0.953205 +vt 0.220287 0.959600 +vt 0.293315 0.949913 +vt 0.224609 0.558677 +vt 0.218549 0.664294 +vt 0.262350 0.897282 +vt 0.220063 0.728189 +vt 0.235926 0.682997 +vt 0.216897 0.712351 +vt 0.238896 0.698725 +vt 0.238896 0.712391 +vt 0.216897 0.698764 +vt 0.226848 0.572865 +vt 0.271059 0.988251 +vn 0.4257 0.9049 -0.0048 +vn 0.9414 0.3371 -0.0135 +vn 1.0000 -0.0021 -0.0092 +vn 0.9999 -0.0056 -0.0127 +vn -0.7762 -0.6305 -0.0048 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0049 -0.0080 +vn -1.0000 0.0016 -0.0087 +vn -0.9414 0.3371 -0.0136 +vn -0.9415 0.3368 -0.0109 +vn -0.4227 0.9063 0.0000 +vn 0.7762 -0.6305 -0.0048 +vn -0.9415 0.3371 0.0000 +vn -0.9406 0.3396 0.0004 +vn 0.3933 -0.0014 0.9194 +vn 0.3737 0.1338 0.9179 +vn -1.0000 -0.0035 -0.0003 +vn 0.9937 0.0000 -0.1121 +vn 1.0000 -0.0035 0.0000 +vn 1.0000 0.0000 -0.0002 +vn -0.9568 0.2679 -0.1132 +vn -0.7341 -0.6786 -0.0246 +vn -1.0000 -0.0004 -0.0003 +vn -0.0014 -0.9870 -0.1609 +vn 1.0000 -0.0079 -0.0019 +vn 1.0000 -0.0051 0.0001 +vn -1.0000 -0.0051 0.0001 +vn -1.0000 -0.0079 -0.0019 +vn 0.0908 -0.1778 0.9799 +vn 0.0000 -1.0000 -0.0075 +vn 1.0000 0.0016 -0.0088 +vn 1.0000 0.0049 -0.0080 +vn 0.9999 -0.0004 -0.0153 +vn 0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0153 +vn -1.0000 -0.0021 -0.0092 +vn -0.9999 -0.0069 -0.0104 +vn -0.9999 -0.0048 -0.0096 +vn -0.0908 -0.1778 0.9799 +vn 0.4227 0.9063 0.0000 +vn 0.1385 0.3003 -0.9437 +vn 0.9415 0.3371 0.0000 +vn 0.9333 0.3590 -0.0000 +vn 0.4012 0.9160 0.0000 +vn 1.0000 -0.0023 0.0000 +vn 0.9985 -0.0546 0.0000 +vn 0.3719 0.1363 -0.9182 +vn 0.7077 0.7065 -0.0002 +vn 0.1397 0.2995 0.9438 +vn 0.3939 0.0013 -0.9192 +vn -1.0000 -0.0068 0.0000 +vn -1.0000 -0.0061 0.0028 +vn -1.0000 -0.0042 0.0047 +vn 1.0000 0.0000 0.0000 +vn 1.0000 0.0007 0.0027 +vn 1.0000 -0.0016 -0.0023 +vn -0.9546 0.2485 -0.1646 +vn -0.9937 -0.0007 -0.1122 +vn -0.5111 0.8476 -0.1425 +vn 0.5111 0.8476 -0.1425 +vn 0.9568 0.2679 -0.1132 +vn -0.9937 0.0000 -0.1121 +vn 0.9936 -0.0013 -0.1126 +vn -0.9389 0.3167 -0.1345 +vn -0.5509 -0.5672 0.6122 +vn 0.9389 0.3167 -0.1345 +vn -0.4738 0.7235 -0.5021 +vn -1.0000 0.0000 0.0000 +vn -1.0000 -0.0023 0.0014 +vn 0.4738 0.7235 -0.5021 +vn 1.0000 -0.0012 0.0016 +vn 1.0000 -0.0039 0.0023 +vn 0.9546 0.2485 -0.1646 +vn -0.6739 -0.6939 0.2537 +vn 0.9694 0.2236 0.1017 +vn 0.9694 0.2237 0.1012 +vn 1.0000 -0.0034 -0.0015 +vn 1.0000 -0.0017 -0.0014 +vn 1.0000 -0.0038 -0.0012 +vn 0.5456 0.7635 0.3455 +vn 1.0000 0.0015 0.0024 +vn 1.0000 -0.0023 -0.0015 +vn -1.0000 -0.0045 0.0006 +vn -1.0000 -0.0035 0.0032 +vn -1.0000 -0.0007 0.0039 +vn -0.4293 0.8526 -0.2981 +vn -1.0000 -0.0004 0.0028 +vn 0.4293 0.8526 -0.2981 +vn 1.0000 -0.0037 0.0023 +vn 1.0000 -0.0061 0.0037 +vn -0.5813 0.8136 -0.0067 +vn -1.0000 -0.0019 -0.0013 +vn -1.0000 -0.0017 0.0003 +vn -0.6627 -0.6823 -0.3087 +vn -0.9694 0.2237 0.1012 +vn -0.9694 0.2235 0.1017 +vn 1.0000 0.0006 -0.0028 +vn 1.0000 -0.0008 0.0015 +vn -1.0000 -0.0034 -0.0015 +vn -1.0000 -0.0033 0.0002 +vn -1.0000 -0.0014 -0.0035 +vn -0.5456 0.7635 0.3455 +vn -1.0000 -0.0025 -0.0012 +vn -1.0000 -0.0017 0.0000 +vn -0.9902 0.1399 -0.0006 +vn 0.5813 0.8136 -0.0067 +vn 1.0000 -0.0032 -0.0014 +vn 1.0000 -0.0034 0.0003 +vn 1.0000 -0.0038 -0.0000 +vn 0.9737 0.2279 -0.0023 +vn 0.9738 0.2276 -0.0019 +vn -0.6847 -0.7050 0.1849 +vn -0.9738 0.2276 -0.0019 +vn -0.9736 0.2281 -0.0020 +vn 1.0000 -0.0017 -0.0001 +vn 0.6275 0.0151 -0.7785 +vn 0.6330 0.0176 -0.7740 +vn -0.7019 0.0021 -0.7122 +vn -0.7064 0.0000 -0.7078 +vn 0.6040 0.2359 -0.7612 +vn 0.3767 0.8078 -0.4533 +vn -0.3910 0.8384 -0.3797 +vn -0.7142 0.0083 -0.6999 +vn -0.7143 0.0016 -0.6998 +vn -0.7176 0.0128 -0.6964 +vn -0.1915 -0.3110 -0.9309 +vn -0.6735 0.2590 -0.6923 +vn 0.6296 0.0075 -0.7769 +vn 0.6296 0.0000 -0.7769 +vn 0.6254 -0.0051 -0.7803 +vn -0.7634 0.6459 -0.0028 +vn 0.7634 0.6459 -0.0028 +vn 1.0000 -0.0017 0.0000 +vn 0.9902 0.1399 -0.0006 +vn -0.6967 -0.7173 0.0031 +vn 0.6973 -0.7167 0.0031 +vn 0.0000 -1.0000 0.0043 +vn 0.1962 -0.2566 -0.9464 +vn 0.0000 0.0000 -1.0000 +vn 0.6853 -0.7044 0.1847 +vn 0.0000 -0.9673 0.2537 +vn 0.6633 -0.6818 -0.3085 +vn 0.0000 -0.9111 -0.4123 +vn 0.7110 -0.6559 0.2535 +vn 0.9999 0.0128 -0.0066 +vn 0.9999 0.0080 -0.0062 +vn 0.5516 -0.5669 0.6119 +vn 0.0000 -0.6796 0.7335 +vn 0.7348 -0.6778 -0.0246 +vn 0.9238 0.0000 -0.3830 +vn 0.0056 -0.0098 -0.9999 +vn 0.0000 -1.0000 0.0095 +vn -0.9239 0.3827 0.0000 +vn 1.0000 0.0000 -0.0015 +vn 0.0000 0.0216 -0.9998 +vn -0.9840 -0.1758 -0.0295 +vn -1.0000 0.0000 -0.0015 +vn 0.0000 -0.0216 0.9998 +vn 0.9993 0.0008 -0.0364 +vn 0.0000 -0.0377 0.9993 +vn -0.9997 -0.0009 -0.0249 +vn -0.0057 -0.0103 -0.9999 +vn 0.0000 -0.9998 -0.0206 +vn 0.0000 -0.9997 -0.0225 +vn -0.9997 0.0005 -0.0231 +vn 0.0000 0.9998 0.0216 +vn 0.0000 -0.9998 -0.0216 +vn 0.0000 0.9604 0.2786 +vn 0.0000 -0.9648 -0.2630 +vn -1.0000 -0.0047 0.0009 +vn 0.0000 -0.7438 -0.6684 +vn 0.0000 0.7295 0.6840 +vn 0.0000 0.1212 0.9926 +vn 1.0000 -0.0039 0.0029 +vn 1.0000 -0.0005 -0.0048 +vn 0.0000 -0.1592 -0.9872 +vn 0.0000 -0.0766 -0.9971 +vn 0.0000 0.0714 0.9974 +vn -0.9999 0.0080 -0.0062 +vn -0.9999 0.0128 -0.0066 +vn 0.0000 0.1150 -0.9934 +vn 0.0000 -0.1150 0.9934 +vn 0.0000 0.0444 -0.9990 +vn 0.0000 -0.0997 0.9950 +vn 0.0000 -0.1804 0.9836 +vn 0.0000 -0.0613 -0.9981 +vn 0.9955 -0.0947 0.0000 +vn 0.0000 0.1792 0.9838 +vn 0.0000 -0.2422 -0.9702 +vn 0.0008 0.5015 0.8652 +vn 0.0000 0.5038 0.8638 +vn 0.0005 0.5013 0.8652 +vn -0.9934 -0.0844 0.0771 +vn 0.0000 0.5088 0.8609 +vn 0.0025 0.5075 0.8616 +vn -0.0026 0.5077 0.8616 +vn 0.0000 -0.5752 -0.8180 +vn 0.0000 -0.7383 0.6745 +vn 0.0000 -0.9117 -0.4108 +vn 0.9385 -0.2548 0.2328 +vn -0.9386 -0.2548 0.2328 +vn 0.0000 -0.9994 -0.0347 +vn -0.0051 1.0000 0.0000 +vn 0.0000 -0.0370 0.9993 +vn 0.9999 -0.0021 -0.0102 +vn 0.9999 0.0018 -0.0135 +vn -1.0000 -0.0035 -0.0069 +vn -0.9999 0.0001 -0.0134 +vn -1.0000 -0.0015 -0.0087 +vn 1.0000 0.0010 0.0047 +vn 1.0000 -0.0006 0.0000 +vn -1.0000 -0.0027 0.0042 +vn -1.0000 -0.0017 -0.0006 +vn 0.0007 -1.0000 -0.0000 +vn -1.0000 -0.0012 0.0001 +vn -1.0000 -0.0015 0.0000 +vn -1.0000 -0.0013 -0.0003 +vn 1.0000 -0.0015 0.0000 +vn 0.0032 1.0000 0.0000 +vn 1.0000 -0.0056 0.0033 +vn 1.0000 -0.0015 0.0006 +vn 1.0000 0.0015 0.0047 +vn 1.0000 -0.0017 0.0008 +vn 1.0000 -0.0006 0.0051 +vn 0.0032 -1.0000 -0.0000 +vn -1.0000 0.0013 0.0045 +vn -1.0000 -0.0007 -0.0000 +vn -1.0000 -0.0006 0.0003 +vn -1.0000 -0.0012 -0.0007 +vn -1.0000 -0.0015 -0.0006 +vn -1.0000 -0.0012 -0.0008 +vn -1.0000 -0.0004 0.0051 +vn -1.0000 -0.0006 0.0000 +vn -0.0032 1.0000 0.0000 +vn -0.0032 -1.0000 0.0000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.7951 -0.4858 -0.3630 +vn 0.7513 0.6433 0.1472 +vn -0.3459 0.8319 0.4339 +vn -0.9860 -0.0789 0.1472 +vn -0.2163 -0.9063 -0.3630 +vn 0.5772 0.0383 -0.8157 +vn 0.8396 0.4308 0.3307 +vn -0.0854 0.2055 0.9749 +vn -0.8976 -0.2914 0.3307 +vn -0.4343 -0.3822 -0.8157 +vn 0.3055 0.6919 -0.6541 +vn 0.9498 0.1658 0.2652 +vn 0.2394 -0.5757 0.7818 +vn -0.7874 -0.5564 0.2652 +vn -0.7060 0.2715 -0.6542 +vn 0.1846 0.9828 0.0000 +vn 0.9989 0.0479 0.0000 +vn 0.3839 -0.9234 0.0000 +vn -0.7384 -0.6744 0.0000 +vn -0.8269 0.5623 0.0000 +vn 0.3055 0.6919 0.6541 +vn 0.9498 0.1658 -0.2652 +vn 0.2394 -0.5757 -0.7818 +vn -0.7874 -0.5564 -0.2652 +vn -0.7060 0.2715 0.6541 +vn 0.5772 0.0383 0.8157 +vn 0.8396 0.4308 -0.3308 +vn -0.0854 0.2055 -0.9749 +vn -0.8976 -0.2914 -0.3307 +vn -0.4342 -0.3822 0.8157 +vn 0.7951 -0.4858 0.3630 +vn 0.7513 0.6433 -0.1472 +vn -0.3459 0.8319 -0.4339 +vn -0.9860 -0.0789 -0.1472 +vn -0.2163 -0.9063 0.3630 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.2163 0.5222 -0.8249 +vn -0.2163 0.5222 -0.8249 +vn -0.5222 -0.2163 -0.8249 +vn 0.2081 -0.4401 -0.8735 +vn 0.5222 0.2163 -0.8249 +vn -0.5222 0.2163 -0.8249 +vn -0.2163 -0.5222 -0.8249 +vn 0.5222 -0.2163 -0.8249 +vn 0.5222 0.2163 0.8249 +vn -0.5222 0.2163 0.8249 +vn -0.2163 -0.5222 0.8249 +vn 0.5222 -0.2163 0.8249 +vn 0.3827 0.9238 -0.0120 +vn 0.8438 -0.5265 0.1041 +vn -0.5222 -0.2163 0.8250 +vn 0.2058 -0.4197 0.8840 +vn -0.1653 0.4232 -0.8908 +vn -0.9239 0.3827 0.0001 +vn 0.1642 0.3964 -0.9033 +vn 0.3964 -0.1642 -0.9033 +vn 0.1642 -0.3964 -0.9033 +vn 0.3964 0.1642 -0.9033 +vn -0.3964 -0.1642 -0.9033 +vn -0.1642 -0.3964 -0.9033 +vn -0.3827 0.9239 0.0001 +vn 0.9239 0.3827 0.0001 +vn -0.3827 -0.9239 0.0001 +vn 0.3827 0.9239 0.0001 +vn 0.9239 -0.3827 0.0001 +vn -0.9239 -0.3827 0.0001 +vn -0.3964 0.1642 -0.9033 +vn 0.3827 -0.9239 0.0001 +vn 0.1317 -0.3179 0.9389 +vn 0.3179 0.1317 0.9389 +vn -0.3179 0.1317 0.9389 +vn -0.3179 -0.1317 0.9389 +vn -0.1317 -0.3179 0.9389 +vn -0.1355 0.3696 0.9193 +vn 0.1317 0.3179 0.9389 +vn 0.3179 -0.1317 0.9390 +vn -0.4654 -0.1928 -0.8638 +vn -0.1928 -0.4654 -0.8638 +vn -0.1928 0.4654 -0.8638 +vn 0.1928 0.4654 -0.8638 +vn 0.4654 -0.1928 -0.8639 +vn 0.1928 -0.4654 -0.8638 +vn 0.4654 0.1928 -0.8638 +vn -0.4654 0.1928 -0.8639 +vn 0.2570 -0.1064 0.9605 +vn 0.1064 -0.2570 0.9605 +vn 0.2570 0.1064 0.9605 +vn -0.2570 0.1064 0.9605 +vn -0.2570 -0.1064 0.9605 +vn -0.1064 -0.2570 0.9605 +vn -0.1064 0.2570 0.9605 +vn 0.1064 0.2570 0.9605 +vn 0.9968 0.0794 0.0000 +vn -0.9968 0.0794 0.0000 +vn -0.0007 0.0459 -0.9989 +vn -0.0009 0.0618 0.9981 +vn 0.0009 0.0618 0.9981 +vn 0.0007 0.0459 -0.9989 +vn 0.0465 0.1529 0.9871 +vn -0.0359 0.1299 0.9909 +vn -0.2910 0.9565 0.0178 +vn -0.7522 -0.6487 0.1156 +vn -0.2662 -0.9636 0.0231 +vn 0.3820 -0.9223 0.0577 +vn -0.6671 -0.2763 0.6919 +vn 0.6671 -0.2763 0.6919 +vn 0.2683 0.6476 0.7132 +vn -0.2660 0.6359 0.7244 +vn -0.2763 -0.6671 0.6919 +vn 0.6671 0.2763 0.6919 +vn -0.6907 0.2924 0.6614 +vn 0.2763 -0.6671 0.6919 +vn 0.2692 -0.6498 -0.7108 +vn -0.7364 0.3285 -0.5914 +vn -0.9213 0.3888 0.0000 +vn 0.6498 0.2692 -0.7108 +vn 0.9213 0.3888 0.0000 +vn -0.2692 -0.6498 -0.7109 +vn -0.2921 0.6981 -0.6537 +vn 0.2936 0.7087 -0.6415 +vn 0.6498 -0.2692 -0.7109 +vn -0.6498 -0.2692 -0.7108 +vn -0.9707 0.2404 0.0000 +vn -0.0152 0.0364 -0.9992 +vn 0.9707 0.2404 0.0000 +vn 0.0008 0.0018 1.0000 +vn 0.0000 -0.9985 -0.0541 +vn -0.0007 0.0018 1.0000 +vn 0.0154 0.0365 -0.9992 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.9985 0.0540 +vn 0.0000 -0.0469 0.9989 +vn 0.0000 0.0704 -0.9975 +vn 0.0000 -0.0696 0.9976 +vn 0.9826 0.1855 0.0000 +vn -0.9757 0.2193 0.0000 +vn -0.9979 0.0652 0.0000 +vn 0.9979 0.0652 0.0000 +vn 0.5958 0.2860 -0.7505 +vn -0.5296 0.8483 0.0000 +vn 0.5292 0.8485 0.0000 +vn -0.5654 0.2963 0.7697 +vn 0.0000 0.9333 -0.3590 +vn -0.5112 0.8022 -0.3086 +vn 0.0000 0.9333 0.3590 +vn 0.5416 0.7846 0.3018 +vn -0.5654 0.2963 -0.7698 +vn 0.5416 0.7846 -0.3018 +vn 0.5958 0.2860 0.7504 +vn -0.5112 0.8022 0.3086 +vn 1.0000 -0.0023 -0.0003 +vn 0.0054 -0.0103 -0.9999 +vn -0.0060 -0.0098 -0.9999 +vn -0.2048 -0.2682 -0.9413 +vn 0.1799 -0.3126 -0.9327 +vn 0.0000 -0.9869 -0.1613 +vn 0.0015 -0.9870 -0.1609 +vn 0.9385 0.3453 -0.0001 +vn 1.0000 -0.0015 -0.0087 +vn 0.9999 0.0000 -0.0134 +vn -0.7768 -0.6298 -0.0036 +vn -1.0000 0.0004 -0.0021 +vn -1.0000 -0.0015 -0.0049 +vn -0.9385 0.3453 0.0000 +vn 0.7768 -0.6298 -0.0036 +vn -0.9412 0.3378 -0.0026 +vn 0.3935 -0.0015 0.9193 +vn 0.4060 0.1562 0.9004 +vn -1.0000 -0.0021 0.0000 +vn -1.0000 -0.0018 -0.0027 +vn 1.0000 -0.0036 0.0000 +vn 1.0000 -0.0004 -0.0003 +vn -0.9608 0.2487 -0.1223 +vn -0.6066 -0.7945 -0.0284 +vn -0.6264 -0.7733 -0.0975 +vn -1.0000 0.0000 -0.0003 +vn 1.0000 -0.0005 -0.0003 +vn 1.0000 0.0016 -0.0009 +vn 1.0000 0.0030 -0.0040 +vn -1.0000 0.0030 -0.0040 +vn -1.0000 0.0016 -0.0009 +vn -1.0000 -0.0005 -0.0003 +vn 1.0000 -0.0015 -0.0049 +vn 1.0000 0.0004 -0.0021 +vn 0.9999 -0.0056 -0.0118 +vn 1.0000 -0.0015 -0.0088 +vn -1.0000 -0.0015 -0.0088 +vn -0.9999 -0.0056 -0.0118 +vn -0.9999 -0.0015 -0.0102 +vn -0.9999 0.0036 -0.0103 +vn -0.9999 -0.0061 -0.0084 +vn 0.1422 0.3319 -0.9325 +vn 0.3982 0.9173 0.0006 +vn 1.0000 -0.0038 -0.0002 +vn 0.4062 0.1600 -0.8997 +vn 0.7079 0.7063 -0.0002 +vn 0.1430 0.3294 0.9333 +vn 0.3947 0.0009 -0.9188 +vn -1.0000 -0.0012 0.0016 +vn -1.0000 -0.0039 0.0023 +vn 1.0000 -0.0024 0.0014 +vn -0.9306 0.3160 -0.1849 +vn -0.9936 -0.0013 -0.1126 +vn -0.5412 0.8265 -0.1550 +vn 0.5412 0.8265 -0.1550 +vn 0.9608 0.2487 -0.1223 +vn 0.9937 -0.0007 -0.1122 +vn -0.9634 0.2291 -0.1393 +vn 0.9634 0.2291 -0.1393 +vn -0.3871 0.7687 -0.5092 +vn -1.0000 -0.0016 -0.0023 +vn -1.0000 0.0006 0.0027 +vn 0.3871 0.7687 -0.5092 +vn 1.0000 -0.0068 0.0000 +vn 1.0000 -0.0042 0.0048 +vn 1.0000 -0.0061 0.0028 +vn 0.9306 0.3160 -0.1849 +vn 0.0000 -0.9328 0.3605 +vn -0.7103 -0.6566 0.2537 +vn 0.9693 0.2241 0.1015 +vn 1.0000 -0.0008 -0.0027 +vn 1.0000 -0.0030 0.0001 +vn 1.0000 -0.0020 0.0020 +vn -1.0000 -0.0038 0.0023 +vn -1.0000 -0.0061 0.0037 +vn -0.5495 0.7690 -0.3266 +vn -1.0000 -0.0023 -0.0015 +vn -1.0000 0.0017 0.0022 +vn 0.5495 0.7690 -0.3266 +vn 1.0000 -0.0045 0.0006 +vn 1.0000 -0.0010 0.0046 +vn 1.0000 -0.0035 0.0032 +vn -1.0000 -0.0015 -0.0007 +vn -0.7633 0.6459 0.0135 +vn -1.0000 -0.0035 -0.0002 +vn -1.0000 -0.0034 0.0003 +vn -0.9693 0.2238 0.1017 +vn 1.0000 -0.0017 -0.0022 +vn -1.0000 -0.0039 -0.0015 +vn -1.0000 -0.0019 -0.0008 +vn -1.0000 0.0002 -0.0028 +vn -1.0000 -0.0012 0.0012 +vn 0.7633 0.6459 0.0135 +vn 1.0000 -0.0020 -0.0013 +vn 1.0000 -0.0017 0.0003 +vn 0.9901 0.1400 -0.0116 +vn 0.9901 0.1401 -0.0111 +vn -0.9901 0.1401 -0.0111 +vn -0.9901 0.1401 -0.0116 +vn 0.6385 0.0097 -0.7696 +vn 0.6425 0.0150 -0.7662 +vn 0.6390 0.0022 -0.7692 +vn -0.7068 0.0066 -0.7074 +vn -0.7028 -0.0044 -0.7114 +vn 0.7066 0.2135 -0.6746 +vn 0.5060 0.8391 -0.1997 +vn -0.5146 0.8533 -0.0838 +vn -0.7041 0.0132 -0.7100 +vn -0.7086 0.0154 -0.7055 +vn -0.7884 0.2333 -0.5692 +vn 0.6241 0.0024 -0.7814 +vn -0.6967 -0.7174 0.0031 +vn 0.6746 -0.6933 0.2534 +vn 0.9999 0.0140 -0.0012 +vn 0.9999 0.0097 0.0052 +vn 1.0000 0.0094 0.0004 +vn 0.6270 -0.7729 -0.0976 +vn 0.6072 -0.7941 -0.0284 +vn 0.9841 -0.1697 -0.0533 +vn -0.0095 -0.9999 0.0105 +vn 0.0095 -0.9999 0.0105 +vn -0.9274 0.0000 -0.3742 +vn 0.9987 -0.0092 -0.0494 +vn -1.0000 -0.0005 -0.0048 +vn -1.0000 -0.0039 0.0029 +vn 1.0000 -0.0047 0.0009 +vn -0.0004 -0.0719 -0.9974 +vn -1.0000 0.0094 0.0004 +vn -0.9999 0.0097 0.0052 +vn -0.9999 0.0140 -0.0012 +vn 0.0000 0.1149 -0.9934 +vn 0.0000 -0.1149 0.9934 +vn 0.9934 -0.0844 0.0771 +vn -0.0007 0.5014 0.8652 +vn -0.9955 -0.0947 0.0000 +vn 0.0026 0.5098 0.8603 +vn 0.0000 -0.9117 -0.4107 +vn 1.0000 -0.0015 -0.0095 +vn 1.0000 -0.0061 -0.0078 +vn 0.9999 0.0036 -0.0095 +vn 1.0000 0.0013 0.0045 +vn -1.0000 -0.0056 0.0033 +vn -1.0000 0.0016 0.0047 +vn -1.0000 -0.0015 0.0006 +vn -1.0000 -0.0013 0.0003 +vn 1.0000 -0.0030 0.0040 +vn 1.0000 -0.0017 -0.0008 +vn 1.0000 -0.0015 -0.0006 +vn 1.0000 -0.0004 0.0051 +vn -1.0000 0.0010 0.0046 +vn -1.0000 -0.0014 0.0008 +vn -1.0000 -0.0017 0.0006 +vn -1.0000 -0.0006 0.0051 +vn 0.0000 0.0127 -0.9999 +vn -0.0012 0.0155 -0.9999 +vn -0.0021 0.0150 -0.9999 +vn 0.0002 0.0112 -0.9999 +vn 0.0000 0.0171 -0.9999 +vn -0.0027 0.0139 -0.9999 +vn 0.0059 0.0010 -1.0000 +vn -0.0059 0.0011 -1.0000 +vn -0.0012 0.0113 -0.9999 +vn 0.0046 0.0133 -0.9999 +vn -0.4342 -0.3822 -0.8157 +vn -0.7060 0.2714 -0.6541 +vn 0.1845 0.9828 0.0000 +vn -0.7060 0.2715 0.6542 +vn 0.8396 0.4308 -0.3307 +vn -0.4343 -0.3822 0.8157 +vn 0.2163 -0.5222 -0.8249 +vn -0.5222 0.2163 -0.8250 +vn -0.2081 -0.4401 -0.8735 +vn -0.2058 -0.4197 0.8840 +vn 0.2910 0.9565 0.0178 +vn 0.7522 -0.6487 0.1156 +vn -0.5222 -0.2163 0.8249 +vn 0.2163 -0.5222 0.8249 +vn -0.1642 0.3964 -0.9033 +vn 0.1653 0.4232 -0.8908 +vn -0.3179 -0.1317 0.9390 +vn -0.1317 0.3179 0.9389 +vn 0.1355 0.3696 0.9193 +vn 0.3179 -0.1317 0.9389 +vn -0.4654 -0.1928 -0.8639 +vn 0.4654 -0.1928 -0.8638 +vn 0.4654 0.1928 -0.8639 +vn -0.4654 0.1928 -0.8638 +vn 0.0359 0.1299 0.9909 +vn -0.0465 0.1529 0.9871 +vn -0.3827 0.9238 -0.0120 +vn -0.8438 -0.5265 0.1041 +vn -0.3820 -0.9223 0.0577 +vn 0.2663 -0.9636 0.0231 +vn 0.2645 0.6280 0.7319 +vn -0.2683 0.6476 0.7132 +vn 0.6907 0.2924 0.6614 +vn -0.6671 0.2763 0.6919 +vn 0.2692 -0.6498 -0.7109 +vn -0.6498 0.2692 -0.7108 +vn 0.7364 0.3285 -0.5914 +vn -0.2692 -0.6498 -0.7108 +vn -0.2936 0.7087 -0.6415 +vn 0.2910 0.6909 -0.6618 +vn 0.6498 -0.2692 -0.7108 +vn -0.6498 -0.2692 -0.7109 +vn 0.0000 0.0589 -0.9983 +vn 0.0000 0.0029 1.0000 +vn 0.2185 0.0412 -0.9750 +vn -0.2098 0.0472 0.9766 +vn -0.2099 0.0472 -0.9766 +vn 0.2184 0.0412 0.9750 +vn 1.0000 -0.0021 -0.0003 +s off +f 65/131/59 67/132/59 68/133/59 +f 68/133/60 69/134/60 70/135/60 +f 70/135/61 71/136/62 72/137/61 +f 74/138/63 76/139/63 73/140/63 +f 71/141/64 69/142/64 78/143/64 +f 76/144/65 80/145/66 81/146/66 +f 78/147/67 83/148/67 82/149/68 +f 77/150/69 65/151/69 83/148/69 +f 84/152/70 86/153/70 87/154/70 +f 89/155/71 82/149/72 83/148/71 +f 91/156/73 93/157/73 90/158/73 +f 95/159/74 91/156/74 94/160/74 +f 97/161/69 83/148/69 65/151/69 +f 98/162/75 88/163/75 99/164/75 +f 100/165/76 102/166/76 103/167/76 +f 105/168/77 90/169/77 104/170/77 +f 104/170/78 107/171/78 108/172/78 +f 112/173/79 110/174/79 109/175/79 +f 115/176/80 116/177/80 117/178/80 +f 98/162/81 118/179/81 81/146/81 +f 119/180/82 120/181/82 124/182/82 +f 84/183/83 125/184/84 120/181/84 +f 121/185/85 126/186/85 76/144/86 +f 87/187/87 125/184/87 84/188/87 +f 73/140/88 86/153/88 74/138/88 +f 127/189/89 84/183/90 107/171/89 +f 128/190/91 107/171/92 106/191/92 +f 81/146/93 129/192/94 98/162/93 +f 98/162/95 79/193/96 82/149/97 +f 73/194/98 76/195/98 126/186/98 +f 94/196/99 96/197/99 97/198/99 +f 68/199/100 131/200/100 65/201/100 +f 91/202/101 130/203/101 94/196/101 +f 133/204/102 95/205/102 132/206/102 +f 132/206/103 134/207/103 131/208/103 +f 135/209/104 92/210/104 133/204/104 +f 131/200/105 97/211/105 65/201/105 +f 70/212/106 132/213/106 68/199/106 +f 90/158/107 135/214/107 72/215/107 +f 134/216/108 94/160/108 97/211/108 +f 70/212/109 135/214/109 133/217/109 +f 136/218/110 137/219/111 138/220/112 +f 102/166/113 140/221/114 103/167/115 +f 141/222/116 111/223/116 112/173/116 +f 142/224/117 111/223/117 136/218/117 +f 144/225/118 109/175/118 143/226/118 +f 145/227/119 144/228/119 143/229/119 +f 147/230/120 146/231/120 145/227/120 +f 142/224/121 115/232/121 114/233/121 +f 100/165/122 148/234/122 147/230/122 +f 150/235/123 137/219/123 141/222/123 +f 151/236/124 153/237/124 154/238/124 +f 155/239/125 157/240/125 156/241/125 +f 159/242/126 112/173/126 144/225/126 +f 115/232/127 138/220/128 152/243/127 +f 146/231/129 159/244/129 144/228/129 +f 103/167/130 155/239/131 148/234/131 +f 148/234/132 156/241/132 146/231/132 +f 116/177/133 152/245/133 151/236/133 +f 161/246/134 157/240/135 158/247/135 +f 158/247/136 163/248/137 161/246/138 +f 160/249/139 164/250/139 157/240/139 +f 139/251/113 162/252/140 140/221/141 +f 138/220/142 149/253/143 167/254/144 +f 164/255/145 141/222/145 159/242/145 +f 152/243/127 167/254/146 153/256/127 +f 156/241/147 164/250/147 159/244/147 +f 140/221/148 158/247/149 155/239/149 +f 168/257/127 170/258/127 171/259/127 +f 165/260/150 173/261/150 172/262/150 +f 169/263/151 176/264/152 170/258/152 +f 153/237/153 177/265/153 154/238/153 +f 150/235/154 175/266/155 149/253/154 +f 162/252/156 178/267/113 163/248/157 +f 149/253/158 169/263/159 167/254/160 +f 164/255/161 172/262/161 150/235/161 +f 167/254/162 168/257/127 153/256/127 +f 170/268/163 179/269/163 180/270/163 +f 182/271/113 184/272/113 181/273/113 +f 185/274/164 176/275/164 173/276/164 +f 186/277/165 165/278/165 160/249/165 +f 163/248/166 187/279/167 161/246/168 +f 161/246/169 186/277/170 160/249/170 +f 177/265/171 171/280/171 188/281/171 +f 173/261/172 175/266/173 172/262/172 +f 178/267/113 181/282/113 163/248/174 +f 105/168/175 100/283/176 147/284/175 +f 99/164/177 114/285/178 118/179/178 +f 147/284/179 130/203/179 105/168/179 +f 145/286/180 96/197/180 130/203/180 +f 96/287/181 109/288/181 89/155/181 +f 88/163/182 142/289/183 99/164/184 +f 189/290/185 118/291/185 113/292/185 +f 89/155/186 110/293/186 88/163/186 +f 104/170/187 101/294/188 100/283/189 +f 193/295/190 173/276/190 174/296/190 +f 171/297/127 180/270/127 194/298/127 +f 186/299/191 193/300/191 174/301/191 +f 181/273/192 190/302/192 187/303/192 +f 187/303/193 191/304/193 186/299/193 +f 188/305/194 194/298/194 195/306/194 +f 196/307/195 183/308/195 182/271/195 +f 188/305/196 192/309/196 196/307/196 +f 108/310/197 198/311/197 101/312/197 +f 199/313/198 201/314/198 117/315/198 +f 202/316/199 182/317/199 178/318/199 +f 177/265/200 196/319/200 202/316/200 +f 166/320/201 202/316/201 178/318/201 +f 154/238/202 202/316/202 203/321/202 +f 204/322/203 139/323/203 102/324/203 +f 234/325/204 584/326/205 583/327/205 +f 205/328/206 166/320/206 139/323/206 +f 151/236/207 203/321/207 205/328/207 +f 199/329/208 204/322/208 102/324/208 +f 197/330/209 206/331/209 198/332/209 +f 197/333/210 108/310/210 119/180/210 +f 87/187/211 73/194/211 120/181/211 +f 492/334/212 354/335/212 349/336/212 +f 206/331/213 208/337/213 200/338/213 +f 200/339/214 209/340/214 201/314/214 +f 198/332/213 200/338/213 199/341/213 +f 189/342/215 210/343/215 123/344/215 +f 113/345/216 201/346/216 210/343/216 +f 212/347/217 214/348/217 211/349/217 +f 207/350/218 214/348/218 215/351/218 +f 206/331/218 211/352/218 207/350/218 +f 123/353/219 211/349/219 124/354/219 +f 210/343/216 209/355/216 216/356/216 +f 210/343/220 212/357/220 123/344/220 +f 189/290/221 123/358/221 122/359/221 +f 213/360/222 215/351/222 214/348/222 +f 217/361/223 219/362/223 215/351/223 +f 216/356/216 218/363/216 217/361/216 +f 216/356/224 213/360/224 212/357/224 +f 208/364/225 221/365/225 209/340/225 +f 207/350/213 219/362/213 208/337/213 +f 221/366/127 224/367/127 222/368/127 +f 218/363/226 225/369/226 219/362/226 +f 208/337/113 225/369/113 220/370/113 +f 209/355/127 222/368/127 218/363/127 +f 226/371/113 228/372/113 229/373/113 +f 220/374/227 223/375/227 221/365/227 +f 220/370/113 227/376/113 226/371/113 +f 222/368/228 227/377/228 225/369/228 +f 231/378/127 233/379/229 230/380/127 +f 224/381/230 228/382/230 227/377/230 +f 223/383/127 230/380/127 224/367/127 +f 226/384/231 231/385/231 223/375/231 +f 229/386/232 232/387/232 231/385/232 +f 229/373/113 235/388/233 234/325/234 +f 230/389/235 235/390/235 228/382/235 +f 584/391/236 233/392/236 581/393/236 +f 582/394/237 234/395/237 583/396/237 +f 581/397/238 232/398/239 582/399/238 +f 236/400/127 238/401/127 239/402/127 +f 238/403/240 241/404/240 239/405/240 +f 240/406/113 243/407/113 241/408/113 +f 242/409/241 236/410/241 243/411/241 +f 241/404/242 245/412/242 239/405/242 +f 247/413/243 249/414/243 246/415/243 +f 239/402/127 247/416/127 236/400/127 +f 241/408/113 246/417/113 244/418/113 +f 236/410/244 246/415/244 243/411/244 +f 249/419/113 252/420/113 250/421/113 +f 244/422/245 253/423/245 245/412/245 +f 244/418/113 249/419/113 250/421/113 +f 245/424/127 248/425/127 247/416/127 +f 251/426/246 255/427/246 252/420/246 +f 248/425/127 256/428/127 257/429/127 +f 248/430/247 251/431/247 249/414/247 +f 250/432/248 256/433/248 253/423/248 +f 258/434/249 260/435/250 254/436/251 +f 257/429/252 261/437/252 258/438/252 +f 251/431/253 258/434/254 254/436/255 +f 252/439/256 261/440/256 256/433/256 +f 263/441/257 259/442/257 262/443/257 +f 261/440/258 263/444/258 262/445/258 +f 254/446/259 263/447/259 255/427/259 +f 258/438/260 262/448/260 259/449/260 +f 117/178/261 204/322/261 199/329/261 +f 79/450/262 265/451/262 71/452/262 +f 129/453/64 127/454/64 128/455/64 +f 80/456/64 85/457/64 127/454/64 +f 75/458/263 86/153/263 85/457/263 +f 72/137/264 128/190/265 106/191/264 +f 82/149/266 79/193/267 78/147/268 +f 264/459/262 267/460/262 265/451/262 +f 71/452/269 268/461/270 269/462/270 +f 79/450/271 270/463/272 271/464/272 +f 128/465/273 273/466/273 129/467/273 +f 266/468/64 275/469/64 267/470/64 +f 273/471/274 266/472/275 264/459/276 +f 272/473/273 274/474/273 273/466/273 +f 265/451/277 275/469/277 272/473/277 +f 277/475/278 279/476/278 276/477/278 +f 71/452/279 277/478/280 128/465/281 +f 265/451/282 276/479/282 268/461/282 +f 128/465/283 276/479/270 272/473/270 +f 271/480/284 282/481/284 280/482/284 +f 79/450/285 280/483/286 264/459/287 +f 264/459/288 283/484/289 273/471/290 +f 129/485/291 283/484/292 270/463/292 +f 284/486/163 282/481/163 281/487/163 +f 271/488/64 284/486/64 281/487/64 +f 283/489/293 284/486/293 270/490/293 +f 280/491/198 285/492/198 283/493/198 +f 286/494/192 279/476/192 278/495/192 +f 268/496/198 279/476/198 287/497/198 +f 268/498/294 286/494/294 269/499/294 +f 269/500/64 278/495/64 277/501/64 +f 194/502/198 180/503/198 184/504/198 +f 289/505/113 291/506/113 288/507/113 +f 293/508/295 295/509/295 292/510/295 +f 294/511/296 297/512/296 295/509/296 +f 296/513/297 299/514/297 297/515/297 +f 298/516/298 301/517/298 299/514/298 +f 300/518/299 303/519/299 301/517/299 +f 302/520/300 305/521/300 303/519/300 +f 298/522/113 296/523/113 304/524/113 +f 304/525/301 307/526/301 305/521/301 +f 306/527/302 292/510/302 307/526/302 +f 309/528/303 311/529/303 308/530/303 +f 311/529/304 312/531/304 313/532/304 +f 313/532/305 314/533/305 315/534/305 +f 314/533/306 317/535/306 315/534/306 +f 317/535/307 309/536/307 308/537/307 +f 318/538/308 310/539/308 309/540/308 +f 310/539/309 320/541/309 312/531/309 +f 312/531/310 321/542/310 314/533/310 +f 321/542/311 316/543/311 314/533/311 +f 316/543/312 318/544/312 309/545/312 +f 323/546/313 319/547/313 318/548/313 +f 324/549/314 320/541/314 319/547/314 +f 320/541/315 326/550/315 321/542/315 +f 326/550/316 322/551/316 321/542/316 +f 322/551/317 323/552/317 318/553/317 +f 328/554/318 324/555/318 323/556/318 +f 329/557/319 325/558/319 324/555/319 +f 330/559/320 326/550/320 325/558/320 +f 331/560/321 327/561/321 326/550/321 +f 327/561/322 328/562/322 323/563/322 +f 328/564/323 334/565/323 329/566/323 +f 329/566/324 335/567/324 330/559/324 +f 335/567/325 331/560/325 330/559/325 +f 331/560/326 337/568/326 332/569/326 +f 337/568/327 328/570/327 332/569/327 +f 333/571/328 339/572/328 334/573/328 +f 339/572/329 335/567/329 334/573/329 +f 340/574/330 336/575/330 335/567/330 +f 336/575/331 342/576/331 337/577/331 +f 342/576/332 333/578/332 337/577/332 +f 338/579/333 311/580/333 339/581/333 +f 311/580/334 340/574/334 339/581/334 +f 313/582/335 341/583/335 340/574/335 +f 341/583/336 317/584/336 342/585/336 +f 317/584/337 338/586/337 342/585/337 +f 496/587/338 345/588/338 495/589/338 +f 492/334/339 348/590/339 491/591/339 +f 499/592/340 344/593/340 343/594/340 +f 499/592/341 354/335/341 503/595/341 +f 495/589/342 344/593/342 500/596/342 +f 351/597/343 353/598/343 350/599/343 +f 505/600/344 348/590/344 347/601/344 +f 496/587/343 347/602/343 346/603/343 +f 356/604/345 358/605/345 355/606/345 +f 360/607/212 362/608/212 359/609/212 +f 364/610/342 365/611/342 363/612/342 +f 350/613/344 367/614/344 366/615/344 +f 359/609/341 356/616/341 368/617/341 +f 368/617/340 355/618/340 364/610/340 +f 363/612/338 352/619/338 351/597/338 +f 366/615/339 361/620/339 360/607/339 +f 370/621/212 372/622/212 369/623/212 +f 356/624/346 369/623/346 357/625/346 +f 367/626/347 370/621/347 361/627/347 +f 353/628/348 374/629/348 375/630/348 +f 355/631/349 376/632/349 365/633/349 +f 361/634/350 369/623/350 362/635/350 +f 353/636/351 373/637/351 367/626/351 +f 365/638/352 374/629/352 352/639/352 +f 377/640/353 379/641/353 380/642/353 +f 376/632/338 383/643/338 374/629/338 +f 357/625/340 378/644/340 358/605/340 +f 369/623/341 384/645/341 357/625/341 +f 373/637/339 371/646/339 370/621/339 +f 358/605/342 377/640/342 376/632/342 +f 386/647/341 388/648/341 385/649/341 +f 371/646/354 386/650/354 372/622/354 +f 382/651/355 390/652/355 391/653/355 +f 383/643/356 380/654/356 392/655/356 +f 384/645/357 394/656/357 378/644/357 +f 379/657/358 394/656/358 395/658/358 +f 382/651/359 389/659/359 371/646/359 +f 383/643/360 390/660/360 381/661/360 +f 397/662/64 399/663/64 396/664/64 +f 391/665/339 400/666/339 389/667/339 +f 392/668/343 397/669/343 390/670/343 +f 379/671/342 403/672/342 380/673/342 +f 389/667/212 387/674/212 386/647/212 +f 390/675/344 396/664/344 391/665/344 +f 380/673/338 401/676/338 392/668/338 +f 385/649/340 402/677/340 379/671/340 +f 405/678/338 407/679/338 404/680/338 +f 403/672/64 409/681/64 401/676/64 +f 388/648/64 411/682/64 402/677/64 +f 388/648/64 404/683/64 410/684/64 +f 400/666/64 399/685/64 405/686/64 +f 397/669/64 409/687/64 398/688/64 +f 403/672/64 411/689/64 408/690/64 +f 400/666/64 404/691/64 387/674/64 +f 417/692/64 407/693/64 414/694/64 +f 398/695/340 412/696/340 399/697/340 +f 408/698/212 414/699/212 409/700/212 +f 410/701/344 416/702/344 411/703/344 +f 404/680/343 417/704/343 410/701/343 +f 399/697/342 406/705/342 405/678/342 +f 409/700/341 413/706/341 398/707/341 +f 411/703/339 415/708/339 408/698/339 +f 426/709/361 428/710/361 375/711/361 +f 425/712/362 427/713/362 418/714/362 +f 426/715/363 431/716/363 430/717/363 +f 432/718/364 434/719/364 435/720/364 +f 436/721/365 435/720/365 437/722/365 +f 430/717/366 434/719/366 433/723/366 +f 438/724/367 440/725/367 429/726/367 +f 436/727/368 439/728/368 438/729/368 +f 419/730/369 427/713/369 426/731/369 +f 420/732/370 433/733/370 421/734/370 +f 423/735/371 438/736/371 424/737/371 +f 419/730/372 430/738/372 420/732/372 +f 421/734/373 432/739/373 422/740/373 +f 424/737/374 429/741/374 425/712/374 +f 429/742/375 428/710/375 427/743/375 +f 422/740/376 436/744/376 423/745/376 +f 439/728/339 442/746/339 440/725/339 +f 440/725/212 443/747/212 428/710/212 +f 435/720/343 445/748/343 437/722/343 +f 431/716/342 447/749/342 434/719/342 +f 437/722/344 441/750/344 439/728/344 +f 434/719/338 444/751/338 435/720/338 +f 445/748/377 448/752/377 449/753/377 +f 446/754/378 451/755/378 447/749/378 +f 443/747/379 452/756/379 453/757/379 +f 441/750/380 452/758/380 442/746/380 +f 445/748/381 454/759/381 441/750/381 +f 443/747/382 455/760/382 381/761/382 +f 446/754/383 455/762/383 450/763/383 +f 444/751/384 451/764/384 448/765/384 +f 455/766/340 457/767/340 450/768/340 +f 458/769/385 460/770/385 461/771/385 +f 451/772/338 463/773/338 448/774/338 +f 448/774/343 464/775/343 449/776/343 +f 450/768/342 462/777/342 451/772/342 +f 452/778/212 465/779/212 453/780/212 +f 454/781/339 458/782/339 452/778/339 +f 449/783/344 459/784/344 454/781/344 +f 453/780/341 456/785/341 455/766/341 +f 461/786/212 468/787/212 466/788/212 +f 459/789/386 469/790/386 460/791/386 +f 465/792/387 470/793/387 456/794/387 +f 457/795/388 470/796/388 471/797/388 +f 462/798/389 473/799/389 463/800/389 +f 463/801/390 469/802/390 464/803/390 +f 462/804/391 471/805/391 472/806/391 +f 458/807/392 466/788/392 465/808/392 +f 474/809/393 476/810/393 477/811/393 +f 460/770/339 467/812/339 461/771/339 +f 469/790/344 478/813/344 460/791/344 +f 466/814/341 480/815/341 470/793/341 +f 470/796/340 481/816/340 471/797/340 +f 472/817/338 474/809/338 473/799/338 +f 473/818/343 479/819/343 469/802/343 +f 471/805/342 475/820/342 472/806/342 +f 483/821/64 485/822/64 476/810/64 +f 479/819/394 477/811/394 485/822/394 +f 481/823/395 476/810/395 475/820/395 +f 468/787/396 483/821/396 482/824/396 +f 478/825/397 483/821/397 467/812/397 +f 479/826/398 484/827/398 478/813/398 +f 480/815/399 482/824/399 487/828/399 +f 480/829/400 486/830/400 481/816/400 +f 431/831/401 383/832/401 446/833/401 +f 428/834/402 382/835/402 373/836/402 +f 373/836/403 375/837/403 428/834/403 +f 382/835/404 443/838/404 381/839/404 +f 381/840/405 446/833/405 383/832/405 +f 375/841/406 374/842/406 431/831/406 +f 393/843/407 395/658/407 394/656/407 +f 393/843/408 490/844/408 488/845/408 +f 384/645/409 489/846/409 393/843/409 +f 386/847/410 489/846/410 372/622/410 +f 385/848/411 395/658/411 488/845/411 +f 385/848/412 490/844/412 386/849/412 +f 494/850/413 360/851/413 493/852/413 +f 497/853/414 363/854/414 351/855/414 +f 501/856/415 368/857/415 364/858/415 +f 504/859/416 368/860/416 502/861/416 +f 506/862/417 366/863/417 494/850/417 +f 498/864/418 364/858/418 363/865/418 +f 493/852/419 359/866/419 504/859/419 +f 506/862/420 351/867/420 350/868/420 +f 496/869/421 508/870/421 505/871/421 +f 507/872/343 506/862/343 508/870/343 +f 503/873/422 509/874/422 510/875/422 +f 510/875/423 493/852/423 504/859/423 +f 500/876/424 512/877/424 495/878/424 +f 511/879/425 498/864/425 512/877/425 +f 491/880/426 508/870/426 513/881/426 +f 508/870/344 494/850/344 513/881/344 +f 499/882/427 510/875/427 514/883/427 +f 499/884/428 511/879/428 500/876/428 +f 495/885/429 507/872/429 496/886/429 +f 512/877/338 497/853/338 507/872/338 +f 491/887/430 509/874/430 492/888/430 +f 513/881/339 493/852/339 509/874/339 +f 504/889/431 516/890/431 510/891/431 +f 516/890/432 514/892/432 510/891/432 +f 518/893/433 501/894/433 511/895/433 +f 519/896/434 502/897/434 501/898/434 +f 522/899/435 524/900/435 521/901/435 +f 502/897/436 515/902/436 504/889/436 +f 514/892/437 518/893/437 511/895/437 +f 526/903/438 528/904/438 525/905/438 +f 516/890/127 525/906/127 528/904/127 +f 527/907/438 529/908/438 530/909/438 +f 517/910/198 530/909/198 518/893/198 +f 516/890/198 527/907/198 517/910/198 +f 526/911/439 532/912/439 531/913/439 +f 518/893/113 529/914/113 519/915/113 +f 522/899/440 534/916/440 523/917/440 +f 535/918/440 533/919/440 522/920/440 +f 515/921/127 534/916/127 525/922/127 +f 520/923/435 538/924/435 537/925/435 +f 533/919/439 539/926/439 540/927/439 +f 519/928/113 536/929/113 535/918/113 +f 524/900/113 532/930/113 542/931/113 +f 521/932/441 539/926/441 543/933/441 +f 543/934/127 544/935/127 538/924/127 +f 541/936/442 531/913/442 532/912/442 +f 523/917/435 541/937/435 524/900/435 +f 543/934/435 522/920/435 521/938/435 +f 538/924/435 535/918/435 543/934/435 +f 541/937/435 520/939/435 537/940/435 +f 542/941/439 533/942/439 540/943/439 +f 536/929/439 544/944/439 539/926/439 +f 532/912/439 534/916/439 542/941/439 +f 544/944/439 526/945/439 531/946/439 +f 546/947/127 548/948/127 545/949/127 +f 549/950/198 550/951/198 551/952/198 +f 553/953/113 555/954/113 552/955/113 +f 556/956/64 557/957/64 558/958/64 +f 553/959/198 560/960/198 561/961/198 +f 546/962/64 563/963/64 564/964/64 +f 546/947/127 565/965/127 547/966/127 +f 553/953/113 566/967/113 554/968/113 +f 568/969/443 570/970/443 567/971/443 +f 572/972/444 574/973/444 571/974/444 +f 575/975/445 565/965/445 564/976/445 +f 578/977/446 561/978/446 577/979/446 +f 576/980/447 568/981/447 565/965/447 +f 572/972/438 567/971/438 573/982/438 +f 569/983/448 575/975/448 570/970/448 +f 571/974/449 578/977/449 577/979/449 +f 578/977/450 573/984/450 566/967/450 +f 568/969/451 560/960/451 579/985/451 +f 560/960/452 572/972/452 561/961/452 +f 573/982/453 563/963/453 580/986/453 +f 563/963/454 567/971/454 564/964/454 +f 580/986/64 554/987/64 566/988/64 +f 557/957/64 556/956/64 580/986/64 +f 579/985/198 547/989/198 565/990/198 +f 550/951/198 549/950/198 579/985/198 +f 572/991/455 577/979/455 561/978/455 +f 565/990/456 568/969/456 579/985/456 +f 567/992/457 575/975/457 564/976/457 +f 566/988/458 573/982/458 580/986/458 +f 562/993/64 546/962/64 545/994/64 +f 559/995/198 553/959/198 552/996/198 +f 537/997/442 544/944/442 531/946/442 +f 521/998/441 542/941/441 540/943/441 +f 90/169/459 106/191/459 104/170/459 +f 119/180/460 124/182/460 197/333/460 +f 122/359/461 118/291/461 189/290/461 +f 113/292/462 118/291/462 114/999/462 +f 198/311/463 108/310/463 197/333/463 +f 124/182/464 121/185/464 123/358/464 +f 123/358/465 121/185/465 122/359/465 +f 89/155/69 97/161/69 96/287/69 +f 65/131/99 66/1000/99 67/132/99 +f 68/133/466 67/132/466 69/134/466 +f 70/135/467 69/134/467 71/136/468 +f 74/138/469 75/1001/469 76/139/469 +f 69/142/64 67/1002/64 78/143/64 +f 67/1002/64 66/1003/64 77/1004/64 +f 78/143/64 67/1002/64 77/1004/64 +f 78/143/64 79/1005/64 71/141/64 +f 76/144/470 75/1006/471 80/145/471 +f 78/147/472 77/150/472 83/148/472 +f 77/150/69 66/1007/69 65/151/69 +f 84/152/473 85/1008/473 86/153/473 +f 89/155/71 88/163/71 82/149/474 +f 91/156/475 92/1009/475 93/157/475 +f 95/159/476 92/1009/476 91/156/476 +f 97/161/69 89/155/69 83/148/69 +f 98/162/477 82/149/478 88/163/477 +f 100/165/76 101/1010/76 102/166/76 +f 105/168/479 91/202/479 90/169/479 +f 104/170/480 106/191/480 107/171/480 +f 112/173/481 111/223/481 110/174/481 +f 117/178/482 113/1011/482 114/1012/482 +f 114/1012/483 115/176/483 117/178/483 +f 98/162/484 99/164/484 118/179/484 +f 119/1013/113 108/172/113 120/181/113 +f 108/172/485 107/171/485 120/181/485 +f 107/171/486 84/183/487 120/181/486 +f 76/144/488 81/146/489 121/185/489 +f 81/146/490 118/179/490 121/185/490 +f 118/179/127 122/1014/127 121/185/127 +f 73/140/88 87/154/88 86/153/88 +f 127/189/491 85/1015/491 84/183/492 +f 128/190/493 127/189/494 107/171/494 +f 81/146/495 80/145/495 129/192/496 +f 98/162/497 129/192/498 79/193/499 +f 94/196/99 130/203/99 96/197/99 +f 68/199/500 132/213/500 131/200/500 +f 91/202/101 105/168/101 130/203/101 +f 133/204/102 92/210/102 95/205/102 +f 132/206/501 95/205/501 134/207/501 +f 135/209/502 93/1016/502 92/210/502 +f 131/200/105 134/216/105 97/211/105 +f 70/212/503 133/217/503 132/213/503 +f 90/158/504 93/157/504 135/214/504 +f 134/216/505 95/159/505 94/160/505 +f 70/212/506 72/215/506 135/214/506 +f 136/218/507 111/223/508 137/219/508 +f 102/166/113 139/251/113 140/221/509 +f 141/222/510 137/219/510 111/223/510 +f 142/224/511 110/174/511 111/223/511 +f 144/225/512 112/173/512 109/175/512 +f 145/227/513 146/231/513 144/228/513 +f 147/230/514 148/234/514 146/231/514 +f 142/224/121 136/218/121 115/232/121 +f 100/165/515 103/167/515 148/234/515 +f 150/235/516 149/253/516 137/219/516 +f 151/236/124 152/245/124 153/237/124 +f 155/239/517 158/247/517 157/240/517 +f 159/242/518 141/222/518 112/173/518 +f 115/232/127 136/218/519 138/220/520 +f 146/231/521 156/241/521 159/244/521 +f 103/167/522 140/221/523 155/239/524 +f 148/234/525 155/239/525 156/241/525 +f 151/236/526 205/328/526 204/322/526 +f 116/177/527 115/176/527 152/245/527 +f 151/236/526 204/322/526 116/177/526 +f 161/246/528 160/249/135 157/240/135 +f 158/247/136 162/252/529 163/248/530 +f 160/249/139 165/278/139 164/250/139 +f 139/251/113 166/1017/113 162/252/531 +f 138/220/532 137/219/533 149/253/533 +f 164/255/534 150/235/534 141/222/534 +f 152/243/127 138/220/535 167/254/536 +f 156/241/537 157/240/537 164/250/537 +f 140/221/538 162/252/539 158/247/540 +f 168/257/127 169/263/541 170/258/127 +f 165/260/542 174/1018/542 173/261/542 +f 169/263/162 175/266/543 176/264/544 +f 153/237/153 168/1019/153 177/265/153 +f 150/235/154 172/262/154 175/266/545 +f 162/252/546 166/1017/113 178/267/113 +f 149/253/158 175/266/547 169/263/548 +f 164/255/161 165/260/161 172/262/161 +f 167/254/549 169/263/550 168/257/127 +f 170/268/163 176/275/163 179/269/163 +f 182/271/113 183/308/113 184/272/113 +f 185/274/164 179/269/164 176/275/164 +f 186/277/551 174/1020/551 165/278/551 +f 163/248/552 181/282/553 187/279/553 +f 161/246/554 187/279/555 186/277/555 +f 177/265/171 168/1019/171 171/280/171 +f 173/261/556 176/264/556 175/266/557 +f 178/267/113 182/1021/113 181/282/113 +f 105/168/558 104/170/559 100/283/560 +f 99/164/561 142/289/562 114/285/178 +f 147/284/563 145/286/563 130/203/563 +f 145/286/564 143/1022/564 96/197/564 +f 96/287/565 143/1023/565 109/288/565 +f 88/163/566 110/293/566 142/289/567 +f 89/155/568 109/288/568 110/293/568 +f 104/170/569 108/172/188 101/294/188 +f 193/295/190 185/274/190 173/276/190 +f 171/297/127 170/268/127 180/270/127 +f 186/299/191 191/304/191 193/300/191 +f 181/273/192 184/272/192 190/302/192 +f 187/303/193 190/302/193 191/304/193 +f 188/305/570 171/297/570 194/298/570 +f 196/307/195 192/309/195 183/308/195 +f 188/305/196 195/306/196 192/309/196 +f 199/313/198 200/339/198 201/314/198 +f 202/316/199 196/319/199 182/317/199 +f 177/265/200 188/281/200 196/319/200 +f 166/320/201 203/321/201 202/316/201 +f 154/238/202 177/265/202 202/316/202 +f 204/322/571 205/328/571 139/323/571 +f 234/325/572 235/388/573 584/326/574 +f 205/328/206 203/321/206 166/320/206 +f 151/236/207 154/238/207 203/321/207 +f 102/324/575 101/1024/575 199/329/575 +f 101/1024/576 198/1025/576 199/329/576 +f 197/330/577 124/1026/577 206/331/577 +f 126/186/578 121/185/578 73/194/578 +f 121/185/211 120/181/211 73/194/211 +f 120/181/579 125/184/579 87/187/579 +f 492/334/212 503/595/212 354/335/212 +f 206/331/213 207/350/213 208/337/213 +f 200/339/214 208/364/214 209/340/214 +f 198/332/213 206/331/213 200/338/213 +f 189/342/580 113/345/580 210/343/580 +f 113/345/216 117/1027/216 201/346/216 +f 212/347/217 213/360/217 214/348/217 +f 207/350/218 211/352/218 214/348/218 +f 206/331/581 124/1026/581 211/352/581 +f 123/353/219 212/347/219 211/349/219 +f 210/343/216 201/346/216 209/355/216 +f 210/343/224 216/356/224 212/357/224 +f 213/360/222 217/361/222 215/351/222 +f 217/361/223 218/363/223 219/362/223 +f 216/356/216 209/355/216 218/363/216 +f 216/356/224 217/361/224 213/360/224 +f 208/364/225 220/374/225 221/365/225 +f 207/350/213 215/351/213 219/362/213 +f 221/366/127 223/383/127 224/367/127 +f 218/363/226 222/368/226 225/369/226 +f 208/337/113 219/362/113 225/369/113 +f 209/355/127 221/366/127 222/368/127 +f 226/371/113 227/376/113 228/372/113 +f 220/374/227 226/384/227 223/375/227 +f 220/370/113 225/369/113 227/376/113 +f 222/368/228 224/381/228 227/377/228 +f 231/378/127 232/398/582 233/379/583 +f 224/381/230 230/389/230 228/382/230 +f 223/383/127 231/378/127 230/380/127 +f 226/384/231 229/386/231 231/385/231 +f 229/386/232 234/395/232 232/387/232 +f 229/373/113 228/372/113 235/388/584 +f 230/389/235 233/392/235 235/390/235 +f 584/391/236 235/390/585 233/392/236 +f 582/394/237 232/387/237 234/395/237 +f 581/397/586 233/379/587 232/398/588 +f 236/400/127 237/1028/127 238/401/127 +f 238/403/589 240/1029/589 241/404/589 +f 240/406/113 242/1030/113 243/407/113 +f 242/409/590 237/1031/590 236/410/590 +f 241/404/242 244/422/242 245/412/242 +f 247/413/243 248/430/243 249/414/243 +f 239/402/127 245/424/127 247/416/127 +f 241/408/113 243/407/113 246/417/113 +f 236/410/244 247/413/244 246/415/244 +f 249/419/113 251/426/113 252/420/113 +f 244/422/245 250/432/245 253/423/245 +f 244/418/113 246/417/113 249/419/113 +f 245/424/127 253/1032/127 248/425/127 +f 251/426/591 254/446/591 255/427/591 +f 248/425/127 253/1032/127 256/428/127 +f 248/430/247 257/1033/247 251/431/247 +f 250/432/248 252/439/248 256/433/248 +f 258/434/592 259/442/250 260/435/250 +f 257/429/593 256/428/593 261/437/593 +f 251/431/253 257/1033/253 258/434/594 +f 252/439/256 255/1034/256 261/440/256 +f 263/441/257 260/435/257 259/442/257 +f 261/440/595 255/1034/595 263/444/595 +f 254/446/259 260/1035/259 263/447/259 +f 258/438/260 261/437/260 262/448/260 +f 117/178/261 116/177/261 204/322/261 +f 79/450/262 264/459/262 265/451/262 +f 129/453/64 80/456/64 127/454/64 +f 80/456/64 75/458/64 85/457/64 +f 75/458/263 74/138/263 86/153/263 +f 72/137/596 71/136/597 128/190/598 +f 264/459/262 266/472/262 267/460/262 +f 71/452/599 265/451/270 268/461/270 +f 79/450/600 129/485/601 270/463/602 +f 128/465/273 272/473/273 273/466/273 +f 266/468/64 274/474/64 275/469/64 +f 273/471/603 274/1036/275 266/472/275 +f 272/473/273 275/469/273 274/474/273 +f 265/451/277 267/460/277 275/469/277 +f 277/475/278 278/495/278 279/476/278 +f 71/452/604 269/462/605 277/478/605 +f 265/451/606 272/473/606 276/479/606 +f 128/465/607 277/478/270 276/479/270 +f 271/480/284 281/487/284 282/481/284 +f 79/450/608 271/464/286 280/483/286 +f 264/459/609 280/483/610 283/484/610 +f 129/485/611 273/471/490 283/484/292 +f 284/486/163 285/492/163 282/481/163 +f 271/488/64 270/1037/64 284/486/64 +f 283/489/293 285/492/293 284/486/293 +f 280/491/198 282/481/198 285/492/198 +f 286/494/192 287/497/192 279/476/192 +f 268/496/198 276/1038/198 279/476/198 +f 268/498/294 287/497/294 286/494/294 +f 269/500/64 286/494/64 278/495/64 +f 180/503/612 179/1039/613 184/504/612 +f 179/1039/614 185/1040/615 190/1041/616 +f 184/504/612 179/1039/617 190/1041/612 +f 185/1040/618 193/1042/198 191/1043/619 +f 191/1043/620 190/1041/616 185/1040/621 +f 184/504/198 183/1044/198 194/502/198 +f 183/1044/198 192/1045/198 195/1046/198 +f 194/502/198 183/1044/198 195/1046/198 +f 289/505/113 290/1047/113 291/506/113 +f 293/508/295 294/511/295 295/509/295 +f 294/511/296 296/1048/296 297/512/296 +f 296/513/297 298/516/297 299/514/297 +f 298/516/298 300/518/298 301/517/298 +f 300/518/299 302/520/299 303/519/299 +f 302/520/300 304/525/300 305/521/300 +f 296/523/113 294/1049/113 304/524/113 +f 294/1049/113 293/1050/113 304/524/113 +f 293/1050/113 306/1051/113 304/524/113 +f 304/524/113 302/1052/113 300/1053/113 +f 300/1053/113 298/522/113 304/524/113 +f 304/525/301 306/527/301 307/526/301 +f 306/527/302 293/508/302 292/510/302 +f 309/528/303 310/1054/303 311/529/303 +f 311/529/304 310/1054/304 312/531/304 +f 313/532/305 312/531/305 314/533/305 +f 314/533/306 316/1055/306 317/535/306 +f 317/535/307 316/1055/307 309/536/307 +f 318/538/308 319/1056/308 310/539/308 +f 310/539/309 319/1056/309 320/541/309 +f 312/531/310 320/541/310 321/542/310 +f 321/542/311 322/1057/311 316/543/311 +f 316/543/622 322/1057/622 318/544/622 +f 323/546/313 324/549/313 319/547/313 +f 324/549/314 325/558/314 320/541/314 +f 320/541/315 325/558/315 326/550/315 +f 326/550/316 327/1058/316 322/551/316 +f 322/551/623 327/1058/623 323/552/623 +f 328/554/624 329/557/624 324/555/624 +f 329/557/319 330/559/319 325/558/319 +f 330/559/320 331/560/320 326/550/320 +f 331/560/321 332/1059/321 327/561/321 +f 327/561/322 332/1059/322 328/562/322 +f 328/564/323 333/1060/323 334/565/323 +f 329/566/324 334/565/324 335/567/324 +f 335/567/325 336/575/325 331/560/325 +f 331/560/326 336/575/326 337/568/326 +f 337/568/625 333/1061/625 328/570/625 +f 333/571/328 338/1062/328 339/572/328 +f 339/572/626 340/574/626 335/567/626 +f 340/574/330 341/583/330 336/575/330 +f 336/575/331 341/583/331 342/576/331 +f 342/576/627 338/1063/627 333/578/627 +f 338/579/333 308/1064/333 311/580/333 +f 311/580/334 313/582/334 340/574/334 +f 313/582/335 315/1065/335 341/583/335 +f 341/583/336 315/1065/336 317/584/336 +f 317/584/337 308/1066/337 338/586/337 +f 496/587/338 346/603/338 345/588/338 +f 492/334/339 349/336/339 348/590/339 +f 499/592/340 500/596/340 344/593/340 +f 499/592/341 343/594/341 354/335/341 +f 495/589/342 345/588/342 344/593/342 +f 351/597/343 352/619/343 353/598/343 +f 505/600/344 491/591/344 348/590/344 +f 496/587/343 505/1067/343 347/602/343 +f 356/604/345 357/625/345 358/605/345 +f 360/607/212 361/620/212 362/608/212 +f 364/610/342 355/618/342 365/611/342 +f 350/613/344 353/1068/344 367/614/344 +f 359/609/341 362/608/341 356/616/341 +f 368/617/340 356/616/340 355/618/340 +f 363/612/338 365/611/338 352/619/338 +f 366/615/339 367/614/339 361/620/339 +f 370/621/212 371/646/212 372/622/212 +f 356/624/346 362/1069/346 369/623/346 +f 367/626/347 373/637/347 370/621/347 +f 353/628/628 352/639/628 374/629/628 +f 355/631/349 358/605/349 376/632/349 +f 361/634/629 370/621/629 369/623/629 +f 353/636/630 375/1070/630 373/637/630 +f 365/638/352 376/632/352 374/629/352 +f 377/640/353 378/644/353 379/641/353 +f 376/632/338 377/640/338 383/643/338 +f 357/625/340 384/645/340 378/644/340 +f 369/623/341 372/622/341 384/645/341 +f 373/637/339 382/651/339 371/646/339 +f 358/605/342 378/644/342 377/640/342 +f 386/647/341 387/674/341 388/648/341 +f 371/646/354 389/1071/354 386/650/354 +f 382/651/631 381/1072/631 390/652/631 +f 383/643/356 377/640/356 380/654/356 +f 384/645/632 393/843/632 394/656/632 +f 379/657/633 378/644/633 394/656/633 +f 382/651/634 391/653/634 389/659/634 +f 383/643/635 392/655/635 390/660/635 +f 397/662/64 398/1073/64 399/663/64 +f 391/665/339 396/664/339 400/666/339 +f 392/668/343 401/676/343 397/669/343 +f 379/671/342 402/677/342 403/672/342 +f 389/667/212 400/666/212 387/674/212 +f 390/675/344 397/662/344 396/664/344 +f 380/673/338 403/672/338 401/676/338 +f 385/649/340 388/648/340 402/677/340 +f 405/678/338 406/705/338 407/679/338 +f 403/672/64 408/1074/64 409/681/64 +f 388/648/64 410/1075/64 411/682/64 +f 388/648/64 387/674/64 404/683/64 +f 400/666/64 396/664/64 399/685/64 +f 397/669/64 401/676/64 409/687/64 +f 403/672/64 402/677/64 411/689/64 +f 400/666/64 405/1076/64 404/691/64 +f 407/693/64 406/1077/64 412/1078/64 +f 412/1078/64 413/1079/64 407/693/64 +f 413/1079/64 414/694/64 407/693/64 +f 414/694/64 415/1080/64 416/1081/64 +f 416/1081/64 417/692/64 414/694/64 +f 398/695/340 413/1082/340 412/696/340 +f 408/698/212 415/708/212 414/699/212 +f 410/701/344 417/704/344 416/702/344 +f 404/680/343 407/679/343 417/704/343 +f 399/697/342 412/696/342 406/705/342 +f 409/700/341 414/699/341 413/706/341 +f 411/703/339 416/702/339 415/708/339 +f 426/709/636 427/743/636 428/710/636 +f 425/712/362 429/741/362 427/713/362 +f 426/715/637 375/1083/637 431/716/637 +f 432/718/364 433/1084/364 434/719/364 +f 436/721/365 432/1085/365 435/720/365 +f 430/717/366 431/716/366 434/719/366 +f 438/724/367 439/728/367 440/725/367 +f 436/727/368 437/722/368 439/728/368 +f 419/730/369 418/714/369 427/713/369 +f 420/732/370 430/738/370 433/733/370 +f 423/735/371 436/1086/371 438/736/371 +f 419/730/372 426/731/372 430/738/372 +f 421/734/373 433/733/373 432/739/373 +f 424/737/374 438/736/374 429/741/374 +f 429/742/375 440/725/375 428/710/375 +f 422/740/376 432/739/376 436/744/376 +f 439/728/339 441/750/339 442/746/339 +f 440/725/212 442/746/212 443/747/212 +f 435/720/343 444/751/343 445/748/343 +f 431/716/342 446/754/342 447/749/342 +f 437/722/344 445/748/344 441/750/344 +f 434/719/338 447/749/338 444/751/338 +f 445/748/377 444/751/377 448/752/377 +f 446/754/378 450/763/378 451/755/378 +f 443/747/379 442/746/379 452/756/379 +f 441/750/638 454/1087/638 452/758/638 +f 445/748/381 449/1088/381 454/759/381 +f 443/747/639 453/757/639 455/760/639 +f 446/754/640 381/1089/640 455/762/640 +f 444/751/641 447/749/641 451/764/641 +f 455/766/340 456/785/340 457/767/340 +f 458/769/642 459/1090/642 460/770/642 +f 451/772/338 462/777/338 463/773/338 +f 448/774/343 463/773/343 464/775/343 +f 450/768/342 457/767/342 462/777/342 +f 452/778/212 458/782/212 465/779/212 +f 454/781/339 459/784/339 458/782/339 +f 449/783/344 464/1091/344 459/784/344 +f 453/780/341 465/779/341 456/785/341 +f 461/786/212 467/1092/212 468/787/212 +f 459/789/386 464/1093/386 469/790/386 +f 465/792/387 466/814/387 470/793/387 +f 457/795/388 456/1094/388 470/796/388 +f 462/798/643 472/817/643 473/799/643 +f 463/801/390 473/818/390 469/802/390 +f 462/804/644 457/1095/644 471/805/644 +f 458/807/645 461/786/645 466/788/645 +f 474/809/393 475/1096/393 476/810/393 +f 460/770/339 478/825/339 467/812/339 +f 469/790/344 479/826/344 478/813/344 +f 466/814/341 468/1097/341 480/815/341 +f 470/796/340 480/829/340 481/816/340 +f 472/817/338 475/1096/338 474/809/338 +f 473/818/343 474/1098/343 479/819/343 +f 471/805/342 481/823/342 475/820/342 +f 487/828/64 482/824/64 483/821/64 +f 483/821/64 484/827/64 485/822/64 +f 485/822/64 477/811/64 476/810/64 +f 476/810/64 486/830/64 487/828/64 +f 487/828/64 483/821/64 476/810/64 +f 479/819/394 474/1098/394 477/811/394 +f 481/823/395 486/830/395 476/810/395 +f 468/787/396 467/1092/396 483/821/396 +f 478/825/397 484/827/397 483/821/397 +f 479/826/398 485/822/398 484/827/398 +f 480/815/399 468/1097/399 482/824/399 +f 480/829/400 487/828/400 486/830/400 +f 431/831/401 374/842/401 383/832/401 +f 428/834/402 443/838/402 382/835/402 +f 393/843/646 488/845/646 395/658/646 +f 393/843/647 489/846/647 490/844/647 +f 384/645/648 372/622/648 489/846/648 +f 386/847/649 490/844/649 489/846/649 +f 385/848/650 379/1099/650 395/658/650 +f 385/848/651 488/845/651 490/844/651 +f 494/850/413 366/1100/413 360/851/413 +f 497/853/414 498/864/414 363/854/414 +f 501/856/652 502/1101/652 368/857/652 +f 504/859/653 359/866/653 368/860/653 +f 506/862/417 350/1102/417 366/863/417 +f 498/864/654 501/856/654 364/858/654 +f 493/852/655 360/1103/655 359/866/655 +f 506/862/420 497/853/420 351/867/420 +f 496/869/656 507/872/656 508/870/656 +f 507/872/343 497/853/343 506/862/343 +f 503/873/657 492/1104/657 509/874/657 +f 510/875/423 509/874/423 493/852/423 +f 500/876/658 511/879/658 512/877/658 +f 511/879/425 501/856/425 498/864/425 +f 491/880/659 505/1105/659 508/870/659 +f 508/870/344 506/862/344 494/850/344 +f 499/882/660 503/873/660 510/875/660 +f 499/884/661 514/1106/661 511/879/661 +f 495/885/662 512/877/662 507/872/662 +f 512/877/338 498/864/338 497/853/338 +f 491/887/663 513/881/663 509/874/663 +f 513/881/339 494/850/339 493/852/339 +f 504/889/431 515/902/431 516/890/431 +f 516/890/664 517/910/664 514/892/664 +f 518/893/433 519/915/433 501/894/433 +f 519/896/665 520/1107/665 502/897/665 +f 522/899/435 523/917/435 524/900/435 +f 502/897/665 520/1107/665 515/902/665 +f 514/892/664 517/910/664 518/893/664 +f 526/903/438 527/907/438 528/904/438 +f 516/890/127 515/902/127 525/906/127 +f 527/907/438 526/903/438 529/908/438 +f 517/910/198 527/907/198 530/909/198 +f 516/890/198 528/904/198 527/907/198 +f 526/911/439 525/922/439 532/912/439 +f 518/893/113 530/909/113 529/914/113 +f 522/899/440 533/942/440 534/916/440 +f 535/918/440 536/929/440 533/919/440 +f 515/921/127 523/917/127 534/916/127 +f 520/923/435 519/928/435 538/924/435 +f 533/919/439 536/929/439 539/926/439 +f 519/928/113 529/1108/113 536/929/113 +f 524/900/113 541/937/113 532/930/113 +f 521/932/441 540/927/441 539/926/441 +f 543/934/127 539/1109/127 544/935/127 +f 541/936/442 537/1110/442 531/913/442 +f 523/917/435 515/921/435 541/937/435 +f 543/934/435 535/918/435 522/920/435 +f 538/924/435 519/928/435 535/918/435 +f 541/937/435 515/921/435 520/939/435 +f 542/941/439 534/916/439 533/942/439 +f 536/929/439 529/1108/439 544/944/439 +f 532/912/439 525/922/439 534/916/439 +f 544/944/439 529/1108/439 526/945/439 +f 546/947/127 547/966/127 548/948/127 +f 551/952/198 548/1111/198 549/950/198 +f 548/1111/198 547/989/198 549/950/198 +f 553/953/113 554/968/113 555/954/113 +f 558/958/64 555/1112/64 556/956/64 +f 555/1112/64 554/987/64 556/956/64 +f 553/959/198 559/995/198 560/960/198 +f 546/962/64 562/993/64 563/963/64 +f 546/947/127 564/976/127 565/965/127 +f 553/953/113 561/978/113 566/967/113 +f 568/969/443 569/983/443 570/970/443 +f 572/972/444 573/982/444 574/973/444 +f 575/975/445 576/980/445 565/965/445 +f 578/977/446 566/967/446 561/978/446 +f 576/980/666 569/1113/666 568/981/666 +f 572/972/438 568/969/438 567/971/438 +f 569/983/448 576/980/448 575/975/448 +f 571/974/449 574/973/449 578/977/449 +f 578/977/667 574/1114/667 573/984/667 +f 568/969/451 572/972/451 560/960/451 +f 573/982/453 567/971/453 563/963/453 +f 580/986/64 556/956/64 554/987/64 +f 580/986/64 563/963/64 557/957/64 +f 563/963/64 562/993/64 557/957/64 +f 579/985/198 549/950/198 547/989/198 +f 579/985/198 560/960/198 550/951/198 +f 560/960/198 559/995/198 550/951/198 +f 572/991/668 571/1115/668 577/979/668 +f 567/992/669 570/1116/669 575/975/669 +f 545/994/64 558/958/64 562/993/64 +f 558/958/64 557/957/64 562/993/64 +f 552/996/198 551/952/198 559/995/198 +f 551/952/198 550/951/198 559/995/198 +f 537/997/442 538/1117/442 544/944/442 +f 521/998/441 524/1118/441 542/941/441 +f 90/169/670 72/137/670 106/191/670 +f 124/182/464 120/181/464 121/185/464 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 647cf0296..90efc5334 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -54,6 +54,10 @@ "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, + "block.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]}, + "block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]}, + "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, + "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, @@ -180,6 +184,8 @@ "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, "weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]}, "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, + "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, + "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg b/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg new file mode 100644 index 000000000..36de2dae7 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg new file mode 100644 index 000000000..f75be2fe6 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png new file mode 100644 index 000000000..a8a29d6bc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png new file mode 100644 index 000000000..dd2737ccb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png differ diff --git a/src/main/resources/assets/hbm/textures/items/boltgun.png b/src/main/resources/assets/hbm/textures/items/boltgun.png new file mode 100644 index 000000000..a45e128a7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/boltgun.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_ar15.png b/src/main/resources/assets/hbm/textures/items/gun_ar15.png new file mode 100644 index 000000000..032404fcc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_ar15.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png b/src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png new file mode 100644 index 000000000..ed11e32c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_coilgun.png b/src/main/resources/assets/hbm/textures/items/gun_coilgun.png new file mode 100644 index 000000000..5c130d109 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_coilgun.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_flamer.png b/src/main/resources/assets/hbm/textures/items/gun_flamer.png new file mode 100644 index 000000000..6cf5d9530 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_flamer.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gun_spas12.png b/src/main/resources/assets/hbm/textures/items/gun_spas12.png new file mode 100644 index 000000000..b0420f777 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gun_spas12.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png b/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png new file mode 100644 index 000000000..cf1f59334 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png b/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png new file mode 100644 index 000000000..1d74394b8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png b/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png new file mode 100644 index 000000000..33440e5ea Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/ashpit.png b/src/main/resources/assets/hbm/textures/models/machines/ashpit.png new file mode 100644 index 000000000..96dcf87b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/ashpit.png differ diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png b/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png new file mode 100644 index 000000000..281f6ca1f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png new file mode 100644 index 000000000..554a434e2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png new file mode 100644 index 000000000..7f734a12b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/congolake.png b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png new file mode 100644 index 000000000..04b2d2e8b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png differ