diff --git a/build.gradle b/build.gradle index 8cd9a478d..07cca4635 100644 --- a/build.gradle +++ b/build.gradle @@ -71,6 +71,10 @@ repositories { name = 'ModMaven' url = 'https://modmaven.dev' } + maven { + name = "gt" + url = "https://gregtech.mechaenetia.com/" + } //maven { // name = "CurseForge" // url = "https://minecraft.curseforge.com/api/maven/" @@ -87,7 +91,8 @@ dependencies { implementation 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev' compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src' - //compileOnly 'inventory-tweaks:InventoryTweaks:1.62+beta.84:api' + compileOnly "inventorytweaks:InventoryTweaks:1.59-dev:deobf" + implementation "li.cil.oc:OpenComputers:MC1.7.10-1.5.+:api" } diff --git a/changelog b/changelog index 498671f31..a3f93e205 100644 --- a/changelog +++ b/changelog @@ -1,29 +1,3 @@ -## Added -* Plushies - -## Changed -* The fluid burner, heat exchanging heater and cooling tower now use the single steel pipe items instead of the larger steel pipes -* Reduced the amount of condensers needed for crafting the cooling towers -* Liquefactors and solidifiers now have a base processing time of 5 seconds per operation (instead of 10) -* Added some info to the coltass about how the coltan deposit works -* Moved some NEI handlers around, fluid containers are now listed last and radiolysis is now listed right after cracking, since they have the same recipes -* The autocrafter's inputs are now limited to 4 items per slot -* Autocrafters can now receive stacked items again (except for items with containers), if they do not exceed the 4 item threshold -* Bedrock ores now produce bedrock ore fragments instead of straight outputs, one fragment is equivalent to a nugget - * Fragments also differ in stack size when produced, most primary fractions yield 9 (equal to the previous full powder), but things with lower demands/higher value like bismuth now yield substantially less -* The base speed of the large mining drill when mining bedrock has been reduced by 80%, it is now advisable to either invest in upgrades early on or use multiple drills -* The bedrock ore processor now has a base speed of 30 seconds -* Standard, special, HE artillery shells and most missiles now use updated explosion animations -* Decreased hardness of slag blocks -* Removed legacy circuits - ## Fixed -* Fixed crash caused by decontaminating items with the radiolysis machine -* Fixed ICFs not forming correctly depending on the orientation -* Fixed electrolyzer metal recipe config not working -* Fixed the meteor charms not working when used on helmets -* Fixed NEI handler for the ICF's consturction showing inconsistent values -* Fixed radiolysis recipes not showing up in NEI unless the usage recipes are loaded first -* Fixed autocrafter's grid not properly updating when using NEI drag and drop for the filter -* Fixed all carbon-based crucible materials having the wrong ID, this fix will shift IDs but prevent collisions with silicon -* Fixed primary bedrock ore fraction roasing yielding one extra pile of crumbs \ No newline at end of file +* Fixed pumpjack gauges not syncing properly +* Fixed some concrete variants not being revertable into uncolored concrete \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e925744a2..93317634f 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=5036 +mod_build_number=5061 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ @@ -11,7 +11,7 @@ credits=HbMinecraft,\ \ Alcater (GUI textures, porting),\ \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ \ Pheo (textures, various machines, models, weapons),\ - \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ + \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron),\ \ LePeep (coilgun model, BDCL QC),\ \ Adam29 (liquid petroleum, ethanol, electric furnace),\ \ Pvndols (thorium fuel recipe, gas turbine),\ @@ -19,15 +19,16 @@ credits=HbMinecraft,\ \ Doctor17 (russian localization)),\ \ Pashtet (russian localization),\ \ Bismarck (chinese localization),\ + \ Creeper-banner (chinese localization),\ \ Maksymisio (polish localization)\ \ el3ctro4ndre (italian localization),\ \ Pu-238 (Tom impact effects),\ - \ UFFR (RTGs, guns, casings, euphemium capacitor),\ - \ Frooz (models),\ + \ UFFR (RTG pellets, guns, casings, euphemium capacitor),\ + \ Frooz (gun models),\ \ VT-6/24 (models, textures),\ \ Nos (models),\ \ Minecreep (models),\ - \ 70k (textures, glyphid AI, strand caster),\ + \ 70k (textures, glyphid AI, strand caster, electrolyzer changes),\ \ haru315 (spiral point algorithm),\ \ Sten89 (models),\ \ Pixelguru26 (textures),\ @@ -37,13 +38,14 @@ credits=HbMinecraft,\ \ Silly541 (config for safe ME drives),\ \ Voxelstice (OpenComputers integration, turbine spinup),\ \ BallOfEnergy1 (OpenComputers integration),\ - \ martemen (project settings),\ \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ \ SuperCraftAlex (tooltips)\ \ Ice-Arrow (research reactor tweaks),\ \ 245tt (anvil GUI improvements),\ \ KoblizekXD (doors),\ \ FOlkvangrField (custom machine parts),\ + \ RosaTryp (centrifuge config),\ \ Toshayo (satellite loot system, project settings, gradle curse task),\ + \ martemen (project settings),\ \ OvermindDL1 (project settings),\ - \ impbk2002 (project settings),\ + \ impbk2002 (project settings)\ diff --git a/src/main/java/api/hbm/energymk2/IBatteryItem.java b/src/main/java/api/hbm/energymk2/IBatteryItem.java index 19202cfa1..d0d5931b7 100644 --- a/src/main/java/api/hbm/energymk2/IBatteryItem.java +++ b/src/main/java/api/hbm/energymk2/IBatteryItem.java @@ -10,7 +10,7 @@ public interface IBatteryItem { public void setCharge(ItemStack stack, long i); public void dischargeBattery(ItemStack stack, long i); public long getCharge(ItemStack stack); - public long getMaxCharge(); + public long getMaxCharge(ItemStack stack); public long getChargeRate(); public long getDischargeRate(); diff --git a/src/main/java/com/hbm/blocks/BlockBase.java b/src/main/java/com/hbm/blocks/BlockBase.java index 5487a1731..d2e1b01ed 100644 --- a/src/main/java/com/hbm/blocks/BlockBase.java +++ b/src/main/java/com/hbm/blocks/BlockBase.java @@ -4,6 +4,7 @@ import com.hbm.lib.RefStrings; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; @@ -12,6 +13,7 @@ import net.minecraft.world.World; public class BlockBase extends Block { private boolean beaconable = false; + private boolean canSpawn = true; public BlockBase() { super(Material.rock); @@ -36,6 +38,16 @@ public class BlockBase extends Block { this.beaconable = true; return this; } + + public BlockBase noMobSpawn() { + this.canSpawn = false; + return this; + } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return this.canSpawn ? super.canCreatureSpawn(type, world, x, y, z) : false; + } @Override public boolean isBeaconBase(IBlockAccess worldObj, int x, int y, int z, int beaconX, int beaconY, int beaconZ) { diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 361f6363a..1bfd61054 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -148,11 +148,6 @@ public class ModBlocks { public static Block ore_tikite; - public static Block crystal_power; - public static Block crystal_energy; - public static Block crystal_robust; - public static Block crystal_trixite; - public static Block block_thorium; public static Block block_thorium_fuel; public static Block block_uranium; @@ -273,8 +268,6 @@ public class ModBlocks { public static Block snowglobe; public static Block plushie; - public static Block hazmat; - public static Block gravel_obsidian; public static Block gravel_diamond; public static Block asphalt; @@ -501,6 +494,7 @@ public class ModBlocks { public static Block oil_spill; public static Block sellafield_slaked; + public static Block sellafield_bedrock; public static Block sellafield; public static Block ore_sellafield_diamond; public static Block ore_sellafield_emerald; @@ -763,8 +757,6 @@ public class ModBlocks { public static Block cable_detector; public static Block cable_diode; public static Block machine_detector; - public static Block fluid_duct; - public static Block fluid_duct_solid; public static Block fluid_duct_neo; public static Block fluid_duct_box; public static Block fluid_duct_paintable; @@ -1328,14 +1320,9 @@ public class ModBlocks { ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt"); - ore_bedrock_oil = new BlockGeneric(Material.rock).setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); + ore_bedrock_oil = new BlockGeneric(Material.rock).noMobSpawn().setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil"); ore_tikite = new BlockDragonProof(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt"); - - crystal_power = new BlockCrystal(Material.glass).setBlockName("crystal_power").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_power"); - crystal_energy = new BlockCrystal(Material.glass).setBlockName("crystal_energy").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_energy"); - crystal_robust = new BlockCrystal(Material.glass).setBlockName("crystal_robust").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":crystal_robust"); - crystal_trixite = new BlockCrystal(Material.glass).setBlockName("crystal_trixite").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_trixite"); block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); @@ -1456,7 +1443,6 @@ public class ModBlocks { bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); plushie = new BlockPlushie().setBlockName("plushie").setStepSound(Block.soundTypeCloth).setResistance(50_0000.0F).setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); - hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); @@ -1680,6 +1666,7 @@ public class ModBlocks { stone_cracked = new BlockFalling(Material.rock).setBlockName("stone_cracked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":stone_cracked"); sellafield_slaked = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); + sellafield_bedrock = new BlockSellafieldSlaked(Material.rock).setBlockName("sellafield_bedrock").setBlockUnbreakable().setResistance(6000000.0F).setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield = new BlockSellafield(Material.rock).setBlockName("sellafield").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); ore_sellafield_diamond = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_diamond").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_diamond"); ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); @@ -1881,8 +1868,6 @@ public class ModBlocks { cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode"); machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); - fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); - fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); @@ -2167,9 +2152,9 @@ public class ModBlocks { boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); - machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); - machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); - machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); + machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); + machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); chimney_brick = new MachineChimneyBrick(Material.iron).setBlockName("chimney_brick").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); @@ -2455,12 +2440,6 @@ public class ModBlocks { //Secret register(stone_keyhole); - //Crystals - GameRegistry.registerBlock(crystal_power, crystal_power.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_energy, crystal_energy.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_robust, crystal_robust.getUnlocalizedName()); - GameRegistry.registerBlock(crystal_trixite, crystal_trixite.getUnlocalizedName()); - //Resource-bearing Stones register(stone_resource); register(stalagmite); @@ -2603,7 +2582,6 @@ public class ModBlocks { GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); GameRegistry.registerBlock(plushie, ItemBlockBase.class, plushie.getUnlocalizedName()); - GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); GameRegistry.registerBlock(deco_rbmk, deco_rbmk.getUnlocalizedName()); GameRegistry.registerBlock(deco_rbmk_smooth, deco_rbmk_smooth.getUnlocalizedName()); @@ -2822,6 +2800,7 @@ public class ModBlocks { //RAD register(sellafield_slaked); + register(sellafield_bedrock); register(ore_sellafield_diamond); register(ore_sellafield_emerald); register(ore_sellafield_uranium_scorched); @@ -3131,13 +3110,11 @@ public class ModBlocks { GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); - GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); register(fluid_duct_neo); register(fluid_duct_box); register(fluid_duct_exhaust); register(fluid_duct_paintable); register(fluid_duct_gauge); - GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); register(fluid_valve); register(fluid_switch); register(machine_drain); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 04341d2a2..b48ee9954 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -25,6 +25,7 @@ import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -48,6 +49,11 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I this.setResistance(1_000_000); } + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return false; + } + @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityBedrockOre(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrystal.java b/src/main/java/com/hbm/blocks/generic/BlockCrystal.java deleted file mode 100644 index 0204d0f78..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockCrystal.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hbm.blocks.generic; - -import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class BlockCrystal extends BlockDragonProof { - - public BlockCrystal(Material mat) { - super(mat); - } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - - @Override - public int getRenderType() { - return renderID; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public int onBlockPlaced(World world, int x, int y, int z, int side, float hX, float hY, float hZ, int meta) { - return side; - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java index 6812249a4..be264d979 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.awt.Color; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; @@ -9,6 +10,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -50,4 +52,9 @@ public class BlockSellafieldSlaked extends Block { int meta = world.getBlockMetadata(x, y, z); return Color.HSBtoRGB(0F, 0F, 1F - meta / 15F); } + + @Override + public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) { + return this == ModBlocks.sellafield_bedrock ? false : super.canCreatureSpawn(type, world, x, y, z); + } } diff --git a/src/main/java/com/hbm/blocks/generic/HEVBattery.java b/src/main/java/com/hbm/blocks/generic/HEVBattery.java index e65f03038..388728e79 100644 --- a/src/main/java/com/hbm/blocks/generic/HEVBattery.java +++ b/src/main/java/com/hbm/blocks/generic/HEVBattery.java @@ -67,7 +67,7 @@ public class HEVBattery extends Block { if(st.getItem() instanceof IBatteryItem) { - long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(st); long charge = ((IBatteryItem) st.getItem()).getCharge(st); long newcharge = Math.min(charge + 150000, maxcharge); diff --git a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java index 65fc71706..b30ccf3e2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java @@ -5,11 +5,17 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.tileentity.IPersistentNBT; -import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; import com.hbm.util.BobMathUtil; @@ -20,6 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -31,15 +38,13 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro @Override public TileEntity createNewTileEntity(World world, int meta) { - if(meta >= 12) return new TileEntityMachineOilWell(); - if(meta >= 6) return new TileEntityProxyCombo(false, true, true); return null; } @Override public int[] getDimensions() { - return new int[] {5, 0, 1, 1, 1, 1}; + return new int[] {9, 0, 1, 1, 1, 1}; } @Override @@ -47,13 +52,24 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro return 0; } + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {1, -1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y + 1, z, new int[] {8, 0, 1, 1, 1, 1}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x - 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x - 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, x, y, z, dir); + } + @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { - super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); - this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {1, -1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 1, z, new int[] {8, 0, 1, 1, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - 1, y + 1, z + 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - 1, y + 1, z - 1, new int[] {-1, 1, 0, 0, 0, 0}, this, dir); } @Override @@ -89,4 +105,31 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } + + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) { + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + TileEntity core = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(core instanceof TileEntityMachineOilWell)) return; + + world.setBlockToAir(x, y, z); + onBlockDestroyedByExplosion(world, x, y, z, explosion); + + TileEntityMachineOilWell well = (TileEntityMachineOilWell) core; + if(well.tanks[0].getFill() > 0 || well.tanks[1].getFill() > 0) { + well.tanks[0].setFill(0); + well.tanks[1].setFill(0); + + ExplosionVNT xnt = new ExplosionVNT(world, pos[0] + 0.5, pos[1] + 0.5, pos[2] + 0.5, 15F); + xnt.setBlockAllocator(new BlockAllocatorStandard(24)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setEntityProcessor(new EntityProcessorStandard()); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.explode(); + + ExplosionCreator.composeEffect(world, pos[0] + 0.5, pos[1] + 0.5, pos[2] + 0.5, 10, 2F, 0.5F, 25F, 5, 8, 20, 0.75F, 1F, -2F, 150); + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java index 4826057f4..e26b9d810 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java @@ -12,44 +12,38 @@ import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class MachinePuF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; public MachinePuF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,101 +56,41 @@ public class MachinePuF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_puf6); - + } else world.func_147480_a(x, y, z, true); } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachinePuF6Tank tileentityfurnace = (TileEntityMachinePuF6Tank)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachinePuF6Tank entity = (TileEntityMachinePuF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; diff --git a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java index 5f8e45d39..e4ce120f8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java @@ -12,44 +12,38 @@ import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class MachineUF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; public MachineUF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,101 +56,41 @@ public class MachineUF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_uf6); - + } else world.func_147480_a(x, y, z, true); } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineUF6Tank tileentityfurnace = (TileEntityMachineUF6Tank)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachineUF6Tank entity = (TileEntityMachineUF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java deleted file mode 100644 index 88e054bfd..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ILookOverlay; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuct extends BlockContainer implements ILookOverlay { - - public BlockFluidDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFluidDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java deleted file mode 100644 index 3674da7d1..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.IBlockMultiPass; -import com.hbm.blocks.ILookOverlay; -import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPass, ILookOverlay { - - public BlockFluidDuctSolid(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityFluidDuctSimple(); - } - - @SideOnly(Side.CLIENT) - private IIcon overlay; - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); - this.overlay = p_149651_1_.registerIcon(this.getTextureName() + "_overlay"); - } - - @Override - public int getPasses() { - return 2; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return RenderBlockMultipass.currentPass == 0 ? this.blockIcon : this.overlay; - } - - @Override - public int getRenderType(){ - return IBlockMultiPass.getRenderType(); - } - - @Override - @SideOnly(Side.CLIENT) - public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - - if(RenderBlockMultipass.currentPass == 0) - return 0xffffff; - - TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z); - - if(te != null) { - return te.getType().getColor(); - } - - return 0xffffff; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 583865950..ac69f36bb 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -87,6 +87,10 @@ public class FalloutConfigJSON { if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); if(m > 4) entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 9)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(Blocks.bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_bedrock)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.ore_bedrock_oil)); + entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_bedrock, m, 1)).max(i * 5).sol(true).mB(ModBlocks.sellafield_bedrock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.iron)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); @@ -96,7 +100,6 @@ public class FalloutConfigJSON { if(stone != null) entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mB(stone)); } - //entries.add(new FalloutEntry().mB(Blocks.grass).prim(new Triplet(ModBlocks.waste_earth, 0, 1))); entries.add(new FalloutEntry() .mB(Blocks.mycelium) .prim(new Triplet(ModBlocks.waste_mycelium, 0, 1))); @@ -209,31 +212,23 @@ public class FalloutConfigJSON { if(matchesOpaque && !b.isOpaqueCube()) return false; if(dist > maxDist * falloffStart && Math.abs(world.rand.nextGaussian()) < Math.pow((dist - maxDist * falloffStart) / (maxDist - maxDist * falloffStart), 2D) * 3D) return false; - if(primaryChance == 1D || rand.nextDouble() < primaryChance) { + MetaBlock conversion = chooseRandomOutcome((primaryChance == 1D || rand.nextDouble() < primaryChance) ? primaryBlocks : secondaryBlocks); + + if(conversion != null) { + if(conversion.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked && conversion.meta <= originalMeta) return false; + if(conversion.block == ModBlocks.sellafield_bedrock && originalBlock == ModBlocks.sellafield_bedrock && conversion.meta <= originalMeta) return false; + if(originalBlock == ModBlocks.sellafield_bedrock && conversion.block != ModBlocks.sellafield_bedrock) return false; + if(y == 0 && conversion.block != ModBlocks.sellafield_bedrock) return false; - if(primaryBlocks == null) return false; - - MetaBlock block = chooseRandomOutcome(primaryBlocks); - if(block.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked) { - if(block.meta <= originalMeta) return false; - } - world.setBlock(x, y, z, block.block, block.meta, 3); - return true; - - } else { - - if(secondaryBlocks == null) return false; - - MetaBlock block = chooseRandomOutcome(secondaryBlocks); - if(block.block == ModBlocks.sellafield_slaked && originalBlock == ModBlocks.sellafield_slaked) { - if(block.meta <= originalMeta) return false; - } - world.setBlock(x, y, z, block.block, block.meta, 3); + world.setBlock(x, y, z, conversion.block, conversion.meta, 3); return true; } + + return false; } private MetaBlock chooseRandomOutcome(Triplet[] blocks) { + if(blocks == null) return null; int weight = 0; diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 5632a9dd6..db125cf8c 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -423,8 +423,6 @@ public class MineralRecipes { add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); - GameRegistry.addRecipe(new ItemStack(ModBlocks.hazmat, 8), new Object[] { "###", "# #", "###", '#', ModItems.hazmat_cloth }); - GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_cloth, 1), new Object[] { "#", '#', ModBlocks.hazmat }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 1), new Object[] { "##", "##", '#', ModItems.powder_balefire }); add9To1(ModItems.cell_balefire, ModItems.egg_balefire_shard); diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index e611acb8f..5b70719d0 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -101,7 +101,7 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.PINK, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE) }); CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 2), new Object[] { DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE), DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW) }); - for(int i = 0; i < 15; i++) CraftingManager.addShapelessAuto(new ItemStack(ModItems.crayon, 4, i), new Object[] { new ItemStack(ModItems.chemical_dye, 1, i), ANY_TAR.any() }); + for(int i = 0; i < 15; i++) CraftingManager.addShapelessAuto(new ItemStack(ModItems.crayon, 4, i), new Object[] { new ItemStack(ModItems.chemical_dye, 1, i), ANY_TAR.any(), Items.paper }); } } diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 0c4af1770..d190636e0 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -95,7 +95,6 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', STEEL.shell(), 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); //Misc - CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crowbar, 1), new Object[] { "II", " I", " I", 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_opener, 1), new Object[] { "S", "P", 'S', STEEL.plate(), 'P', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(Items.saddle, 1), new Object[] { "LLL", "LRL", " S ", 'S', STEEL.ingot(), 'L', Items.leather, 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE) }); @@ -147,7 +146,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', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic }); 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/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 6654eb051..b5011714c 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -73,13 +73,11 @@ public class EntityMappings { addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000); addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); addEntity(EntityMIRV.class, "entity_mirvlet", 1000); - addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000); addEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 1000); addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500); addEntity(EntityGrenadeTau.class, "entity_grenade_tau", 500); addEntity(EntityChopperMine.class, "entity_chopper_mine", 1000); - addEntity(EntityCombineBall.class, "entity_combine_ball", 1000); addEntity(EntityRainbow.class, "entity_rainbow", 1000); addEntity(EntityGrenadeLemon.class, "entity_grenade_lemon", 500); addEntity(EntityCloudFleija.class, "entity_cloud_fleija", 500); @@ -96,20 +94,14 @@ public class EntityMappings { addEntity(EntityLaserBeam.class, "entity_laser_beam", 1000); addEntity(EntityMinerBeam.class, "entity_miner_beam", 1000); addEntity(EntityRubble.class, "entity_rubble", 1000); - addEntity(EntityDSmokeFX.class, "entity_d_smoke_fx", 1000); - addEntity(EntitySSmokeFX.class, "entity_s_smoke_fx", 1000); addEntity(EntityShrapnel.class, "entity_shrapnel", 1000); addEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 250); addEntity(EntityBlackHole.class, "entity_black_hole", 250); addEntity(EntityGrenadeBlackHole.class, "entity_grenade_black_hole", 250); - addEntity(EntityOilSpillFX.class, "entity_spill_fx", 1000); - addEntity(EntityOilSpill.class, "entity_oil_spill", 1000); - addEntity(EntityGasFX.class, "entity_spill_fx", 1000); addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000); addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); addEntity(EntityMissileDoomsdayRusted.class, "entity_missile_doomsday_rusted", 1000); - addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); addEntity(EntityMeteor.class, "entity_meteor", 250); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 519e21fa1..0c1bc8ea6 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -64,8 +64,8 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); boolean biomeModified = false; - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale(); stomp(x, z, percent); BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z)); @@ -82,8 +82,8 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { int chunkPosX = (int) (chunkPos & Integer.MAX_VALUE); int chunkPosZ = (int) (chunkPos >> 32 & Integer.MAX_VALUE); boolean biomeModified = false; - for(int x = chunkPosX << 4; x <= (chunkPosX << 4) + 16; x++) { - for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) { + for(int x = chunkPosX << 4; x < (chunkPosX << 4) + 16; x++) { + for(int z = chunkPosZ << 4; z < (chunkPosZ << 4) + 16; z++) { double distance = Math.hypot(x - posX, z - posZ); if(distance <= getScale()) { double percent = distance * 100 / getScale(); @@ -165,14 +165,13 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { int depth = 0; - for(int y = 255; y >= 1; y--) { + for(int y = 255; y >= 0; y--) { if(depth >= 3) return; Block b = worldObj.getBlock(x, y, z); if(b.getMaterial() == Material.air || b == ModBlocks.fallout) continue; - if(b == Blocks.bedrock) return; if(b == ModBlocks.volcano_core) { worldObj.setBlock(x, y, z, ModBlocks.volcano_rad_core, worldObj.getBlockMetadata(x, y, z), 3); @@ -211,7 +210,7 @@ public class EntityFalloutRain extends EntityExplosionChunkloading { } float hardness = b.getBlockHardness(worldObj, x, y, z); - if(dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { + if(y > 0 && dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { if(worldObj.getBlock(x, y - 1, z) == Blocks.air) { for(int i = 0; i <= depth; i++) { diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index e5a4054f6..0985e3e54 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -3,7 +3,6 @@ package com.hbm.entity.missile; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.entity.particle.EntitySmokeFX; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -41,8 +40,6 @@ public class EntityMIRV extends EntityThrowable { } this.setDead(); } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); } protected void rotation() { diff --git a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java deleted file mode 100644 index 64889f204..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityDSmokeFX extends EntityModFX { - public EntityDSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityDSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, - double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityDSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, - double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - // this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - // this.particleMaxAge = (int)((float)this.particleMaxAge * - // p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (maxAge < 100) { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityGasFX.java b/src/main/java/com/hbm/entity/particle/EntityGasFX.java deleted file mode 100644 index c34d1df66..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityGasFX.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityGasFX extends EntityModFX -{ - float smokeParticleScale; - public int particleAge; - public int maxAge; - public EntityGasFX(World world) { - super(world, 0, 0, 0); - } - - public EntityGasFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityGasFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 15) - { - maxAge = rand.nextInt(4) + 15; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - //this.motionY *= 0.7599999785423279D; - this.motionY += 0.1D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 3F, true); - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java b/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java deleted file mode 100644 index 4f932ece6..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityOilSpillFX.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class EntityOilSpillFX extends EntityModFX { - float smokeParticleScale; - public int particleAge; - public int maxAge; - - public EntityOilSpillFX(World world) { - super(world, 0, 0, 0); - } - - public EntityOilSpillFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityOilSpillFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - this.noClip = false; - } - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 15) { - maxAge = rand.nextInt(4) + 15; - } - - this.particleAge++; - - if(this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if(this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - public boolean writeToNBTOptional(NBTTagCompound nbt) { - return false; - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setDead(); - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java deleted file mode 100644 index 699821ba1..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySSmokeFX extends EntityModFX -{ - public EntitySSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java deleted file mode 100644 index 8281443d9..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySmokeFX extends EntityModFX -{ - public EntitySmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 100) - { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java deleted file mode 100644 index e5723cf0c..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityTSmokeFX extends EntityModFX -{ - public EntityTSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityTSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityTSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java deleted file mode 100644 index fe59e30f2..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ /dev/null @@ -1,571 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityCombineBall extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityCombineBall(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityCombineBall(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityCombineBall(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityCombineBall(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityCombineBall(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeCombineDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 1000F); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - float f3 = 0.99F; - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - - f3 = 0.8F; - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > 250) - this.setDead(); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java b/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java deleted file mode 100644 index aba68c0a9..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityOilSpill.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.hbm.entity.projectile; - -import com.hbm.entity.particle.EntityOilSpillFX; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityOilSpill extends EntityThrowable { - - public EntityOilSpill(World p_i1773_1_) { - super(p_i1773_1_); - } - - public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_) { - super(p_i1774_1_, p_i1774_2_); - } - - @Override - public void entityInit() { } - - public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } - - @Override - public void onUpdate() { - super.onUpdate(); - if(!worldObj.isRemote) { - worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - if(this.isBurning()) { - this.setDead(); - worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true); - } - } - } - - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - if(this.ticksExisted > 5) { - this.setDead(); - } - } - - @Override - public boolean writeToNBTOptional(NBTTagCompound nbt) { - return false; - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setDead(); - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java index b3a1ca7da..c035c0833 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java @@ -7,7 +7,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.radiation.ChunkRadiationManager; @@ -448,16 +447,6 @@ public class EntityRocketHoming extends Entity implements IProjectile } } - if (true) - { - //for (i = 0; i < 4; ++i) - { - //this.worldObj.spawnParticle("cloud", this.posX, this.posY, this.posZ, /*0, 0, 0 this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D,*/ -this.motionX/4, -this.motionY/4, -this.motionZ/4); - if(!worldObj.isRemote && this.ticksExisted > 1) - this.worldObj.spawnEntityInWorld(new EntityTSmokeFX(worldObj, this.posX, this.posY, this.posZ, 0, 0, 0)); - } - } - this.posX += this.motionX; this.posY += this.motionY; this.posZ += this.motionZ; diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 64adc7913..2fff85b46 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -3,7 +3,6 @@ package com.hbm.explosion; import java.util.List; import java.util.Random; -import com.hbm.entity.projectile.EntityOilSpill; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.packet.AuxParticlePacketNT; @@ -154,20 +153,6 @@ public class ExplosionLarge { } } - public static void spawnOilSpills(World world, double x, double y, double z, int count) { - - for(int i = 0; i < count; i++) { - EntityOilSpill shrapnel = new EntityOilSpill(world); - shrapnel.posX = x; - shrapnel.posY = y; - shrapnel.posZ = z; - shrapnel.motionY = ((rand.nextFloat() * 0.5) + 0.5) * (1 + (count / (15 + rand.nextInt(21)))) + (rand.nextFloat() / 50 * count) * 0.25F; - shrapnel.motionX = rand.nextGaussian() * 1 * (1 + (count / 50)) * 0.15F; - shrapnel.motionZ = rand.nextGaussian() * 1 * (1 + (count / 50)) * 0.15F; - world.spawnEntityInWorld(shrapnel); - } - } - public static void explode(World world, double x, double y, double z, float strength, boolean cloud, boolean rubble, boolean shrapnel, Entity exploder) { world.createExplosion(exploder, x, y, z, strength, true); if(cloud) diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index 9beabfb46..04877a1df 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -18,6 +18,9 @@ public class ArmorModHandler { public static final int cladding = 5; public static final int kevlar = 6; public static final int extra = 7; + public static final int battery = 8; + + public static final int MOD_SLOTS = 9; public static final UUID[] UUIDs = new UUID[] { UUID.fromString("8d6e5c77-133e-4056-9c80-a9e42a1a0b65"), @@ -131,7 +134,7 @@ public class ArmorModHandler { } /** - * Does what the name implies + * Does what the name implies. Returns true if the stack has NBT and that NBT has the MOD_COMPOUND_KEY tag. * @param armor * @return */ @@ -146,7 +149,7 @@ public class ArmorModHandler { public static ItemStack[] pryMods(ItemStack armor) { - ItemStack[] slots = new ItemStack[8]; + ItemStack[] slots = new ItemStack[MOD_SLOTS]; if(!hasMods(armor)) return slots; @@ -154,7 +157,7 @@ public class ArmorModHandler { NBTTagCompound nbt = armor.getTagCompound(); NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); - for(int i = 0; i < 8; i++) { + for(int i = 0; i < MOD_SLOTS; i++) { NBTTagCompound cmp = mods.getCompoundTag(MOD_SLOT_KEY + i); @@ -168,4 +171,22 @@ public class ArmorModHandler { return slots; } + + public static ItemStack pryMod(ItemStack armor, int slot) { + + if(!hasMods(armor)) + return null; + + NBTTagCompound nbt = armor.getTagCompound(); + NBTTagCompound mods = nbt.getCompoundTag(MOD_COMPOUND_KEY); + NBTTagCompound cmp = mods.getCompoundTag(MOD_SLOT_KEY + slot); + ItemStack stack = ItemStack.loadItemStackFromNBT(cmp); + + if(stack != null) + return stack; + + removeMod(armor, slot); + + return null; + } } diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index ec0250c81..fe0b08ca0 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -1,21 +1,30 @@ package com.hbm.handler; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Optional; +import li.cil.oc.api.Items; +import li.cil.oc.api.fs.FileSystem; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; -import net.minecraft.util.EnumChatFormatting; +import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; -import java.lang.reflect.Array; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.Callable; +import static com.hbm.main.CraftingManager.addShapelessAuto; +import static li.cil.oc.api.FileSystem.asReadOnly; +import static li.cil.oc.api.FileSystem.fromClass; /** * General handler for OpenComputers compatibility. @@ -23,13 +32,29 @@ import java.lang.reflect.Array; */ public class CompatHandler { + /** + * Used for converting a steam type to an integer (compression levels). + * @param type Steam type. + * @return Object[] array containing an int with the "compression level" + */ public static Object[] steamTypeToInt(FluidType type) { - if(type == Fluids.STEAM) {return new Object[] {0};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} - return new Object[] {3}; + switch(type.getID()) { + default: + return new Object[] {0}; + case(4): // Fluids.HOTSTEAM + return new Object[] {1}; + case(5): // Fluids.SUPERHOTSTEAM + return new Object[] {2}; + case(6): // Fluids.ULTRAHOTSTEAM + return new Object[] {3}; + } } + /** + * Used for converting a compression level to a steam type. + * @param arg Steam compression level. + * @return FluidType of the steam type based on the compression level. + */ public static FluidType intToSteamType(int arg) { switch(arg) { default: @@ -43,6 +68,134 @@ public class CompatHandler { } } + /** + * Allows for easy creation of read-only filesystems. Primarily for floppy disks. + * (Though maybe reading directly from VOTV drives as filesystems could be implemented. :3) + **/ + private static class ReadOnlyFileSystem implements Callable { + + private final String name; + + ReadOnlyFileSystem(String name) { + this.name = name; + } + + @Override + @Optional.Method(modid = "OpenComputers") + public li.cil.oc.api.fs.FileSystem call() throws Exception { + return asReadOnly(fromClass(MainRegistry.class, RefStrings.MODID, "disks/" + FloppyDisk.sanitizeName(name))); + } + } + + // Floppy disk class. + public static class FloppyDisk { + // Specifies the callable ReadOnlyFileSystem to allow OC to access the floppy. + public final ReadOnlyFileSystem fs; + // Specifies the color of the floppy disk (0-16 colors defined by OC). + public final Byte color; + // Set after loading the disk; allows for adding a recipe to the item. + public ItemStack item; + + FloppyDisk(String name, int color) { + this.fs = new ReadOnlyFileSystem(FloppyDisk.sanitizeName(name)); + this.color = (byte) color; + } + + // Disk names will be sanitized before the FileSystem is created. + // This only affects the location/directory, not the display name. + // (Prevents filesystems from breaking/crashing due to having file separators, wildcards, etc. + public static String sanitizeName(String input) { + return input.toLowerCase().replaceAll("\\W", ""); + } + } + + /** + * Simple enum for mapping OC color ordinals to a nicer format for adding new disks. + */ + public enum OCColors { + BLACK, //0x444444 + RED, //0xB3312C + GREEN, //0x339911 + BROWN, //0x51301A + BLUE, //0x6666FF + PURPLE, //0x7B2FBE + CYAN, //0x66FFFF + LIGHTGRAY, //0xABABAB + GRAY, //0x666666 + PINK, //0xD88198 + LIME, //0x66FF66 + YELLOW, //0xFFFF66 + LIGHTBLUE, //0xAAAAFF + MAGENTA, //0xC354CD + ORANGE, //0xEB8844 + WHITE //0xF0F0F0 + } + + // Where all disks are stored with their name and `FloppyDisk` class. + public static HashMap disks = new HashMap<>(); + + /** + * Called in the FML PostLoad stage, after the OC API loads. + *
+ * Loads various parts of OC compatibility. + */ + public static void init() { + if(Loader.isModLoaded("OpenComputers")) { + /* + For anyone wanting to add their own floppy disks, + read the README found in assets.hbm.disks. + */ + + // Idea/Code by instantnootles + disks.put("PWRangler", new FloppyDisk("PWRangler", OCColors.CYAN.ordinal())); + + // begin registering disks + Logger logger = LogManager.getLogger("HBM"); + logger.info("Loading OpenComputers disks..."); + if(disks.size() == 0) { + logger.info("No disks registered; see com.hbm.handler.CompatHandler.disks"); + return; + } + disks.forEach((s, disk) -> { + + // Test if the disk path even exists. + FileSystem fs = fromClass(MainRegistry.class, RefStrings.MODID, "disks/" + disk.fs.name); + + if (fs == null) { // Disk path does NOT exist, and it should not be loaded. + + logger.error("Error loading disk: " + s + " at /assets/" + RefStrings.MODID + "/disks/" + disk.fs.name); + logger.error("This is likely due to the path to the disk being non-existent."); + + } else { // Disk path DOES exist, and it should be loaded. + + disk.item = Items.registerFloppy(s, disk.color, disk.fs); // The big part, actually registering the floppies! + logger.info("Registered disk: " + s + " at /assets/" + RefStrings.MODID + "/disks/" + disk.fs.name); + + } + }); + logger.info("OpenComputers disks registered."); + + // OC disk recipes! + List floppyDisks = new RecipesCommon.OreDictStack("oc:floppy").toStacks(); + + if(floppyDisks.size() > 0) { //check that floppy disks even exist in oredict. + + // Recipes must be initialized here, since if they were initialized in `CraftingManager` then the disk item would not be created yet. + addShapelessAuto(disks.get("PWRangler").item, new Object[] {"oc:floppy", new ItemStack(ModBlocks.pwr_casing)}); + + logger.info("OpenComputers disk recipe added for PWRangler."); + } else { + logger.info("OpenComputers floppy disk oredict not found, recipes cannot be loaded!"); + } + + // boom, OC disks loaded + logger.info("OpenComputers disks loaded."); + } + } + + // Null component name, default to this if broken to avoid NullPointerExceptions. + public static final String nullComponent = "ntm_null"; + /** * This is an interface made specifically for adding OC compatibility to NTM machines. The {@link li.cil.oc.api.network.SimpleComponent} interface must also be implemented in the TE. *
@@ -54,11 +207,10 @@ public class CompatHandler { @Optional.InterfaceList({ @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers"), @Optional.Interface(iface = "li.cil.oc.api.network.SidedComponent", modid = "OpenComputers"), - @Optional.Interface(iface = "li.cil.oc.api.network.Analyzable", modid = "OpenComputers"), @Optional.Interface(iface = "li.cil.oc.api.network.ManagedPeripheral", modid = "OpenComputers"), }) @SimpleComponent.SkipInjection // make sure OC doesn't inject this shit into the interface and crash - public interface OCComponent extends SimpleComponent, SidedComponent, Analyzable, ManagedPeripheral { + public interface OCComponent extends SimpleComponent, SidedComponent, ManagedPeripheral { /** * Must be overridden in the implemented TE, or it will default to "ntm_null". @@ -69,7 +221,7 @@ public class CompatHandler { @Override @Optional.Method(modid = "OpenComputers") default String getComponentName() { - return "ntm_null"; + return nullComponent; } /** @@ -83,31 +235,6 @@ public class CompatHandler { return true; } - /** - * Function to give more information when analyzing the block. Multiple entries in the array will be sent to the user in the order of the array. - * @return Additional text to add in the form of lang entries (ex: "analyze.basic2"). - */ - @Optional.Method(modid = "OpenComputers") - default String[] getExtraInfo() {return new String[] {"analyze.noInfo"};} - - @Override - @Optional.Method(modid = "OpenComputers") - default Node[] onAnalyze(EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - player.addChatComponentMessage(new ChatComponentTranslation("analyze.basic1").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - player.addChatComponentMessage(new ChatComponentTranslation("analyze.basic2").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - player.addChatComponentMessage(new ChatComponentTranslation("analyze.basic3").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - player.addChatComponentMessage(new ChatComponentTranslation("analyze.name", this.getComponentName()).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); - String[] extraInfo = getExtraInfo(); - for (String info : extraInfo) { - if(!info.equals("")) - player.addChatComponentMessage(new ChatComponentTranslation(info).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); - } - TileEntity te = (TileEntity) this; - if((Array.getLength(this.methods()) == 0 && te instanceof TileEntityProxyCombo) || this.getComponentName().equals("ntm_null")) - player.addChatComponentMessage(new ChatComponentTranslation("analyze.error").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); - return null; - } - /** * Standard methods array from {@link li.cil.oc.api.network.ManagedPeripheral} extending {@link li.cil.oc.api.network.SimpleComponent}. * @return Array of methods to expose to the computer. diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index f085e4ebe..2bf1e9e6e 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -162,7 +162,7 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler implements ICom guiGui = new LinkedList>(); transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 7 - 11 - 11, 18 * 4, 18), "refinery")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(48, 5, 31, 101), "refinery")); guiGui.add(GUIMachineRefinery.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); diff --git a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java b/src/main/java/com/hbm/interfaces/IFluidAcceptor.java deleted file mode 100644 index b24f0cd3f..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidAcceptor extends IFluidContainer { - - @Deprecated int getMaxFluidFill(FluidType type); - - @Deprecated - public default void setFluidFillForReceive(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForReceive(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default int getMaxFluidFillForReceive(FluidType type) { - return this.getMaxFluidFill(type); - } - - @Deprecated - public default void receiveFluid(int amount, FluidType type) { - this.setFluidFill(this.getFluidFill(type) + amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IFluidContainer.java b/src/main/java/com/hbm/interfaces/IFluidContainer.java deleted file mode 100644 index 6e8b45284..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidContainer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidContainer { - - //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks - public void setFillForSync(int fill, int index); - - //Args: fill: what the fill should be set to; type, what type the tank in question has - void setFluidFill(int fill, FluidType type); - - //Args: type, what the type should be set to; index, index for array if there are multiple tanks - public void setTypeForSync(FluidType type, int index); - - //Args: type, what type the tank in question has - int getFluidFill(FluidType type); - -} diff --git a/src/main/java/com/hbm/interfaces/IFluidDuct.java b/src/main/java/com/hbm/interfaces/IFluidDuct.java deleted file mode 100644 index 101013ef9..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidDuct.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -public interface IFluidDuct { - - public FluidType getType(); - public boolean setType(FluidType type); - -} diff --git a/src/main/java/com/hbm/interfaces/IFluidSource.java b/src/main/java/com/hbm/interfaces/IFluidSource.java deleted file mode 100644 index 195e0d71b..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidSource.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidSource extends IFluidContainer { - - @Deprecated void fillFluidInit(FluidType type); - - @Deprecated void fillFluid(int x, int y, int z, boolean newTact, FluidType type); - - @Deprecated boolean getTact(); - @Deprecated List getFluidList(FluidType type); - @Deprecated void clearFluidList(FluidType type); - - @Deprecated - public default void setFluidFillForTransfer(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForTransfer(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default void transferFluid(int amount, FluidType type) { - this.setFluidFillForTransfer(this.getFluidFillForTransfer(type) - amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IGasAcceptor.java b/src/main/java/com/hbm/interfaces/IGasAcceptor.java deleted file mode 100644 index 4cf182acd..000000000 --- a/src/main/java/com/hbm/interfaces/IGasAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasAcceptor { - - void setGasFill(int i); - - int getGasFill(); - - int getMaxGasFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IGasDuct.java b/src/main/java/com/hbm/interfaces/IGasDuct.java deleted file mode 100644 index 13a0452b9..000000000 --- a/src/main/java/com/hbm/interfaces/IGasDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IGasSource.java b/src/main/java/com/hbm/interfaces/IGasSource.java deleted file mode 100644 index 87e3a5e2d..000000000 --- a/src/main/java/com/hbm/interfaces/IGasSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IGasSource { - - void fillGasInit(); - - void fillGas(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getGasFill(); - void setGasFill(int i); - List getGasList(); - void clearGasList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilAcceptor.java b/src/main/java/com/hbm/interfaces/IOilAcceptor.java deleted file mode 100644 index b8af2606e..000000000 --- a/src/main/java/com/hbm/interfaces/IOilAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilAcceptor { - - void setFill(int i); - - int getFill(); - - int getMaxFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilDuct.java b/src/main/java/com/hbm/interfaces/IOilDuct.java deleted file mode 100644 index 9db089044..000000000 --- a/src/main/java/com/hbm/interfaces/IOilDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IOilSource.java b/src/main/java/com/hbm/interfaces/IOilSource.java deleted file mode 100644 index 31fd4879a..000000000 --- a/src/main/java/com/hbm/interfaces/IOilSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IOilSource { - - void fillInit(); - - void fill(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getSFill(); - void setSFill(int i); - List getList(); - void clearList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IReactor.java b/src/main/java/com/hbm/interfaces/IReactor.java deleted file mode 100644 index c0da0b7fd..000000000 --- a/src/main/java/com/hbm/interfaces/IReactor.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.interfaces; - -import net.minecraft.world.World; - -public interface IReactor { - - boolean isStructureValid(World world); - - boolean isCoatingValid(World world); - - boolean hasFuse(); - - int getWaterScaled(int i); - - int getCoolantScaled(int i); - - long getPowerScaled(long i); - - int getHeatScaled(int i); - -} diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index b9f428c98..85a43f6bf 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -117,6 +117,7 @@ public class RecipesCommon { return; } this.item = stack.getItem(); + if(this.item == null) this.item = ModItems.nothing; //i'm going to bash some fuckard's head in this.stacksize = stack.stackSize; this.meta = stack.getItemDamage(); } @@ -128,6 +129,7 @@ public class RecipesCommon { public ComparableStack(Item item) { this.item = item; + if(this.item == null) this.item = ModItems.nothing; this.stacksize = 1; this.meta = 0; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java index f8da90d3d..d63fcad3b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java +++ b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java @@ -19,20 +19,21 @@ import net.minecraft.util.IIcon; public class ContainerArmorTable extends Container { - public InventoryBasic upgrades = new InventoryBasic("Upgrades", false, 8); + public InventoryBasic upgrades = new InventoryBasic("Upgrades", false, ArmorModHandler.MOD_SLOTS); public IInventory armor = new InventoryCraftResult(); public ContainerArmorTable(InventoryPlayer inventory) { EntityPlayer player = inventory.player; this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.helmet_only, 26 + 22, 27)); // helmet only - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plate_only, 62 + 22, 27)); // chestplate only + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plate_only, 62 + 22, 27)); // chestplate only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.legs_only, 98 + 22, 27)); // leggins only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.boots_only, 134 + 22, 45)); // boots only this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.servos, 134 + 22, 81)); //servos/frame this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.cladding, 98 + 22, 99)); //radiation cladding - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62 + 22, 99)); //kevlar/sapi/(ERA? :) ) + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62 + 22, 99)); //kevlar/sapi/(ERA? :) ) this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.extra, 26 + 22, 99)); //special parts + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.battery, 8 + 22, 63)); //special parts this.addSlotToContainer(new Slot(armor, 0, 44 + 22, 63) { @@ -48,7 +49,7 @@ public class ContainerArmorTable extends Container { if(stack != null) { ItemStack[] mods = ArmorModHandler.pryMods(stack); - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { if(mods != null) upgrades.setInventorySlotContents(i, mods[i]); @@ -65,7 +66,7 @@ public class ContainerArmorTable extends Container { //if the armor piece is taken, absorb all armor pieces - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { ItemStack mod = upgrades.getStackInSlot(i); @@ -126,19 +127,19 @@ public class ContainerArmorTable extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 8) { - if(par2 != 8 || !InventoryUtil.mergeItemStack(this.inventorySlots, var5, 9, 13, false)) - if(!this.mergeItemStack(var5, 13, this.inventorySlots.size(), true)) + if(par2 <= ArmorModHandler.MOD_SLOTS) { + if(par2 != ArmorModHandler.MOD_SLOTS || !InventoryUtil.mergeItemStack(this.inventorySlots, var5, ArmorModHandler.MOD_SLOTS + 1, ArmorModHandler.MOD_SLOTS + 5, false)) + if(!this.mergeItemStack(var5, ArmorModHandler.MOD_SLOTS + 5, this.inventorySlots.size(), true)) return null; var4.onPickupFromSlot(p_82846_1_, var5); } else { if(var5.getItem() instanceof ItemArmor) { - if(!this.mergeItemStack(var5, 8, 9, false)) + if(!this.mergeItemStack(var5, ArmorModHandler.MOD_SLOTS, ArmorModHandler.MOD_SLOTS + 1, false)) return null; - } else if(this.inventorySlots.get(8) != null && var5.getItem() instanceof ItemArmorMod) { + } else if(this.inventorySlots.get(ArmorModHandler.MOD_SLOTS) != null && var5.getItem() instanceof ItemArmorMod) { ItemArmorMod mod = (ItemArmorMod)var5.getItem(); int slot = mod.type; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java index b38021386..7a557eeba 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -4,6 +4,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +@invtweaks.api.container.ChestContainer(rowSize = 13, isLargeChest = false) public class ContainerCrateDesh extends ContainerCrateBase { public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { @@ -15,7 +16,7 @@ public class ContainerCrateDesh extends ContainerCrateBase { } } - this.playerInv(invPlayer,44, 174, 232); + this.playerInv(invPlayer, 44, 174, 232); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index 533e1b866..6c2a62671 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -5,7 +5,7 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateIron extends ContainerCrateBase { public ContainerCrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java index 1a2c74c2e..4e5969fb0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java @@ -4,7 +4,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateSteel extends ContainerCrateBase { public ContainerCrateSteel(InventoryPlayer invPlayer, IInventory tedf) { @@ -16,6 +16,6 @@ public class ContainerCrateSteel extends ContainerCrateBase { } } - this.playerInv(invPlayer,8, 84 + (18 * 3) + 2, 142 + (18 * 3) + 2); + this.playerInv(invPlayer, 8, 84 + (18 * 3) + 2, 142 + (18 * 3) + 2); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java index 26c000a8e..553451df8 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java @@ -5,6 +5,7 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateTemplate extends ContainerCrateBase { public ContainerCrateTemplate(InventoryPlayer invPlayer, TileEntityCrateTemplate tedf) { @@ -16,6 +17,6 @@ public class ContainerCrateTemplate extends ContainerCrateBase { } } - this.playerInv(invPlayer,8, 86, 144); + this.playerInv(invPlayer, 8, 86, 144); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java index 6cfde0672..55b2d3cfa 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java @@ -5,7 +5,7 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -//@invtweaks.api.container.ChestContainer +@invtweaks.api.container.ChestContainer(rowSize = 9, isLargeChest = false) public class ContainerCrateTungsten extends ContainerCrateBase { public ContainerCrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten te) { @@ -17,6 +17,6 @@ public class ContainerCrateTungsten extends ContainerCrateBase { } } - this.playerInv(invPlayer,8, 32 + 18 * 3, 90 + (18 * 3)); + this.playerInv(invPlayer, 8, 32 + 18 * 3, 90 + (18 * 3)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java index 000a58cf1..b47d2b182 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java @@ -19,40 +19,40 @@ public class ContainerMachineRefinery extends Container { testNuke = tedf; //Battery - this.addSlotToContainer(new Slot(tedf, 0, 8, 90)); + this.addSlotToContainer(new Slot(tedf, 0, 186, 72)); //Canister Input - this.addSlotToContainer(new Slot(tedf, 1, 35, 90)); + this.addSlotToContainer(new Slot(tedf, 1, 8, 99)); //Canister Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 35, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 8, 119)); //Heavy Oil Input - this.addSlotToContainer(new Slot(tedf, 3, 80, 90)); + this.addSlotToContainer(new Slot(tedf, 3, 86, 99)); //Heavy Oil Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 80, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 86, 119)); //Naphtha Input - this.addSlotToContainer(new Slot(tedf, 5, 98, 90)); + this.addSlotToContainer(new Slot(tedf, 5, 106, 99)); //Naphtha Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 98, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 106, 119)); //Light Oil Input - this.addSlotToContainer(new Slot(tedf, 7, 116, 90)); + this.addSlotToContainer(new Slot(tedf, 7, 126, 99)); //Light Oil Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 116, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 126, 119)); //Petroleum Input - this.addSlotToContainer(new Slot(tedf, 9, 134, 90)); + this.addSlotToContainer(new Slot(tedf, 9, 146, 99)); //Petroleum Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 108)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 146, 119)); //Sulfur Output - this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 152, 36)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 58, 119)); //Fluid ID - this.addSlotToContainer(new Slot(tedf, 12, 8, 108)); + this.addSlotToContainer(new Slot(tedf, 12, 186, 106)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 150 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 208)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java deleted file mode 100644 index 53b263511..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerPuF6Tank extends Container { - - private TileEntityMachinePuF6Tank testNuke; - - public ContainerPuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java deleted file mode 100644 index 06e591a4a..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerUF6Tank extends Container { - - private TileEntityMachineUF6Tank testNuke; - - public ContainerUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 641769b1c..135582280 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -12,17 +12,13 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEFluidPacket; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; @@ -40,7 +36,6 @@ public class FluidTank { FluidType type; int fluid; int maxFluid; - @Deprecated public int index = 0; int pressure = 0; public FluidTank(FluidType type, int maxFluid) { @@ -56,13 +51,6 @@ public class FluidTank { return this; } - @Deprecated // indices are no longer needed - public FluidTank(FluidType type, int maxFluid, int index) { - this.type = type; - this.maxFluid = maxFluid; - this.index = index; - } - public void setFill(int i) { fluid = i; } @@ -108,20 +96,6 @@ public class FluidTank { return 0; } - //Called on TE update - @Deprecated public void updateTank(TileEntity te) { - updateTank(te, 100); - } - @Deprecated public void updateTank(TileEntity te, int range) { - updateTank(te.xCoord, te.yCoord, te.zCoord, te.getWorldObj().provider.dimensionId, range); - } - @Deprecated public void updateTank(int x, int y, int z, int dim) { - updateTank(x, y, z, dim, 100); - } - @Deprecated public void updateTank(int x, int y, int z, int dim, int range) { - PacketDispatcher.wrapper.sendToAllAround(new TEFluidPacket(x, y, z, fluid, index, type), new TargetPoint(dim, x, y, z, range)); - } - //Fills tank from canisters public boolean loadTank(int in, int out, ItemStack[] slots) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java index e255586cf..250b9711f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java @@ -46,15 +46,16 @@ public class GUIArmorTable extends GuiInfoContainer { "armorMod.type.cladding", "armorMod.type.insert", "armorMod.type.special", + "armorMod.type.battery", "armorMod.insertHere" }; - for(int i = 0; i < 9; ++i) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS + 1; ++i) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { - this.drawCreativeTabHoveringText((i < 8 ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); + this.drawCreativeTabHoveringText((i < ArmorModHandler.MOD_SLOTS ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); } } } @@ -75,7 +76,7 @@ public class GUIArmorTable extends GuiInfoContainer { this.drawTexturedModalRect(guiLeft + 22, guiTop, 0, 0, this.xSize - 22, this.ySize); this.drawTexturedModalRect(guiLeft, guiTop + 31, 176, 96, 22, 100); - ItemStack armor = this.inventorySlots.getSlot(8).getStack(); + ItemStack armor = this.inventorySlots.getSlot(ArmorModHandler.MOD_SLOTS).getStack(); if(armor != null) { @@ -89,7 +90,7 @@ public class GUIArmorTable extends GuiInfoContainer { this.drawTexturedModalRect(guiLeft + 41 + 22, guiTop + 60, 176, 52, 22, 22); } - for(int i = 0; i < 8; i++) { + for(int i = 0; i < ArmorModHandler.MOD_SLOTS; i++) { Slot slot = this.inventorySlots.getSlot(i); drawIndicator(i, slot.xDisplayPosition - 1, slot.yDisplayPosition - 1); } @@ -98,7 +99,7 @@ public class GUIArmorTable extends GuiInfoContainer { private void drawIndicator(int index, int x, int y) { ItemStack mod = this.inventorySlots.getSlot(index).getStack(); - ItemStack armor = this.inventorySlots.getSlot(8).getStack(); + ItemStack armor = this.inventorySlots.getSlot(ArmorModHandler.MOD_SLOTS).getStack(); if(mod == null) return; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java deleted file mode 100644 index 4ec995798..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachinePuF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/puf6Tank.png"); - private TileEntityMachinePuF6Tank tank; - - public GUIMachinePuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - super(new ContainerPuF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.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); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index 04b901816..f30dd2edf 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -1,9 +1,14 @@ package com.hbm.inventory.gui; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.recipes.RefineryRecipes; +import com.hbm.util.Tuple; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineRefinery; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; @@ -12,6 +17,8 @@ import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; +import java.awt.Color; + public class GUIMachineRefinery extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_refinery.png"); @@ -21,46 +28,100 @@ public class GUIMachineRefinery extends GuiInfoContainer { super(new ContainerMachineRefinery(invPlayer, tedf)); refinery = tedf; - this.xSize = 176; - this.ySize = 222; + this.xSize = 210; + this.ySize = 231; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 70 - 52, 34, 52); - refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 70 - 52, 16, 52); - refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 70 - 52, 16, 52); - refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52); - refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); + refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 30, guiTop + 27, 21, 104); // Render tooltip for column. + refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 86, guiTop + 42, 16, 52); + refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 106, guiTop + 42, 16, 52); + refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 126, guiTop + 42, 16, 52); + refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 146, guiTop + 42, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 52, refinery.power, refinery.maxPower); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.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); + this.fontRendererObj.drawString(name, this.xSize / 2 - 34/2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 4, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(refinery.tanks[0].getTankType() == Fluids.HOTCRACKOIL) - drawTexturedModalRect(guiLeft + 64, guiTop + 20, 192, 0, 12, 26); + func_146110_a(guiLeft, guiTop, 0, 0, xSize, ySize, 350, 256); - int j = (int)refinery.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 52 - j, 16, j); - - refinery.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 34, 52); - refinery.tanks[1].renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[2].renderTank(guiLeft + 98, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[3].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); - refinery.tanks[4].renderTank(guiLeft + 134, guiTop + 70, this.zLevel, 16, 52); + // power + int j = (int)refinery.getPowerScaled(50); + func_146110_a(guiLeft + 186, guiTop + 69 - j, 210, 52 - j, 16, j, 350, 256); + + OpenGlHelper.glBlendFunc(770, 771, 1, 0); // default + + // input tank + FluidTank inputOil = refinery.tanks[0]; + if (inputOil.getFill() != 0) { + + int targetHeight = inputOil.getFill() * 101 / inputOil.getMaxFill(); + Color color = new Color(inputOil.getTankType().getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 33, guiTop + 130 - targetHeight, 226, 101 - targetHeight, 16, targetHeight, 350, 256); + GL11.glDisable(GL11.GL_BLEND); + } + + // fucking kgjhgdfjgdhjfg + // func_146110_a lets you set the resolution of the source texture !!!! + // 350x256 texture by behated (the pipes wouldn't fit) + + // pipes + + Tuple.Quintet recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); + + if(recipe == null) { + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + } else { + + // Heavy Oil Products + Color color = new Color(recipe.getV().type.getColor()); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); + + // Naphtha Oil Products + color = new Color(recipe.getW().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); + + // Light Oil Products + color = new Color(recipe.getX().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); + + // Gaseous Products + color = new Color(recipe.getY().type.getColor()); + GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); + func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + } + + // output tanks + refinery.tanks[1].renderTank(guiLeft + 86, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[2].renderTank(guiLeft + 106, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[3].renderTank(guiLeft + 126, guiTop + 95, this.zLevel, 16, 52); + refinery.tanks[4].renderTank(guiLeft + 146, guiTop + 95, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java deleted file mode 100644 index a7c838c52..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineUF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/uf6Tank.png"); - private TileEntityMachineUF6Tank tank; - - public GUIMachineUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - super(new ContainerUF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.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); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index fb8954ffb..8879a622e 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -47,24 +47,24 @@ public class Mats { public static final int _ES = 20_000; //Vanilla and vanilla-like - public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); - public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, INGOT, BLOCK).n(); - public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); - public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(FRAGMENT, INGOT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(FRAGMENT, WIRE, NUGGET, INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); - public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setShapes(FRAGMENT).n(); - public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); - public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); + public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); + public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, INGOT, BLOCK).n(); + public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); + public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(FRAGMENT, INGOT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(FRAGMENT, WIRE, NUGGET, INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); + public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m(); public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59).m(); public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347).m(); - public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); + public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); //Radioactive public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); @@ -78,17 +78,17 @@ public class Mats { public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0xA6B2A6, 0x030F03, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x968779, 0x3D1509, 0x715E4A).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_TECHNETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xE9FAF6).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0x958989).setShapes(NUGGET, BILLET, INGOT).m(); + public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xFCFCFC, 0xADBFBA, 0xE9FAF6).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0xECE0E0, 0x221616, 0x958989).setShapes(NUGGET, BILLET, INGOT).m(); public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST).m(); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST).m(); - public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST).m(); + public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0xB38A94, 0x12020E, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST).m(); public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); @@ -96,39 +96,39 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(FRAGMENT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(FRAGMENT, WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(FRAGMENT, NUGGET, WIRE, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF ).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT).m(); - public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(FRAGMENT, NUGGET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_EMERALD = make( 401, EMERALD) .setConversion(MAT_BERYLLIUM, 4, 3).n(); - public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(FRAGMENT, NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(FRAGMENT, DUSTTINY, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setShapes(FRAGMENT, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(FRAGMENT, DUST).m(); - public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setShapes(FRAGMENT, GEM).n(); - public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(FRAGMENT, DUST).m(); - public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(INGOT, DUST).m(); - public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(FRAGMENT, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setShapes(FRAGMENT, DUST, BLOCK).n(); - public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setShapes(FRAGMENT, DUST).n(); - public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setShapes(FRAGMENT, GEM).n(); - public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST).m(); - public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(FRAGMENT, NUGGET, BILLET, INGOT).m(); - public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setShapes(FRAGMENT, INGOT, BLOCK).n(); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE).m(); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(FRAGMENT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(FRAGMENT, WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(FRAGMENT, NUGGET, WIRE, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT).m(); + public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(FRAGMENT, NUGGET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_EMERALD = makeNonSmeltable(401, EMERALD, 0xBAFFD4, 0x003900, 0x17DD62).setConversion(MAT_BERYLLIUM, 4, 3).setShapes(FRAGMENT, DUST, GEM, BLOCK).n(); + public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(FRAGMENT, NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(FRAGMENT, DUSTTINY, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setShapes(FRAGMENT, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(FRAGMENT, DUST).m(); + public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setShapes(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(FRAGMENT, DUST).m(); + public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(INGOT, DUST).m(); + public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(FRAGMENT, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setShapes(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST).m(); + public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(FRAGMENT, NUGGET, BILLET, INGOT).m(); + public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setShapes(FRAGMENT, INGOT, BLOCK).n(); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE).m(); //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); @@ -152,10 +152,9 @@ public class Mats { public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT).n(); //Extension - public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setShapes(FRAGMENT, INGOT).n(); + public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setShapes(FRAGMENT, INGOT).n(); - @Deprecated public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } - @Deprecated public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color, color); } + public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } public static NTMMaterial make(int id, DictFrame dict) { return new NTMMaterial(id, dict); @@ -246,9 +245,7 @@ public class Mats { public static String formatAmount(int amount, boolean showInMb) { - if(showInMb) { - return (amount * 2) + "mB"; - } + if(showInMb) return (amount * 2) + "mB"; String format = ""; diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index bd5c8cedc..eaafa0638 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -51,6 +51,7 @@ public class ArcFurnaceRecipes extends SerializableRecipe { recipes.put(new OreDictStack(FIBER.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); recipes.put(new OreDictStack(FIBER.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); recipes.put(new OreDictStack(ASBESTOS.ingot()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); + recipes.put(new OreDictStack(ASBESTOS.dust()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 4)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(1, 2)))); recipes.put(new OreDictStack(ASBESTOS.block()), new ArcFurnaceRecipe().solid(new ItemStack(ModItems.nugget_silicon, 40)) .fluid(new MaterialStack(Mats.MAT_SILICON, MaterialShapes.INGOT.q(9, 2)))); recipes.put(new ComparableStack(ModBlocks.sand_quartz), new ArcFurnaceRecipe().solid(new ItemStack(ModBlocks.glass_quartz))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index c2fdad08d..39fff4c81 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -557,14 +557,6 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_chlorophyte, 1), new OreDictStack(PB.nugget(), 12), }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_mercury, 2), new AStack[] { - new ComparableStack(ModItems.ingot_mercury, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_meteorite, 2), new AStack[] { - new ComparableStack(ModItems.powder_meteorite, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); makeRecipe(new ComparableStack(ModItems.pellet_canister, 2), new AStack[] { new OreDictStack(IRON.ingot(), 3), }, 50); @@ -1261,7 +1253,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 400); makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); - makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 4000); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 400); makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index cca303ab6..06b7f69cd 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -74,7 +74,7 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(92, "NITRIC_ACID", 50) .inputItems(new OreDictStack(KNO.dust())) .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 500)) - .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 500))); + .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 1_000))); recipes.add(new ChemRecipe(93, "SOLVENT", 50) .inputFluids(new FluidStack(Fluids.NAPHTHA, 500), new FluidStack(Fluids.AROMATICS, 500)) .outputFluids(new FluidStack(Fluids.SOLVENT, 1000))); @@ -208,11 +208,10 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.WATER, 2000)) .outputItems(new ItemStack(ModBlocks.ducrete_smooth, 8))); recipes.add(new ChemRecipe(57, "SOLID_FUEL", 200) - .inputItems( - new ComparableStack(ModItems.solid_fuel, 2), - new OreDictStack(KNO.dust()), - new OreDictStack(REDSTONE.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0)) + .inputItems(new ComparableStack(ModItems.solid_fuel, 2)) + .inputFluids( + new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0), + new FluidStack(Fluids.NITRIC_ACID, 100)) .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) .inputFluids(new FluidStack(Fluids.WATER, 4000)) diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 87e1fcc5a..75b97e3a5 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -63,7 +63,7 @@ public class CokerRecipes extends SerializableRecipe { registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); //only cokable gas to extract sulfur content - registerRecipe(SOURGAS, 250, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); + registerRecipe(SOURGAS, 1_000, new ItemStack(ModItems.sulfur), new FluidStack(GAS_COKER, 150)); registerRecipe(SLOP, 1000, new ItemStack(ModItems.powder_limestone), new FluidStack(COLLOID, 250)); registerRecipe(VITRIOL, 4000, new ItemStack(ModItems.powder_iron), new FluidStack(SULFURIC_ACID, 500)); } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index a86df1e6c..4b2ea8f6b 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -41,7 +41,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); - recipes.put(KNO.dust(), new FluidStack(250, Fluids.NITRIC_ACID)); + recipes.put(KNO.dust(), new FluidStack(750, Fluids.NITRIC_ACID)); recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); //general utility recipes because why not recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 571777acd..c1e1e55c6 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -59,8 +59,6 @@ public class MachineRecipes { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potatos)); - fuels.add(new ItemStack(ModItems.battery_su)); - fuels.add(new ItemStack(ModItems.battery_su_l)); fuels.add(new ItemStack(ModItems.battery_generic)); fuels.add(new ItemStack(ModItems.battery_red_cell)); fuels.add(new ItemStack(ModItems.battery_red_cell_6)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 2c3486d83..6b182c05b 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -56,7 +56,7 @@ public class MixerRecipes extends SerializableRecipe { new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_DS, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500)), new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA_COKER, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.PEROXIDE, 800)).setSolid(new OreDictStack(S.dust()))); - register(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.NITRIC_ACID, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.PEROXIDE, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 204553081..db090d982 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -64,7 +64,6 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.FLAT, new OreDictStack(LAPIS.dust()), new ItemStack(Items.dye, 1, 4)); makeRecipe(StampType.FLAT, new OreDictStack(DIAMOND.dust()), Items.diamond); makeRecipe(StampType.FLAT, new OreDictStack(EMERALD.dust()), Items.emerald); - makeRecipe(StampType.FLAT, new ComparableStack(ModItems.pellet_coal), Items.diamond); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.biomass), ModItems.biomass_compressed); makeRecipe(StampType.FLAT, new OreDictStack(ANY_COKE.gem()), ModItems.ingot_graphite); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), ModItems.meteorite_sword_hardened); 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 a0ba83c94..8ca863583 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -170,13 +170,13 @@ public class AnvilRecipes { public static void registerConstructionRecipes() { - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); - constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(MINGRADE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_red_copper, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(STEEL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_steel, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)}, @@ -425,12 +425,9 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new ComparableStack(ModItems.sulfur, 8), - new OreDictStack(STEEL.plate528(), 4), - new OreDictStack(AL.plate528(), 2), + new ComparableStack(ModItems.sulfur, 12), new OreDictStack(STEEL.shell(), 4), - new OreDictStack(CU.plateCast(), 4), - new ComparableStack(ModItems.turbine_titanium, 1), + new OreDictStack(CU.plateCast(), 6), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); @@ -718,14 +715,14 @@ public class AnvilRecipes { } ).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1), 0.25F)}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1), 0.25F)}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_titanium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_red_copper, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_red_copper, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1))}).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.heater_firebox), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8df84be92..b7789ba87 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -75,11 +75,6 @@ public class ModItems { public static Item redstone_sword; public static Item big_sword; - public static Item test_helmet; - public static Item test_chestplate; - public static Item test_leggings; - public static Item test_boots; - public static Item ingot_th232; public static Item ingot_uranium; public static Item ingot_u233; @@ -502,7 +497,6 @@ public class ModItems { public static Item powder_lithium; public static Item powder_zirconium; public static Item powder_sodium; - public static Item redstone_depleted; public static Item powder_australium; public static Item powder_weidanium; @@ -664,7 +658,6 @@ public class ModItems { public static Item turbine_titanium; public static Item blade_tungsten; public static Item turbine_tungsten; - public static Item pellet_coal; public static Item ring_starmetal; public static Item flywheel_beryllium; @@ -1230,8 +1223,6 @@ public class ModItems { public static Item pellet_buckshot; public static Item pellet_flechette; public static Item pellet_chlorophyte; - public static Item pellet_mercury; - public static Item pellet_meteorite; public static Item pellet_canister; public static Item pellet_claws; public static Item pellet_charged; @@ -1799,8 +1790,6 @@ public class ModItems { public static Item battery_sc_lead; public static Item battery_sc_americium; - public static Item battery_su; - public static Item battery_su_l; public static Item battery_potato; public static Item battery_potatos; public static Item hev_battery; @@ -1871,7 +1860,6 @@ public class ModItems { public static Item euphemium_boots; public static Item apple_euphemium; public static Item watch; - public static Item euphemium_stopper; public static Item goggles; public static Item ashglasses; @@ -2186,6 +2174,9 @@ public class ModItems { public static Item card_aos; public static Item card_qos; public static Item australium_iii; + public static Item armor_battery; + public static Item armor_battery_mk2; + public static Item armor_battery_mk3; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -2222,18 +2213,10 @@ public class ModItems { public static Item rod_of_discord; - public static Item cape_test; public static Item cape_radiation; public static Item cape_gasmask; public static Item cape_schrabidium; public static Item cape_hidden; - /*public static Item cape_hbm; - public static Item cape_dafnik; - public static Item cape_lpkukin; - public static Item cape_vertice; - public static Item cape_codered_; - public static Item cape_ayy; - public static Item cape_nostalgia;*/ public static Item nuke_starter_kit; public static Item nuke_advanced_kit; @@ -2363,14 +2346,6 @@ public class ModItems { public static Item book_lemegeton; public static Item burnt_bark; - public static Item smoke1; - public static Item smoke2; - public static Item smoke3; - public static Item smoke4; - public static Item smoke5; - public static Item smoke6; - public static Item smoke7; - public static Item smoke8; public static Item b_smoke1; public static Item b_smoke2; public static Item b_smoke3; @@ -2379,30 +2354,6 @@ public class ModItems { public static Item b_smoke6; public static Item b_smoke7; public static Item b_smoke8; - public static Item d_smoke1; - public static Item d_smoke2; - public static Item d_smoke3; - public static Item d_smoke4; - public static Item d_smoke5; - public static Item d_smoke6; - public static Item d_smoke7; - public static Item d_smoke8; - public static Item spill1; - public static Item spill2; - public static Item spill3; - public static Item spill4; - public static Item spill5; - public static Item spill6; - public static Item spill7; - public static Item spill8; - public static Item gas1; - public static Item gas2; - public static Item gas3; - public static Item gas4; - public static Item gas5; - public static Item gas6; - public static Item gas7; - public static Item gas8; public static Item chlorine1; public static Item chlorine2; public static Item chlorine3; @@ -2443,9 +2394,6 @@ public class ModItems { public static Item gasflame6; public static Item gasflame7; public static Item gasflame8;*/ - public static Item energy_ball; - public static Item discharge; - public static Item empblast; public static Item flame_1; public static Item flame_2; public static Item flame_3; @@ -2467,7 +2415,6 @@ public class ModItems { public static Item ln2_9; public static Item ln2_10; public static Item nothing; - public static Item void_anim; public static Item achievement_icon; public static Item bob_metalworks; @@ -2483,11 +2430,6 @@ public class ModItems { { redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); - - test_helmet = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 0).setUnlocalizedName("test_helmet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_helmet"); - test_chestplate = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 1).setUnlocalizedName("test_chestplate").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_chestplate"); - test_leggings = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 2).setUnlocalizedName("test_leggings").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_leggings"); - test_boots = new ArmorTest(MainRegistry.enumArmorMaterialEmerald, 3).setUnlocalizedName("test_boots").setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_boots"); test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); @@ -2706,11 +2648,10 @@ public class ModItems { ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); - //ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned"); ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); - bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); + bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -2744,7 +2685,7 @@ public class ModItems { cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); powder_limestone = new Item().setUnlocalizedName("powder_limestone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_limestone"); - powder_cement = new Item().setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); + powder_cement = new ItemLemon(2, 0.5F, false).setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); @@ -2903,7 +2844,6 @@ public class ModItems { powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); - redstone_depleted = new Item().setUnlocalizedName("redstone_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":redstone_depleted"); powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); powder_thorium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); @@ -2998,7 +2938,6 @@ public class ModItems { coil_gold = new Item().setUnlocalizedName("coil_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold"); coil_gold_torus = new Item().setUnlocalizedName("coil_gold_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold_torus"); magnet_circular = new Item().setUnlocalizedName("magnet_circular").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_circular"); - pellet_coal = new Item().setUnlocalizedName("pellet_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_coal"); component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); chlorine_pinwheel = new ItemInfiniteFluid(Fluids.CHLORINE, 1, 2).setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel"); @@ -3417,6 +3356,9 @@ public class ModItems { card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); + armor_battery = new ItemModBattery(1.25D).setUnlocalizedName("armor_battery").setTextureName(RefStrings.MODID + ":armor_battery"); + armor_battery_mk2 = new ItemModBattery(1.5D).setUnlocalizedName("armor_battery_mk2").setTextureName(RefStrings.MODID + ":armor_battery_mk2"); + armor_battery_mk3 = new ItemModBattery(2D).setUnlocalizedName("armor_battery_mk3").setTextureName(RefStrings.MODID + ":armor_battery_mk3"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -3869,8 +3811,6 @@ public class ModItems { pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead"); pellet_flechette = new Item().setUnlocalizedName("pellet_flechette").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_flechette"); pellet_chlorophyte = new Item().setUnlocalizedName("pellet_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_chlorophyte"); - pellet_mercury = new Item().setUnlocalizedName("pellet_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_mercury"); - pellet_meteorite = new Item().setUnlocalizedName("pellet_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_meteorite"); pellet_canister = new Item().setUnlocalizedName("pellet_canister").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_canister"); pellet_claws = new Item().setUnlocalizedName("pellet_claws").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_claws"); pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); @@ -4398,8 +4338,6 @@ public class ModItems { battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); - battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); - battery_su_l = new ItemBattery(150000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); @@ -5364,7 +5302,6 @@ public class ModItems { wings_murk = new WingsMurk(MainRegistry.aMatCobalt).setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk"); wings_limp = new WingsMurk(MainRegistry.aMatCobalt).setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp"); - cape_test = new ArmorModel(MainRegistry.enumArmorMaterialEmerald, 1).setUnlocalizedName("cape_test").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_test"); cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); @@ -5375,7 +5312,6 @@ public class ModItems { shimmer_axe = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_axe"); bottle_opener = new WeaponSpecial(MainRegistry.enumToolMaterialBottleOpener).setUnlocalizedName("bottle_opener").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":bottle_opener"); pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); - euphemium_stopper = new ItemSyringe().setUnlocalizedName("euphemium_stopper").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":euphemium_stopper"); matchstick = new ItemMatch().setUnlocalizedName("matchstick").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":matchstick"); balefire_and_steel = new ItemBalefireMatch().setUnlocalizedName("balefire_and_steel").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":balefire_and_steel"); crowbar = new ModSword(MainRegistry.tMatSteel).setUnlocalizedName("crowbar").setFull3D().setTextureName(RefStrings.MODID + ":crowbar"); @@ -5450,14 +5386,6 @@ public class ModItems { book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); - smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); - smoke2 = new Item().setUnlocalizedName("smoke2").setTextureName(RefStrings.MODID + ":smoke2"); - smoke3 = new Item().setUnlocalizedName("smoke3").setTextureName(RefStrings.MODID + ":smoke3"); - smoke4 = new Item().setUnlocalizedName("smoke4").setTextureName(RefStrings.MODID + ":smoke4"); - smoke5 = new Item().setUnlocalizedName("smoke5").setTextureName(RefStrings.MODID + ":smoke5"); - smoke6 = new Item().setUnlocalizedName("smoke6").setTextureName(RefStrings.MODID + ":smoke6"); - smoke7 = new Item().setUnlocalizedName("smoke7").setTextureName(RefStrings.MODID + ":smoke7"); - smoke8 = new Item().setUnlocalizedName("smoke8").setTextureName(RefStrings.MODID + ":smoke8"); b_smoke1 = new Item().setUnlocalizedName("b_smoke1").setTextureName(RefStrings.MODID + ":b_smoke1"); b_smoke2 = new Item().setUnlocalizedName("b_smoke2").setTextureName(RefStrings.MODID + ":b_smoke2"); b_smoke3 = new Item().setUnlocalizedName("b_smoke3").setTextureName(RefStrings.MODID + ":b_smoke3"); @@ -5466,30 +5394,6 @@ public class ModItems { b_smoke6 = new Item().setUnlocalizedName("b_smoke6").setTextureName(RefStrings.MODID + ":b_smoke6"); b_smoke7 = new Item().setUnlocalizedName("b_smoke7").setTextureName(RefStrings.MODID + ":b_smoke7"); b_smoke8 = new Item().setUnlocalizedName("b_smoke8").setTextureName(RefStrings.MODID + ":b_smoke8"); - d_smoke1 = new Item().setUnlocalizedName("d_smoke1").setTextureName(RefStrings.MODID + ":d_smoke1"); - d_smoke2 = new Item().setUnlocalizedName("d_smoke2").setTextureName(RefStrings.MODID + ":d_smoke2"); - d_smoke3 = new Item().setUnlocalizedName("d_smoke3").setTextureName(RefStrings.MODID + ":d_smoke3"); - d_smoke4 = new Item().setUnlocalizedName("d_smoke4").setTextureName(RefStrings.MODID + ":d_smoke4"); - d_smoke5 = new Item().setUnlocalizedName("d_smoke5").setTextureName(RefStrings.MODID + ":d_smoke5"); - d_smoke6 = new Item().setUnlocalizedName("d_smoke6").setTextureName(RefStrings.MODID + ":d_smoke6"); - d_smoke7 = new Item().setUnlocalizedName("d_smoke7").setTextureName(RefStrings.MODID + ":d_smoke7"); - d_smoke8 = new Item().setUnlocalizedName("d_smoke8").setTextureName(RefStrings.MODID + ":d_smoke8"); - spill1 = new Item().setUnlocalizedName("spill1").setTextureName(RefStrings.MODID + ":spill1"); - spill2 = new Item().setUnlocalizedName("spill2").setTextureName(RefStrings.MODID + ":spill2"); - spill3 = new Item().setUnlocalizedName("spill3").setTextureName(RefStrings.MODID + ":spill3"); - spill4 = new Item().setUnlocalizedName("spill4").setTextureName(RefStrings.MODID + ":spill4"); - spill5 = new Item().setUnlocalizedName("spill5").setTextureName(RefStrings.MODID + ":spill5"); - spill6 = new Item().setUnlocalizedName("spill6").setTextureName(RefStrings.MODID + ":spill6"); - spill7 = new Item().setUnlocalizedName("spill7").setTextureName(RefStrings.MODID + ":spill7"); - spill8 = new Item().setUnlocalizedName("spill8").setTextureName(RefStrings.MODID + ":spill8"); - gas1 = new Item().setUnlocalizedName("gas1").setTextureName(RefStrings.MODID + ":gas1"); - gas2 = new Item().setUnlocalizedName("gas2").setTextureName(RefStrings.MODID + ":gas2"); - gas3 = new Item().setUnlocalizedName("gas3").setTextureName(RefStrings.MODID + ":gas3"); - gas4 = new Item().setUnlocalizedName("gas4").setTextureName(RefStrings.MODID + ":gas4"); - gas5 = new Item().setUnlocalizedName("gas5").setTextureName(RefStrings.MODID + ":gas5"); - gas6 = new Item().setUnlocalizedName("gas6").setTextureName(RefStrings.MODID + ":gas6"); - gas7 = new Item().setUnlocalizedName("gas7").setTextureName(RefStrings.MODID + ":gas7"); - gas8 = new Item().setUnlocalizedName("gas8").setTextureName(RefStrings.MODID + ":gas8"); chlorine1 = new Item().setUnlocalizedName("chlorine1").setTextureName(RefStrings.MODID + ":chlorine1"); chlorine2 = new Item().setUnlocalizedName("chlorine2").setTextureName(RefStrings.MODID + ":chlorine2"); chlorine3 = new Item().setUnlocalizedName("chlorine3").setTextureName(RefStrings.MODID + ":chlorine3"); @@ -5522,9 +5426,6 @@ public class ModItems { orange6 = new Item().setUnlocalizedName("orange6").setTextureName(RefStrings.MODID + ":orange6"); orange7 = new Item().setUnlocalizedName("orange7").setTextureName(RefStrings.MODID + ":orange7"); orange8 = new Item().setUnlocalizedName("orange8").setTextureName(RefStrings.MODID + ":orange8"); - energy_ball = new Item().setUnlocalizedName("energy_ball").setTextureName(RefStrings.MODID + ":energy_ball"); - discharge = new Item().setUnlocalizedName("discharge").setTextureName(RefStrings.MODID + ":discharge"); - empblast = new Item().setUnlocalizedName("empblast").setTextureName(RefStrings.MODID + ":empblast"); flame_1 = new Item().setUnlocalizedName("flame_1").setTextureName(RefStrings.MODID + ":flame_1"); flame_2 = new Item().setUnlocalizedName("flame_2").setTextureName(RefStrings.MODID + ":flame_2"); flame_3 = new Item().setUnlocalizedName("flame_3").setTextureName(RefStrings.MODID + ":flame_3"); @@ -5546,7 +5447,6 @@ public class ModItems { ln2_9 = new Item().setUnlocalizedName("ln2_9").setTextureName(RefStrings.MODID + ":ln2_9"); ln2_10 = new Item().setUnlocalizedName("ln2_10").setTextureName(RefStrings.MODID + ":ln2_10"); nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); - void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); @@ -5577,13 +5477,6 @@ public class ModItems { GameRegistry.registerItem(redstone_sword, redstone_sword.getUnlocalizedName()); GameRegistry.registerItem(big_sword, big_sword.getUnlocalizedName()); - //Test Armor - GameRegistry.registerItem(test_helmet, test_helmet.getUnlocalizedName()); - GameRegistry.registerItem(test_chestplate, test_chestplate.getUnlocalizedName()); - GameRegistry.registerItem(test_leggings, test_leggings.getUnlocalizedName()); - GameRegistry.registerItem(test_boots, test_boots.getUnlocalizedName()); - GameRegistry.registerItem(cape_test, cape_test.getUnlocalizedName()); - //Test Nuke GameRegistry.registerItem(test_nuke_igniter, test_nuke_igniter.getUnlocalizedName()); GameRegistry.registerItem(test_nuke_propellant, test_nuke_propellant.getUnlocalizedName()); @@ -5884,7 +5777,6 @@ public class ModItems { GameRegistry.registerItem(powder_meteorite_tiny, powder_meteorite_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(redstone_depleted, redstone_depleted.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); @@ -6288,14 +6180,11 @@ public class ModItems { GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); GameRegistry.registerItem(pellet_flechette, pellet_flechette.getUnlocalizedName()); GameRegistry.registerItem(pellet_chlorophyte, pellet_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(pellet_mercury, pellet_mercury.getUnlocalizedName()); - GameRegistry.registerItem(pellet_meteorite, pellet_meteorite.getUnlocalizedName()); GameRegistry.registerItem(pellet_canister, pellet_canister.getUnlocalizedName()); GameRegistry.registerItem(pellet_claws, pellet_claws.getUnlocalizedName()); GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName()); GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName()); - GameRegistry.registerItem(pellet_coal, pellet_coal.getUnlocalizedName()); //Engine Pieces GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); @@ -6376,13 +6265,6 @@ public class ModItems { //Siphon GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); - //Disperser Canister - GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); - GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); - - GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); - GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); - //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); GameRegistry.registerItem(battery_red_cell, battery_red_cell.getUnlocalizedName()); @@ -6411,8 +6293,6 @@ public class ModItems { GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); - GameRegistry.registerItem(battery_su, battery_su.getUnlocalizedName()); - GameRegistry.registerItem(battery_su_l, battery_su_l.getUnlocalizedName()); GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); @@ -7247,6 +7127,12 @@ public class ModItems { GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); + + //Disperser Canister + GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); GameRegistry.registerItem(weaponized_starblaster_cell, weaponized_starblaster_cell.getUnlocalizedName()); @@ -7508,6 +7394,9 @@ public class ModItems { GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery, armor_battery.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk2, armor_battery_mk2.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk3, armor_battery_mk3.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); @@ -7817,9 +7706,6 @@ public class ModItems { GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); - //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); - //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); @@ -7887,14 +7773,6 @@ public class ModItems { GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); //Technical Items - GameRegistry.registerItem(smoke1, smoke1.getUnlocalizedName()); - GameRegistry.registerItem(smoke2, smoke2.getUnlocalizedName()); - GameRegistry.registerItem(smoke3, smoke3.getUnlocalizedName()); - GameRegistry.registerItem(smoke4, smoke4.getUnlocalizedName()); - GameRegistry.registerItem(smoke5, smoke5.getUnlocalizedName()); - GameRegistry.registerItem(smoke6, smoke6.getUnlocalizedName()); - GameRegistry.registerItem(smoke7, smoke7.getUnlocalizedName()); - GameRegistry.registerItem(smoke8, smoke8.getUnlocalizedName()); GameRegistry.registerItem(b_smoke1, b_smoke1.getUnlocalizedName()); GameRegistry.registerItem(b_smoke2, b_smoke2.getUnlocalizedName()); GameRegistry.registerItem(b_smoke3, b_smoke3.getUnlocalizedName()); @@ -7903,30 +7781,6 @@ public class ModItems { GameRegistry.registerItem(b_smoke6, b_smoke6.getUnlocalizedName()); GameRegistry.registerItem(b_smoke7, b_smoke7.getUnlocalizedName()); GameRegistry.registerItem(b_smoke8, b_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke1, d_smoke1.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke2, d_smoke2.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke3, d_smoke3.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke4, d_smoke4.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke5, d_smoke5.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke6, d_smoke6.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke7, d_smoke7.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke8, d_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(spill1, spill1.getUnlocalizedName()); - GameRegistry.registerItem(spill2, spill2.getUnlocalizedName()); - GameRegistry.registerItem(spill3, spill3.getUnlocalizedName()); - GameRegistry.registerItem(spill4, spill4.getUnlocalizedName()); - GameRegistry.registerItem(spill5, spill5.getUnlocalizedName()); - GameRegistry.registerItem(spill6, spill6.getUnlocalizedName()); - GameRegistry.registerItem(spill7, spill7.getUnlocalizedName()); - GameRegistry.registerItem(spill8, spill8.getUnlocalizedName()); - GameRegistry.registerItem(gas1, gas1.getUnlocalizedName()); - GameRegistry.registerItem(gas2, gas2.getUnlocalizedName()); - GameRegistry.registerItem(gas3, gas3.getUnlocalizedName()); - GameRegistry.registerItem(gas4, gas4.getUnlocalizedName()); - GameRegistry.registerItem(gas5, gas5.getUnlocalizedName()); - GameRegistry.registerItem(gas6, gas6.getUnlocalizedName()); - GameRegistry.registerItem(gas7, gas7.getUnlocalizedName()); - GameRegistry.registerItem(gas8, gas8.getUnlocalizedName()); GameRegistry.registerItem(chlorine1, chlorine1.getUnlocalizedName()); GameRegistry.registerItem(chlorine2, chlorine2.getUnlocalizedName()); GameRegistry.registerItem(chlorine3, chlorine3.getUnlocalizedName()); @@ -7959,9 +7813,6 @@ public class ModItems { GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(energy_ball, energy_ball.getUnlocalizedName()); - GameRegistry.registerItem(discharge, discharge.getUnlocalizedName()); - GameRegistry.registerItem(empblast, empblast.getUnlocalizedName()); GameRegistry.registerItem(flame_1, flame_1.getUnlocalizedName()); GameRegistry.registerItem(flame_2, flame_2.getUnlocalizedName()); GameRegistry.registerItem(flame_3, flame_3.getUnlocalizedName()); @@ -7983,7 +7834,6 @@ public class ModItems { GameRegistry.registerItem(ln2_9, ln2_9.getUnlocalizedName()); GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); - GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 0daddf0fb..d5368b5f3 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -2,6 +2,7 @@ package com.hbm.items.armor; import java.util.List; +import com.hbm.handler.ArmorModHandler; import com.hbm.util.BobMathUtil; import api.hbm.energymk2.IBatteryItem; @@ -30,9 +31,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); - + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(getMaxCharge(stack))); super.addInformation(stack, player, list, ext); } @@ -72,7 +71,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", this.maxPower - i); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack) - i); } if(stack.stackTagCompound.getLong("charge") < 0) @@ -84,10 +83,10 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { public long getCharge(ItemStack stack) { if(stack.getItem() instanceof ArmorFSBPowered) { if(stack.hasTagCompound()) { - return stack.stackTagCompound.getLong("charge"); + return Math.min(stack.stackTagCompound.getLong("charge"), getMaxCharge(stack)); } else { stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ArmorFSBPowered) stack.getItem()).maxPower); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack)); return stack.stackTagCompound.getLong("charge"); } } @@ -97,18 +96,23 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @Override public boolean showDurabilityBar(ItemStack stack) { - - return getCharge(stack) < maxPower; + return getCharge(stack) < getMaxCharge(stack); } @Override public double getDurabilityForDisplay(ItemStack stack) { - return 1 - (double) getCharge(stack) / (double) maxPower; + return 1 - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { + if(ArmorModHandler.hasMods(stack)) { + ItemStack mod = ArmorModHandler.pryMod(stack, ArmorModHandler.battery); + if(mod != null && mod.getItem() instanceof ItemModBattery) { + return (long) (maxPower * ((ItemModBattery) mod.getItem()).mod); + } + } return maxPower; } diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index df2666d68..5aa336fa9 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -108,7 +108,7 @@ public class ArmorHEV extends ArmorFSBPowered { ItemStack armor = player.inventory.armorInventory[i]; ArmorFSBPowered item = ((ArmorFSBPowered) player.inventory.armorInventory[i].getItem()); - c += (double) item.getCharge(armor) / (double) item.getMaxCharge(); + c += (double) item.getCharge(armor) / (double) item.getMaxCharge(armor); } int aX = (int) (70 / scale); diff --git a/src/main/java/com/hbm/items/armor/ArmorModel.java b/src/main/java/com/hbm/items/armor/ArmorModel.java index 1bf1125c9..88eed031d 100644 --- a/src/main/java/com/hbm/items/armor/ArmorModel.java +++ b/src/main/java/com/hbm/items/armor/ArmorModel.java @@ -70,7 +70,7 @@ public class ArmorModel extends ItemArmor { return this.modelHat; } } - if(this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { + if(this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { if(armorSlot == 1) { if(this.modelCloak == null) { this.modelCloak = new ModelCloak(); @@ -86,9 +86,6 @@ public class ArmorModel extends ItemArmor { if(stack.getItem() == ModItems.goggles) { return "hbm:textures/models/Goggles.png"; } - if(stack.getItem() == ModItems.cape_test) { - return "hbm:textures/models/TestCape.png"; - } if(stack.getItem() == ModItems.cape_radiation) { return "hbm:textures/models/capes/CapeRadiation.png"; } diff --git a/src/main/java/com/hbm/items/armor/ArmorTest.java b/src/main/java/com/hbm/items/armor/ArmorTest.java deleted file mode 100644 index f1549464f..000000000 --- a/src/main/java/com/hbm/items/armor/ArmorTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hbm.items.armor; - -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; - -public class ArmorTest extends ItemArmor { - - public ArmorTest(ArmorMaterial armorMaterial, int armorType) { - super(armorMaterial, 0, armorType); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { - if(stack.getItem().equals(ModItems.test_helmet) || stack.getItem().equals(ModItems.test_chestplate) || stack.getItem().equals(ModItems.test_boots)) { - return (RefStrings.MODID + ":textures/armor/test_1.png"); - } - if(stack.getItem().equals(ModItems.test_leggings)) { - return (RefStrings.MODID + ":textures/armor/test_2.png"); - } - - else return null; - } - -} diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index 505028648..cc6666e4f 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -64,6 +64,7 @@ public class ItemArmorMod extends Item { case ArmorModHandler.cladding: list.add(" " + I18nUtil.resolveKey("armorMod.type.cladding")); break; case ArmorModHandler.kevlar: list.add(" " + I18nUtil.resolveKey("armorMod.type.insert")); break; case ArmorModHandler.extra: list.add(" " + I18nUtil.resolveKey("armorMod.type.special")); break; + case ArmorModHandler.battery: list.add(" " + I18nUtil.resolveKey("armorMod.type.battery")); break; } } diff --git a/src/main/java/com/hbm/items/armor/ItemModBattery.java b/src/main/java/com/hbm/items/armor/ItemModBattery.java new file mode 100644 index 000000000..22193e17b --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModBattery.java @@ -0,0 +1,13 @@ +package com.hbm.items.armor; + +import com.hbm.handler.ArmorModHandler; + +public class ItemModBattery extends ItemArmorMod { + + public double mod; + + public ItemModBattery(double mod) { + super(ArmorModHandler.battery, true, true, true, true); + this.mod = mod; + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java index e5a27c897..5a66dc478 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCard.java +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -6,7 +6,6 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -35,7 +34,7 @@ public class ItemModCard extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + list.add(EnumChatFormatting.RED + stack.getDisplayName()); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java index 96af954c3..6418a88bc 100644 --- a/src/main/java/com/hbm/items/armor/ItemModNightVision.java +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -33,7 +33,7 @@ public class ItemModNightVision extends ItemArmorMod { if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer) entity)) { entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); - if(entity.getRNG().nextInt(50) == 0) { + if(entity.getRNG().nextInt(100) == 0) { armor.damageItem(1, entity); } } diff --git a/src/main/java/com/hbm/items/food/ItemPancake.java b/src/main/java/com/hbm/items/food/ItemPancake.java index 784ee8995..2498e393c 100644 --- a/src/main/java/com/hbm/items/food/ItemPancake.java +++ b/src/main/java/com/hbm/items/food/ItemPancake.java @@ -30,7 +30,7 @@ public class ItemPancake extends ItemFood { continue; if(st.getItem() instanceof IBatteryItem) { - ((IBatteryItem)st.getItem()).setCharge(st, ((IBatteryItem)st.getItem()).getMaxCharge()); + ((IBatteryItem)st.getItem()).setCharge(st, ((IBatteryItem)st.getItem()).getMaxCharge(st)); } } } diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index cefa97fce..fe31ec3b9 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -105,14 +105,17 @@ public class ItemBattery extends Item implements IBatteryItem { return 0; } - public long getMaxCharge() { + @Override + public long getMaxCharge(ItemStack stack) { return maxCharge; } + @Override public long getChargeRate() { return chargeRate; } + @Override public long getDischargeRate() { return dischargeRate; } @@ -134,7 +137,7 @@ public class ItemBattery extends Item implements IBatteryItem { if(item instanceof ItemBattery) { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemBattery) item).getMaxCharge()); + stack.stackTagCompound.setLong("charge", ((ItemBattery) item).getMaxCharge(stack)); return stack.copy(); } @@ -146,7 +149,7 @@ public class ItemBattery extends Item implements IBatteryItem { } public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(); + return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index e8f44cfa4..612eb8442 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -1,8 +1,6 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -12,7 +10,6 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.ChatBuilder; import com.hbm.util.I18nUtil; @@ -26,10 +23,8 @@ import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IItemControlReceiver, IGUIProvider { @@ -147,80 +142,6 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte int type = stack.stackTagCompound.getInteger("fluid" + (primary ? 1 : 2)); return Fluids.fromID(type); } - - /* - * CRAPPY COMPAT SECTION - */ - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { - TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = getType(world, x, y ,z, stack); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - return true; - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index d68a24f24..5abea5f30 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -1,13 +1,10 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -17,11 +14,9 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { @@ -88,75 +83,6 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { return true; } - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { - TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = Fluids.fromID(stack.getItemDamage()); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } - @Override @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { diff --git a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java index 67c05fb7b..419f5401d 100644 --- a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java +++ b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java @@ -38,7 +38,7 @@ public class ItemSelfcharger extends Item implements IBatteryItem { } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return charge; } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 715eacd17..4145b0fbf 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -241,7 +241,7 @@ public class ItemGlitch extends Item implements IBatteryItem { @Override public void setCharge(ItemStack stack, long i) { } @Override public void dischargeBattery(ItemStack stack, long i) { } @Override public long getCharge(ItemStack stack) { return 200; } - @Override public long getMaxCharge() { return 200; } + @Override public long getMaxCharge(ItemStack stack) { return 200; } @Override public long getChargeRate() { return 0; } @Override public long getDischargeRate() { return 200; } } diff --git a/src/main/java/com/hbm/items/special/ItemPotatos.java b/src/main/java/com/hbm/items/special/ItemPotatos.java index 69aefa465..46c636689 100644 --- a/src/main/java/com/hbm/items/special/ItemPotatos.java +++ b/src/main/java/com/hbm/items/special/ItemPotatos.java @@ -28,7 +28,7 @@ public class ItemPotatos extends ItemBattery { if(p.getHeldItem() == stack) { - float pitch = (float)getCharge(stack) / (float)this.getMaxCharge() * 0.5F + 0.5F; + float pitch = (float)getCharge(stack) / (float)this.getMaxCharge(stack) * 0.5F + 0.5F; world.playSoundAtEntity(p, "hbm:potatos.random", 1.0F, pitch); setTimer(stack, 200 + itemRand.nextInt(100)); diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index d50a57074..48b6e928b 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -360,10 +360,6 @@ public class ItemSyringe extends Item { if(this == ModItems.syringe_awesome) { return EnumRarity.uncommon; } - if(this == ModItems.euphemium_stopper) { - return EnumRarity.epic; - } - return EnumRarity.common; } @@ -527,14 +523,6 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.euphemium_stopper) { - if(!world.isRemote) { - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 30 * 20, 9)); - } - } - if(this == ModItems.syringe_mkunicorn) { if(!world.isRemote) { HbmLivingProps.setContagion(entity, 3 * 60 * 60 * 20); diff --git a/src/main/java/com/hbm/items/tool/ItemFusionCore.java b/src/main/java/com/hbm/items/tool/ItemFusionCore.java index 473f6f62b..b72ee8d4f 100644 --- a/src/main/java/com/hbm/items/tool/ItemFusionCore.java +++ b/src/main/java/com/hbm/items/tool/ItemFusionCore.java @@ -33,7 +33,7 @@ public class ItemFusionCore extends Item { if(st.getItem() instanceof IBatteryItem) { - long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(); + long maxcharge = ((IBatteryItem) st.getItem()).getMaxCharge(st); long charge = ((IBatteryItem) st.getItem()).getCharge(st); long newcharge = Math.min(charge + this.charge, maxcharge); diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index 674fb7572..943dfd7ab 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -106,7 +106,7 @@ public class ItemSwordAbilityPower extends ItemSwordAbility implements IBatteryI } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return maxPower; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index 52b8686b4..c0c025d35 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -102,7 +102,7 @@ public class ItemToolAbilityPower extends ItemToolAbility implements IBatteryIte } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return maxPower; } diff --git a/src/main/java/com/hbm/items/weapon/GunFolly.java b/src/main/java/com/hbm/items/weapon/GunFolly.java index b796d477a..c4bb2506f 100644 --- a/src/main/java/com/hbm/items/weapon/GunFolly.java +++ b/src/main/java/com/hbm/items/weapon/GunFolly.java @@ -1,6 +1,5 @@ package com.hbm.items.weapon; -import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.interfaces.IHoldableWeapon; @@ -65,20 +64,6 @@ public class GunFolly extends Item implements IHoldableWeapon { if (!world.isRemote) { EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, BulletConfigSyncingUtil.TEST_CONFIG, player); world.spawnEntityInWorld(bullet); - - for(int i = 0; i < 25; i++) { - EntitySSmokeFX flame = new EntitySSmokeFX(world); - - flame.motionX = player.getLookVec().xCoord; - flame.motionY = player.getLookVec().yCoord; - flame.motionZ = player.getLookVec().zCoord; - - flame.posX = player.posX + flame.motionX + world.rand.nextGaussian() * 0.35; - flame.posY = player.posY + flame.motionY + world.rand.nextGaussian() * 0.35 + player.eyeHeight; - flame.posZ = player.posZ + flame.motionZ + world.rand.nextGaussian() * 0.35; - - world.spawnEntityInWorld(flame); - } } } } diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index d93a73f4a..554f5a6ea 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -181,7 +181,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(); + return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } @Override @@ -236,7 +236,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } @Override - public long getMaxCharge() { + public long getMaxCharge(ItemStack stack) { return mainConfig.maxCharge; } @@ -266,7 +266,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { ItemStack stack = new ItemStack(item); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge()); + stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge(stack)); list.add(stack); } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index cc24f3dd0..828433470 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -7,13 +7,9 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; -import com.hbm.tileentity.TileEntityProxyInventory; import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IEnergyConnectorBlock; @@ -40,10 +36,7 @@ public class Library { static Random rand = new Random(); public static boolean checkForHeld(EntityPlayer player, Item item) { - - if(player.getHeldItem() == null) - return false; - + if(player.getHeldItem() == null) return false; return player.getHeldItem().getItem() == item; } @@ -109,26 +102,6 @@ public class Library { return false; } - - public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type) - { - TileEntity tileentity = world.getTileEntity(x, y, z); - if(tileentity != null && tileentity instanceof IFluidDuct && ((IFluidDuct)tileentity).getType() == type) - return true; - if((tileentity != null && (tileentity instanceof IFluidAcceptor || - tileentity instanceof IFluidSource)) || - world.getBlock(x, y, z) == ModBlocks.fusion_hatch || - world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || - world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table || - world.getBlock(x, y, z) == ModBlocks.rbmk_loader) { - return true; - } - - if(world.getBlock(x, y, z) == ModBlocks.machine_mining_laser && tileentity instanceof TileEntityProxyInventory) - return true; - - return false; - } public static EntityLivingBase getClosestEntityForChopper(World world, double x, double y, double z, double radius) { double d4 = -1.0D; @@ -270,7 +243,7 @@ public class Library { IBatteryItem battery = (IBatteryItem) slots[index].getItem(); - long batMax = battery.getMaxCharge(); + long batMax = battery.getMaxCharge(slots[index]); long batCharge = battery.getCharge(slots[index]); long batRate = battery.getChargeRate(); long toCharge = Math.min(Math.min(power, batRate), batMax - batCharge); @@ -318,24 +291,6 @@ public class Library { * You won't be missed. */ } - - public static void transmitFluid(int x, int y, int z, boolean newTact, IFluidSource that, World worldObj, FluidType type) { } - - public static boolean isArrayEmpty(Object[] array) { - if(array == null) - return true; - if(array.length == 0) - return true; - - boolean flag = true; - - for(int i = 0; i < array.length; i++) { - if(array[i] != null) - flag = false; - } - - return flag; - } // Added for sake of doors // Original: Drillgon200: https://thebookofshaders.com/glossary/?search=smoothstep @@ -358,24 +313,11 @@ public class Library { return pos != null; } - public static int getFirstNullIndex(int start, Object[] array) { - for(int i = start; i < array.length; i++) { - if(array[i] == null) - return i; - } - return -1; - } - public static Block getRandomConcrete() { int i = rand.nextInt(20); - - if(i <= 1) - return ModBlocks.brick_concrete_broken; - if(i <= 4) - return ModBlocks.brick_concrete_cracked; - if(i <= 10) - return ModBlocks.brick_concrete_mossy; - + if(i <= 1) return ModBlocks.brick_concrete_broken; + if(i <= 4) return ModBlocks.brick_concrete_cracked; + if(i <= 10) return ModBlocks.brick_concrete_mossy; return ModBlocks.brick_concrete; } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index d71f37cbf..af861b280 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 (5036)"; + public static final String VERSION = "1.0.27 BETA (5061)"; //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 df4694b4a..0bb37ca90 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -116,7 +116,6 @@ import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapperClient; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -349,7 +348,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzLauncher.class, new RenderSoyuzLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule()); //network - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); @@ -629,7 +627,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet()); - RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.nothing)); RenderingRegistry.registerEntityRenderingHandler(EntityPlasmaBeam.class, new RenderBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityLaserBeam.class, new RenderBeam2()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerBeam.class, new RenderBeam3()); @@ -637,7 +635,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityExplosiveBeam.class, new RenderBeam5()); RenderingRegistry.registerEntityRenderingHandler(EntityModBeam.class, new RenderBeam6()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeLaser.class, new RenderSiegeLaser()); - RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.nothing)); RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityBombletZeta.class, new RenderBombletTheta()); RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); @@ -656,7 +654,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRubble.class, new RenderRubble()); RenderingRegistry.registerEntityRenderingHandler(EntityShrapnel.class, new RenderShrapnel()); RenderingRegistry.registerEntityRenderingHandler(EntityFireworks.class, new RenderShrapnel()); - RenderingRegistry.registerEntityRenderingHandler(EntityOilSpill.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityWaterSplash.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityEMP.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam()); @@ -820,20 +817,13 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); //"particles" - RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityDSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.d_smoke1, ModItems.d_smoke2, ModItems.d_smoke3, ModItems.d_smoke4, ModItems.d_smoke5, ModItems.d_smoke6, ModItems.d_smoke7, ModItems.d_smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRenderer(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); RenderingRegistry.registerEntityRenderingHandler(EntityPinkCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.pc1, ModItems.pc2, ModItems.pc3, ModItems.pc4, ModItems.pc5, ModItems.pc6, ModItems.pc7, ModItems.pc8 })); RenderingRegistry.registerEntityRenderingHandler(com.hbm.entity.particle.EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRenderer(new Item[] { ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8 })); RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new FogRenderer()); - RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); - RenderingRegistry.registerEntityRenderingHandler(EntityTSmokeFX.class, new TSmokeRenderer(ModItems.nuclear_waste)); } @Override @@ -859,7 +849,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderPipe()); RenderingRegistry.registerBlockHandler(new RenderBattery()); RenderingRegistry.registerBlockHandler(new RenderAnvil()); - RenderingRegistry.registerBlockHandler(new RenderCrystal()); RenderingRegistry.registerBlockHandler(new RenderCable()); RenderingRegistry.registerBlockHandler(new RenderCableClassic()); RenderingRegistry.registerBlockHandler(new RenderTestPipe()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index fbb7de092..ae3372886 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -102,7 +102,6 @@ public class CraftingManager { addRecipeAuto(Mats.MAT_DURA.make(ModItems.bolt, 16), new Object[] { "D", "D", 'D', DURA.ingot()}); addRecipeAuto(new ItemStack(ModItems.bolt_spike, 2), new Object[] { "BB", "B ", "B ", 'B', STEEL.bolt()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); - addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); @@ -250,8 +249,6 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_difurnace_extension, 1), new Object[] { " C ", "BGB", "BGB", 'C', CU.plate(), 'B', ModItems.ingot_firebrick, 'G', ModBlocks.steel_grate }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', STEEL.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', STEEL.plate(), 'C', CU.plateCast(), 'L', PB.plate(), 'F', Item.getItemFromBlock(Blocks.furnace) }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', BE.ingot(), 'R', ModItems.coil_tungsten, 'W', CU.plateCast(), 'F', Item.getItemFromBlock(Blocks.furnace) }); addRecipeAuto(new ItemStack(ModBlocks.red_wire_coated, 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', MINGRADE.wireFine() }); @@ -280,8 +277,8 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "RRR", "WWW", "III", 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'W', REDSTONE.dust(), 'I', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "RRR", "WWW", "III", 'R', REDSTONE.dust(), 'W', MINGRADE.wireFine(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_template, 1), new Object[] { "IPI", "P P", "IPI", 'I', IRON.ingot(), 'P', Items.paper }); addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); @@ -411,8 +408,8 @@ public class CraftingManager { String dyeName = "dye" + dyes[15 - i]; addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', dyeName }); } - addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored }); - addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored_ext }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored, 1, OreDictionary.WILDCARD_VALUE) }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored_ext, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_GRAY }); addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE_STRIPE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_BLACK }); @@ -581,12 +578,6 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "R", "C", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "C", "R", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', AL.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', AL.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', CU.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', CU.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); @@ -632,9 +623,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 2), new Object[] { "ASA", " ", "ASA", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_paintable, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() }); addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape }); - addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "ADA", "SAS", 'S', STEEL.ingot(), 'A', AL.plate(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.fluid_valve, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModBlocks.fluid_switch, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', "dye", 'B', "dye" }); @@ -724,10 +712,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(Items.redstone, 1), new Object[] { ModItems.redstone_depleted, ModItems.redstone_depleted }); - addRecipeAuto(new ItemStack(Blocks.torch, 3), new Object[] { "L", "S", 'L', LIGNITE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 558e1e5ec..78f5f6034 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -137,7 +137,6 @@ public class MainRegistry { public static ToolMaterial enumToolMaterialMultitool = EnumHelper.addToolMaterial("MULTITOOL", 3, 5000, 25F, 5.5F, 25); // Armor Materials - public static ArmorMaterial enumArmorMaterialEmerald = EnumHelper.addArmorMaterial("HBM_TEST", 2500, new int[] { 3, 8, 6, 3 }, 30); public static ArmorMaterial aMatSchrab = EnumHelper.addArmorMaterial("HBM_SCHRABIDIUM", 100, new int[] { 3, 8, 6, 3 }, 50); public static ArmorMaterial aMatEuph = EnumHelper.addArmorMaterial("HBM_EUPHEMIUM", 15000000, new int[] { 3, 8, 6, 3 }, 100); public static ArmorMaterial aMatHaz = EnumHelper.addArmorMaterial("HBM_HAZMAT", 60, new int[] { 2, 5, 4, 1 }, 5); @@ -878,7 +877,10 @@ public class MainRegistry { proxy.registerMissileItems(); BlockMotherOfAllOres.init(); - + + // Load compatibility for OC. + CompatHandler.init(); + //expand for the largest entity we have (currently Quackos who is 17.5m in diameter, that's one fat duck) World.MAX_ENTITY_RADIUS = Math.max(World.MAX_ENTITY_RADIUS, 8.75); @@ -1364,6 +1366,61 @@ public class MainRegistry { ignoreMappings.add("hbm:item.circuit_targeting_tier4"); ignoreMappings.add("hbm:item.circuit_targeting_tier5"); ignoreMappings.add("hbm:item.circuit_targeting_tier6"); + ignoreMappings.add("hbm:tile.fluid_duct"); + ignoreMappings.add("hbm:tile.fluid_duct_solid"); + ignoreMappings.add("hbm:item.void_anim"); + ignoreMappings.add("hbm:item.pellet_mercury"); + ignoreMappings.add("hbm:item.pellet_meteorite"); + ignoreMappings.add("hbm:item.d_smoke1"); + ignoreMappings.add("hbm:item.d_smoke2"); + ignoreMappings.add("hbm:item.d_smoke3"); + ignoreMappings.add("hbm:item.d_smoke4"); + ignoreMappings.add("hbm:item.d_smoke5"); + ignoreMappings.add("hbm:item.d_smoke6"); + ignoreMappings.add("hbm:item.d_smoke7"); + ignoreMappings.add("hbm:item.d_smoke8"); + ignoreMappings.add("hbm:item.smoke1"); + ignoreMappings.add("hbm:item.smoke2"); + ignoreMappings.add("hbm:item.smoke3"); + ignoreMappings.add("hbm:item.smoke4"); + ignoreMappings.add("hbm:item.smoke5"); + ignoreMappings.add("hbm:item.smoke6"); + ignoreMappings.add("hbm:item.smoke7"); + ignoreMappings.add("hbm:item.smoke8"); + ignoreMappings.add("hbm:item.battery_su"); + ignoreMappings.add("hbm:item.battery_su_l"); + ignoreMappings.add("hbm:item.redstone_depleted"); + ignoreMappings.add("hbm:item.euphemium_stopper"); + ignoreMappings.add("hbm:item.energy_ball"); + ignoreMappings.add("hbm:item.discharge"); + ignoreMappings.add("hbm:item.empblast"); + ignoreMappings.add("hbm:tile.crystal_power"); + ignoreMappings.add("hbm:tile.crystal_energy"); + ignoreMappings.add("hbm:tile.crystal_robust"); + ignoreMappings.add("hbm:tile.crystal_trixite"); + ignoreMappings.add("hbm:tile.hazmat"); + ignoreMappings.add("hbm:item.pellet_coal"); + ignoreMappings.add("hbm:item.test_helmet"); + ignoreMappings.add("hbm:item.test_chestplate"); + ignoreMappings.add("hbm:item.test_leggings"); + ignoreMappings.add("hbm:item.test_boots"); + ignoreMappings.add("hbm:item.cape_test"); + ignoreMappings.add("hbm:item.spill1"); + ignoreMappings.add("hbm:item.spill2"); + ignoreMappings.add("hbm:item.spill3"); + ignoreMappings.add("hbm:item.spill4"); + ignoreMappings.add("hbm:item.spill5"); + ignoreMappings.add("hbm:item.spill6"); + ignoreMappings.add("hbm:item.spill7"); + ignoreMappings.add("hbm:item.spill8"); + ignoreMappings.add("hbm:item.gas1"); + ignoreMappings.add("hbm:item.gas2"); + ignoreMappings.add("hbm:item.gas3"); + ignoreMappings.add("hbm:item.gas4"); + ignoreMappings.add("hbm:item.gas5"); + ignoreMappings.add("hbm:item.gas6"); + ignoreMappings.add("hbm:item.gas7"); + ignoreMappings.add("hbm:item.gas8"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 5bc992dd8..e2dea4a51 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -15,8 +15,6 @@ public class PacketDispatcher { { int i = 0; - //Fluid packet for GUI - wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated wrapper.registerMessage(LoopedSoundPacket.Handler.class, LoopedSoundPacket.class, i++, Side.CLIENT); //Signals server to consume items and create template diff --git a/src/main/java/com/hbm/packet/TEFluidPacket.java b/src/main/java/com/hbm/packet/TEFluidPacket.java deleted file mode 100644 index 49338eab5..000000000 --- a/src/main/java/com/hbm/packet/TEFluidPacket.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -@Deprecated -public class TEFluidPacket implements IMessage { - - int x; - int y; - int z; - int fill; - int index; - int type; - - public TEFluidPacket() { } - - public TEFluidPacket(int x, int y, int z, int fill, int index, FluidType type) - { - this.x = x; - this.y = y; - this.z = z; - this.fill = fill; - this.index = index; - this.type = type.getID(); - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - fill = buf.readInt(); - index = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(fill); - buf.writeInt(index); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEFluidPacket m, MessageContext ctx) { - try{ - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof IFluidContainer) { - - IFluidContainer gen = (IFluidContainer) te; - gen.setFillForSync(m.fill, m.index); - gen.setTypeForSync(Fluids.fromID(m.type), m.index); - } - } catch(Exception x) { } - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/block/RenderCrystal.java b/src/main/java/com/hbm/render/block/RenderCrystal.java deleted file mode 100644 index 6cf4f830d..000000000 --- a/src/main/java/com/hbm/render/block/RenderCrystal.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hbm.render.block; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockCrystal; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; - -public class RenderCrystal implements ISimpleBlockRenderingHandler { - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { - - GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); - tessellator.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - GL11.glRotated(180, 0, 1, 0); - tessellator.startDrawingQuads(); - - if(block == ModBlocks.crystal_power) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_power, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_energy) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_energy, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_robust) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_robust, iicon, tessellator, 0, false); - if(block == ModBlocks.crystal_trixite) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_trixite, iicon, tessellator, 0, false); - - tessellator.draw(); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); - tessellator.setColorOpaque_F(1, 1, 1); - - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.setColorOpaque_F(1, 1, 1); - - float flip = 0; - float rotation = 0; - - int meta = world.getBlockMetadata(x, y, z); - - if(meta == 0) - flip = (float)Math.PI; - - if(meta == 2) - rotation = 90F / 180F * (float) Math.PI; - - if(meta == 3) - rotation = 270F / 180F * (float) Math.PI; - - if(meta == 4) - rotation = 180F / 180F * (float)Math.PI; - - if(rotation != 0F || meta == 5) - flip = (float)Math.PI * 0.5F; - - tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); - - if(block == ModBlocks.crystal_power) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_power, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_energy) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_energy, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_robust) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_robust, iicon, tessellator, rotation, flip, true); - if(block == ModBlocks.crystal_trixite) - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.crystal_trixite, iicon, tessellator, rotation, flip, true); - - tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return BlockCrystal.renderID; - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java deleted file mode 100644 index 9daadd21f..000000000 --- a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class DSmokeRenderer extends Render { - private Item field_94151_a; - public DSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public DSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityDSmokeFX) { - EntityDSmokeFX fx = (EntityDSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/GasRenderer.java b/src/main/java/com/hbm/render/entity/effect/GasRenderer.java deleted file mode 100644 index 456271a96..000000000 --- a/src/main/java/com/hbm/render/entity/effect/GasRenderer.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityGasFX; -import com.hbm.items.ModItems; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class GasRenderer extends Render { - private Item field_94151_a; - public GasRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public GasRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.gas8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.gas7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.gas6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.gas5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.gas4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.gas3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.gas2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.gas1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java b/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java deleted file mode 100644 index 39f136324..000000000 --- a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class ModEffectRenderer extends Render { - private Item field_94151_a; - public ModEffectRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public ModEffectRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java deleted file mode 100644 index 5a4d6c3fa..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SSmokeRenderer extends Render { - private Item field_94151_a; - public SSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java b/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java deleted file mode 100644 index 6d492e823..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SpillRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityOilSpillFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SpillRenderer extends Render { - private Item field_94151_a; - public SpillRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SpillRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.spill8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.spill7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.spill6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.spill5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.spill4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.spill3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.spill2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.spill1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java deleted file mode 100644 index 263869a51..000000000 --- a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class TSmokeRenderer extends Render { - private Item field_94151_a; - public TSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public TSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityTSmokeFX) { - EntityTSmokeFX fx = (EntityTSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderDerrick.java b/src/main/java/com/hbm/render/tileentity/RenderDerrick.java index 14b67b290..d5fab539a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDerrick.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDerrick.java @@ -2,12 +2,17 @@ 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 net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderDerrick extends TileEntitySpecialRenderer { +public class RenderDerrick extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -16,7 +21,14 @@ public class RenderDerrick extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.derrick_tex); @@ -25,4 +37,25 @@ public class RenderDerrick extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_well); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.derrick_tex); ResourceManager.derrick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java b/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java deleted file mode 100644 index afa01d9ee..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderFluidDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluid_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityFluidDuct cable = (TileEntityFluidDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i], cable.getType().getColor()); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction, int hex) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - float p = 0.01F; - float n = -0.01F; - int r = (hex & 0xFF0000) >> 16; - int g = (hex & 0xFF00) >> 8; - int b = (hex & 0xFF); - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 47b0e405a..aba2c7f91 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -119,7 +119,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); boolean exploded = false; if(item.hasTagCompound() && item.getTagCompound().hasKey(IPersistentNBT.NBT_PERSISTENT_KEY)) { tank.readFromNBT(item.getTagCompound().getCompoundTag(IPersistentNBT.NBT_PERSISTENT_KEY), "tank"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java index 99536327f..5bc5939dd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java @@ -37,7 +37,7 @@ public abstract class RenderTurretBase extends TileEntitySpecialRenderer { private void checkPlug(World world, int x, int y, int z, boolean power, boolean fluid, FluidType type, int ox, int oz, int rot, ForgeDirection dir) { - if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.checkFluidConnectables(world, x, y, z, type)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { + if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { GL11.glPushMatrix(); GL11.glRotated(rot, 0, 1, 0); diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java index 4250d6edd..688962e83 100644 --- a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -1,9 +1,19 @@ package com.hbm.tileentity; +import com.hbm.packet.BufPacket; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; public interface IBufPacketReceiver { public void serialize(ByteBuf buf); public void deserialize(ByteBuf buf); + + public default void sendStandard(int range) { + TileEntity te = (TileEntity) this; + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(te.xCoord, te.yCoord, te.zCoord, this), new TargetPoint(te.getWorldObj().provider.dimensionId, te.xCoord, te.yCoord, te.zCoord, range)); + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index a2ac9ba74..ae43788db 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -1,16 +1,15 @@ package com.hbm.tileentity; - import api.hbm.block.ICrucibleAcceptor; +import com.hbm.handler.CompatHandler; import com.hbm.handler.CompatHandler.OCComponent; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidConnector; import api.hbm.tile.IHeatSource; import com.hbm.inventory.material.Mats; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Optional; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; @@ -27,7 +26,7 @@ import net.minecraftforge.common.util.ForgeDirection; @Optional.Interface(iface = "com.hbm.handler.CompatHandler.OCComponent", modid = "opencomputers"), @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers") }) -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { TileEntity tile; boolean inventory; @@ -35,7 +34,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy boolean fluid; boolean heat; public boolean moltenMetal; - + + // due to some issues with OC deciding that it's gonna call the component name function before the worldObj is loaded + // the component name must be cached to prevent it from shitting itself + String componentName = CompatHandler.nullComponent; + public TileEntityProxyCombo() { } public TileEntityProxyCombo(boolean inventory, boolean power, boolean fluid) { @@ -77,101 +80,6 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return tile; } - @Override - public void setFillForSync(int fill, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFillForSync(fill, index); - } - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFluidFill(fill, type); - } - } - - @Override - public int getFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getFluidFillForReceive(type); - } - return 0; - } - - @Override - public int getMaxFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFillForReceive(type); - } - - return 0; - } - - @Override - public void receiveFluid(int amount, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).receiveFluid(amount, type); - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setTypeForSync(type, index); - } - } - - @Override - public int getFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidContainer) { - return ((IFluidContainer)getTile()).getFluidFill(type); - } - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFill(type); - } - - return 0; - } - @Override public void setPower(long i) { @@ -442,6 +350,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.fluid = nbt.getBoolean("fluid"); this.moltenMetal = nbt.getBoolean("metal"); this.heat = nbt.getBoolean("heat"); + if(Loader.isModLoaded("OpenComputers")) + this.componentName = nbt.getString("ocname"); + } @Override @@ -453,6 +364,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy nbt.setBoolean("fluid", fluid); nbt.setBoolean("metal", moltenMetal); nbt.setBoolean("heat", heat); + if(Loader.isModLoaded("OpenComputers")) + nbt.setString("ocname", componentName); } @Override @@ -550,27 +463,27 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy @Override // please work @Optional.Method(modid = "OpenComputers") public String getComponentName() { - if(this.getTile() instanceof OCComponent) - return ((OCComponent) this.getTile()).getComponentName(); + if(this.worldObj == null) // OC is going too fast, grab from NBT! + return componentName; + if(this.getTile() instanceof OCComponent) { + if (componentName == null || componentName.equals(OCComponent.super.getComponentName())) { + componentName = ((OCComponent) this.getTile()).getComponentName(); + } + return componentName; + } return OCComponent.super.getComponentName(); } @Override @Optional.Method(modid = "OpenComputers") - public boolean canConnectNode(ForgeDirection side) { //thank you vaer + public boolean canConnectNode(ForgeDirection side) { if(this.getTile() instanceof OCComponent) - return (this.getTile().getBlockMetadata() & 6) == 6 && ((OCComponent) this.getTile()).canConnectNode(side); + return (this.getBlockMetadata() >= 6 && this.getBlockMetadata() <= 11) + && (power || fluid) && + ((OCComponent) this.getTile()).canConnectNode(side); return OCComponent.super.canConnectNode(null); } - @Override - @Optional.Method(modid = "OpenComputers") - public String[] getExtraInfo() { - if(this.getTile() instanceof OCComponent) - return new String[] {"analyze.dummy"}; - return OCComponent.super.getExtraInfo(); - } - @Override @Optional.Method(modid = "OpenComputers") public String[] methods() { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index bc937c5b9..d61e10560 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -31,10 +31,7 @@ import com.hbm.blocks.network.CranePartitioner.TileEntityCranePartitioner; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -43,9 +40,7 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; -import com.hbm.util.LoggingUtil; -import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class TileMappings { @@ -96,8 +91,6 @@ public class TileMappings { put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); put(TileEntityMachineOreSlopper.class, "tileentity_ore_slopper"); - put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); - put(TileEntityFluidDuct.class, "tileentity_universal_duct"); put(TileEntityMachineDrain.class, "tileentity_fluid_drain"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); @@ -424,9 +417,9 @@ public class TileMappings { private static void put(Class clazz, String... names) { map.put(clazz, names); - if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { + /*if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { LoggingUtil.errorWithHighlight(clazz.getCanonicalName() + " implements the old interfaces but not IFluidConnector!"); - } + }*/ if(IConfigurableMachine.class.isAssignableFrom(clazz)) { configurables.add((Class) clazz); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 9567f3bff..25ad4ef2a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -4,8 +4,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCompactLauncher; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -18,10 +16,10 @@ import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -33,6 +31,7 @@ import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -48,7 +47,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IBufPacketReceiver, IRadarCommandReceiver { private ItemStack slots[]; @@ -67,8 +66,8 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public TileEntityCompactLauncher() { slots = new ItemStack[8]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.NONE, 25000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 25000, 1); + tanks[0] = new FluidTank(Fluids.NONE, 25000); + tanks[1] = new FluidTank(Fluids.NONE, 25000); } @Override @@ -178,9 +177,6 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I tanks[0].loadTank(2, 6, slots); tanks[1].loadTank(3, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 5, power, maxPower); @@ -193,8 +189,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I if(worldObj.getTotalWorldTime() % 20 == 0) this.updateConnections(); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, solid, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); MissileStruct multipart = getStruct(slots[0]); @@ -235,6 +230,20 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I } } } + + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeInt(solid); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.solid = buf.readInt(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } private void updateConnections() { @@ -547,46 +556,6 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index a3dfea4ae..67db230ec 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -5,8 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.CompatHandler; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -19,10 +17,10 @@ import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -34,10 +32,10 @@ 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 io.netty.buffer.ByteBuf; 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.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -54,7 +52,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver, CompatHandler.OCComponent { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IBufPacketReceiver, IRadarCommandReceiver, CompatHandler.OCComponent { private ItemStack slots[]; @@ -75,8 +73,8 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public TileEntityLaunchTable() { slots = new ItemStack[8]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.NONE, 100000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 100000, 1); + tanks[0] = new FluidTank(Fluids.NONE, 100000); + tanks[1] = new FluidTank(Fluids.NONE, 100000); padSize = PartSize.SIZE_10; height = 10; } @@ -191,9 +189,6 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide tanks[0].loadTank(2, 6, slots); tanks[1].loadTank(3, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 5, power, maxPower); @@ -203,9 +198,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide solid += 250; } - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, solid, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, padSize.ordinal(), 1), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); MissileStruct multipart = getStruct(slots[0]); @@ -240,6 +233,22 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide } } } + + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + buf.writeInt(solid); + buf.writeByte((byte) padSize.ordinal()); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.solid = buf.readInt(); + this.padSize = PartSize.values()[buf.readByte()]; + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } private void updateConnections() { @@ -544,46 +553,6 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public boolean canExtractItem(int i, ItemStack itemStack, int j) { return false; } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 51bef052f..db18d4bfb 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -103,12 +103,12 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU public int getBattery() { if(slots[1] != null && slots[1].getItem() == ModItems.battery_spark && - ((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge()) { + ((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge(slots[1])) { return 1; } if(slots[1] != null && slots[1].getItem() == ModItems.battery_trixite && - ((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge()) { + ((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge(slots[1])) { return 2; } diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java deleted file mode 100644 index f169b7647..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.tileentity.conductor; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class TileEntityFluidDuct extends TileEntityFluidDuctSimple { - - public TileEntityFluidDuct() { } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java deleted file mode 100644 index 87b407eba..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { - - protected FluidType type = Fluids.NONE; - - - public ForgeDirection[] connections = new ForgeDirection[6]; - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - this.writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); - } - - @Override - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { - this.readFromNBT(pkt.func_148857_g()); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = Fluids.fromID(nbt.getInteger("fluid")); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("fluid", type.getID()); - } - - public boolean setType(FluidType type) { - - if(this.type == type) - return true; - - this.type = type; - this.markDirty(); - - if(worldObj instanceof WorldServer) { - WorldServer world = (WorldServer) worldObj; - world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return true; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public void updateEntity() { - /*this.updateConnections(); - - if(lastType != type) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - lastType = type; - }*/ - - if(this.getBlockType() == ModBlocks.fluid_duct) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo); - if(this.getBlockType() == ModBlocks.fluid_duct_solid) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; - else connections[0] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; - else connections[1] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; - else connections[2] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; - else connections[3] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; - else connections[4] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; - else connections[5] = null; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java index e747c3a5d..6df1f8bf9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -47,7 +47,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - charge += Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + charge += Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); } } } @@ -127,7 +127,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - long toCharge = Math.min(battery.getMaxCharge() - battery.getCharge(stack), battery.getChargeRate()); + long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); toCharge = Math.min(toCharge, power / 5); battery.chargeBattery(stack, toCharge); power -= toCharge; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 49b3df6ac..0ab6d68b2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -1,7 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import java.io.IOException; @@ -9,14 +7,11 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; @@ -45,7 +40,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine { +public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine { public long power; private int turnTimer; @@ -53,8 +48,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public float lastRotor; public float fanAcceleration = 0F; - public List list2 = new ArrayList(); - public FluidTank[] tanks; protected double[] info = new double[3]; @@ -69,8 +62,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public TileEntityChungus() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize, 1); + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); Random rand = new Random(); audioDesync = rand.nextFloat() * 0.05F; @@ -145,10 +138,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc turnTimer--; - if(operational) - turnTimer = 25; - - this.fillFluidInit(tanks[1].getTankType()); + if(operational) turnTimer = 25; NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); @@ -250,74 +240,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc tanks[1].writeToNBT(nbt, "steam"); nbt.setLong("power", power); } - - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, getTact(), type); - fillFluid(xCoord + dir.offsetX * -3, yCoord, zCoord + dir.offsetZ * -3, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index a30090384..4fd9621ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -49,8 +49,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public TileEntityCore() { super(3); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 128000, 1); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 128000); } @Override @@ -140,10 +140,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide radiation(); NBTTagCompound data = new NBTTagCompound(); - data.setInteger("tank0", tanks[0].getTankType().ordinal()); - data.setInteger("tank1", tanks[1].getTankType().ordinal()); - data.setInteger("fill0", tanks[0].getFill()); - data.setInteger("fill1", tanks[1].getFill()); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); data.setInteger("field", field); data.setInteger("heat", heat); data.setInteger("color", color); @@ -167,10 +165,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); - tanks[0].setTankType(Fluids.fromID(data.getInteger("tank0"))); - tanks[1].setTankType(Fluids.fromID(data.getInteger("tank1"))); - tanks[0].setFill(data.getInteger("fill0")); - tanks[1].setFill(data.getInteger("fill1")); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); field = data.getInteger("field"); heat = data.getInteger("heat"); color = data.getInteger("color"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index d85dda700..507035d8d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -53,7 +53,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public TileEntityCoreEmitter() { super(0); - tank = new FluidTank(Fluids.CRYOGEL, 64000, 0); + tank = new FluidTank(Fluids.CRYOGEL, 64000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index ea5cd0b5b..ee599910d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -1,9 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerCoreInjector; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreInjector; @@ -28,7 +26,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { +public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { public FluidTank[] tanks; public static final int range = 15; @@ -37,8 +35,8 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl public TileEntityCoreInjector() { super(4); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 128000, 1); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 128000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 128000); } @Override @@ -103,11 +101,10 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl this.markDirty(); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - NBTTagCompound data = new NBTTagCompound(); data.setInteger("beam", beam); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); this.networkPack(data, 250); } } @@ -115,57 +112,18 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); beam = data.getInteger("beam"); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); } @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 4096dc271..16f9fe511 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -1,9 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerCoreReceiver; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreReceiver; @@ -33,7 +31,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public long joules; @@ -41,7 +39,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn public TileEntityCoreReceiver() { super(0); - tank = new FluidTank(Fluids.CRYOGEL, 64000, 0); + tank = new FluidTank(Fluids.CRYOGEL, 64000); } @Override @@ -54,7 +52,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn if (!worldObj.isRemote) { - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.subscribeToAllAround(tank.getTankType(), this); power = joules * 5000; @@ -74,6 +71,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn NBTTagCompound data = new NBTTagCompound(); data.setLong("joules", joules); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); joules = 0; @@ -83,6 +81,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); joules = data.getLong("joules"); + tank.readFromNBT(data, "t"); } @Override @@ -105,38 +104,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return this.power; } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public void addEnergy(World world, int x, int y, int z, long energy, ForgeDirection dir) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index a05b6fe01..c320c81e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -17,8 +17,8 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { public TileEntityDeuteriumTower() { super(); - tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); - tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000, 1); + tanks[0] = new FluidTank(Fluids.WATER, 50000); + tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index 312210f98..c1c830cf5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.machine; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -11,9 +9,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -38,11 +33,10 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.EnumSkyBlock; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { +public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { public int heat; public FluidTank[] tanks; - public List list = new ArrayList(); public boolean isOn; public boolean hasExploded = false; @@ -88,7 +82,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid if(this.tanks[1].getFill() > 0) { this.sendFluid(); - fillFluidInit(tanks[1].getTankType()); } } @@ -289,62 +282,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid nbt.setBoolean("exploded", hasExploded); } - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - return; - } - } - } - - @Override public void setFillForSync(int fill, int index) { } - @Override public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[0].getTankType() ? tanks[0].getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP); - this.fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord, yCoord + 4, zCoord, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java index fe337615f..04d66dda3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java @@ -43,8 +43,8 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme public TileEntityHeatBoilerIndustrial() { this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.WATER, 64_000, 0); - this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100, 1); + this.tanks[0] = new FluidTank(Fluids.WATER, 64_000); + this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java index 73f01dbce..1e9d5885d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java @@ -37,8 +37,8 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe public TileEntityHeaterHeatex() { super(1); this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.COOLANT_HOT, 24_000, 0); - this.tanks[1] = new FluidTank(Fluids.COOLANT, 24_000, 1); + this.tanks[0] = new FluidTank(Fluids.COOLANT_HOT, 24_000); + this.tanks[1] = new FluidTank(Fluids.COOLANT, 24_000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fde17186d..9b0a0ed60 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -9,8 +9,6 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerITER; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -53,13 +51,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { public long power; public static final long maxPower = 10000000; public static final int powerReq = 100000; - public int age = 0; - public List list = new ArrayList(); public FluidTank[] tanks; public FluidTank plasma; @@ -81,9 +77,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece public TileEntityITER() { super(5); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WATER, 1280000, 0); - tanks[1] = new FluidTank(Fluids.ULTRAHOTSTEAM, 128000, 1); - plasma = new FluidTank(Fluids.PLASMA_DT, 16000, 2); + tanks[0] = new FluidTank(Fluids.WATER, 1280000); + tanks[1] = new FluidTank(Fluids.ULTRAHOTSTEAM, 128000); + plasma = new FluidTank(Fluids.PLASMA_DT, 16000); } @Override @@ -96,14 +92,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece if(!worldObj.isRemote) { - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tanks[1].getTankType()); - this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -163,9 +151,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece /// END Processing part /// /// START Notif packets /// - for(int i = 0; i < tanks.length; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); for(DirPos pos : getConPos()) { if(tanks[1].getFill() > 0) { @@ -177,6 +162,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece data.setBoolean("isOn", isOn); data.setLong("power", power); data.setInteger("progress", progress); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + plasma.writeToNBT(data, "t2"); if(slots[3] == null) { data.setInteger("blanket", 0); @@ -397,6 +385,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece this.power = data.getLong("power"); this.blanket = data.getInteger("blanket"); this.progress = data.getInteger("progress"); // + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); + plasma.readFromNBT(data, "t2"); } @Override @@ -410,88 +401,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece @Override public long getPower() { return power; } @Override public long getMaxPower() { return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - - if(index == 2) - plasma.setFill(fill); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - - if(index == 2) - plasma.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 3, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 3, zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - @Override public void onChunkUnload() { super.onChunkUnload(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 53c90a9c0..329947014 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -44,8 +44,8 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp public TileEntityMachineChemfac() { super(77); - water = new FluidTank(Fluids.WATER, 64_000, tanks.length); - steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, tanks.length + 1); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 1ca2d230e..77eb13f89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -54,7 +54,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa tanks = new FluidTank[4 * count]; for(int i = 0; i < 4 * count; i++) { - tanks[i] = new FluidTank(Fluids.NONE, getTankCapacity(), i); + tanks[i] = new FluidTank(Fluids.NONE, getTankCapacity()); } } @@ -372,7 +372,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa for(int i = 0; i < tanks.length; i++) { FluidTank tank = tanks[i]; - if(tank.index % 4 < 2) { + if(i % 4 < 2) { inTanks.add(tank); } } @@ -493,7 +493,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa for(int i = 0; i < tanks.length; i++) { FluidTank tank = tanks[i]; - if(tank.index % 4 > 1) { + if(i % 4 > 1) { outTanks.add(tank); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 87a66617c..d36cb4336 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,8 +6,6 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerMachineDiesel; import com.hbm.inventory.fluid.FluidType; @@ -38,7 +36,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int soundCycle = 0; @@ -62,7 +60,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen public TileEntityMachineDiesel() { super(5, 100); - tank = new FluidTank(Fluids.DIESEL, 4_000, 0); + tank = new FluidTank(Fluids.DIESEL, 4_000); } @Override @@ -113,7 +111,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen } } if(i == 2) { - if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge()) { + if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge(stack)) { return true; } } @@ -139,7 +137,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen FluidType last = tank.getTankType(); if(tank.setType(3, 4, slots)) this.unsubscribeToAllAround(last, this); tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.subscribeToAllAround(tank.getTankType(), this); @@ -157,6 +154,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen NBTTagCompound data = new NBTTagCompound(); data.setInteger("power", (int) power); data.setInteger("powerCap", (int) powerCap); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } } @@ -166,6 +164,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen power = data.getInteger("power"); powerCap = data.getInteger("powerCap"); + tank.readFromNBT(data, "t"); } public boolean hasAcceptableFuel() { @@ -238,32 +237,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen return this.maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 325b68a64..7996973c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -62,9 +62,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public TileEntityMachineIGenerator() { super(21); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, waterCap, 0); - tanks[1] = new FluidTank(Fluids.HEATINGOIL, oilCap, 1); - tanks[2] = new FluidTank(Fluids.LUBRICANT, lubeCap, 2); + tanks[0] = new FluidTank(Fluids.WATER, waterCap); + tanks[1] = new FluidTank(Fluids.HEATINGOIL, oilCap); + tanks[2] = new FluidTank(Fluids.LUBRICANT, lubeCap); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java deleted file mode 100644 index 3d2756304..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineInserter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidSource, IFluidAcceptor { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tanks[]; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {0}; - private static final int[] slots_side = new int[] {0}; - public int age = 0; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public List list3 = new ArrayList(); - - private String customName; - - public TileEntityMachineInserter() { - slots = new ItemStack[9]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[2] = new FluidTank(Fluids.NONE, 32000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.inserter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tanks[0].readFromNBT(nbt, "content1"); - tanks[1].readFromNBT(nbt, "content2"); - tanks[2].readFromNBT(nbt, "content3"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tanks[0].writeToNBT(nbt, "content1"); - tanks[1].writeToNBT(nbt, "content2"); - tanks[2].writeToNBT(nbt, "content3"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) { - if(dna1()) - fillFluidInit(tanks[0].getTankType()); - if(dna2()) - fillFluidInit(tanks[1].getTankType()); - if(dna3()) - fillFluidInit(tanks[2].getTankType()); - } - - tanks[0].setType(1, 2, slots); - tanks[1].setType(4, 5, slots); - tanks[2].setType(7, 8, slots); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[2].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - public boolean dna1() { - if(slots[0] != null && (slots[0].getItem() == ModItems.fuse || slots[0].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna2() { - if(slots[3] != null && (slots[3].getItem() == ModItems.fuse || slots[3].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna3() { - if(slots[6] != null && (slots[6].getItem() == ModItems.fuse || slots[6].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else - return 0; - } - - @Override - public List getFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return list1; - if(type.name().equals(tanks[1].getTankType().name())) - return list2; - if(type.name().equals(tanks[2].getTankType().name())) - return list3; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[1].getTankType().name())) - list2.clear(); - if(type.name().equals(tanks[2].getTankType().name())) - list3.clear(); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 3ff9b9f5b..ba32528da 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -1,7 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import java.io.IOException; @@ -9,9 +7,6 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerMachineLargeTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -48,11 +43,9 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine { public long power; - public int age = 0; - public List list2 = new ArrayList(); public FluidTank[] tanks; protected double[] info = new double[3]; @@ -75,8 +68,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme super(7); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize, 1); + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); Random rand = new Random(); audioDesync = rand.nextFloat() * 0.05F; @@ -116,13 +109,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme this.info = new double[3]; - age++; - if(age >= 2) { - age = 0; - } - - fillFluidInit(tanks[1].getTankType()); - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -160,12 +146,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[1].unloadTank(5, 6, slots); - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setBoolean("operational", operational); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); this.networkPack(data, 50); } else { this.lastRotor = this.rotor; @@ -220,6 +205,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme this.power = data.getLong("power"); this.shouldTurn = data.getBoolean("operational"); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); } public long getPowerScaled(int i) { @@ -242,79 +229,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme nbt.setLong("power", power); } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, getTact(), type); - fillFluid(xCoord + dir.offsetX * -2, yCoord, zCoord + dir.offsetZ * -2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } - @Override public long getPower() { return power; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 6f97159d8..e5ad38a1b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -1,16 +1,12 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMiningLaser; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMiningLaser; @@ -54,14 +50,13 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; public static final long maxPower = 100000000; public static final int consumption = 10000; public FluidTank tank; - public List list = new ArrayList(); public boolean isOn; public int targetX; @@ -80,7 +75,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen //slots 1 - 8: upgrades //slots 9 - 29: output super(30); - tank = new FluidTank(Fluids.OIL, 64000, 0); + tank = new FluidTank(Fluids.OIL, 64_000); } @Override @@ -95,21 +90,12 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.updateConnections(); - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tank.getTankType()); - this.sendFluid(tank, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); this.sendFluid(tank, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); this.sendFluid(tank, worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); this.sendFluid(tank, worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); //reset progress if the position changes if(lastTargetX != targetX || @@ -192,6 +178,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen data.setBoolean("beam", beam); data.setBoolean("isOn", isOn); data.setDouble("progress", clientBreakProgress); + tank.writeToNBT(data, "t"); this.networkPack(data, 250); } @@ -214,18 +201,15 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.beam = data.getBoolean("beam"); this.isOn = data.getBoolean("isOn"); this.breakProgress = data.getDouble("progress"); + tank.readFromNBT(data, "t"); } private void buildDam() { - if(worldObj.getBlock(targetX + 1, targetY, targetZ).getMaterial().isLiquid()) - worldObj.setBlock(targetX + 1, targetY, targetZ, ModBlocks.barricade); - if(worldObj.getBlock(targetX - 1, targetY, targetZ).getMaterial().isLiquid()) - worldObj.setBlock(targetX - 1, targetY, targetZ, ModBlocks.barricade); - if(worldObj.getBlock(targetX, targetY, targetZ + 1).getMaterial().isLiquid()) - worldObj.setBlock(targetX, targetY, targetZ + 1, ModBlocks.barricade); - if(worldObj.getBlock(targetX, targetY, targetZ - 1).getMaterial().isLiquid()) - worldObj.setBlock(targetX, targetY, targetZ - 1, ModBlocks.barricade); + if(worldObj.getBlock(targetX + 1, targetY, targetZ).getMaterial().isLiquid()) worldObj.setBlock(targetX + 1, targetY, targetZ, ModBlocks.barricade); + if(worldObj.getBlock(targetX - 1, targetY, targetZ).getMaterial().isLiquid()) worldObj.setBlock(targetX - 1, targetY, targetZ, ModBlocks.barricade); + if(worldObj.getBlock(targetX, targetY, targetZ + 1).getMaterial().isLiquid()) worldObj.setBlock(targetX, targetY, targetZ + 1, ModBlocks.barricade); + if(worldObj.getBlock(targetX, targetY, targetZ - 1).getMaterial().isLiquid()) worldObj.setBlock(targetX, targetY, targetZ - 1, ModBlocks.barricade); } private void tryFillContainer(int x, int y, int z) { @@ -617,62 +601,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.OIL) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.OIL) - return tank.getFill(); - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord - 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord + 2, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 175e11a68..8224d6f41 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -6,7 +6,6 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerPlasmaHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -29,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 100000000; @@ -40,9 +39,9 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme public TileEntityMachinePlasmaHeater() { super(5); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16000, 0); - tanks[1] = new FluidTank(Fluids.TRITIUM, 16000, 1); - plasma = new FluidTank(Fluids.PLASMA_DT, 64000, 2); + tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16_000); + tanks[1] = new FluidTank(Fluids.TRITIUM, 16_000); + plasma = new FluidTank(Fluids.PLASMA_DT, 64_000); } @Override @@ -123,12 +122,12 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme /// END Loading plasma into the ITER /// /// START Notif packets /// - for(int i = 0; i < tanks.length; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - plasma.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + plasma.writeToNBT(data, "t2"); this.networkPack(data, 50); /// END Notif packets /// } @@ -154,6 +153,9 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme super.networkUnpack(nbt); this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + plasma.readFromNBT(nbt, "t2"); } private void updateType() { @@ -212,58 +214,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.writeToNBT(nbt, "plasma"); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - - if(index == 2) - plasma.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - - if(index == 2) - plasma.setTankType(type); - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index e311a05d0..c468441a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -1,11 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerRadiolysis; import com.hbm.inventory.fluid.FluidType; @@ -39,15 +33,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final int maxPower = 1000000; public int heat; public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13 }; private static final int[] slot_rtg = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; @@ -55,9 +47,9 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement public TileEntityMachineRadiolysis() { super(15); //10 rtg slots, 2 fluid ID slots (io), 2 irradiation slots (io), battery slot tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 2000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 2000, 1); - tanks[2] = new FluidTank(Fluids.NONE, 2000, 2); + tanks[0] = new FluidTank(Fluids.NONE, 2_000); + tanks[1] = new FluidTank(Fluids.NONE, 2_000); + tanks[2] = new FluidTank(Fluids.NONE, 2_000); } @Override @@ -111,6 +103,9 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement this.power = data.getLong("power"); this.heat = data.getInteger("heat"); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); + tanks[2].readFromNBT(data, "t2"); } @Override @@ -138,11 +133,6 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement sterilize(); } - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - for(DirPos pos : getConPos()) { this.tryProvide(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); @@ -153,10 +143,10 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("heat", heat); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + tanks[2].writeToNBT(data, "t2"); this.networkPack(data, 50); - - for(byte i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); } } @@ -261,80 +251,6 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement return maxPower; } - /* Fluid Methods */ - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - } - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - this.tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(tanks[0].getTankType() == type) { - return tanks[0].getMaxFill(); - } - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - return list1; - if(type == tanks[2].getTankType()) - return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - list1.clear(); - if(type == tanks[2].getTankType()) - list2.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index 3d0e34caf..3ccf6ef70 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -158,6 +158,8 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp if(this.tank.getFill() < recipe.fluid.fill) return false; } + if(recipe.fluid == null && this.tank.getFill() > 0) return false; + if(slots[6] != null) { if(slots[6].getItem() != recipe.output.getItem()) return false; if(slots[6].getItemDamage() != recipe.output.getItemDamage()) return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index b7cc59fb7..f2ee81f2c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -5,7 +5,6 @@ import java.io.IOException; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerMachineTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -14,9 +13,8 @@ import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.gui.GUIMachineTurbine; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.CompatEnergyControl; @@ -26,9 +24,9 @@ import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; 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 io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; @@ -44,7 +42,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine { +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine{ private ItemStack slots[]; @@ -69,8 +67,8 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public TileEntityMachineTurbine() { slots = new ItemStack[7]; tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize, 1); + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); } @Override public String getConfigName() { @@ -305,41 +303,20 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS tanks[1].unloadTank(5, 6, slots); - for(int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + this.sendStandard(25); } } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); + @Override public void serialize(ByteBuf buf) { + buf.writeLong(power); + tanks[0].serialize(buf); + tanks[1].serialize(buf); } - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); + @Override public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 24ad50e60..f7e3349f5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -606,7 +606,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setThrottle(Context context, Arguments args) { - throttle = args.checkInteger(0); + powerSliderPos = (int) (args.checkInteger(0) * 60D / 100D); return new Object[] {}; } @@ -620,15 +620,14 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] start(Context context, Arguments args) { - stopIfNotReady(); - startup(); + state = -1; return new Object[] {}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] stop(Context context, Arguments args) { - shutdown(); + state = 0; return new Object[] {}; } @@ -665,41 +664,27 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement public Object[] invoke(String method, Context context, Arguments args) throws Exception { switch(method) { case ("getFluid"): - return new Object[] { - tanks[0].getFill(), tanks[0].getMaxFill(), - tanks[1].getFill(), tanks[1].getMaxFill(), - tanks[2].getFill(), tanks[2].getMaxFill(), - tanks[3].getFill(), tanks[3].getMaxFill() - }; + return getFluid(context, args); case ("getType"): - return new Object[] {tanks[0].getTankType().getName()}; + return getType(context, args); case ("getPower"): - return new Object[] {power}; + return getPower(context, args); case ("getThrottle"): - return new Object[] {throttle}; + return getThrottle(context, args); case ("getState"): - return new Object[] {state}; + return getState(context, args); case ("getAuto"): - return new Object[] {autoMode}; + return getAuto(context, args); case ("setThrottle"): - throttle = args.checkInteger(0); - return new Object[] {}; + return setThrottle(context, args); case ("setAuto"): - autoMode = args.checkBoolean(0); - return new Object[] {}; + return setAuto(context, args); case ("start"): - stopIfNotReady(); - startup(); - return new Object[] {}; + return start(context, args); case ("stop"): - shutdown(); - return new Object[] {}; + return stop(context, args); case ("getInfo"): - return new Object[] {throttle, state, - tanks[0].getFill(), tanks[0].getMaxFill(), - tanks[1].getFill(), tanks[1].getMaxFill(), - tanks[2].getFill(), tanks[2].getMaxFill(), - tanks[3].getFill(), tanks[3].getMaxFill()}; + return getInfo(context, args); } throw new NoSuchMethodException(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 60d29fe9a..d0e1306bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -5,11 +5,8 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineTurbofan; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; @@ -50,7 +47,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 1_000_000; @@ -438,32 +435,6 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem public void setPower(long i) { this.power = i; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index aa989ec85..d1a46f430 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -13,19 +13,14 @@ import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.CompatHandler; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerReactorZirnox; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIReactorZirnox; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -53,7 +48,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityReactorZirnox extends TileEntityMachineBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public int heat; public static final int maxHeat = 100000; @@ -61,9 +56,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public static final int maxPressure = 100000; public boolean isOn = false; - public List list = new ArrayList(); - public byte age; - public FluidTank steam; public FluidTank carbonDioxide; public FluidTank water; @@ -88,9 +80,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public TileEntityReactorZirnox() { super(28); - steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000, 0); - carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000, 1); - water = new FluidTank(Fluids.WATER, 32000, 2); + steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000); + carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000); + water = new FluidTank(Fluids.WATER, 32000); } @Override @@ -142,6 +134,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF this.heat = data.getInteger("heat"); this.pressure = data.getInteger("pressure"); this.isOn = data.getBoolean("isOn"); + steam.readFromNBT(data, "t0"); + carbonDioxide.readFromNBT(data, "t1"); + water.readFromNBT(data, "t2"); } public int getGaugeScaled(int i, int type) { @@ -193,15 +188,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF if(!worldObj.isRemote) { this.output = 0; - age++; - - if (age >= 20) { - age = 0; - } - - if(age == 9 || age == 19) { - fillFluidInit(steam.getTankType()); - } if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); @@ -246,11 +232,10 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF data.setInteger("heat", heat); data.setInteger("pressure", pressure); data.setBoolean("isOn", isOn); + steam.writeToNBT(data, "t0"); + carbonDioxide.writeToNBT(data, "t1"); + water.writeToNBT(data, "t2"); this.networkPack(data, 150); - - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - carbonDioxide.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - water.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); } } @@ -395,23 +380,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 1, this.zCoord + rot.offsetZ * 3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 3, this.zCoord + rot.offsetZ * 3, getTact(), type); - - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, getTact(), type); - } - private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -431,59 +399,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF }; } - public boolean getTact() { - if(age >= 0 && age < 10) { - return true; - } - - return false; - } - - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return 0; - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getMaxFill(); - if(type == Fluids.WATER) return water.getMaxFill(); - - return 0; - } - - public void setFluidFill(int i, FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) steam.setFill(i); - if(type == Fluids.CARBONDIOXIDE) carbonDioxide.setFill(i); - if(type == Fluids.WATER) water.setFill(i); - } - - public int getFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return steam.getFill(); - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getFill(); - if(type == Fluids.WATER) return water.getFill(); - return 0; - } - - public void setFillForSync(int fill, int index) { - switch (index) { - case 0: steam.setFill(fill); - break; - case 1: carbonDioxide.setFill(fill); - break; - case 2: water.setFill(fill); - break; - default: break; - } - } - - public void setTypeForSync(FluidType type, int index) { - switch (index) { - case 0: steam.setTankType(type); - break; - case 1: carbonDioxide.setTankType(type); - break; - case 2: water.setTankType(type); - break; - default: break; - } - } - public List getTanks() { List list = new ArrayList(); list.add(steam); @@ -493,14 +408,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return list; } - public List getFluidList(FluidType type) { - return list; - } - - public void clearFluidList(FluidType type) { - list.clear(); - } - public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 5, zCoord + 3); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index d2c9c04ea..ec233595f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import java.util.HashMap; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.FluidType; @@ -35,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { +public class TileEntitySILEX extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public EnumWavelengths mode = EnumWavelengths.NULL; public boolean hasLaser; @@ -54,7 +53,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce public TileEntitySILEX() { super(11); - tank = new FluidTank(Fluids.PEROXIDE, 16000, 0); + tank = new FluidTank(Fluids.PEROXIDE, 16000); } @Override @@ -345,41 +344,6 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce return 65536.0D; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getMaxFill(); - - return 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index da652915c..c2803d6c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -1,12 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; @@ -24,19 +19,18 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; -public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IBufPacketReceiver { +public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver { private FluidTank water; private FluidTank steam; - public List list = new ArrayList(); public int heat; public HashSet primary = new HashSet(); public HashSet secondary = new HashSet(); public TileEntitySolarBoiler() { - water = new FluidTank(Fluids.WATER, 100, 0); - steam = new FluidTank(Fluids.STEAM, 10_000, 1); + water = new FluidTank(Fluids.WATER, 100); + steam = new FluidTank(Fluids.STEAM, 10_000); } @Override @@ -72,76 +66,6 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui } } - @Override - public void setFillForSync(int fill, int index) { - if(index == 0) - water.setFill(fill); - if(index == 1) - steam.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.WATER) - water.setFill(fill); - if(type == Fluids.STEAM) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) - water.setTankType(type); - if(index == 1) - steam.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getFill(); - if(type == Fluids.STEAM) - return steam.getFill(); - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord, this.yCoord + 3, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getMaxFill(); - if(type == Fluids.STEAM) - return steam.getMaxFill(); - - return 0; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index bcba180ec..346d171f5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -5,8 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntitySoyuz; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -38,7 +36,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000; @@ -57,8 +55,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public TileEntitySoyuzLauncher() { super(27); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.KEROSENE, 128000, 0); - tanks[1] = new FluidTank(Fluids.OXYGEN, 128000, 1); + tanks[0] = new FluidTank(Fluids.KEROSENE, 128_000); + tanks[1] = new FluidTank(Fluids.OXYGEN, 128_000); } @Override @@ -81,9 +79,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS tanks[0].loadTank(4, 5, slots); tanks[1].loadTank(6, 7, slots); - - for (int i = 0; i < 2; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 8, power, maxPower); @@ -105,6 +100,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS data.setByte("mode", mode); data.setBoolean("starting", starting); data.setByte("type", this.getType()); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); networkPack(data, 250); } @@ -173,24 +170,25 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 2.0F, 100F, 1.0F); } - - public void onChunkUnload() { - - if(audio != null) { + + @Override + public void onChunkUnload() { + + if(audio != null) { audio.stopSound(); audio = null; - } - } - - public void invalidate() { - - super.invalidate(); - - if(audio != null) { + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { audio.stopSound(); audio = null; - } - } + } + } public void networkUnpack(NBTTagCompound data) { super.networkUnpack(data); @@ -199,6 +197,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS mode = data.getByte("mode"); starting = data.getBoolean("starting"); rocketType = data.getByte("type"); + tanks[0].readFromNBT(data, "t0"); + tanks[1].readFromNBT(data, "t1"); } public void startCountdown() { @@ -400,46 +400,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS nbt.setTag("items", list); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if (index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 151c61c12..8b9f0eb39 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -1,22 +1,18 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerStorageDrum; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIStorageDrum; import com.hbm.items.ModItems; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; -import com.hbm.lib.Library; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -26,6 +22,7 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -37,19 +34,17 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidStandardSender, IBufPacketReceiver, IGUIProvider { public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; - public List list = new ArrayList(); - public List list2 = new ArrayList(); public int age = 0; public TileEntityStorageDrum() { super(24); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WASTEFLUID, 16000, 0); - tanks[1] = new FluidTank(Fluids.WASTEGAS, 16000, 1); + tanks[0] = new FluidTank(Fluids.WASTEFLUID, 16000); + tanks[1] = new FluidTank(Fluids.WASTEGAS, 16000); } @Override @@ -148,24 +143,26 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu if(age >= 20) age -= 20; - if(age == 9 || age == 19) { - fillFluidInit(tanks[0].getTankType()); - } - if(age == 8 || age == 18) { - fillFluidInit(tanks[1].getTankType()); - } - this.sendFluidToAll(tanks[0], this); this.sendFluidToAll(tanks[1], this); - - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + + this.sendStandard(25); if(rad > 0) { radiate(worldObj, xCoord, yCoord, zCoord, rad); } } } + + @Override public void serialize(ByteBuf buf) { + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } private void radiate(World world, int x, int y, int z, float rads) { @@ -245,74 +242,6 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public int[] getAccessibleSlotsFromSide(int side) { return slots_arr; } - - @Override - public boolean getTact() { - return age < 10; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - return list; - if(type == tanks[1].getTankType()) - return list2; - - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - this.list.clear(); - if(type == tanks[1].getTankType()) - this.list2.clear(); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 06911f404..3ad671ca9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -6,9 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineOilWell; @@ -30,7 +28,7 @@ import net.minecraft.inventory.Container; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { +public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase { protected static int maxPower = 5_000_000; protected static int consumption = 5000; @@ -48,9 +46,9 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple public TileEntityMachineFrackingTower() { super(); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); - tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000, 2); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); + tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000); } @Override @@ -134,19 +132,6 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10, false); } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[2].getTankType() ? tanks[2].getMaxFill() : 0; - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[0], tanks[1] }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index e8f5928f0..1bfbfe835 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -4,11 +4,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineGasFlare; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; @@ -44,7 +41,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -56,7 +53,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public TileEntityMachineGasFlare() { super(6); - tank = new FluidTank(Fluids.GAS, 64000, 0); + tank = new FluidTank(Fluids.GAS, 64000); } @Override @@ -113,7 +110,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.setType(3, slots); tank.loadTank(1, 2, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); int maxVent = 50; int maxBurn = 10; @@ -187,6 +183,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements data.setLong("power", this.power); data.setBoolean("isOn", isOn); data.setBoolean("doesBurn", doesBurn); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } else { @@ -251,6 +248,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); this.doesBurn = nbt.getBoolean("doesBurn"); + tank.readFromNBT(nbt, "t"); } @Override @@ -279,32 +277,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements this.power = i; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 9a88b5e82..a97f9574d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -1,15 +1,11 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerLiquefactor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUILiquefactor; @@ -37,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -51,7 +47,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public TileEntityMachineLiquefactor() { super(4); - tank = new FluidTank(Fluids.NONE, 24000, 0); + tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -64,7 +60,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); - tank.updateTank(this); this.updateConnections(); @@ -80,10 +75,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen else this.progress = 0; - if(worldObj.getTotalWorldTime() % 10 == 0) { - this.fillFluidInit(tank.getTankType()); - } - this.sendFluid(); NBTTagCompound data = new NBTTagCompound(); @@ -91,6 +82,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen data.setInteger("progress", this.progress); data.setInteger("usage", this.usage); data.setInteger("processTime", this.processTime); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } } @@ -130,22 +122,14 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public boolean canProcess() { - if(this.power < usage) - return false; - - if(slots[0] == null) - return false; + if(this.power < usage) return false; + if(slots[0] == null) return false; FluidStack out = LiquefactionRecipes.getOutput(slots[0]); - if(out == null) - return false; - - if(out.type != tank.getTankType() && tank.getFill() > 0) - return false; - - if(out.fill + tank.getFill() > tank.getMaxFill()) - return false; + if(out == null) return false; + if(out.type != tank.getTankType() && tank.getFill() > 0) return false; + if(out.fill + tank.getFill() > tank.getMaxFill()) return false; return true; } @@ -177,6 +161,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); } @Override @@ -206,59 +191,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 4, zCoord, getTact(), type); - fillFluid(xCoord + 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord - 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord + 2, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - private List consumers = new ArrayList(); - - @Override - public List getFluidList(FluidType type) { - return consumers; - } - - @Override - public void clearFluidList(FluidType type) { - consumers.clear(); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 798d41873..d86a6c40c 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -6,9 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -71,8 +69,8 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { if("oreUranium".equals(name)) { for(int j = -1; j <= 1; j++) { for(int k = -1; k <= 1; k++) { - if(worldObj.getBlock(xCoord + j, yCoord + 7, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { - worldObj.setBlock(xCoord + k, yCoord + 7, zCoord + k, ModBlocks.gas_radon_dense); + if(worldObj.getBlock(xCoord + j, yCoord + 10, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { + worldObj.setBlock(xCoord + k, yCoord + 10, zCoord + k, ModBlocks.gas_radon_dense); } } } @@ -81,8 +79,8 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { if("oreAsbestos".equals(name)) { for(int j = -1; j <= 1; j++) { for(int k = -1; k <= 1; k++) { - if(worldObj.getBlock(xCoord + j, yCoord + 7, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { - worldObj.setBlock(xCoord + k, yCoord + 7, zCoord + k, ModBlocks.gas_asbestos); + if(worldObj.getBlock(xCoord + j, yCoord + 10, zCoord + j).isReplaceable(worldObj, xCoord + j, yCoord + 7, zCoord + k)) { + worldObj.setBlock(xCoord + k, yCoord + 10, zCoord + k, ModBlocks.gas_asbestos); } } } @@ -93,7 +91,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public void onSuck(int x, int y, int z) { - ExplosionLarge.spawnOilSpills(worldObj, xCoord + 0.5F, yCoord + 5.5F, zCoord + 0.5F, 3); worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 2.0F, 0.5F); this.tanks[0].setFill(this.tanks[0].getFill() + oilPerDepsoit); @@ -105,14 +102,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { worldObj.setBlock(x, y, z, ModBlocks.ore_oil_empty); } } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, getTact(), type); - } AxisAlignedBB bb = null; @@ -125,7 +114,7 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { yCoord, zCoord - 1, xCoord + 2, - yCoord + 7, + yCoord + 10, zCoord + 2 ); } @@ -136,10 +125,10 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public DirPos[] getConPos() { return new DirPos[] { - new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), - new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), - new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) }; } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index 9788943a9..7d836a45f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -8,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; @@ -113,12 +112,10 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } @Override - public void sendUpdate() { - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("indicator", this.indicator); - data.setFloat("speed", this.indicator == 0 ? (5F + (2F * this.speedLevel)) + (this.overLevel - 1F) * 10: 0F); - this.networkPack(data, 25); + public void networkPack(NBTTagCompound nbt, int range) { + nbt.setFloat("speed", this.indicator == 0 ? (5F + (2F * this.speedLevel)) + (this.overLevel - 1F) * 10: 0F); + + super.networkPack(nbt, range); } @Override @@ -141,25 +138,6 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - int pX2 = xCoord + rot.offsetX * 2; - int pZ2 = zCoord + rot.offsetZ * 2; - int pX4 = xCoord + rot.offsetX * 4; - int pZ4 = zCoord + rot.offsetZ * 4; - int oX = Math.abs(dir.offsetX) * 2; - int oZ = Math.abs(dir.offsetZ) * 2; - - fillFluid(pX2 + oX, this.yCoord, pZ2 + oZ, getTact(), type); - fillFluid(pX2 - oX, this.yCoord, pZ2 - oZ, getTact(), type); - fillFluid(pX4 + oX, this.yCoord, pZ4 + oZ, getTact(), type); - fillFluid(pX4 - oX, this.yCoord, pZ4 - oZ, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 725b0ca86..5f0545326 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -3,10 +3,8 @@ package com.hbm.tileentity.machine.oil; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerSolidifier; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUISolidifier; @@ -35,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -49,7 +47,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public TileEntityMachineSolidifier() { super(5); - tank = new FluidTank(Fluids.NONE, 24000, 0); + tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -63,7 +61,6 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.setType(4, slots); - tank.updateTank(this); this.updateConnections(); @@ -84,6 +81,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement data.setInteger("progress", this.progress); data.setInteger("usage", this.usage); data.setInteger("processTime", this.processTime); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); } } @@ -180,6 +178,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); } @Override @@ -208,32 +207,6 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public long getMaxPower() { return maxPower; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index b61115d65..a8b2e4555 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -1,14 +1,9 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.machine.ItemMachineUpgrade; @@ -35,21 +30,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { public int indicator = 0; public long power; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); public FluidTank[] tanks; public TileEntityOilDrillBase() { super(8); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); } @Override @@ -111,10 +104,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.overLevel = Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) + 1; int abLevel = Math.min(UpgradeManager.getLevel(UpgradeType.AFTERBURN), 3); - for(int i = 0; i < tanks.length; i++) { - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - int toBurn = Math.min(tanks[1].getFill(), abLevel * 10); if(toBurn > 0) { @@ -127,11 +116,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); - if(this.worldObj.getTotalWorldTime() % 10 == 0) - this.fillFluidInit(tanks[0].getTankType()); - if(this.worldObj.getTotalWorldTime() % 10 == 5) - this.fillFluidInit(tanks[1].getTankType()); - for(DirPos pos : getConPos()) { if(tanks[0].getFill() > 0) this.sendFluid(tanks[0], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -173,6 +157,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("indicator", this.indicator); + for(int i = 0; i < tanks.length; i++) tanks[i].writeToNBT(data, "t" + i); this.networkPack(data, 25); } @@ -181,6 +166,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.power = nbt.getLong("power"); this.indicator = nbt.getInteger("indicator"); + for(int i = 0; i < tanks.length; i++) tanks[i].readFromNBT(nbt, "t" + i); } public boolean canPump() { @@ -286,62 +272,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple public abstract void onSuck(int x, int y, int z); - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - return tank.getFill(); - } - } - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - tank.setFill(i); - return; - } - } - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) return this.list1; - if(type == tanks[1].getTankType()) return this.list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) list1.clear(); - if(type == tanks[1].getTankType()) list2.clear(); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public void setPower(long i) { this.power = i; 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 2bff133d6..7a1a6ec0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -9,8 +9,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -34,23 +32,19 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); protected int consumption; protected int output; public TileEntityRBMKBoiler() { super(0); - feed = new FluidTank(Fluids.WATER, 10000, 0); - steam = new FluidTank(Fluids.STEAM, 1000000, 1); + feed = new FluidTank(Fluids.WATER, 10000); + steam = new FluidTank(Fluids.STEAM, 1000000); } @Override @@ -62,8 +56,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void updateEntity() { if(!worldObj.isRemote) { - feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.consumption = 0; this.output = 0; @@ -103,8 +95,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I this.heat -= waterUsed * HEAT_PER_MB_WATER; } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -129,31 +119,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I if(type == Fluids.ULTRAHOTSTEAM) return 1000D; return 0D; } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } protected DirPos[] getOutputPos() { @@ -181,74 +146,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I }; } } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - feed.setFill(fill); - else if(index == 1) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(index == 0) - feed.setTankType(type); - else if(index == 1) - steam.setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 5a7550a2f..bd7250cf7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -2,8 +2,6 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; @@ -21,7 +19,7 @@ import net.minecraft.util.DamageSource; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { private FluidTank tank; private int lastCooled; @@ -29,7 +27,7 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc public TileEntityRBMKCooler() { super(); - this.tank = new FluidTank(Fluids.CRYOGEL, 8000, 0); + this.tank = new FluidTank(Fluids.CRYOGEL, 8_000); } @Override @@ -108,32 +106,6 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return ColumnType.COOLER; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[]{tank}; 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 45c1fa47c..941fb9637 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -4,10 +4,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerRBMKHeater; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -30,20 +27,16 @@ import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); public TileEntityRBMKHeater() { super(1); - this.feed = new FluidTank(Fluids.COOLANT, 16_000, 0); - this.steam = new FluidTank(Fluids.COOLANT_HOT, 16_000, 1); + this.feed = new FluidTank(Fluids.COOLANT, 16_000); + this.steam = new FluidTank(Fluids.COOLANT_HOT, 16_000); } @Override @@ -58,9 +51,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I feed.setType(0, slots); - feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - if(feed.getTankType().hasTrait(FT_Heatable.class)) { FT_Heatable trait = feed.getTankType().getTrait(FT_Heatable.class); HeatingStep step = trait.getFirstStep(); @@ -84,8 +74,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I steam.setTankType(Fluids.NONE); } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -121,99 +109,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I }; } } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - - if(index == 0) - feed.setFill(fill); - else if(index == 1) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(index == 0) - feed.setTankType(type); - else if(index == 1) - steam.setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f67843023..70750e00a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -33,6 +33,9 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { @@ -464,25 +467,21 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - Object OC_enrich_buf; - Object OC_poison_buf; - Object OC_hull_buf; - Object OC_core_buf; - String OC_type; + List returnValues = new ArrayList<>(); if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { - OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); - OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); - OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); - OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); - OC_type = slots[0].getItem().getUnlocalizedName(); - } else { - OC_enrich_buf = "N/A"; - OC_poison_buf = "N/A"; - OC_hull_buf = "N/A"; - OC_core_buf = "N/A"; - OC_type = "N/A"; - } - return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, OC_type, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + returnValues.add(ItemRBMKRod.getHullHeat(slots[0])); + returnValues.add(ItemRBMKRod.getCoreHeat(slots[0])); + returnValues.add(ItemRBMKRod.getEnrichment(slots[0])); + returnValues.add(ItemRBMKRod.getPoison(slots[0])); + returnValues.add(slots[0].getItem().getUnlocalizedName()); + } else + for (int i = 0; i < 5; i++) + returnValues.add("N/A"); + + return new Object[] { + heat, returnValues.get(0), returnValues.get(1), + fluxSlow, fluxFast, returnValues.get(2), returnValues.get(3), returnValues.get(4), + ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true) 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 4166b5e16..b2815e4d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine.storage; import api.hbm.fluid.*; import com.hbm.blocks.ModBlocks; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerBarrel; import com.hbm.inventory.fluid.FluidType; @@ -45,24 +43,23 @@ import java.util.List; import java.util.Set; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent { +public class TileEntityBarrel extends TileEntityMachineBase implements SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent { public FluidTank tank; public short mode = 0; public static final short modes = 4; public int age = 0; - public List list = new ArrayList(); protected boolean sendingBrake = false; public byte lastRedstone = 0; public TileEntityBarrel() { super(6); - tank = new FluidTank(Fluids.NONE, 0, 0); + tank = new FluidTank(Fluids.NONE, 0); } public TileEntityBarrel(int capacity) { super(6); - tank = new FluidTank(Fluids.NONE, capacity, 0); + tank = new FluidTank(Fluids.NONE, capacity); } @Override @@ -115,9 +112,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.setFill(transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - if(tank.getFill() > 0) { checkFluidInteraction(); } @@ -278,69 +272,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } } } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3) - return 0; - - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java index 2d8782bcc..fc1451df5 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java @@ -2,24 +2,24 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerFileCabinet; import com.hbm.inventory.gui.GUIFileCabinet; -import com.hbm.packet.NBTPacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; 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 TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, INBTPacketReceiver { +public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, IBufPacketReceiver { private int timer = 0; private int playersUsing = 0; @@ -47,6 +47,16 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public void closeInventory() { if(!worldObj.isRemote) this.playersUsing--; } + + @Override public void serialize(ByteBuf buf) { + buf.writeInt(timer); + buf.writeInt(playersUsing); + } + + @Override public void deserialize(ByteBuf buf) { + timer = buf.readInt(); + playersUsing = buf.readInt(); + } @Override public void updateEntity() { @@ -60,10 +70,7 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr } else timer = 0; - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("timer", timer); - data.setInteger("playersUsing", this.playersUsing); - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); } else { this.prevLowerExtent = lowerExtent; this.prevUpperExtent = upperExtent; @@ -103,12 +110,6 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr this.upperExtent = MathHelper.clamp_float(upperExtent, 0F, maxExtent); } - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.timer = nbt.getInteger("timer"); - this.playersUsing = nbt.getInteger("playersUsing"); - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerFileCabinet(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 353573073..9ab3106a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; @@ -42,18 +41,6 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { }; } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 99575c496..f61193726 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -21,10 +21,10 @@ import com.hbm.util.CompatEnergyControl; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; 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; @@ -35,7 +35,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long[] log = new long[20]; public long delta = 0; @@ -141,7 +141,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(i == 0 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) { return true; } - if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) { + if(i == 1 && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge(itemStack)) { return true; } } @@ -214,13 +214,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I prevPowerState = power; - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setLong("power", avg); - nbt.setLong("delta", delta); - nbt.setShort("redLow", redLow); - nbt.setShort("redHigh", redHigh); - nbt.setByte("priority", (byte) this.priority.ordinal()); - this.networkPack(nbt, 20); + this.networkPackNT(20); } } @@ -250,14 +244,25 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } @Override - public void networkUnpack(NBTTagCompound nbt) { - super.networkUnpack(nbt); + public void serialize(ByteBuf buf) { + super.serialize(buf); - this.power = nbt.getLong("power"); - this.delta = nbt.getLong("delta"); - this.redLow = nbt.getShort("redLow"); - this.redHigh = nbt.getShort("redHigh"); - this.priority = ConnectionPriority.values()[nbt.getByte("priority")]; + buf.writeLong(power); + buf.writeLong(delta); + buf.writeShort(redLow); + buf.writeShort(redHigh); + buf.writeByte(priority.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + power = buf.readLong(); + delta = buf.readLong(); + redLow = buf.readShort(); + redHigh = buf.readShort(); + priority = ConnectionPriority.values()[buf.readByte()]; } @Override 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 f78665bb9..51a133253 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -7,9 +7,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -56,7 +53,7 @@ import java.util.List; import java.util.Random; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, SimpleComponent, OCComponent, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { +public class TileEntityMachineFluidTank extends TileEntityMachineBase implements SimpleComponent, OCComponent, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { public FluidTank tank; public short mode = 0; @@ -68,7 +65,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public Explosion lastExplosion = null; public int age = 0; - public List list = new ArrayList(); public TileEntityMachineFluidTank() { super(6); @@ -119,9 +115,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - tank.loadTank(2, 3, slots); tank.setType(0, 1, slots); } else { @@ -312,72 +305,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3 || this.sendingBrake) - return 0; - - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java index daade6ad6..395b8a9c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine.storage; import com.hbm.blocks.BlockDummyable; -import com.hbm.inventory.fluid.FluidType; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -23,20 +22,6 @@ public class TileEntityMachineOrbus extends TileEntityBarrel { @Override public void checkFluidInteraction() { } //NO! - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - for(int i = -1; i < 6; i += 6) { - this.fillFluid(xCoord, yCoord + i, zCoord, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, this.getTact(), this.tank.getTankType()); - } - } - protected DirPos[] conPos; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 4241ac5cc..454abb188 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,248 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachinePuF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachinePuF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachinePuF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.PUF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.puf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_puf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerPuF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachinePuF6Tank(player.inventory, this); - } -} +public class TileEntityMachinePuF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 8cde23b50..2b84ce208 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,250 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineUF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachineUF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.UF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.uf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_uf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerUF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineUF6Tank(player.inventory, this); - } -} +public class TileEntityMachineUF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index 723b414c9..3d7072304 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -24,7 +24,7 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn public final long maxPower = 5_000_000; public static long heInput = 5; public static long rfOutput = 1; - public static double inputDecay = 0.05; + public static double inputDecay = 0.0; public EnergyStorage storage = new EnergyStorage(1_000_000, 1_000_000, 1_000_000); @Override @@ -93,13 +93,13 @@ public class TileEntityConverterHeRf extends TileEntityLoadedBase implements IEn public void readIfPresent(JsonObject obj) { heInput = IConfigurableMachine.grab(obj, "L:HE_Used", heInput); rfOutput = IConfigurableMachine.grab(obj, "L:RF_Created", rfOutput); - inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay", inputDecay); + inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay2", inputDecay); } @Override public void writeConfig(JsonWriter writer) throws IOException { writer.name("L:HE_Used").value(heInput); writer.name("L:RF_Created").value(rfOutput); - writer.name("D:inputDecay").value(inputDecay); + writer.name("D:inputDecay2").value(inputDecay); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 8e939ba1d..989b8e354 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -17,9 +17,9 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn public long power; public final long maxPower = 5_000_000; - public static long rfInput = 1; + public static long rfInput = 2; public static long heOutput = 5; - public static double inputDecay = 0.05; + public static double inputDecay = 0.0; public EnergyStorage storage = new EnergyStorage(1_000_000, 1_000_000, 1_000_000); @@ -73,15 +73,15 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn @Override public void readIfPresent(JsonObject obj) { - rfInput = IConfigurableMachine.grab(obj, "L:RF_Used", rfInput); - heOutput = IConfigurableMachine.grab(obj, "L:HE_Created", heOutput); - inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay", inputDecay); + rfInput = IConfigurableMachine.grab(obj, "L:RF_Used2", rfInput); + heOutput = IConfigurableMachine.grab(obj, "L:HE_Created2", heOutput); + inputDecay = IConfigurableMachine.grab(obj, "D:inputDecay2", inputDecay); } @Override public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:RF_Used").value(rfInput); - writer.name("L:HE_Created").value(heOutput); - writer.name("D:inputDecay").value(inputDecay); + writer.name("L:RF_Used2").value(rfInput); + writer.name("L:HE_Created2").value(heOutput); + writer.name("D:inputDecay2").value(inputDecay); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java index 4c6ab43d8..26d6dec14 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -300,7 +300,7 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv // this also checks if it's even a string at all if(args.checkAny(i) == null || args.checkString(i).equals("")) this.txBuffer[i] = ""; - if(args.checkString(i).equals("")) { // if it isn't an empty string + if(!args.checkString(i).equals("")) { // if it isn't an empty string if(args.checkString(i).length() > TileEntityRadioTelex.lineWidth) { // line longer than allowed this.txBuffer[i] = args.checkString(i).substring(0, TileEntityRadioTelex.lineWidth); // truncate it } else diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 01a63ffab..924ec352c 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -7,7 +7,6 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -31,13 +30,13 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidStandardReceiver { public FluidTank tank; public TileEntityTurretFritz() { super(); - this.tank = new FluidTank(Fluids.DIESEL, 16000, 0); + this.tank = new FluidTank(Fluids.DIESEL, 16000); } @Override @@ -142,7 +141,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl if(!worldObj.isRemote) { tank.setType(9, 9, slots); tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); for(int i = 1; i < 10; i++) { @@ -155,6 +153,19 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl } } } + + @Override + protected NBTTagCompound writePacket() { + NBTTagCompound data = super.writePacket(); + tank.writeToNBT(data, "t"); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + tank.readFromNBT(nbt, "t"); + } @Override //TODO: clean this shit up protected void updateConnections() { @@ -197,32 +208,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl return new int[] { 1, 2, 3, 4, 5, 6, 7, 8 }; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index dde5fe762..3330cda22 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -206,4 +206,15 @@ public class BobMathUtil { double delta = (beta - alpha + 180) % 360 - 180; return delta < -180 ? delta + 360 : delta; } + + /** Soft peak sine */ + public static double sps(double x) { + return Math.sin(Math.PI / 2D * Math.cos(x)); + } + + /** Square wave sine, make sure squarination is [0;1] */ + public static double sws(double x, double squarination) { + double s = Math.sin(x); + return Math.pow(Math.abs(s), 2 - squarination) / s; + } } diff --git a/src/main/resources/assets/hbm/disks/README.md b/src/main/resources/assets/hbm/disks/README.md new file mode 100644 index 000000000..973c2bfa1 --- /dev/null +++ b/src/main/resources/assets/hbm/disks/README.md @@ -0,0 +1,13 @@ +# OpenComputers Floppy Disks + +This directory is where the contents of floppy disks registered by `com.hbm.handler.CompatHandler` reside. + +New floppy disks can be added by: +1. Adding a line inside the `init()` function in the `CompatHandler` class to add the floppy disk to the list of disks to register + (actually registering the disks is done automatically by the handler.) +2. Adding the Lua (Preferably 5.3) files to the directory path based on the name you chose for your floppy disk. +
Note: the names of drives are "sanitized", meaning the directory path will be the name you selected but all lowercase and stripped of any non-word character. + (A-Z, a-z, 0-9, _) +3. Add a recipe to the disk at the end of the `init()` function in the `CompatHandler` class, though this step is not required. + +After those steps are complete, a new floppy disk should be registered into OC with a recipe (if added). \ No newline at end of file diff --git a/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua new file mode 100644 index 000000000..0b86935da --- /dev/null +++ b/src/main/resources/assets/hbm/disks/pwrangler/usr/bin/PWRangler.lua @@ -0,0 +1,274 @@ +local component = require "component" +local event = require "event" +local gpu = component.gpu +local call = component.invoke + +colorGradient = {0x00FF00, 0x6BEE00, 0x95DB00, 0xB0C800, 0xC5B400, 0xD79F00, 0xE68700, 0xF46900, 0xFC4700, 0xFF0000} +coreHeatESTOP = true +coolantLossESTOP = true + +runSig = true + +coldCoolantLevel = 0 +coldCoolantOutflow = 0 +prevCoolantFlow = 0 + +hotCoolantLevel = 0 +hotCoolantOutflow = 0 +prevHotCoolantFlow = 0 + +gpu.fill(1,1,160,160," ") + +-- Button Bullshit +function newButton(x, y, width, height, colorUp, colorDown, func) + local button = {xpos = 0, ypos = 0, width = 0, height = 0, colorUp = 0, colorDown = 0, func = nil} + button.xpos = x + button.ypos = y + button.width = width + button.height = height + button.colorUp = colorUp + button.colorDown = colorDown + button.func = func + return button +end + +function drawButton(button, color) + component.gpu.setBackground(color) + component.gpu.fill(button.xpos, button.ypos, button.width, button.height, " ") + component.gpu.setBackground(0x000000) +end + +pressedButton = nil +function buttonPress(_, _, x, y, _, _) + for _, b in pairs(buttons) do + if((x>=b.xpos) and (x<(b.xpos+b.width)) and (y>=b.ypos) and (y<(b.ypos+b.height)) ) then + drawButton(b, b.colorDown) + pressedButton = b + end + end +end + +function buttonRelease(_, _, x, y, _, _) + drawButton(pressedButton, pressedButton.colorUp) + pressedButton.func() + pressedButton = nil +end +--Button bullshit ends + +buttons = {} + +buttons[1] = newButton(61, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+1) end) +buttons[2] = newButton(68, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+5) end) +buttons[3] = newButton(75, 6, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")+10) end) + +buttons[4] = newButton(61, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-1) end) +buttons[5] = newButton(68, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-5) end) +buttons[6] = newButton(75, 9, 6, 2, 0xFFFFFF, 0xAAAAAA, function() component.proxy(pwrController).setLevel(call(pwrController, "getLevel")-10) end) + +buttons[7] = newButton(82, 6, 11, 5, 0xFF0000, 0xAA0000, function() component.proxy(pwrController).setLevel(100) end) +buttons[8] = newButton(94, 6, 12, 2, 0x00FF00, 0x00AA00, function() coreHeatESTOP = not coreHeatESTOP if coreHeatESTOP == true then buttons[8].colorUp = 0x00FF00 buttons[8].colorDown = 0x00AA00 else buttons[8].colorUp = 0xFF0000 buttons[8].colorDown = 0xAA0000 end end) +buttons[9] = newButton(94, 9, 12, 2, 0x00FF00, 0x00AA00, function() coolantLossESTOP = not coolantLossESTOP if coolantLossESTOP == true then buttons[9].colorUp = 0x00FF00 buttons[9].colorDown = 0x00AA00 else buttons[9].colorUp = 0xFF0000 buttons[9].colorDown = 0xAA0000 end end) + +buttons[10] = newButton(107, 8, 5, 3, 0xFF0000, 0xAA0000, function() runSig = false end) + +for address, _ in component.list("ntm_pwr_control") do + pwrController = address +end + +gpu.setForeground(0xAAAAAA) + +--Control rods +gpu.fill(60,4,54,8,"█") + +--Outlet +gpu.fill(91,13,16,8,"█") + +--Inlet +gpu.fill(91,30,16,8,"█") + +gpu.set(61,13," █████████████████████") +gpu.set(61,14," █ █ █ █ █ █ █ █ █ █") +gpu.set(61,15," █ █ █▄█▄█▄█▄█▄█ █ █") +gpu.set(61,16," ▄█████▀█▀█▀█▀█▀█████▄") +gpu.set(61,17," ▄███▀█ █ █ █ █ █ █ █▀███▄") +gpu.set(61,18," ▄██ █ █ █ █ █ █ █ █ █ █ ██▄") +gpu.set(61,19," ██ ██") +gpu.set(61,20,"██▀ █████████████████████ ▀██") +gpu.set(61,21,"██ █████████████████████ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,22,"██ █ █ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,23,"██ █████████████████████ → → → → → → → → → →") +gpu.set(61,24,"██ █ █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,25,"██ █████████████████████ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,26,"██ █ █ ██") +gpu.set(61,27,"██ █████████████████████ ██") +gpu.set(61,28,"██ █ █ ██") +gpu.set(61,29,"██ █████████████████████ ██") +gpu.set(61,30,"██ █ █ ██") +gpu.set(61,31,"██ █████████████████████ ██") +gpu.set(61,32,"██ ██") +gpu.set(61,33,"██ ██") +gpu.set(61,34,"██ ██") +gpu.set(61,35,"██ ██") +gpu.set(61,36,"██ ██") +gpu.set(61,37,"██ ██") +gpu.set(61,38,"██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,39,"██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,40,"██ ← ← ← ← ← ← ← ← ← ←") +gpu.set(61,41,"██ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄") +gpu.set(61,42,"██ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀") +gpu.set(61,43,"██▄ ▄██") +gpu.set(61,44," ██ ██") +gpu.set(61,45," ▀██ ██▀") +gpu.set(61,46," ▀██▄▄ ▄▄██▀") +gpu.set(61,47," ▀▀███▄▄▄▄▄▄▄▄▄▄▄███▀▀") +gpu.set(61,48," ▀▀▀▀▀▀▀▀▀▀▀▀") + +gpu.setBackground(0xAAAAAA) +gpu.setForeground(0x000000) + +gpu.set(70,4,"CONTROL RODS") +gpu.set(61,5,"INS+1 INS+5 INS+10") +gpu.set(61,8,"RET+1 RET+5 RET+10") + +gpu.set(85,5,"ESTOP") +gpu.set(107,5,"LEVEL") +gpu.set(107,7,"QUIT") + +gpu.set(94,5,"OVHEAT ESTOP") +gpu.set(94,8,"NOCOOL ESTOP") + +gpu.set(95,13,"OUTFLOW") +gpu.set(92,14,"BUFFER") +gpu.set(99,14,"HOTΔ") + +gpu.set(95,30,"INFLOW") +gpu.set(92,31,"BUFFER") +gpu.set(99,31,"COOLΔ") + +gpu.set(69,20,"REACTOR CORE") +gpu.set(71,21,"CORE HEAT:") +gpu.set(71,23,"HULL HEAT:") +gpu.set(71,25,"CORE FLUX:") +gpu.set(68,27,"COLD HEATEX LVL:") +gpu.set(69,29,"HOT HEATEX LVL:") +gpu.setBackground(0x000000) + +gpu.setForeground(0xFFFFFF) +gpu.fill(107,6,5,1,"█") + +--Outflow Buffer +gpu.fill(92,15,6,5,"█") + +--CoolDelta +gpu.fill(99,15,7,1,"█") + +--HotDelta + +gpu.set(66,19,"┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃") +gpu.fill(66,22,19,1,"█") +gpu.fill(66,24,19,1,"█") +gpu.fill(66,26,19,1,"█") +gpu.fill(66,28,19,1,"█") +gpu.fill(66,30,19,1,"█") +gpu.set(66,32,"┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃") +gpu.setForeground(0xAAAAAA) + +gpu.setForeground(0x000000) +gpu.setBackground(0xFFFFFF) +gpu.set(83,22,"TU") +gpu.set(83,24,"TU") +gpu.setForeground(0xFFFFFF) +gpu.setBackground(0x000000) + + +event.listen("touch", buttonPress) +event.listen("drop", buttonRelease) + +while (runSig == true) do + rodLevel = call(pwrController, "getLevel") + + coreHeat, _ = call(pwrController, "getHeat") + coreHeat = coreHeat//1000000 + + for _, b in pairs(buttons) do + drawButton(b, b.colorUp) + end + + for j=rodLevel//10,10 do + gpu.fill(64+(j*2), 33, 1, 10, " ") + end + + for j=1,rodLevel//10 do + gpu.fill(64+(j*2), 33, 1, 10, "┃") + end + + gpu.fill(64+(math.ceil(rodLevel/10)*2), 33, 1, math.fmod(rodLevel,10), "┃") + + for j=0,20,2 do + gpu.setForeground(colorGradient[coreHeat+1]) + gpu.fill(65+j, 33, 1, 9, "█") + gpu.setForeground(0xAAAAAA) + end + + gpu.setBackground(0xFFFFFF) + + gpu.setForeground(0xFFFFFF) + gpu.fill(66,22,19,1,"█") + gpu.fill(66,24,19,1,"█") + gpu.fill(66,26,19,1,"█") + gpu.fill(66,28,19,1,"█") + gpu.fill(66,30,19,1,"█") + + gpu.fill(92,15,6,5,"█") + gpu.fill(92,32,6,5,"█") + + gpu.fill(99,15,7,1,"█") + gpu.fill(99,32,7,1,"█") + + prevCoolantFlow = coldCoolantLevel + prevHotCoolantFlow = hotCoolantLevel + + fullCoreHeat, fullHullHeat = call(pwrController, "getHeat") + coldCoolantLevel, _, hotCoolantLevel, _ = call(pwrController, "getCoolantInfo") + + coldCoolantOutflow = coldCoolantLevel - prevCoolantFlow + hotCoolantOutflow = hotCoolantLevel - prevHotCoolantFlow + + gpu.setForeground(0xFF0099) + gpu.fill(92,15+(5-hotCoolantLevel//25600),6,hotCoolantLevel//25600, "█") + gpu.setForeground(0x000000) + + gpu.setForeground(0x00FFFF) + gpu.fill(92,32+(5-coldCoolantLevel//25600),6,coldCoolantLevel//25600, "█") + gpu.setForeground(0x000000) + + gpu.set(66,22,tostring(fullCoreHeat)) + gpu.set(66,24,tostring(fullHullHeat)) + gpu.set(66,26,tostring(call(pwrController, "getFlux"))) + gpu.set(66,28,tostring(coldCoolantLevel)) + gpu.set(66,30,tostring(hotCoolantLevel)) + + gpu.set(99,15,tostring(hotCoolantOutflow)) + gpu.set(99,32,tostring(coldCoolantOutflow)) + + gpu.set(107,6," ") + gpu.set(107,6,tostring(call(pwrController, "getLevel"))) + + gpu.setBackground(0x000000) + gpu.setForeground(0xFFFFFF) + + if (coreHeatESTOP == true) and (fullCoreHeat) > 9000000 then + component.proxy(pwrController).setLevel(100) + end + + if (coolantLossESTOP == true) and (coldCoolantLevel) < 10000 then + component.proxy(pwrController).setLevel(100) + end + + os.sleep(0.25) +end + +event.ignore("touch", buttonPress) +event.ignore("drop", buttonRelease) + +gpu.fill(1,1,160,160," ") \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ff844f030..026f86d95 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -119,6 +119,7 @@ armorMod.chestplates=Brustplatten armorMod.helmets=Helme armorMod.leggings=Beinschienen armorMod.insertHere=RÃŒstung zum Modifizieren einlegen... +armorMod.type.battery=Batterie armorMod.type.boots=Stiefel armorMod.type.chestplate=Brustplatte armorMod.type.cladding=BeschlÀge @@ -830,6 +831,7 @@ hbmmat.desh=Desh hbmmat.diamond=Diamant hbmmat.dineutronium=Dineutronium hbmmat.durasteel=Schnellarbeitsstahl +hbmmat.emerald=Smaragd hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouran hbmmat.fiberglass=Fiberglas @@ -1187,6 +1189,9 @@ item.arc_electrode_burnt.graphite.name=Geschmolzene Graphitelektrode item.arc_electrode_burnt.lanthanium.name=Geschmolzene Lanthanelektrode item.arc_electrode_burnt.saturnite.name=Geschmolzene Saturnitelektrode item.arc_electrode_desh.name=Desh-Elektrode +item.armor_battery.name=PowerrÃŒstung-Akkusatz +item.armor_battery_mk2.name=PowerrÃŒstung-Akkusatz Mk2 +item.armor_battery_mk3.name=PowerrÃŒstung-Akkusatz Mk3 item.armor_polish.name=ShiningArmor™ RÃŒstungspolitur item.asbestos_boots.name=Hitzeschutzstiefel item.asbestos_cloth.name=Hitzeschutzanzugsstoff @@ -4682,6 +4687,7 @@ tile.sellafield_2.name=Kochendes Sellafit tile.sellafield_3.name=Flammendes Sellafit tile.sellafield_4.name=Infernales Sellafit tile.sellafield_core.name=Sellafit-Corium +tile.sellafield_bedrock.name=Bedrock-Sellafit tile.sellafield_slaked.name=Gelöschtes Sellafit tile.semtex.name=Semtex tile.silo_hatch.name=Siloluke diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0dafc1d3b..53e2aff13 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -174,6 +174,7 @@ armorMod.chestplates=Chestplates armorMod.helmets=Helmets armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings +armorMod.type.battery=Battery armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding @@ -1538,6 +1539,7 @@ hbmmat.desh=Desh hbmmat.diamond=Diamond hbmmat.dineutronium=Dineutronium hbmmat.durasteel=High-Speed Steel +hbmmat.emerald=Emerald hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouranium hbmmat.fiberglass=Fiberglass @@ -1899,6 +1901,9 @@ item.arc_electrode_burnt.graphite.name=Molten Graphite Electrode item.arc_electrode_burnt.lanthanium.name=Molten Lanthanium Electrode item.arc_electrode_burnt.saturnite.name=Molten Saturnite Electrode item.arc_electrode_desh.name=Desh Electrode +item.armor_battery.name=Power Armor Battery Pack +item.armor_battery_mk2.name=Power Armor Battery Pack Mk2 +item.armor_battery_mk3.name=Power Armor Battery Pack Mk3 item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth @@ -5769,6 +5774,7 @@ tile.sellafield.2.name=Boiling Sellafite tile.sellafield.3.name=Blazing Sellafite tile.sellafield.4.name=Infernal Sellafite tile.sellafield.5.name=Sellafite-Corium +tile.sellafield_bedrock.name=Bedrock Sellafite tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex tile.silo_hatch.name=Silo Hatch diff --git a/src/main/resources/assets/hbm/models/machines/derrick.obj b/src/main/resources/assets/hbm/models/machines/derrick.obj index 56d2464ca..8b2b01979 100644 --- a/src/main/resources/assets/hbm/models/machines/derrick.obj +++ b/src/main/resources/assets/hbm/models/machines/derrick.obj @@ -1,1315 +1,2881 @@ -# Blender v2.79 (sub 0) OBJ File: 'derrick_new.blend' +# Blender v2.79 (sub 0) OBJ File: 'derrick.blend' # www.blender.org o Plane -v -1.500000 0.000000 1.500000 -v 1.500000 0.000000 1.500000 -v -1.500000 0.000000 -1.500000 -v 1.500000 0.000000 -1.500000 -v -1.500000 0.000000 1.250000 -v 1.500000 0.000000 1.250000 -v -1.500000 0.000000 -1.250000 -v 1.500000 0.000000 -1.250000 -v 1.250000 0.000000 1.500000 -v 1.250000 0.000000 -1.500000 -v 1.250000 0.000000 1.250000 -v 1.250000 0.000000 -1.250000 -v -1.250000 0.000000 1.500000 -v -1.250000 0.000000 -1.500000 -v -1.250000 0.000000 1.250000 -v -1.250000 0.000000 -1.250000 -v 0.250000 6.000000 0.500000 -v 0.250000 6.000000 0.250000 -v 0.500000 6.000000 0.500000 -v 0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.500000 -v -0.250000 6.000000 0.250000 -v -0.250000 6.000000 0.500000 -v -0.250000 6.000000 -0.250000 -v -0.500000 6.000000 -0.250000 -v -0.500000 6.000000 -0.500000 -v -0.250000 6.000000 -0.500000 -v 0.250000 6.000000 -0.250000 -v 0.500000 6.000000 -0.250000 -v 0.500000 6.000000 -0.500000 -v 0.250000 6.000000 -0.500000 v -0.500000 0.000000 0.500000 v 0.500000 0.000000 0.500000 v -0.500000 0.000000 -0.500000 v 0.500000 0.000000 -0.500000 -v -0.250000 0.250000 -0.250000 -v -0.250000 0.250000 0.250000 -v 0.250000 0.250000 0.250000 -v 0.250000 0.250000 -0.250000 -v 0.000000 6.250000 -0.250000 -v 0.176777 6.250000 -0.176777 -v 0.250000 6.250000 0.000000 -v 0.176777 6.250000 0.176777 -v -0.000000 6.250000 0.250000 -v -0.176777 6.250000 0.176777 -v -0.250000 6.250000 -0.000000 -v -0.176777 6.250000 -0.176777 -v 0.850000 2.400000 1.100000 -v 0.650000 3.600000 0.900000 -v 0.450000 4.800000 0.700000 -v 0.450000 4.800000 0.450000 -v 0.650000 3.600000 0.650000 -v 0.850000 2.400000 0.850000 -v 1.100000 2.400000 0.850000 -v 0.900000 3.600000 0.650000 -v 0.700000 4.800000 0.450000 -v 0.850000 2.400000 -1.100000 -v 0.650000 3.600000 -0.900000 -v 0.450000 4.800000 -0.700000 -v 0.850000 2.400000 -0.850000 -v 0.650000 3.600000 -0.650000 -v 0.450000 4.800000 -0.450000 -v 1.100000 2.400000 -0.850000 -v 0.900000 3.600000 -0.650000 -v 0.700000 4.800000 -0.450000 -v -0.850000 2.400000 -0.850000 -v -0.650000 3.600000 -0.650000 -v -0.450000 4.800000 -0.450000 -v -0.700000 4.800000 -0.450000 -v -0.900000 3.600000 -0.650000 -v -1.100000 2.400000 -0.850000 -v -0.450000 4.800000 -0.700000 -v -0.650000 3.600000 -0.900000 -v -0.850000 2.400000 -1.100000 -v -0.850000 2.400000 0.850000 -v -0.650000 3.600000 0.650000 -v -0.450000 4.800000 0.450000 -v -0.450000 4.800000 0.700000 -v -0.650000 3.600000 0.900000 -v -0.850000 2.400000 1.100000 -v -0.700000 4.800000 0.450000 -v -0.900000 3.600000 0.650000 -v -1.100000 2.400000 0.850000 -v 0.283333 2.400000 -0.850000 -v -0.283333 2.400000 -0.850000 -v 0.283333 2.400000 -1.100000 -v -0.283333 2.400000 -1.100000 -v 0.850000 2.400000 0.283333 -v 0.850000 2.400000 -0.283333 -v 1.100000 2.400000 0.283333 -v 1.100000 2.400000 -0.283333 -v 0.283333 2.400000 1.100000 -v -0.283333 2.400000 1.100000 -v 0.283333 2.400000 0.850000 -v -0.283333 2.400000 0.850000 -v -0.850000 2.400000 -0.283333 -v -0.850000 2.400000 0.283333 -v -1.100000 2.400000 -0.283333 -v -1.100000 2.400000 0.283333 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v 0.156250 0.656250 -0.156250 -v 0.156250 0.343750 -0.156250 -v 0.156250 0.656250 0.156250 -v 0.156250 0.343750 0.156250 -v -0.156250 0.656250 -0.156250 -v -0.156250 0.343750 -0.156250 -v -0.156250 0.656250 0.156250 -v -0.156250 0.343750 0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 0.176777 6.250000 0.176777 -v 0.176777 0.250000 0.176777 -v 0.250000 6.250000 0.000000 -v 0.250000 0.250000 0.000000 -v 0.176777 6.250000 -0.176777 -v 0.176777 0.250000 -0.176777 -v 0.000000 6.250000 -0.250000 -v 0.000000 0.250000 -0.250000 -v 0.088388 7.000000 -0.088388 -v -0.000000 7.000000 -0.125000 -v 0.125000 7.000000 0.000000 -v 0.088388 7.000000 0.088388 -v -0.000000 7.000000 0.125000 -v -0.088388 7.000000 0.088388 -v -0.125000 7.000000 -0.000000 -v -0.088388 7.000000 -0.088388 -v -1.500000 0.000000 1.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v -1.250000 4.000000 1.250000 +v 1.250000 4.000000 1.250000 +v -1.250000 4.000000 -1.250000 +v 1.250000 4.000000 -1.250000 +v -0.875000 4.000000 -0.875000 +v -0.875000 4.000000 0.875000 +v 0.875000 4.000000 0.875000 +v 0.875000 4.000000 -0.875000 +v -1.250000 3.750000 1.250000 +v 1.250000 3.750000 1.250000 +v -1.250000 3.750000 -1.250000 +v 1.250000 3.750000 -1.250000 +v -0.875000 3.750000 -0.875000 +v -0.875000 3.750000 0.875000 +v 0.875000 3.750000 0.875000 +v 0.875000 3.750000 -0.875000 +v 1.500000 0.000000 1.500000 v 1.500000 0.000000 1.250000 -v -1.500000 0.000000 -1.250000 -v 1.500000 0.000000 -1.250000 v 1.250000 0.000000 1.500000 -v 1.250000 0.000000 -1.500000 v 1.250000 0.000000 1.250000 -v 1.250000 0.000000 -1.250000 v -1.250000 0.000000 1.500000 -v -1.250000 0.000000 -1.500000 v -1.250000 0.000000 1.250000 +v -1.500000 0.000000 1.500000 +v -1.500000 0.000000 1.250000 +v 1.500000 0.000000 -1.250000 +v 1.500000 0.000000 -1.500000 +v 1.250000 0.000000 -1.250000 +v 1.250000 0.000000 -1.500000 v -1.250000 0.000000 -1.250000 -v 0.250000 6.000000 0.500000 -v 0.250000 6.000000 0.250000 -v 0.500000 6.000000 0.500000 -v 0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.250000 -v -0.500000 6.000000 0.500000 -v -0.250000 6.000000 0.250000 -v -0.250000 6.000000 0.500000 -v -0.250000 6.000000 -0.250000 -v -0.500000 6.000000 -0.250000 -v -0.500000 6.000000 -0.500000 -v -0.250000 6.000000 -0.500000 -v 0.250000 6.000000 -0.250000 -v 0.500000 6.000000 -0.250000 -v 0.500000 6.000000 -0.500000 -v 0.250000 6.000000 -0.500000 -v 0.850000 2.400000 1.100000 -v 0.650000 3.600000 0.900000 -v 0.450000 4.800000 0.700000 -v 0.450000 4.800000 0.450000 -v 0.650000 3.600000 0.650000 -v 0.850000 2.400000 0.850000 -v 1.100000 2.400000 0.850000 -v 0.900000 3.600000 0.650000 -v 0.700000 4.800000 0.450000 -v 0.850000 2.400000 -1.100000 -v 0.650000 3.600000 -0.900000 -v 0.450000 4.800000 -0.700000 -v 0.850000 2.400000 -0.850000 -v 0.650000 3.600000 -0.650000 -v 0.450000 4.800000 -0.450000 -v 1.100000 2.400000 -0.850000 -v 0.900000 3.600000 -0.650000 -v 0.700000 4.800000 -0.450000 -v -0.850000 2.400000 -0.850000 -v -0.650000 3.600000 -0.650000 -v -0.450000 4.800000 -0.450000 -v -0.700000 4.800000 -0.450000 -v -0.900000 3.600000 -0.650000 -v -1.100000 2.400000 -0.850000 -v -0.450000 4.800000 -0.700000 -v -0.650000 3.600000 -0.900000 -v -0.850000 2.400000 -1.100000 -v -0.850000 2.400000 0.850000 -v -0.650000 3.600000 0.650000 -v -0.450000 4.800000 0.450000 -v -0.450000 4.800000 0.700000 -v -0.650000 3.600000 0.900000 -v -0.850000 2.400000 1.100000 -v -0.700000 4.800000 0.450000 -v -0.900000 3.600000 0.650000 -v -1.100000 2.400000 0.850000 -v 0.283333 2.400000 -0.850000 -v -0.283333 2.400000 -0.850000 -v 0.283333 2.400000 -1.100000 -v -0.283333 2.400000 -1.100000 -v 0.850000 2.400000 0.283333 -v 0.850000 2.400000 -0.283333 -v 1.100000 2.400000 0.283333 -v 1.100000 2.400000 -0.283333 -v 0.283333 2.400000 1.100000 -v -0.283333 2.400000 1.100000 -v 0.283333 2.400000 0.850000 -v -0.283333 2.400000 0.850000 -v -0.850000 2.400000 -0.283333 -v -0.850000 2.400000 0.283333 -v -1.100000 2.400000 -0.283333 -v -1.100000 2.400000 0.283333 -v -0.000000 6.250000 -0.125000 -v 0.088388 6.250000 -0.088388 -v 0.125000 6.250000 0.000000 -v 0.088388 6.250000 0.088388 -v -0.000000 6.250000 0.125000 -v -0.088388 6.250000 0.088388 -v -0.125000 6.250000 -0.000000 -v -0.088388 6.250000 -0.088388 -v 0.088388 7.000000 -0.088388 -v -0.000000 7.000000 -0.125000 -v 0.125000 7.000000 0.000000 -v 0.088388 7.000000 0.088388 -v -0.000000 7.000000 0.125000 -v -0.088388 7.000000 0.088388 -v -0.125000 7.000000 -0.000000 -v -0.088388 7.000000 -0.088388 -v -0.000000 0.250000 0.250000 -v -0.000000 6.250000 0.250000 -v -0.176777 0.250000 0.176777 -v -0.176777 6.250000 0.176777 -v -0.250000 0.250000 -0.000000 -v -0.250000 6.250000 -0.000000 -v -0.176777 0.250000 -0.176777 -v -0.176777 6.250000 -0.176777 -vt 0.458333 0.958333 -vt 0.416667 1.000000 -vt 0.416667 0.958333 -vt 0.458333 1.000000 -vt 0.416667 0.958333 -vt 0.458333 0.958333 -vt 0.416667 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.416667 0.958333 -vt 0.458333 1.000000 -vt 0.416667 1.000000 -vt 0.583333 0.041667 -vt 0.625000 0.000000 -vt 0.625000 0.041667 -vt 0.625000 0.166667 -vt 0.583333 0.125000 -vt 0.625000 0.125000 -vt 0.750000 0.125000 -vt 0.708333 0.166667 -vt 0.708333 0.125000 -vt 0.708333 -0.000000 -vt 0.750000 0.041667 -vt 0.708333 0.041667 -vt 0.041667 0.802083 -vt -0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.041667 0.802083 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.041667 0.802083 -vt -0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.041667 0.802083 -vt 0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.000000 1.000000 -vt -0.000000 0.802083 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.125000 1.000000 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.083333 1.000000 -vt 0.041667 1.000000 -vt 0.416667 0.166667 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.541667 0.208333 -vt 0.458333 0.291667 -vt 0.458333 0.208333 -vt 0.583333 0.166667 -vt 0.458333 0.208333 -vt 0.416667 0.166667 -vt 0.583333 0.166667 -vt 0.416667 0.166667 -vt 0.583333 0.166667 -vt 0.458333 0.208333 -vt 0.416667 0.166667 -vt 0.458333 0.208333 -vt 0.666667 0.294035 -vt 0.627368 0.333333 -vt 0.666667 0.372632 -vt 0.041667 0.406250 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.604167 -vt 0.083333 0.604167 -vt 0.083333 0.802083 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.041667 0.406250 -vt 0.083333 0.604167 -vt 0.041667 0.604167 -vt 0.083333 0.802083 -vt -0.000000 0.604167 -vt -0.000000 0.406250 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.625000 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.625000 0.958333 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.625000 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.041667 0.000000 -vt 0.000000 0.000000 -vt 0.083333 0.406250 -vt 0.083333 0.000000 -vt 0.125000 1.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.041667 0.000000 -vt 0.083333 0.406250 -vt 0.083333 0.406250 -vt 0.041667 0.000000 -vt 0.083333 0.000000 -vt 0.125000 1.000000 -vt 0.000000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.041667 -0.000000 -vt 0.083333 0.406250 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.125000 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.510417 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.343750 -vt 0.520833 0.291667 -vt 0.520833 0.343750 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.510417 -vt 0.416667 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.416667 0.291667 -vt 0.666667 0.415667 -vt 0.646833 0.395833 -vt 0.666667 0.376000 -vt 0.625000 0.000000 -vt 0.583333 0.041667 -vt 0.625000 0.041667 -vt 0.583333 0.125000 -vt 0.625000 0.166667 -vt 0.625000 0.125000 -vt 0.708333 0.166667 -vt 0.750000 0.125000 -vt 0.708333 0.125000 -vt 0.750000 0.041667 -vt 0.708333 -0.000000 -vt 0.708333 0.041667 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.541667 0.958333 -vt 0.458333 0.958333 -vt 0.541667 1.000000 -vt 0.541667 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.416667 1.000000 -vt 0.416667 0.958333 -vt 0.458333 0.958333 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.750000 0.166667 -vt 0.750000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.166667 0.000000 -vt 0.166667 1.000000 -vt 0.416667 -0.000000 -vt 0.541667 0.291667 -vt 0.541667 0.208333 -vt 0.541667 0.208333 -vt 0.541667 0.208333 -vt 0.638878 0.305545 -vt 0.638878 0.361122 -vt 0.694455 0.361122 -vt 0.705965 0.333333 -vt 0.694455 0.305545 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.625000 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.166667 0.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.166667 1.000000 -vt -0.000000 0.000000 -vt 0.083333 0.000000 -vt 0.166667 0.000000 -vt 0.166667 0.604167 -vt 0.166667 0.802083 -vt 0.166667 1.000000 -vt 0.083333 -0.000000 +v -1.250000 0.000000 -1.500000 +v -1.500000 0.000000 -1.250000 +v -1.500000 0.000000 -1.500000 +v 0.750000 8.750000 0.750000 +v 0.750000 8.750000 0.500000 +v 0.500000 8.750000 0.750000 +v 0.500000 8.750000 0.500000 +v -0.500000 8.750000 0.750000 +v -0.500000 8.750000 0.500000 +v -0.750000 8.750000 0.750000 +v -0.750000 8.750000 0.500000 +v 0.750000 8.750000 -0.500000 +v 0.750000 8.750000 -0.750000 +v 0.500000 8.750000 -0.500000 +v 0.500000 8.750000 -0.750000 +v -0.500000 8.750000 -0.500000 +v -0.500000 8.750000 -0.750000 +v -0.750000 8.750000 -0.500000 +v -0.750000 8.750000 -0.750000 +v 1.125000 3.750000 1.125000 +v 1.125000 3.750000 0.875000 +v 0.875000 3.750000 1.125000 +v 0.875000 3.750000 0.875000 +v -0.875000 3.750000 1.125000 +v -0.875000 3.750000 0.875000 +v -1.125000 3.750000 1.125000 +v -1.125000 3.750000 0.875000 +v 1.125000 3.750000 -0.875000 +v 1.125000 3.750000 -1.125000 +v 0.875000 3.750000 -0.875000 +v 0.875000 3.750000 -1.125000 +v -0.875000 3.750000 -0.875000 +v -0.875000 3.750000 -1.125000 +v -1.125000 3.750000 -0.875000 +v -1.125000 3.750000 -1.125000 +v -1.125000 4.000000 -1.125000 +v -1.125000 4.000000 -0.875000 +v -0.875000 4.000000 -1.125000 +v -0.875000 4.000000 -0.875000 +v 0.875000 4.000000 -1.125000 +v 0.875000 4.000000 -0.875000 +v 1.125000 4.000000 -1.125000 +v 1.125000 4.000000 -0.875000 +v -1.125000 4.000000 0.875000 +v -1.125000 4.000000 1.125000 +v -0.875000 4.000000 0.875000 +v -0.875000 4.000000 1.125000 +v 0.875000 4.000000 0.875000 +v 0.875000 4.000000 1.125000 +v 1.125000 4.000000 0.875000 +v 1.125000 4.000000 1.125000 +v -0.875000 8.750000 0.875000 +v 0.875000 8.750000 0.875000 +v -0.875000 8.750000 -0.875000 +v 0.875000 8.750000 -0.875000 +v -0.500000 9.000000 -0.500000 +v -0.500000 9.000000 0.500000 +v 0.500000 9.000000 0.500000 +v 0.500000 9.000000 -0.500000 +v -0.875000 9.000000 -0.875000 +v -0.875000 9.000000 0.875000 +v 0.875000 9.000000 0.875000 +v 0.875000 9.000000 -0.875000 +v -0.500000 8.750000 -0.500000 +v -0.500000 8.750000 0.500000 +v 0.500000 8.750000 0.500000 +v 0.500000 8.750000 -0.500000 +v -0.500000 9.000000 -0.500000 +v 0.500000 9.000000 -0.500000 +v -0.500000 9.250000 -0.500000 +v 0.500000 9.250000 -0.500000 +v -0.250000 9.500000 -0.500000 +v 0.250000 9.500000 -0.500000 +v -0.500000 9.000000 -0.750000 +v 0.500000 9.000000 -0.750000 +v -0.500000 9.250000 -0.750000 +v 0.500000 9.250000 -0.750000 +v -0.250000 9.500000 -0.750000 +v 0.250000 9.500000 -0.750000 +v -0.500000 9.000000 0.750000 +v 0.500000 9.000000 0.750000 +v -0.500000 9.250000 0.750000 +v 0.500000 9.250000 0.750000 +v -0.250000 9.500000 0.750000 +v 0.250000 9.500000 0.750000 +v -0.500000 9.000000 0.500000 +v 0.500000 9.000000 0.500000 +v -0.500000 9.250000 0.500000 +v 0.500000 9.250000 0.500000 +v -0.250000 9.500000 0.500000 +v 0.250000 9.500000 0.500000 +v 0.000000 9.750000 0.500000 +v -0.187500 9.699759 0.500000 +v -0.324759 9.562500 0.500000 +v -0.375000 9.375000 0.500000 +v -0.324759 9.187500 0.500000 +v -0.187500 9.050241 0.500000 +v 0.000000 9.000000 0.500000 +v 0.187500 9.050241 0.500000 +v 0.324759 9.187500 0.500000 +v 0.375000 9.375000 0.500000 +v 0.324759 9.562500 0.500000 +v 0.187500 9.699759 0.500000 +v -0.187500 9.699759 0.375000 +v 0.000000 9.750000 0.375000 +v -0.324759 9.562500 0.375000 +v -0.375000 9.375000 0.375000 +v -0.324759 9.187500 0.375000 +v -0.187500 9.050241 0.375000 +v 0.000000 9.000000 0.375000 +v 0.187500 9.050241 0.375000 +v 0.324759 9.187500 0.375000 +v 0.375000 9.375000 0.375000 +v 0.324759 9.562500 0.375000 +v 0.187500 9.699759 0.375000 +v 0.000000 9.625000 0.375000 +v -0.125000 9.591506 0.375000 +v -0.216506 9.500000 0.375000 +v -0.250000 9.375000 0.375000 +v -0.216506 9.250000 0.375000 +v -0.125000 9.158494 0.375000 +v 0.000000 9.125000 0.375000 +v 0.125000 9.158494 0.375000 +v 0.216506 9.250000 0.375000 +v 0.250000 9.375000 0.375000 +v 0.216506 9.500000 0.375000 +v 0.125000 9.591506 0.375000 +v 0.000000 9.625000 -0.375000 +v -0.125000 9.591506 -0.375000 +v -0.216506 9.500000 -0.375000 +v -0.250000 9.375000 -0.375000 +v -0.216506 9.250000 -0.375000 +v -0.125000 9.158494 -0.375000 +v 0.000000 9.125000 -0.375000 +v 0.125000 9.158494 -0.375000 +v 0.216506 9.250000 -0.375000 +v 0.250000 9.375000 -0.375000 +v 0.216506 9.500000 -0.375000 +v 0.125000 9.591506 -0.375000 +v -0.250000 1.000000 -0.250000 +v -0.250000 1.000000 0.250000 +v 0.250000 1.000000 0.250000 +v 0.250000 1.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.000000 -0.250000 +v -0.312500 4.000000 -0.312500 +v -0.312500 4.000000 0.312500 +v 0.312500 4.000000 0.312500 +v 0.312500 4.000000 -0.312500 +v -0.312500 4.125000 -0.312500 +v -0.312500 4.125000 0.312500 +v 0.312500 4.125000 0.312500 +v 0.312500 4.125000 -0.312500 +v -0.250000 4.187500 -0.250000 +v -0.250000 4.187500 0.250000 +v 0.250000 4.187500 0.250000 +v 0.250000 4.187500 -0.250000 +v -0.250000 4.375000 -0.250000 +v -0.250000 4.375000 0.250000 +v 0.250000 4.375000 0.250000 +v 0.250000 4.375000 -0.250000 +v -0.062500 4.375000 0.250000 +v 0.062500 4.375000 0.250000 +v -0.062500 4.375000 -0.250000 +v 0.062500 4.375000 -0.250000 +v -0.062500 4.750000 -0.250000 +v -0.062500 4.750000 0.250000 +v 0.062500 4.750000 0.250000 +v 0.062500 4.750000 -0.250000 +v -0.062500 4.375000 0.125000 +v -0.062500 4.625000 0.125000 +v -0.062500 4.375000 -0.125000 +v -0.062500 4.625000 -0.125000 +v 0.062500 4.375000 0.125000 +v 0.062500 4.625000 0.125000 +v 0.062500 4.375000 -0.125000 +v 0.062500 4.625000 -0.125000 +v -0.125000 5.250000 -0.125000 +v -0.125000 5.250000 0.125000 +v 0.125000 5.250000 0.125000 +v 0.125000 5.250000 -0.125000 +v -0.312500 6.000000 -0.125000 +v -0.312500 6.000000 0.125000 +v 0.312500 6.000000 0.125000 +v 0.312500 6.000000 -0.125000 +v -0.125000 4.625000 0.062500 +v 0.125000 4.625000 0.062500 +v -0.125000 4.625000 -0.062500 +v 0.125000 4.625000 -0.062500 +v -0.187500 4.687500 0.062500 +v 0.187500 4.687500 0.062500 +v -0.187500 4.687500 -0.062500 +v 0.187500 4.687500 -0.062500 +v -0.187500 4.937500 0.062500 +v -0.187500 4.937500 -0.062500 +v 0.062500 5.000000 0.062500 +v 0.062500 5.000000 -0.062500 +v 0.062500 5.500000 0.062500 +v 0.062500 5.500000 -0.062500 +v -0.062500 5.500000 0.062500 +v -0.062500 5.500000 -0.062500 +v -0.062500 5.125000 0.062500 +v -0.062500 5.125000 -0.062500 +v -0.312500 4.937500 0.062500 +v -0.312500 4.937500 -0.062500 +v -0.312500 4.687500 0.062500 +v -0.312500 4.687500 -0.062500 +v -0.125000 4.500000 0.062500 +v -0.125000 4.500000 -0.062500 +v 0.125000 4.500000 0.062500 +v 0.125000 4.500000 -0.062500 +v 0.312500 4.687500 0.062500 +v 0.312500 4.687500 -0.062500 +v 0.187500 6.000000 0.031250 +v 0.250000 6.000000 0.031250 +v 0.187500 6.000000 -0.031250 +v 0.250000 6.000000 -0.031250 +v 0.187500 9.375000 0.031250 +v 0.250000 9.375000 0.031250 +v 0.187500 9.375000 -0.031250 +v 0.250000 9.375000 -0.031250 +v -0.250000 6.000000 0.031250 +v -0.187500 6.000000 0.031250 +v -0.250000 6.000000 -0.031250 +v -0.187500 6.000000 -0.031250 +v -0.250000 9.375000 0.031250 +v -0.187500 9.375000 0.031250 +v -0.250000 9.375000 -0.031250 +v -0.187500 9.375000 -0.031250 +v -1.062500 2.687500 1.031250 +v 1.187500 1.875000 1.125000 +v -1.062500 2.812500 1.031250 +v 1.187500 2.000000 1.125000 +v -0.937500 3.625000 0.937500 +v 1.062500 2.812500 1.000000 +v -0.937500 3.750000 0.937500 +v 1.062500 2.937500 1.000000 +v -1.062500 2.812500 1.156250 +v -1.062500 2.687500 1.156250 +v 1.187500 1.875000 1.250000 +v 1.187500 2.000000 1.250000 +v -0.937500 3.750000 1.062500 +v -0.937500 3.625000 1.062500 +v 1.062500 2.812500 1.125000 +v 1.062500 2.937500 1.125000 +v -1.187500 1.750000 1.125000 +v 1.312500 0.937500 1.218750 +v -1.187500 1.875000 1.125000 +v 1.312500 1.062500 1.218750 +v -1.187500 1.875000 1.250000 +v -1.187500 1.750000 1.250000 +v 1.312500 0.937500 1.343750 +v 1.312500 1.062500 1.343750 +v 1.187500 1.750000 1.125000 +v -1.312500 0.937500 1.218750 +v 1.187500 1.875000 1.125000 +v -1.312500 1.062500 1.218750 +v 1.062500 2.687500 1.031250 +v -1.187500 1.875000 1.125000 +v 1.062500 2.812500 1.031250 +v -1.187500 2.000000 1.125000 +v 0.937500 3.625000 0.937500 +v -1.062500 2.812500 1.000000 +v 0.937500 3.750000 0.937500 +v -1.062500 2.937500 1.000000 +v 1.187500 1.875000 1.250000 +v 1.187500 1.750000 1.250000 +v -1.312500 0.937500 1.343750 +v -1.312500 1.062500 1.343750 +v 1.062500 2.812500 1.156250 +v 1.062500 2.687500 1.156250 +v -1.187500 1.875000 1.250000 +v -1.187500 2.000000 1.250000 +v 0.937500 3.750000 1.062500 +v 0.937500 3.625000 1.062500 +v -1.062500 2.812500 1.125000 +v -1.062500 2.937500 1.125000 +v -0.125000 5.000000 0.062500 +v -0.125000 5.000000 -0.062500 +v -0.125000 5.125000 0.062500 +v -0.125000 5.125000 -0.062500 +v 1.000000 4.000000 1.062500 +v 1.000000 4.000000 0.937500 +v -0.937500 5.062500 0.937500 +v -0.937500 5.062500 0.812500 +v -0.937500 5.187500 0.937500 +v 1.000000 4.125000 1.062500 +v 1.000000 4.125000 0.937500 +v -0.937500 5.187500 0.812500 +v 0.937500 5.187500 0.937500 +v 0.937500 5.187500 0.812500 +v -0.812500 6.250000 0.875000 +v -0.812500 6.250000 0.750000 +v -0.812500 6.375000 0.875000 +v 0.937500 5.312500 0.937500 +v 0.937500 5.312500 0.812500 +v -0.812500 6.375000 0.750000 +v 0.812500 6.375000 0.875000 +v 0.812500 6.375000 0.750000 +v -0.750000 7.437500 0.750000 +v -0.750000 7.437500 0.625000 +v -0.750000 7.562500 0.750000 +v 0.812500 6.500000 0.875000 +v 0.812500 6.500000 0.750000 +v -0.750000 7.562500 0.625000 +v 0.750000 7.562500 0.750000 +v 0.750000 7.562500 0.625000 +v -0.687500 8.624999 0.687500 +v -0.687500 8.624999 0.562500 +v -0.687500 8.749999 0.687500 +v 0.750000 7.687500 0.750000 +v 0.750000 7.687500 0.625000 +v -0.687500 8.749999 0.562500 +v -1.000000 4.000000 1.062500 +v -1.000000 4.000000 0.937500 +v 0.937500 5.062500 0.937500 +v 0.937500 5.062500 0.812500 +v 0.937500 5.187500 0.937500 +v -1.000000 4.125000 1.062500 +v -1.000000 4.125000 0.937500 +v 0.937500 5.187500 0.812500 +v -0.937500 5.187500 0.937500 +v -0.937500 5.187500 0.812500 +v 0.812500 6.250000 0.875000 +v 0.812500 6.250000 0.750000 +v 0.812500 6.375000 0.875000 +v -0.937500 5.312500 0.937500 +v -0.937500 5.312500 0.812500 +v 0.812500 6.375000 0.750000 +v -0.812500 6.375000 0.875000 +v -0.812500 6.375000 0.750000 +v 0.750000 7.437500 0.750000 +v 0.750000 7.437500 0.625000 +v 0.750000 7.562500 0.750000 +v -0.812500 6.500000 0.875000 +v -0.812500 6.500000 0.750000 +v 0.750000 7.562500 0.625000 +v -0.750000 7.562500 0.750000 +v -0.750000 7.562500 0.625000 +v 0.687500 8.624999 0.687500 +v 0.687500 8.624999 0.562500 +v 0.687500 8.749999 0.687500 +v -0.750000 7.687500 0.750000 +v -0.750000 7.687500 0.625000 +v 0.687500 8.749999 0.562500 +v 0.000000 9.750000 -0.500000 +v 0.187500 9.699759 -0.500000 +v 0.324759 9.562500 -0.500000 +v 0.375000 9.375000 -0.500000 +v 0.324759 9.187500 -0.500000 +v 0.187500 9.050241 -0.500000 +v 0.000000 9.000000 -0.500000 +v -0.187500 9.050241 -0.500000 +v -0.324759 9.187500 -0.500000 +v -0.375000 9.375000 -0.500000 +v -0.324759 9.562500 -0.500000 +v -0.187500 9.699759 -0.500000 +v 0.187500 9.699759 -0.375000 +v 0.000000 9.750000 -0.375000 +v 0.324759 9.562500 -0.375000 +v 0.375000 9.375000 -0.375000 +v 0.324759 9.187500 -0.375000 +v 0.187500 9.050241 -0.375000 +v 0.000000 9.000000 -0.375000 +v -0.187500 9.050241 -0.375000 +v -0.324759 9.187500 -0.375000 +v -0.375000 9.375000 -0.375000 +v -0.324759 9.562500 -0.375000 +v -0.187500 9.699759 -0.375000 +v 1.062500 2.687500 -1.031250 +v -1.187500 1.875000 -1.125000 +v 1.062500 2.812500 -1.031250 +v -1.187500 2.000000 -1.125000 +v 0.937500 3.625000 -0.937500 +v -1.062500 2.812500 -1.000000 +v 0.937500 3.750000 -0.937500 +v -1.062500 2.937500 -1.000000 +v 1.062500 2.812500 -1.156250 +v 1.062500 2.687500 -1.156250 +v -1.187500 1.875000 -1.250000 +v -1.187500 2.000000 -1.250000 +v 0.937500 3.750000 -1.062500 +v 0.937500 3.625000 -1.062500 +v -1.062500 2.812500 -1.125000 +v -1.062500 2.937500 -1.125000 +v 1.187500 1.750000 -1.125000 +v -1.312500 0.937500 -1.218750 +v 1.187500 1.875000 -1.125000 +v -1.312500 1.062500 -1.218750 +v 1.187500 1.875000 -1.250000 +v 1.187500 1.750000 -1.250000 +v -1.312500 0.937500 -1.343750 +v -1.312500 1.062500 -1.343750 +v -1.187500 1.750000 -1.125000 +v 1.312500 0.937500 -1.218750 +v -1.187500 1.875000 -1.125000 +v 1.312500 1.062500 -1.218750 +v -1.062500 2.687500 -1.031250 +v 1.187500 1.875000 -1.125000 +v -1.062500 2.812500 -1.031250 +v 1.187500 2.000000 -1.125000 +v -0.937500 3.625000 -0.937500 +v 1.062500 2.812500 -1.000000 +v -0.937500 3.750000 -0.937500 +v 1.062500 2.937500 -1.000000 +v -1.187500 1.875000 -1.250000 +v -1.187500 1.750000 -1.250000 +v 1.312500 0.937500 -1.343750 +v 1.312500 1.062500 -1.343750 +v -1.062500 2.812500 -1.156250 +v -1.062500 2.687500 -1.156250 +v 1.187500 1.875000 -1.250000 +v 1.187500 2.000000 -1.250000 +v -0.937500 3.750000 -1.062500 +v -0.937500 3.625000 -1.062500 +v 1.062500 2.812500 -1.125000 +v 1.062500 2.937500 -1.125000 +v -1.000000 4.000000 -1.062500 +v -1.000000 4.000000 -0.937500 +v 0.937500 5.062500 -0.937500 +v 0.937500 5.062500 -0.812500 +v 0.937500 5.187500 -0.937500 +v -1.000000 4.125000 -1.062500 +v -1.000000 4.125000 -0.937500 +v 0.937500 5.187500 -0.812500 +v -0.937500 5.187500 -0.937500 +v -0.937500 5.187500 -0.812500 +v 0.812500 6.250000 -0.875000 +v 0.812500 6.250000 -0.750000 +v 0.812500 6.375000 -0.875000 +v -0.937500 5.312500 -0.937500 +v -0.937500 5.312500 -0.812500 +v 0.812500 6.375000 -0.750000 +v -0.812500 6.375000 -0.875000 +v -0.812500 6.375000 -0.750000 +v 0.750000 7.437500 -0.750000 +v 0.750000 7.437500 -0.625000 +v 0.750000 7.562500 -0.750000 +v -0.812500 6.500000 -0.875000 +v -0.812500 6.500000 -0.750000 +v 0.750000 7.562500 -0.625000 +v -0.750000 7.562500 -0.750000 +v -0.750000 7.562500 -0.625000 +v 0.687500 8.624999 -0.687500 +v 0.687500 8.624999 -0.562500 +v 0.687500 8.749999 -0.687500 +v -0.750000 7.687500 -0.750000 +v -0.750000 7.687500 -0.625000 +v 0.687500 8.749999 -0.562500 +v 1.000000 4.000000 -1.062500 +v 1.000000 4.000000 -0.937500 +v -0.937500 5.062500 -0.937500 +v -0.937500 5.062500 -0.812500 +v -0.937500 5.187500 -0.937500 +v 1.000000 4.125000 -1.062500 +v 1.000000 4.125000 -0.937500 +v -0.937500 5.187500 -0.812500 +v 0.937500 5.187500 -0.937500 +v 0.937500 5.187500 -0.812500 +v -0.812500 6.250000 -0.875000 +v -0.812500 6.250000 -0.750000 +v -0.812500 6.375000 -0.875000 +v 0.937500 5.312500 -0.937500 +v 0.937500 5.312500 -0.812500 +v -0.812500 6.375000 -0.750000 +v 0.812500 6.375000 -0.875000 +v 0.812500 6.375000 -0.750000 +v -0.750000 7.437500 -0.750000 +v -0.750000 7.437500 -0.625000 +v -0.750000 7.562500 -0.750000 +v 0.812500 6.500000 -0.875000 +v 0.812500 6.500000 -0.750000 +v -0.750000 7.562500 -0.625000 +v 0.750000 7.562500 -0.750000 +v 0.750000 7.562500 -0.625000 +v -0.687500 8.624999 -0.687500 +v -0.687500 8.624999 -0.562500 +v -0.687500 8.749999 -0.687500 +v 0.750000 7.687500 -0.750000 +v 0.750000 7.687500 -0.625000 +v -0.687500 8.749999 -0.562500 +v 1.031250 2.687500 1.062500 +v 1.125000 1.875000 -1.187500 +v 1.031250 2.812500 1.062500 +v 1.125000 2.000000 -1.187500 +v 0.937500 3.625000 0.937500 +v 1.000000 2.812500 -1.062500 +v 0.937500 3.750000 0.937500 +v 1.000000 2.937500 -1.062500 +v 1.156250 2.812500 1.062500 +v 1.156250 2.687500 1.062500 +v 1.250000 1.875000 -1.187500 +v 1.250000 2.000000 -1.187500 +v 1.062500 3.750000 0.937500 +v 1.062500 3.625000 0.937500 +v 1.125000 2.812500 -1.062500 +v 1.125000 2.937500 -1.062500 +v 1.125000 1.750000 1.187500 +v 1.218750 0.937500 -1.312500 +v 1.125000 1.875000 1.187500 +v 1.218750 1.062500 -1.312500 +v 1.250000 1.875000 1.187500 +v 1.250000 1.750000 1.187500 +v 1.343750 0.937500 -1.312500 +v 1.343750 1.062500 -1.312500 +v 1.125000 1.750000 -1.187500 +v 1.218750 0.937500 1.312500 +v 1.125000 1.875000 -1.187500 +v 1.218750 1.062500 1.312500 +v 1.031250 2.687500 -1.062500 +v 1.125000 1.875000 1.187500 +v 1.031250 2.812500 -1.062500 +v 1.125000 2.000000 1.187500 +v 0.937500 3.625000 -0.937500 +v 1.000000 2.812500 1.062500 +v 0.937500 3.750000 -0.937500 +v 1.000000 2.937500 1.062500 +v 1.250000 1.875000 -1.187500 +v 1.250000 1.750000 -1.187500 +v 1.343750 0.937500 1.312500 +v 1.343750 1.062500 1.312500 +v 1.156250 2.812500 -1.062500 +v 1.156250 2.687500 -1.062500 +v 1.250000 1.875000 1.187500 +v 1.250000 2.000000 1.187500 +v 1.062500 3.750000 -0.937500 +v 1.062500 3.625000 -0.937500 +v 1.125000 2.812500 1.062500 +v 1.125000 2.937500 1.062500 +v 1.062500 4.000000 -1.000000 +v 0.937500 4.000000 -1.000000 +v 0.937500 5.062499 0.937500 +v 0.812500 5.062499 0.937500 +v 0.937500 5.187499 0.937500 +v 1.062500 4.124999 -1.000000 +v 0.937500 4.124999 -1.000000 +v 0.812500 5.187499 0.937500 +v 0.937500 5.187499 -0.937500 +v 0.812500 5.187499 -0.937500 +v 0.875000 6.249999 0.812500 +v 0.750000 6.249999 0.812500 +v 0.875000 6.374999 0.812500 +v 0.937500 5.312499 -0.937500 +v 0.812500 5.312499 -0.937500 +v 0.750000 6.374999 0.812500 +v 0.875000 6.374999 -0.812500 +v 0.750000 6.374999 -0.812500 +v 0.750000 7.437499 0.750000 +v 0.625000 7.437499 0.750000 +v 0.750000 7.562499 0.750000 +v 0.875000 6.499999 -0.812500 +v 0.750000 6.499999 -0.812500 +v 0.625000 7.562499 0.750000 +v 0.750000 7.562499 -0.750000 +v 0.625000 7.562499 -0.750000 +v 0.687500 8.624998 0.687500 +v 0.562500 8.624998 0.687500 +v 0.687500 8.749998 0.687500 +v 0.750000 7.687499 -0.750000 +v 0.625000 7.687499 -0.750000 +v 0.562500 8.749998 0.687500 +v 1.062500 4.000000 1.000000 +v 0.937500 4.000000 1.000000 +v 0.937500 5.062499 -0.937500 +v 0.812500 5.062499 -0.937500 +v 0.937500 5.187499 -0.937500 +v 1.062500 4.124999 1.000000 +v 0.937500 4.124999 1.000000 +v 0.812500 5.187499 -0.937500 +v 0.937500 5.187499 0.937500 +v 0.812500 5.187499 0.937500 +v 0.875000 6.249999 -0.812500 +v 0.750000 6.249999 -0.812500 +v 0.875000 6.374999 -0.812500 +v 0.937500 5.312499 0.937500 +v 0.812500 5.312499 0.937500 +v 0.750000 6.374999 -0.812500 +v 0.875000 6.374999 0.812500 +v 0.750000 6.374999 0.812500 +v 0.750000 7.437499 -0.750000 +v 0.625000 7.437499 -0.750000 +v 0.750000 7.562499 -0.750000 +v 0.875000 6.499999 0.812500 +v 0.750000 6.499999 0.812500 +v 0.625000 7.562499 -0.750000 +v 0.750000 7.562499 0.750000 +v 0.625000 7.562499 0.750000 +v 0.687500 8.624998 -0.687500 +v 0.562500 8.624998 -0.687500 +v 0.687500 8.749998 -0.687500 +v 0.750000 7.687499 0.750000 +v 0.625000 7.687499 0.750000 +v 0.562500 8.749998 -0.687500 +v -1.031250 2.687500 -1.062500 +v -1.125000 1.875000 1.187500 +v -1.031250 2.812500 -1.062500 +v -1.125000 2.000000 1.187500 +v -0.937500 3.625000 -0.937500 +v -1.000000 2.812500 1.062500 +v -0.937500 3.750000 -0.937500 +v -1.000000 2.937500 1.062500 +v -1.156250 2.812500 -1.062500 +v -1.156250 2.687500 -1.062500 +v -1.250000 1.875000 1.187500 +v -1.250000 2.000000 1.187500 +v -1.062500 3.750000 -0.937500 +v -1.062500 3.625000 -0.937500 +v -1.125000 2.812500 1.062500 +v -1.125000 2.937500 1.062500 +v -1.125000 1.750000 -1.187500 +v -1.218750 0.937500 1.312500 +v -1.125000 1.875000 -1.187500 +v -1.218750 1.062500 1.312500 +v -1.250000 1.875000 -1.187500 +v -1.250000 1.750000 -1.187500 +v -1.343750 0.937500 1.312500 +v -1.343750 1.062500 1.312500 +v -1.125000 1.750000 1.187500 +v -1.218750 0.937500 -1.312500 +v -1.125000 1.875000 1.187500 +v -1.218750 1.062500 -1.312500 +v -1.031250 2.687500 1.062500 +v -1.125000 1.875000 -1.187500 +v -1.031250 2.812500 1.062500 +v -1.125000 2.000000 -1.187500 +v -0.937500 3.625000 0.937500 +v -1.000000 2.812500 -1.062500 +v -0.937500 3.750000 0.937500 +v -1.000000 2.937500 -1.062500 +v -1.250000 1.875000 1.187500 +v -1.250000 1.750000 1.187500 +v -1.343750 0.937500 -1.312500 +v -1.343750 1.062500 -1.312500 +v -1.156250 2.812500 1.062500 +v -1.156250 2.687500 1.062500 +v -1.250000 1.875000 -1.187500 +v -1.250000 2.000000 -1.187500 +v -1.062500 3.750000 0.937500 +v -1.062500 3.625000 0.937500 +v -1.125000 2.812500 -1.062500 +v -1.125000 2.937500 -1.062500 +v -1.062500 4.000000 1.000000 +v -0.937500 4.000000 1.000000 +v -0.937500 5.062499 -0.937500 +v -0.812500 5.062499 -0.937500 +v -0.937500 5.187499 -0.937500 +v -1.062500 4.124999 1.000000 +v -0.937500 4.124999 1.000000 +v -0.812500 5.187499 -0.937500 +v -0.937500 5.187499 0.937500 +v -0.812500 5.187499 0.937500 +v -0.875000 6.249999 -0.812500 +v -0.750000 6.249999 -0.812500 +v -0.875000 6.374999 -0.812500 +v -0.937500 5.312499 0.937500 +v -0.812500 5.312499 0.937500 +v -0.750000 6.374999 -0.812500 +v -0.875000 6.374999 0.812500 +v -0.750000 6.374999 0.812500 +v -0.750000 7.437499 -0.750000 +v -0.625000 7.437499 -0.750000 +v -0.750000 7.562499 -0.750000 +v -0.875000 6.499999 0.812500 +v -0.750000 6.499999 0.812500 +v -0.625000 7.562499 -0.750000 +v -0.750000 7.562499 0.750000 +v -0.625000 7.562499 0.750000 +v -0.687500 8.624998 -0.687500 +v -0.562500 8.624998 -0.687500 +v -0.687500 8.749998 -0.687500 +v -0.750000 7.687499 0.750000 +v -0.625000 7.687499 0.750000 +v -0.562500 8.749998 -0.687500 +v -1.062500 4.000000 -1.000000 +v -0.937500 4.000000 -1.000000 +v -0.937500 5.062499 0.937500 +v -0.812500 5.062499 0.937500 +v -0.937500 5.187499 0.937500 +v -1.062500 4.124999 -1.000000 +v -0.937500 4.124999 -1.000000 +v -0.812500 5.187499 0.937500 +v -0.937500 5.187499 -0.937500 +v -0.812500 5.187499 -0.937500 +v -0.875000 6.249999 0.812500 +v -0.750000 6.249999 0.812500 +v -0.875000 6.374999 0.812500 +v -0.937500 5.312499 -0.937500 +v -0.812500 5.312499 -0.937500 +v -0.750000 6.374999 0.812500 +v -0.875000 6.374999 -0.812500 +v -0.750000 6.374999 -0.812500 +v -0.750000 7.437499 0.750000 +v -0.625000 7.437499 0.750000 +v -0.750000 7.562499 0.750000 +v -0.875000 6.499999 -0.812500 +v -0.750000 6.499999 -0.812500 +v -0.625000 7.562499 0.750000 +v -0.750000 7.562499 -0.750000 +v -0.625000 7.562499 -0.750000 +v -0.687500 8.624998 0.687500 +v -0.562500 8.624998 0.687500 +v -0.687500 8.749998 0.687500 +v -0.750000 7.687499 -0.750000 +v -0.625000 7.687499 -0.750000 +v -0.562500 8.749998 0.687500 +vt 0.580645 0.090909 +vt 0.709677 0.272727 +vt 0.580645 0.272727 +vt 0.709677 0.454545 +vt 0.580645 0.636364 +vt 0.580645 0.454545 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.709677 0.272727 +vt 0.580645 0.454545 +vt 0.580645 0.272727 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.306452 0.431818 +vt 0.258065 0.045455 +vt 0.306452 0.113636 +vt 0.580645 0.045455 +vt 0.532258 0.113636 +vt 0.580645 0.500000 +vt 0.532258 0.431818 +vt 0.258065 0.500000 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.258065 0.045455 +vt 0.580645 0.000000 +vt 0.580645 0.045455 +vt 0.580645 0.000000 +vt 0.532258 0.386364 +vt 0.306452 0.431818 +vt 0.532258 0.386364 +vt 0.532258 0.431818 +vt 0.258065 0.045455 +vt 0.532258 0.113636 +vt 0.306452 0.113636 +vt 0.580645 0.045455 +vt 0.532258 0.431818 +vt 0.580645 0.500000 +vt 0.306452 0.431818 +vt 0.258065 0.500000 +vt 0.032258 0.045455 vt -0.000000 -0.000000 -vt 0.125000 0.000000 -vt 0.166667 0.406250 -vt 0.166667 0.000000 -vt 0.166667 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.291667 -vt 0.468750 0.510417 -vt 0.468750 0.510417 -vt 0.680691 0.381809 -vt 0.686501 0.395833 -vt 0.680691 0.409858 -vt 0.652642 0.409858 -vt 0.652642 0.381809 -vt 0.583333 0.000000 -vt 0.583333 0.166667 -vt 0.750000 0.166667 -vt 0.750000 -0.000000 -vt 0.625000 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 0.958333 -vt 0.458333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.458333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 1.000000 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.708333 0.958333 -vt 0.416667 1.000000 -vt 0.385417 0.000000 -vt 0.416667 0.000000 -vt 0.385417 1.000000 -vt 0.354167 0.000000 -vt 0.197917 1.000000 -vt 0.166667 0.000000 -vt 0.197917 0.000000 -vt 0.229167 1.000000 -vt 0.229167 0.000000 -vt 0.260417 1.000000 -vt 0.260417 0.000000 -vt 0.291667 1.000000 -vt 0.291667 0.000000 -vt 0.322917 1.000000 -vt 0.322917 0.000000 -vt 0.354167 1.000000 -vt 0.666667 0.166667 -vt 0.645833 0.291667 -vt 0.645833 0.166667 -vt 0.708333 0.166667 -vt 0.687500 0.291667 -vt 0.687500 0.166667 -vt 0.729167 0.166667 -vt 0.708333 0.291667 -vt 0.604167 0.166667 -vt 0.583333 0.291667 -vt 0.583333 0.166667 -vt 0.625000 0.291667 -vt 0.625000 0.166667 -vt 0.666667 0.291667 -vt 0.750000 0.166667 -vt 0.729167 0.291667 -vt 0.604167 0.291667 -vt 0.166667 1.000000 -vt 0.750000 0.291667 +vt 0.032258 0.000000 +vt 0.032258 0.000000 +vt -0.000000 0.045455 +vt -0.000000 -0.000000 +vt -0.000000 0.045455 +vt 0.032258 0.000000 +vt 0.032258 0.045455 +vt -0.000000 -0.000000 +vt 0.032258 0.045455 +vt -0.000000 0.045455 +vt -0.000000 0.045455 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.064516 0.727273 +vt 0.064516 0.045455 +vt 0.064516 0.727273 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.096774 0.045455 +vt 0.032258 0.727273 +vt -0.000000 0.727273 +vt 0.032258 0.045455 +vt 0.064516 0.727273 +vt 0.032258 0.727273 +vt 0.096774 0.045455 +vt 0.064516 0.727273 +vt 0.064516 0.045455 +vt -0.000000 0.727273 +vt 0.064516 0.045455 +vt 0.064516 0.045455 +vt 0.129032 0.045455 +vt 0.096774 0.727273 +vt 0.193548 0.863636 +vt 0.161290 -0.000000 +vt 0.193548 -0.000000 +vt 0.129032 0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.863636 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.225806 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.161290 -0.000000 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.193548 -0.000000 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.225806 0.863636 +vt 0.161290 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.225806 0.863636 +vt 0.258065 0.000000 +vt 0.258065 0.863636 +vt 0.193548 0.863636 +vt 0.225806 -0.000000 +vt 0.161290 -0.000000 +vt 0.193548 -0.000000 +vt 0.161290 0.863636 +vt 0.129032 0.000000 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.483871 0.500000 +vt 0.258065 0.545455 +vt 0.258065 0.500000 +vt 0.306452 0.795455 +vt 0.306452 0.613636 +vt 0.483871 0.545455 +vt 0.435484 0.613636 +vt 0.483871 0.863636 +vt 0.435484 0.795455 +vt 0.258065 0.863636 +vt 0.483871 0.863636 +vt 0.435484 0.613636 +vt 0.483871 0.545455 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.435484 0.750000 +vt 0.306452 0.795455 +vt 0.435484 0.750000 +vt 0.435484 0.795455 +vt 0.258065 0.545455 +vt 0.306452 0.613636 +vt 0.258065 0.863636 +vt 0.435484 0.795455 +vt 0.306452 0.795455 +vt 0.338710 0.113636 +vt 0.467742 0.113636 +vt 0.435484 0.204545 +vt 0.338710 0.250000 +vt 0.370968 0.204545 +vt 0.370968 0.250000 +vt 0.435484 0.204545 +vt 0.435484 0.250000 +vt 0.467742 0.250000 +vt 0.500000 0.204545 +vt 0.500000 0.250000 +vt 0.467742 0.204545 +vt 0.306452 0.250000 +vt 0.338710 0.204545 +vt 0.338710 0.113636 +vt 0.467742 0.113636 +vt 0.467742 0.204545 +vt 0.435484 0.250000 +vt 0.370968 0.250000 +vt 0.370968 0.204545 +vt 0.338710 0.204545 +vt 0.306452 0.250000 +vt 0.306452 0.204545 +vt 0.338710 0.250000 +vt 0.500000 0.204545 +vt 0.467742 0.250000 +vt 0.467742 0.340909 +vt 0.338710 0.340909 +vt 0.467742 0.340909 +vt 0.338710 0.340909 +vt 0.135602 0.897798 +vt 0.219237 0.897798 +vt 0.177419 0.999858 +vt 0.135602 0.965838 +vt 0.177419 0.863778 +vt 0.219237 0.965838 +vt 0.483871 0.500000 +vt 0.564516 0.613636 +vt 0.483871 0.613636 +vt 0.806452 0.818182 +vt 0.725806 0.863636 +vt 0.725806 0.818182 +vt 0.967742 0.090909 +vt 0.903226 0.636364 +vt 0.903226 0.090909 +vt 0.838710 0.090909 +vt 0.774194 0.636364 +vt 0.774194 0.090909 +vt 0.838710 0.636364 +vt 0.709677 0.636364 +vt 0.709677 0.090909 +vt 0.556452 0.647727 +vt 0.483871 0.636364 +vt 0.564516 0.636364 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.564516 0.613636 +vt 0.483871 0.636364 +vt 0.483871 0.613636 +vt 0.556452 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.556452 0.647727 +vt 0.564516 0.636364 +vt 0.564516 0.636364 +vt 0.556452 0.647727 +vt 0.564516 0.636364 +vt 0.556452 0.681818 +vt 0.491935 0.772727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.491935 0.681818 +vt 0.491935 0.647727 +vt 0.596774 0.704545 +vt 0.580645 0.795455 +vt 0.580645 0.704545 +vt 0.580645 0.863636 +vt 0.596774 0.795455 +vt 0.596774 0.863636 +vt 0.596774 0.636364 +vt 0.580645 0.636364 +vt 0.564516 0.681818 +vt 0.564516 0.636364 +vt 0.564516 0.818182 +vt 0.564516 0.772727 +vt 0.629032 0.863636 +vt 0.612903 0.818182 +vt 0.629032 0.818182 +vt 0.629032 0.681818 +vt 0.612903 0.636364 +vt 0.629032 0.636364 +vt 0.612903 0.681818 +vt 0.612903 0.772727 +vt 0.629032 0.727273 +vt 0.629032 0.772727 +vt 0.750000 0.636364 +vt 0.782258 0.681818 +vt 0.750000 0.681818 +vt 0.750000 1.000000 +vt 0.806452 0.863636 +vt 0.782258 1.000000 +vt 0.903226 0.863636 +vt 0.903226 0.818182 +vt 0.629032 0.818182 +vt 0.629032 0.863636 +vt 0.112903 0.738636 +vt 0.129032 0.784091 +vt 0.112903 0.784091 +vt 0.129032 0.727273 +vt 0.129032 0.738636 +vt 0.112903 0.795455 +vt 0.129032 0.795455 +vt 0.112903 0.840909 +vt 0.056452 0.863636 +vt 0.048387 0.829545 +vt 0.056452 0.840909 +vt 0.096774 0.840909 +vt 0.080645 0.931818 +vt 0.080645 0.840909 +vt 0.048387 0.931818 +vt 0.064516 0.863636 +vt 0.064516 0.931818 +vt 0.032258 0.829545 +vt 0.056452 0.840909 +vt 0.048387 0.829545 +vt 0.016129 0.829545 +vt 0.032258 0.784091 +vt 0.032258 0.829545 +vt 0.016129 0.784091 +vt 0.032258 0.750000 +vt 0.056452 0.727273 +vt 0.088710 0.750000 +vt 0.056452 0.750000 +vt 0.088710 0.727273 +vt 0.112903 0.750000 +vt 0.112903 0.784091 +vt 0.096774 0.806818 +vt 0.096774 0.784091 +vt 0.112903 0.784091 +vt 0.088710 0.772727 +vt 0.096774 0.784091 +vt 0.088710 0.750000 +vt 0.056452 0.772727 +vt 0.056452 0.750000 +vt 0.048387 0.784091 +vt 0.032258 0.784091 +vt 0.016129 0.863636 +vt 0.064516 0.863636 +vt 0.080645 0.931818 +vt 0.080645 0.840909 +vt 0.088710 0.772727 +vt 0.056452 0.772727 +vt 0.048387 0.784091 +vt 0.129032 0.840909 +vt 0.112903 0.852273 +vt 1.000000 0.613636 +vt 0.991935 0.000000 +vt 1.000000 0.000000 +vt 0.983871 0.613636 +vt 0.975806 0.000000 +vt 0.983871 0.000000 +vt 0.991935 0.613636 +vt 0.975806 0.613636 +vt 0.967742 0.000000 +vt 1.000000 0.613636 +vt 0.991935 0.000000 +vt 1.000000 0.000000 +vt 0.983871 0.613636 +vt 0.975806 0.000000 +vt 0.983871 0.000000 +vt 0.991935 0.613636 +vt 0.975806 0.613636 +vt 0.967742 0.000000 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.032258 0.875000 +vt 0.032258 0.863636 +vt 0.056452 0.863636 +vt 0.129032 0.886364 +vt 0.112903 0.886364 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.135602 0.897798 +vt 0.219237 0.897798 +vt 0.177419 0.999858 +vt 0.135602 0.965838 +vt 0.177419 0.863778 +vt 0.219237 0.965838 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.596774 0.090909 +vt 0.887097 0.068182 +vt 0.887097 0.090909 +vt 0.612903 0.090909 +vt 0.870968 0.068182 +vt 0.870968 0.090909 +vt 0.596774 0.022727 +vt 0.887097 0.045455 +vt 0.596774 0.045455 +vt 0.612903 0.022727 +vt 0.870968 0.045455 +vt 0.612903 0.045455 +vt 0.887097 -0.000000 +vt 0.596774 -0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.000000 +vt 0.580645 0.090909 +vt 0.903226 0.068182 +vt 0.903226 0.090909 +vt 0.580645 0.022727 +vt 0.903226 0.045455 +vt 0.580645 0.045455 +vt 0.903226 -0.000000 +vt 0.580645 -0.000000 +vt 0.903226 0.090909 +vt 0.580645 0.068182 +vt 0.903226 0.068182 +vt 0.887097 0.090909 +vt 0.596774 0.068182 +vt 0.887097 0.068182 +vt 0.870968 0.090909 +vt 0.612903 0.068182 +vt 0.870968 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.045455 +vt 0.580645 0.022727 +vt 0.887097 0.022727 +vt 0.596774 0.045455 +vt 0.596774 0.022727 +vt 0.870968 0.022727 +vt 0.612903 0.045455 +vt 0.612903 0.022727 +vt 0.903226 0.045455 +vt 0.887097 0.045455 +vt 0.870968 0.045455 +vt 0.580645 0.000000 +vt 0.903226 0.000000 +vt 0.596774 -0.000000 +vt 0.887097 -0.000000 +vt 0.612903 0.000000 +vt 0.870968 0.000000 +vt 0.612903 0.022727 +vt 0.862903 0.000000 +vt 0.862903 0.022727 +vt 0.862903 0.068182 +vt 0.612903 0.045455 +vt 0.862903 0.045455 +vt 0.854839 0.068182 +vt 0.629032 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.022727 +vt 0.854839 0.000000 +vt 0.854839 0.022727 +vt 0.612903 0.090909 +vt 0.862903 0.090909 +vt 0.629032 0.090909 +vt 0.854839 0.090909 +vt 0.846774 0.068182 +vt 0.645161 0.045455 +vt 0.846774 0.045455 +vt 0.645161 0.022727 +vt 0.846774 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.090909 +vt 0.846774 0.090909 +vt 0.838710 0.068182 +vt 0.653226 0.045455 +vt 0.838710 0.045455 +vt 0.653226 0.022727 +vt 0.838710 -0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.090909 +vt 0.838710 0.090909 +vt 0.612903 0.000000 +vt 0.862903 0.022727 +vt 0.612903 0.022727 +vt 0.862903 0.045455 +vt 0.612903 0.068182 +vt 0.612903 0.045455 +vt 0.854839 0.045455 +vt 0.629032 0.068182 +vt 0.629032 0.045455 +vt 0.629032 0.000000 +vt 0.854839 0.022727 +vt 0.629032 0.022727 +vt 0.862903 0.090909 +vt 0.612903 0.090909 +vt 0.854839 0.090909 +vt 0.629032 0.090909 +vt 0.846774 0.045455 +vt 0.645161 0.068182 +vt 0.645161 0.045455 +vt 0.645161 0.000000 +vt 0.846774 0.022727 +vt 0.645161 0.022727 +vt 0.846774 0.090909 +vt 0.645161 0.090909 +vt 0.838710 0.045455 +vt 0.653226 0.068182 +vt 0.653226 0.045455 +vt 0.653226 0.000000 +vt 0.838710 0.022727 +vt 0.653226 0.022727 +vt 0.838710 0.090909 +vt 0.653226 0.090909 +vt 0.709677 0.090909 +vt 0.709677 0.636364 +vt 0.709677 0.454545 +vt 0.709677 0.454545 +vt 0.709677 0.454545 +vt 0.258065 0.000000 +vt 0.258065 0.000000 +vt 0.306452 0.386364 +vt 0.306452 0.386364 +vt 0.258065 0.000000 +vt 0.258065 -0.000000 +vt 0.306452 0.386364 +vt 0.306452 0.386364 +vt -0.000000 -0.000000 +vt 0.032258 0.000000 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.727273 +vt 0.129032 0.863636 +vt 0.193548 -0.000000 +vt 0.129032 0.863636 +vt 0.129032 0.863636 +vt 0.306452 0.750000 +vt 0.483871 0.545455 +vt 0.483871 0.545455 +vt 0.483871 0.545455 +vt 0.306452 0.750000 +vt 0.306452 0.750000 +vt 0.306452 0.750000 +vt 0.467742 0.159091 +vt 0.338710 0.159091 +vt 0.306452 0.204545 +vt 0.467742 0.159091 +vt 0.338710 0.159091 +vt 0.500000 0.250000 +vt 0.338710 0.295455 +vt 0.467742 0.295455 +vt 0.338710 0.295455 +vt 0.467742 0.295455 +vt 0.153276 0.990742 +vt 0.135602 0.965838 +vt 0.129133 0.931818 +vt 0.153276 0.872894 +vt 0.177419 0.863778 +vt 0.201562 0.872894 +vt 0.225706 0.931818 +vt 0.219237 0.965838 +vt 0.201562 0.990742 +vt 0.201562 0.990743 +vt 0.177419 0.999858 +vt 0.153276 0.990742 +vt 0.129133 0.931818 +vt 0.135602 0.897798 +vt 0.153276 0.872894 +vt 0.201562 0.872894 +vt 0.219237 0.897798 +vt 0.225706 0.931818 +vt 0.564516 0.500000 +vt 0.967742 0.636364 +vt 0.556452 0.681818 +vt 0.556452 0.772727 +vt 0.556452 0.681818 +vt 0.556452 0.681818 +vt 0.564516 0.863636 +vt 0.564516 0.727273 +vt 0.612903 0.863636 +vt 0.612903 0.727273 +vt 0.782258 0.636364 +vt 0.112903 0.727273 +vt 0.096774 0.931818 +vt 0.048387 0.863636 +vt 0.016129 0.750000 +vt 0.112903 0.727273 +vt 0.112903 0.806818 +vt 0.064516 0.931818 +vt 0.129032 0.852273 +vt 0.967742 0.613636 +vt 0.967742 0.613636 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.016129 0.875000 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.153276 0.990742 +vt 0.135602 0.965838 +vt 0.129133 0.931818 +vt 0.153276 0.872894 +vt 0.177419 0.863778 +vt 0.201562 0.872894 +vt 0.225706 0.931818 +vt 0.219237 0.965838 +vt 0.201562 0.990742 +vt 0.201562 0.990743 +vt 0.177419 0.999858 +vt 0.153276 0.990742 +vt 0.129133 0.931818 +vt 0.135602 0.897798 +vt 0.153276 0.872894 +vt 0.201562 0.872894 +vt 0.219237 0.897798 +vt 0.225706 0.931818 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.596774 0.068182 +vt 0.612903 0.068182 +vt 0.887097 0.022727 +vt 0.870968 0.022727 +vt 0.580645 0.068182 +vt 0.903226 0.022727 +vt 0.580645 0.090909 +vt 0.596774 0.090909 +vt 0.612903 0.090909 +vt 0.612903 0.000000 +vt 0.612903 0.068182 +vt 0.629032 0.068182 +vt 0.629032 0.000000 +vt 0.645161 0.068182 +vt 0.645161 0.000000 +vt 0.653226 0.068182 +vt 0.653226 -0.000000 +vt 0.862903 0.000000 +vt 0.862903 0.068182 +vt 0.854839 0.068182 +vt 0.854839 0.000000 +vt 0.846774 0.068182 +vt 0.846774 0.000000 +vt 0.838710 0.068182 +vt 0.838710 0.000000 +vt 0.419355 0.863636 +vt 0.443548 0.886364 +vt 0.419355 0.886364 +vt 0.516129 0.863636 +vt 0.491935 0.886364 +vt 0.491935 0.863636 +vt 0.637097 0.863636 +vt 0.612903 0.886364 +vt 0.612903 0.863636 +vt 0.709677 0.863636 +vt 0.685484 0.886364 +vt 0.685484 0.863636 +vt 0.467742 0.886364 +vt 0.467742 0.863636 +vt 0.588710 0.886364 +vt 0.588710 0.863636 +vt 0.564516 0.863636 +vt 0.540323 0.886364 +vt 0.540323 0.863636 +vt 0.661290 0.886364 +vt 0.661290 0.863636 +vt 0.443548 0.863636 +vt 0.564516 0.886364 +vt 0.516129 0.886364 +vt 0.637097 0.886364 +vt 0.338710 1.000000 +vt 0.322581 0.863636 +vt 0.338710 0.863636 +vt 0.306452 1.000000 +vt 0.290323 0.863636 +vt 0.306452 0.863636 +vt 0.387097 1.000000 +vt 0.370968 0.863636 +vt 0.387097 0.863636 +vt 0.241935 1.000000 +vt 0.225806 0.863636 +vt 0.241935 0.863636 +vt 0.290323 1.000000 +vt 0.274194 0.863636 +vt 0.370968 1.000000 +vt 0.354839 0.863636 +vt 0.419355 1.000000 +vt 0.403226 0.863636 +vt 0.419355 0.863636 +vt 0.274194 1.000000 +vt 0.258065 0.863636 +vt 0.354839 1.000000 +vt 0.322581 1.000000 +vt 0.403226 1.000000 +vt 0.258065 1.000000 +vt 0.419355 0.863636 +vt 0.443548 0.886364 +vt 0.419355 0.886364 +vt 0.516129 0.863636 +vt 0.491935 0.886364 +vt 0.491935 0.863636 +vt 0.637097 0.863636 +vt 0.612903 0.886364 +vt 0.612903 0.863636 +vt 0.709677 0.863636 +vt 0.685484 0.886364 +vt 0.685484 0.863636 +vt 0.467742 0.886364 +vt 0.467742 0.863636 +vt 0.588710 0.886364 +vt 0.588710 0.863636 +vt 0.564516 0.863636 +vt 0.540323 0.886364 +vt 0.540323 0.863636 +vt 0.661290 0.886364 +vt 0.661290 0.863636 +vt 0.443548 0.863636 +vt 0.564516 0.886364 +vt 0.516129 0.886364 +vt 0.637097 0.886364 +vt 0.709677 0.886364 +vt 0.225806 1.000000 +vt 0.709677 0.886364 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.9864 -0.1644 0.0000 -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.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 -0.7809 -0.6247 -vn 0.0000 0.6757 -0.7372 -vn 0.0000 -0.6757 -0.7372 -vn 0.0000 0.7809 -0.6247 -vn -0.6247 0.7809 0.0000 -vn -0.7372 -0.6757 0.0000 -vn -0.7372 0.6757 0.0000 -vn -0.6247 -0.7809 0.0000 -vn 0.0000 0.7809 0.6247 -vn 0.0000 -0.6757 0.7372 -vn 0.0000 0.6757 0.7372 -vn 0.0000 -0.7809 0.6247 -vn 0.7372 0.6757 0.0000 -vn 0.6247 -0.7809 0.0000 -vn 0.6247 0.7809 0.0000 -vn 0.7372 -0.6757 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.5039 0.8638 -vn 0.0000 0.5039 0.8638 -vn -0.8638 0.5039 0.0000 -vn -0.8638 -0.5039 0.0000 -vn 0.0000 -0.5039 -0.8638 -vn 0.0000 0.5039 -0.8638 -vn 0.8638 -0.5039 0.0000 -vn 0.8638 0.5039 0.0000 -vn 0.0000 0.3736 0.9276 -vn 0.0000 0.3736 -0.9276 -vn 0.9276 0.3736 -0.0000 -vn 0.9276 -0.3736 -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.3736 -0.9276 -vn 0.0000 -0.3736 0.9276 -vn -0.9276 -0.3736 0.0000 -vn -0.9276 0.3736 0.0000 -vn -0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.7071 0.0000 0.7071 -vn 0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.9950 -0.0995 0.0000 +vn 0.0000 -0.0995 -0.9950 +vn 0.0000 0.0995 -0.9950 +vn 0.0000 0.0995 0.9950 +vn 0.0000 -0.0995 0.9950 +vn 0.9950 -0.0995 0.0000 +vn -0.9950 0.0995 0.0000 +vn 0.9950 0.0995 0.0000 +vn 0.0000 0.0787 0.9969 +vn -0.9969 -0.0787 0.0000 +vn 0.0000 -0.0787 -0.9969 +vn 0.9969 0.0787 0.0000 +vn 0.0000 -0.0787 0.9969 +vn 0.0000 0.0787 -0.9969 +vn -0.9969 0.0787 0.0000 +vn 0.9969 -0.0787 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.9701 -0.2425 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0312 0.0000 -0.9995 +vn -0.0416 0.0000 0.9991 +vn -0.0312 0.0000 0.9995 +vn 0.3396 0.9406 0.0000 +vn 0.3764 0.9265 0.0000 +vn -0.3396 -0.9406 0.0000 +vn -0.3764 -0.9265 0.0000 +vn 0.0375 0.0000 -0.9993 +vn -0.0375 0.0000 0.9993 +vn 0.3091 0.9510 0.0000 +vn -0.3091 -0.9510 0.0000 +vn -0.0375 0.0000 -0.9993 +vn -0.0416 0.0000 -0.9991 +vn -0.0312 0.0000 -0.9995 +vn 0.0375 0.0000 0.9993 +vn 0.0416 0.0000 0.9991 +vn 0.0312 0.0000 0.9995 +vn -0.3091 0.9510 0.0000 +vn -0.3396 0.9406 0.0000 +vn -0.3764 0.9265 0.0000 +vn 0.3091 -0.9510 0.0000 +vn 0.3396 -0.9406 0.0000 +vn 0.3764 -0.9265 0.0000 +vn -0.4808 -0.8768 0.0000 +vn 0.4808 0.8768 0.0000 +vn -0.0644 0.0000 0.9979 +vn 0.5190 0.8548 0.0000 +vn -0.5190 -0.8548 0.0000 +vn 0.0644 0.0000 -0.9979 +vn -0.0357 0.0000 0.9994 +vn 0.0357 0.0000 -0.9994 +vn 0.5623 0.8269 0.0000 +vn -0.5623 -0.8269 0.0000 +vn -0.0797 0.0000 0.9968 +vn 0.0797 0.0000 -0.9968 +vn 0.5944 0.8042 0.0000 +vn -0.5944 -0.8042 0.0000 +vn -0.0434 0.0000 0.9991 +vn 0.0434 0.0000 -0.9991 +vn 0.4808 -0.8768 0.0000 +vn -0.4808 0.8768 0.0000 +vn 0.0644 0.0000 0.9979 +vn -0.5190 0.8548 0.0000 +vn 0.5190 -0.8548 0.0000 +vn -0.0644 0.0000 -0.9979 +vn 0.0357 0.0000 0.9994 +vn -0.0357 0.0000 -0.9994 +vn -0.5623 0.8269 0.0000 +vn 0.5623 -0.8269 0.0000 +vn 0.0797 0.0000 0.9968 +vn -0.0797 0.0000 -0.9968 +vn -0.5944 0.8042 0.0000 +vn 0.5944 -0.8042 0.0000 +vn 0.0434 0.0000 0.9991 +vn -0.0434 0.0000 -0.9991 +vn -0.9991 0.0000 -0.0416 +vn -0.9995 0.0000 -0.0312 +vn 0.9991 0.0000 0.0416 +vn 0.9995 0.0000 0.0312 +vn 0.0000 0.9406 -0.3396 +vn 0.0000 0.9265 -0.3764 +vn 0.0000 -0.9406 0.3396 +vn 0.0000 -0.9265 0.3764 +vn -0.9993 0.0000 -0.0375 +vn 0.9993 0.0000 0.0375 +vn 0.0000 0.9510 -0.3091 +vn 0.0000 -0.9510 0.3091 +vn -0.9993 0.0000 0.0375 +vn -0.9991 0.0000 0.0416 +vn -0.9995 0.0000 0.0312 +vn 0.9993 0.0000 -0.0375 +vn 0.9991 0.0000 -0.0416 +vn 0.9995 0.0000 -0.0312 +vn 0.0000 0.9510 0.3091 +vn 0.0000 0.9406 0.3396 +vn 0.0000 0.9265 0.3764 +vn 0.0000 -0.9510 -0.3091 +vn 0.0000 -0.9406 -0.3396 +vn 0.0000 -0.9265 -0.3764 +vn 0.0000 -0.8768 0.4808 +vn 0.0000 0.8768 -0.4808 +vn 0.9979 0.0000 0.0644 +vn 0.0000 0.8548 -0.5190 +vn 0.0000 -0.8548 0.5190 +vn -0.9979 0.0000 -0.0644 +vn 0.9994 0.0000 0.0357 +vn -0.9994 0.0000 -0.0357 +vn 0.0000 0.8269 -0.5623 +vn 0.0000 -0.8269 0.5623 +vn 0.9968 0.0000 0.0797 +vn -0.9968 0.0000 -0.0797 +vn 0.0000 0.8042 -0.5944 +vn 0.0000 -0.8042 0.5944 +vn 0.9991 0.0000 0.0434 +vn -0.9991 0.0000 -0.0434 +vn 0.0000 -0.8768 -0.4808 +vn 0.0000 0.8768 0.4808 +vn 0.9979 0.0000 -0.0644 +vn 0.0000 0.8548 0.5190 +vn 0.0000 -0.8548 -0.5190 +vn -0.9979 0.0000 0.0644 +vn 0.9994 0.0000 -0.0357 +vn -0.9994 0.0000 0.0357 +vn 0.0000 0.8269 0.5623 +vn 0.0000 -0.8269 -0.5623 +vn 0.9968 0.0000 -0.0797 +vn -0.9968 0.0000 0.0797 +vn 0.0000 0.8042 0.5944 +vn -0.0000 -0.8042 -0.5944 +vn 0.9991 0.0000 -0.0434 +vn -0.9991 0.0000 0.0434 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 s off -f 6/1/1 9/2/1 11/3/1 -f 13/4/1 5/5/1 15/6/1 -f 7/7/1 14/8/1 16/9/1 -f 10/10/1 8/11/1 12/12/1 -f 17/13/2 20/14/2 18/15/2 -f 21/16/2 24/17/2 23/18/2 -f 28/19/2 26/20/2 25/21/2 -f 30/22/2 32/23/2 29/24/2 -f 78/25/3 24/26/3 79/27/3 -f 52/28/4 17/29/4 18/30/4 -f 63/31/4 32/32/4 60/33/4 -f 69/34/5 26/35/5 70/36/5 -f 52/28/6 20/37/6 57/38/6 -f 69/34/3 28/39/3 25/40/3 -f 56/41/7 57/42/7 19/43/7 -f 63/31/5 30/44/5 29/45/5 -f 78/25/6 21/46/6 23/47/6 -f 24/17/2 18/15/2 23/18/2 -f 26/20/2 23/18/2 25/21/2 -f 25/21/2 32/23/2 28/19/2 -f 29/24/2 20/14/2 30/22/2 -f 29/24/2 23/18/2 18/15/2 -f 35/48/1 34/49/1 33/50/1 -f 39/51/2 37/52/2 38/53/2 -f 35/54/8 40/55/8 36/56/8 -f 34/57/9 38/53/9 33/58/9 -f 36/59/10 39/60/10 34/61/10 -f 33/50/11 37/62/11 35/48/11 -f 43/63/2 41/64/2 47/65/2 -f 54/66/6 56/67/6 55/68/6 -f 53/69/6 57/38/6 56/67/6 -f 54/66/4 50/70/4 53/69/4 -f 53/69/4 51/71/4 52/28/4 -f 61/72/5 65/73/5 62/74/5 -f 62/74/5 66/75/5 63/31/5 -f 61/72/4 59/76/4 58/77/4 -f 62/74/4 60/33/4 59/76/4 -f 67/78/3 74/79/3 68/80/3 -f 68/80/3 73/81/3 69/34/3 -f 67/78/5 71/82/5 72/83/5 -f 68/80/5 70/36/5 71/82/5 -f 76/84/6 83/85/6 77/86/6 -f 77/86/6 82/87/6 78/25/6 -f 76/84/3 80/88/3 81/89/3 -f 77/86/3 79/27/3 80/88/3 -f 85/90/2 58/91/2 87/92/2 -f 68/93/2 59/94/2 74/95/2 -f 60/96/1 69/97/1 73/98/1 -f 63/99/1 57/100/1 52/101/1 -f 62/102/2 56/103/2 65/104/2 -f 64/105/2 90/106/2 92/107/2 -f 49/108/2 95/109/2 93/110/2 -f 77/111/1 50/112/1 80/113/1 -f 79/114/1 52/115/1 51/116/1 -f 70/117/1 78/118/1 82/119/1 -f 71/120/1 77/121/1 83/122/1 -f 99/123/2 67/124/2 72/125/2 -f 65/126/12 54/127/12 62/128/12 -f 57/129/13 62/102/13 52/130/13 -f 53/131/14 66/132/14 56/133/14 -f 61/134/15 56/103/15 64/105/15 -f 67/135/16 59/136/16 75/137/16 -f 62/102/17 73/98/17 59/138/17 -f 68/139/18 60/140/18 74/141/18 -f 74/142/19 61/134/19 68/143/19 -f 76/144/20 71/145/20 84/146/20 -f 68/139/21 82/119/21 71/120/21 -f 77/147/22 70/148/22 83/149/22 -f 83/122/23 67/135/23 77/121/23 -f 53/131/24 79/150/24 50/151/24 -f 76/144/25 50/152/25 81/153/25 -f 80/154/26 54/127/26 77/121/26 -f 77/147/27 51/155/27 80/156/27 -f 11/157/6 55/68/6 6/158/6 -f 19/43/28 51/71/28 50/70/28 -f 49/159/4 11/157/4 9/160/4 -f 22/161/28 1/162/28 81/163/28 -f 81/89/3 15/164/3 76/84/3 -f 15/164/6 84/165/6 76/84/6 -f 83/85/29 84/165/29 22/161/29 -f 75/166/3 16/167/3 14/168/3 -f 74/79/30 75/166/30 27/169/30 -f 16/167/5 72/83/5 7/170/5 -f 27/169/29 3/171/29 72/172/29 -f 12/173/5 64/174/5 61/72/5 -f 58/77/4 12/173/4 61/72/4 -f 59/175/30 60/176/30 31/177/30 -f 65/73/7 64/174/7 31/177/7 -f 69/178/31 21/179/31 70/117/31 -f 78/180/32 26/181/32 82/182/32 -f 69/178/33 32/183/33 73/184/33 -f 63/185/34 28/186/34 60/96/34 -f 52/187/35 30/188/35 57/189/35 -f 63/185/36 20/190/36 66/191/36 -f 78/180/37 17/192/37 79/193/37 -f 52/187/38 24/194/38 51/195/38 -f 76/196/2 100/197/2 84/198/2 -f 98/199/2 99/123/2 100/197/2 -f 94/200/2 76/201/2 81/202/2 -f 93/110/2 96/203/2 94/200/2 -f 55/204/2 89/205/2 54/206/2 -f 92/107/2 89/205/2 91/207/2 -f 67/208/2 88/209/2 75/210/2 -f 85/90/2 88/209/2 86/211/2 -f 11/212/39 91/213/39 89/214/39 -f 12/215/40 92/216/40 8/217/40 -f 12/218/41 87/219/41 85/220/41 -f 16/221/42 88/222/42 86/223/42 -f 16/221/40 99/224/40 97/225/40 -f 15/226/39 100/227/39 5/228/39 -f 15/226/42 94/229/42 13/230/42 -f 11/231/41 93/232/41 9/233/41 -f 108/234/43 103/235/43 104/236/43 -f 102/237/44 105/238/44 106/239/44 -f 118/240/2 109/241/2 111/242/2 -f 124/243/2 115/244/2 113/245/2 -f 123/246/1 116/247/1 119/248/1 -f 121/249/1 112/250/1 110/251/1 -f 124/252/45 119/253/45 120/254/45 -f 118/255/46 121/256/46 122/257/46 -f 104/258/2 109/259/2 108/260/2 -f 107/261/1 114/262/1 103/263/1 -f 101/264/1 112/265/1 105/266/1 -f 106/267/2 115/268/2 102/269/2 -f 116/270/44 120/271/44 119/272/44 -f 115/244/45 101/273/45 102/274/45 -f 105/275/46 111/242/46 106/276/46 -f 118/277/44 112/265/44 117/278/44 -f 110/279/43 122/280/43 121/281/43 -f 109/241/46 107/282/46 108/283/46 -f 114/284/45 104/285/45 103/286/45 -f 124/287/43 114/262/43 123/288/43 -f 139/289/2 137/290/2 135/291/2 -f 156/292/1 153/293/1 154/294/1 -f 160/295/1 157/296/1 159/297/1 -f 162/298/1 164/299/1 161/300/1 -f 168/301/1 166/302/1 165/303/1 -f 154/294/1 160/295/1 159/297/1 -f 159/297/1 162/298/1 161/300/1 -f 168/301/1 161/300/1 164/299/1 -f 156/292/1 165/303/1 166/302/1 -f 159/297/1 165/303/1 154/294/1 -f 205/304/1 178/305/1 181/306/1 -f 179/307/1 188/308/1 194/309/1 -f 189/310/2 180/311/2 193/312/2 -f 177/313/2 183/314/2 172/315/2 -f 176/316/1 182/317/1 185/318/1 -f 210/319/1 184/320/1 212/321/1 -f 215/322/1 169/323/1 213/324/1 -f 170/325/2 197/326/2 200/327/2 -f 172/328/2 199/329/2 171/330/2 -f 198/331/2 190/332/2 202/333/2 -f 197/334/2 191/335/2 203/336/2 -f 219/337/1 187/338/1 217/339/1 -f 174/340/20 185/341/20 182/342/20 -f 182/317/21 177/343/21 172/344/21 -f 186/345/22 173/346/22 176/347/22 -f 176/316/23 181/348/23 184/320/23 -f 179/349/25 187/350/25 195/351/25 -f 193/312/24 182/317/24 179/352/24 -f 188/353/27 180/354/27 183/355/27 -f 181/348/26 194/356/26 188/357/26 -f 191/358/12 196/359/12 204/360/12 -f 202/333/13 188/353/13 191/335/13 -f 197/361/14 190/362/14 189/310/14 -f 187/350/15 203/336/15 197/334/15 -f 199/363/17 173/346/17 170/364/17 -f 170/365/16 196/359/16 201/366/16 -f 174/340/19 200/367/19 197/334/19 -f 197/361/18 171/368/18 172/344/18 -f 157/369/36 189/370/36 190/332/36 -f 162/371/35 198/372/35 202/373/35 -f 168/374/37 189/370/37 193/375/37 -f 164/376/38 183/377/38 180/311/38 -f 166/378/32 172/379/32 177/380/32 -f 156/381/31 183/377/31 186/382/31 -f 153/383/33 198/372/33 199/384/33 -f 160/385/34 172/379/34 171/386/34 -f 220/387/1 196/388/1 204/389/1 -f 219/337/1 218/390/1 220/387/1 -f 196/391/1 214/392/1 201/393/1 -f 216/394/1 213/324/1 214/392/1 -f 175/395/1 209/396/1 211/397/1 -f 209/396/1 212/321/1 211/397/1 -f 187/398/1 208/399/1 206/400/1 -f 208/399/1 205/304/1 206/400/1 -f 211/401/47 147/402/47 209/403/47 -f 148/404/48 212/405/48 210/406/48 -f 207/407/49 148/408/49 205/409/49 -f 208/410/50 152/411/50 206/412/50 -f 219/413/48 152/411/48 217/414/48 -f 151/415/47 220/416/47 218/417/47 -f 151/415/50 214/418/50 216/419/50 -f 147/420/49 213/421/49 215/422/49 -f 6/1/1 2/423/1 9/2/1 -f 13/4/1 1/424/1 5/5/1 -f 7/7/1 3/425/1 14/8/1 -f 10/10/1 4/426/1 8/11/1 -f 17/13/2 19/427/2 20/14/2 -f 21/16/2 22/428/2 24/17/2 -f 28/19/2 27/429/2 26/20/2 -f 30/22/2 31/430/2 32/23/2 -f 78/25/3 23/47/3 24/26/3 -f 52/28/4 51/71/4 17/29/4 -f 63/31/4 29/45/4 32/32/4 -f 69/34/5 25/40/5 26/35/5 -f 52/28/6 18/30/6 20/37/6 -f 69/34/3 73/81/3 28/39/3 -f 19/43/7 2/431/7 55/432/7 -f 2/431/7 6/433/7 55/432/7 -f 19/43/7 55/432/7 56/41/7 -f 57/42/7 20/434/7 19/43/7 -f 63/31/5 66/75/5 30/44/5 -f 78/25/6 82/87/6 21/46/6 -f 24/17/2 17/13/2 18/15/2 -f 26/20/2 21/16/2 23/18/2 -f 25/21/2 29/24/2 32/23/2 -f 29/24/2 18/15/2 20/14/2 -f 29/24/2 25/21/2 23/18/2 -f 35/48/1 36/435/1 34/49/1 -f 39/51/2 40/436/2 37/52/2 -f 35/54/8 37/437/8 40/55/8 -f 34/57/9 39/51/9 38/53/9 -f 36/59/10 40/438/10 39/60/10 -f 33/50/11 38/439/11 37/62/11 -f 43/63/2 42/440/2 41/64/2 -f 41/64/2 48/441/2 47/65/2 -f 47/65/2 46/442/2 45/443/2 -f 45/443/2 44/444/2 47/65/2 -f 44/444/2 43/63/2 47/65/2 -f 54/66/6 53/69/6 56/67/6 -f 53/69/6 52/28/6 57/38/6 -f 54/66/4 49/159/4 50/70/4 -f 53/69/4 50/70/4 51/71/4 -f 61/72/5 64/174/5 65/73/5 -f 62/74/5 65/73/5 66/75/5 -f 61/72/4 62/74/4 59/76/4 -f 62/74/4 63/31/4 60/33/4 -f 67/78/3 75/166/3 74/79/3 -f 68/80/3 74/79/3 73/81/3 -f 67/78/5 68/80/5 71/82/5 -f 68/80/5 69/34/5 70/36/5 -f 76/84/6 84/165/6 83/85/6 -f 77/86/6 83/85/6 82/87/6 -f 76/84/3 77/86/3 80/88/3 -f 77/86/3 78/25/3 79/27/3 -f 85/90/2 61/445/2 58/91/2 -f 68/93/2 62/446/2 59/94/2 -f 60/96/1 63/185/1 69/97/1 -f 63/99/1 66/447/1 57/100/1 -f 62/102/2 53/448/2 56/103/2 -f 64/105/2 61/134/2 90/106/2 -f 49/108/2 54/127/2 95/109/2 -f 77/111/1 53/449/1 50/112/1 -f 79/114/1 78/450/1 52/115/1 -f 70/117/1 69/178/1 78/118/1 -f 71/120/1 68/139/1 77/121/1 -f 99/123/2 97/451/2 67/124/2 -f 65/126/12 55/452/12 54/127/12 -f 57/129/13 65/104/13 62/102/13 -f 53/131/14 63/453/14 66/132/14 -f 61/134/15 53/448/15 56/103/15 -f 67/135/16 62/128/16 59/136/16 -f 62/102/17 69/97/17 73/98/17 -f 68/139/18 63/453/18 60/140/18 -f 74/142/19 58/454/19 61/134/19 -f 76/144/20 68/143/20 71/145/20 -f 68/139/21 78/118/21 82/119/21 -f 77/147/22 69/97/22 70/148/22 -f 83/122/23 72/455/23 67/135/23 -f 53/131/24 78/118/24 79/150/24 -f 76/144/25 53/448/25 50/152/25 -f 80/154/26 49/108/26 54/127/26 -f 77/147/27 52/130/27 51/155/27 -f 11/157/6 54/66/6 55/68/6 -f 9/160/28 2/431/28 49/159/28 -f 2/431/28 19/43/28 49/159/28 -f 19/43/28 17/29/28 51/71/28 -f 50/70/28 49/159/28 19/43/28 -f 49/159/4 54/66/4 11/157/4 -f 1/162/28 13/456/28 81/163/28 -f 81/163/28 80/457/28 22/161/28 -f 80/457/28 79/458/28 22/161/28 -f 79/458/28 24/459/28 22/161/28 -f 81/89/3 13/460/3 15/164/3 -f 15/164/6 5/461/6 84/165/6 -f 84/165/29 5/461/29 1/162/29 -f 1/162/29 22/161/29 84/165/29 -f 22/161/29 21/46/29 82/87/29 -f 82/87/29 83/85/29 22/161/29 -f 75/166/3 67/78/3 16/167/3 -f 75/166/30 14/168/30 3/171/30 -f 3/171/30 27/169/30 75/166/30 -f 27/169/30 28/39/30 73/81/30 -f 73/81/30 74/79/30 27/169/30 -f 16/167/5 67/78/5 72/83/5 -f 3/171/29 7/462/29 72/172/29 -f 72/172/29 71/463/29 27/169/29 -f 71/463/29 70/464/29 27/169/29 -f 70/464/29 26/465/29 27/169/29 -f 12/173/5 8/466/5 64/174/5 -f 58/77/4 10/467/4 12/173/4 -f 31/177/30 4/468/30 58/469/30 -f 4/468/30 10/470/30 58/469/30 -f 31/177/30 58/469/30 59/175/30 -f 60/176/30 32/471/30 31/177/30 -f 8/466/7 4/468/7 64/174/7 -f 4/468/7 31/177/7 64/174/7 -f 31/177/7 30/44/7 66/75/7 -f 66/75/7 65/73/7 31/177/7 -f 69/178/31 23/472/31 21/179/31 -f 78/180/32 25/473/32 26/181/32 -f 69/178/33 29/474/33 32/183/33 -f 63/185/34 25/473/34 28/186/34 -f 52/187/35 29/474/35 30/188/35 -f 63/185/36 18/475/36 20/190/36 -f 78/180/37 18/475/37 17/192/37 -f 52/187/38 23/472/38 24/194/38 -f 76/196/2 98/199/2 100/197/2 -f 98/199/2 97/451/2 99/123/2 -f 94/200/2 96/203/2 76/201/2 -f 93/110/2 95/109/2 96/203/2 -f 55/204/2 91/207/2 89/205/2 -f 92/107/2 90/106/2 89/205/2 -f 67/208/2 86/211/2 88/209/2 -f 85/90/2 87/92/2 88/209/2 -f 11/212/39 6/476/39 91/213/39 -f 12/215/40 90/477/40 92/216/40 -f 12/218/41 10/478/41 87/219/41 -f 16/221/42 14/479/42 88/222/42 -f 16/221/40 7/480/40 99/224/40 -f 15/226/39 98/481/39 100/227/39 -f 15/226/42 96/482/42 94/229/42 -f 11/231/41 95/483/41 93/232/41 -f 108/234/43 107/261/43 103/235/43 -f 102/237/44 101/264/44 105/238/44 -f 118/240/2 122/484/2 109/241/2 -f 124/243/2 120/485/2 115/244/2 -f 123/246/1 114/284/1 116/247/1 -f 121/249/1 117/486/1 112/250/1 -f 124/252/45 123/246/45 119/253/45 -f 118/255/46 117/486/46 121/256/46 -f 104/258/2 113/487/2 109/259/2 -f 107/261/1 110/279/1 114/262/1 -f 101/264/1 116/270/1 112/265/1 -f 106/267/2 111/488/2 115/268/2 -f 116/270/44 115/268/44 120/271/44 -f 115/244/45 116/247/45 101/273/45 -f 105/275/46 112/250/46 111/242/46 -f 118/277/44 111/488/44 112/265/44 -f 110/279/43 109/259/43 122/280/43 -f 109/241/46 110/251/46 107/282/46 -f 114/284/45 113/245/45 104/285/45 -f 124/287/43 113/487/43 114/262/43 -f 135/291/2 133/489/2 134/490/2 -f 134/490/2 140/491/2 139/289/2 -f 139/289/2 138/492/2 137/290/2 -f 137/290/2 136/493/2 135/291/2 -f 135/291/2 134/490/2 139/289/2 -f 156/292/1 155/494/1 153/293/1 -f 160/295/1 158/495/1 157/296/1 -f 162/298/1 163/496/1 164/299/1 -f 168/301/1 167/497/1 166/302/1 -f 154/294/1 153/293/1 160/295/1 -f 159/297/1 157/296/1 162/298/1 -f 168/301/1 165/303/1 161/300/1 -f 156/292/1 154/294/1 165/303/1 -f 159/297/1 161/300/1 165/303/1 -f 205/304/1 207/498/1 178/305/1 -f 179/307/1 182/499/1 188/308/1 -f 189/310/2 183/377/2 180/311/2 -f 177/313/2 186/500/2 183/314/2 -f 176/316/1 173/501/1 182/317/1 -f 210/319/1 181/348/1 184/320/1 -f 215/322/1 174/340/1 169/323/1 -f 170/325/2 173/502/2 197/326/2 -f 172/328/2 198/503/2 199/329/2 -f 198/331/2 189/370/2 190/332/2 -f 197/334/2 188/353/2 191/335/2 -f 219/337/1 192/504/1 187/338/1 -f 174/340/20 175/505/20 185/341/20 -f 182/317/21 185/318/21 177/343/21 -f 186/345/22 183/355/22 173/346/22 -f 176/316/23 173/501/23 181/348/23 -f 179/349/25 182/342/25 187/350/25 -f 193/312/24 189/310/24 182/317/24 -f 188/353/27 194/506/27 180/354/27 -f 181/348/26 178/507/26 194/356/26 -f 191/358/12 188/357/12 196/359/12 -f 202/333/13 198/331/13 188/353/13 -f 197/361/14 203/508/14 190/362/14 -f 187/350/15 192/509/15 203/336/15 -f 199/363/17 198/331/17 173/346/17 -f 170/365/16 173/501/16 196/359/16 -f 174/340/19 169/323/19 200/367/19 -f 197/361/18 200/510/18 171/368/18 -f 157/369/36 159/511/36 189/370/36 -f 162/371/35 161/512/35 198/372/35 -f 168/374/37 165/513/37 189/370/37 -f 164/376/38 161/512/38 183/377/38 -f 166/378/32 165/513/32 172/379/32 -f 156/381/31 154/514/31 183/377/31 -f 153/383/33 154/514/33 198/372/33 -f 160/385/34 159/511/34 172/379/34 -f 220/387/1 218/390/1 196/388/1 -f 219/337/1 217/339/1 218/390/1 -f 196/391/1 216/394/1 214/392/1 -f 216/394/1 215/322/1 213/324/1 -f 175/395/1 174/515/1 209/396/1 -f 209/396/1 210/319/1 212/321/1 -f 187/398/1 195/516/1 208/399/1 -f 208/399/1 207/498/1 205/304/1 -f 211/401/47 142/517/47 147/402/47 -f 148/404/48 144/518/48 212/405/48 -f 207/407/49 146/519/49 148/408/49 -f 208/410/50 150/520/50 152/411/50 -f 219/413/48 143/521/48 152/411/48 -f 151/415/47 141/522/47 220/416/47 -f 151/415/50 149/523/50 214/418/50 -f 147/420/49 145/524/49 213/421/49 +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 6/6/4 1/3/4 +f 4/10/5 7/11/5 2/12/5 +f 1/13/6 5/14/6 3/15/6 +f 10/16/5 20/17/5 12/18/5 +f 13/19/2 9/20/2 14/21/2 +f 14/21/2 10/22/2 15/23/2 +f 15/23/2 12/24/2 16/25/2 +f 16/25/2 11/26/2 13/19/2 +f 11/27/6 17/28/6 9/29/6 +f 16/30/6 23/31/6 15/32/6 +f 14/33/5 21/34/5 13/35/5 +f 12/36/3 19/37/3 11/38/3 +f 9/20/4 18/39/4 10/22/4 +f 13/19/4 24/40/4 16/25/4 +f 15/41/3 22/42/3 14/43/3 +f 19/44/1 24/45/1 21/46/1 +f 20/47/1 23/48/1 24/45/1 +f 18/49/1 22/50/1 23/48/1 +f 17/51/1 21/46/1 22/50/1 +f 27/52/1 26/53/1 25/54/1 +f 31/55/1 30/56/1 29/57/1 +f 35/58/1 34/59/1 33/60/1 +f 39/61/1 38/62/1 37/63/1 +f 28/64/7 59/65/7 60/66/7 +f 35/67/7 68/68/7 36/69/7 +f 28/70/8 58/71/8 26/72/8 +f 36/69/9 66/73/9 34/74/9 +f 27/52/10 57/75/10 59/65/10 +f 35/58/11 65/76/11 67/77/11 +f 30/78/12 61/79/12 29/80/12 +f 37/63/12 70/81/12 69/82/12 +f 32/83/13 63/84/13 64/85/13 +f 39/86/13 72/87/13 40/88/13 +f 30/56/8 64/85/8 62/89/8 +f 38/62/9 72/87/9 70/81/9 +f 29/80/10 63/84/10 31/90/10 +f 26/72/14 57/75/14 25/91/14 +f 37/92/11 71/93/11 39/86/11 +f 33/60/14 66/73/14 65/76/14 +f 41/94/15 86/95/15 88/96/15 +f 85/97/16 43/98/16 44/99/16 +f 42/100/17 85/101/17 44/102/17 +f 41/94/18 87/103/18 42/100/18 +f 49/104/19 78/105/19 80/106/19 +f 52/107/16 78/108/16 51/109/16 +f 50/110/20 77/111/20 52/107/20 +f 50/110/18 80/106/18 79/112/18 +f 47/113/15 84/114/15 45/115/15 +f 81/116/21 47/113/21 48/117/21 +f 48/117/17 83/118/17 81/116/17 +f 45/115/22 83/119/22 46/120/22 +f 55/121/19 76/122/19 53/123/19 +f 56/124/21 74/125/21 55/121/21 +f 56/124/20 75/126/20 73/127/20 +f 54/128/22 76/129/22 75/126/22 +f 96/130/6 103/131/6 95/132/6 +f 91/133/3 100/134/3 92/135/3 +f 90/136/4 98/137/4 89/138/4 +f 92/139/5 99/140/5 90/141/5 +f 89/142/6 97/143/6 91/144/6 +f 93/145/2 98/137/2 94/146/2 +f 94/146/2 99/147/2 95/148/2 +f 95/148/2 100/149/2 96/150/2 +f 96/150/2 97/151/2 93/145/2 +f 90/152/1 104/153/1 92/154/1 +f 94/155/5 101/156/5 93/157/5 +f 93/145/4 104/158/4 96/150/4 +f 95/159/3 102/160/3 94/161/3 +f 91/162/1 104/153/1 101/163/1 +f 89/164/1 103/165/1 90/152/1 +f 91/162/1 102/166/1 89/164/1 +f 117/167/4 118/168/4 122/169/4 +f 108/170/23 116/171/23 110/172/23 +f 110/172/2 115/173/2 109/174/2 +f 107/175/6 111/176/6 105/177/6 +f 109/174/24 113/178/24 107/175/24 +f 106/179/5 114/180/5 108/170/5 +f 112/181/3 111/182/3 115/173/3 +f 120/183/23 128/184/23 122/169/23 +f 122/169/2 127/185/2 121/186/2 +f 119/187/6 123/188/6 117/189/6 +f 121/186/24 125/190/24 119/187/24 +f 118/191/5 126/192/5 120/183/5 +f 124/193/3 123/194/3 127/185/3 +f 105/195/4 106/196/4 110/172/4 +f 133/197/4 137/198/4 129/199/4 +f 151/200/3 147/201/3 143/202/3 +f 185/203/1 187/204/1 186/205/1 +f 223/206/2 221/207/2 222/208/2 +f 177/209/3 184/210/3 180/211/3 +f 179/212/4 182/213/4 178/214/4 +f 180/211/5 183/215/5 179/212/5 +f 178/214/6 181/216/6 177/217/6 +f 195/218/25 190/219/25 191/220/25 +f 188/221/5 191/222/5 187/223/5 +f 186/224/6 189/225/6 185/226/6 +f 185/227/3 192/228/3 188/229/3 +f 187/204/4 190/219/4 186/205/4 +f 193/230/3 200/231/3 196/232/3 +f 194/233/24 189/225/24 190/234/24 +f 193/230/26 192/228/26 189/235/26 +f 196/236/23 191/222/23 192/237/23 +f 199/238/2 197/239/2 198/240/2 +f 195/218/4 198/240/4 194/241/4 +f 196/236/5 199/242/5 195/243/5 +f 194/233/6 197/244/6 193/245/6 +f 207/246/2 205/247/2 206/248/2 +f 203/249/3 208/250/3 204/251/3 +f 202/252/4 206/248/4 201/253/4 +f 201/253/6 210/254/6 209/255/6 +f 203/249/6 212/256/6 205/247/6 +f 212/257/6 206/248/6 205/247/6 +f 211/258/4 216/259/4 212/260/4 +f 210/261/3 213/262/3 209/263/3 +f 202/252/5 214/264/5 207/246/5 +f 216/259/5 204/251/5 208/250/5 +f 207/246/5 216/265/5 208/250/5 +f 216/265/1 210/266/1 212/267/1 +f 217/268/1 219/269/1 218/270/1 +f 217/271/3 224/272/3 220/273/3 +f 219/269/4 222/208/4 218/270/4 +f 220/274/27 223/206/27 219/275/27 +f 218/276/28 221/207/28 217/277/28 +f 226/278/2 227/279/2 225/280/2 +f 226/278/24 232/281/24 228/282/24 +f 227/279/23 229/283/23 225/280/23 +f 231/284/5 233/285/5 229/283/5 +f 319/286/4 233/287/4 317/288/4 +f 236/289/5 237/290/5 235/291/5 +f 240/292/6 241/293/6 239/294/6 +f 244/295/3 318/296/3 234/297/3 +f 244/298/6 245/299/6 243/300/6 +f 246/301/29 247/302/29 245/299/29 +f 248/303/1 249/304/1 247/305/1 +f 250/306/30 251/307/30 249/304/30 +f 251/308/2 232/309/2 230/310/2 +f 252/311/3 228/312/3 232/313/3 +f 250/314/3 227/315/3 228/312/3 +f 248/316/3 231/317/3 227/315/3 +f 246/318/3 234/297/3 231/317/3 +f 243/300/24 320/319/24 244/298/24 +f 242/320/3 238/321/3 236/322/3 +f 249/304/4 230/310/4 226/323/4 +f 247/305/4 226/323/4 225/324/4 +f 245/299/4 225/324/4 229/325/4 +f 243/300/4 229/325/4 233/287/4 +f 234/326/30 317/327/30 233/285/30 +f 237/290/4 241/293/4 235/291/4 +f 259/328/3 256/329/3 255/330/3 +f 258/331/4 253/332/4 254/333/4 +f 260/334/5 254/333/5 256/329/5 +f 257/335/6 255/336/6 253/332/6 +f 267/337/3 264/338/3 263/339/3 +f 266/340/4 261/341/4 262/342/4 +f 268/343/5 262/342/5 264/338/5 +f 265/344/6 263/345/6 261/341/6 +f 269/346/31 272/347/31 270/348/31 +f 273/349/32 276/350/32 274/351/32 +f 278/352/33 280/353/33 277/354/33 +f 282/355/34 284/356/34 281/357/34 +f 272/347/35 277/354/35 280/353/35 +f 276/350/36 281/357/36 284/356/36 +f 270/358/37 278/352/37 269/359/37 +f 274/360/38 282/355/38 273/361/38 +f 285/362/39 288/363/39 286/364/39 +f 290/365/40 292/366/40 289/367/40 +f 288/363/41 289/367/41 292/366/41 +f 286/368/42 290/365/42 285/369/42 +f 293/370/43 296/371/43 295/372/43 +f 297/373/44 300/374/44 299/375/44 +f 301/376/45 304/377/45 303/378/45 +f 306/379/46 308/380/46 307/381/46 +f 310/382/47 312/383/47 311/384/47 +f 314/385/48 316/386/48 315/387/48 +f 296/371/49 305/388/49 295/372/49 +f 300/374/50 309/389/50 299/375/50 +f 304/377/51 313/390/51 303/378/51 +f 306/379/52 294/391/52 293/392/52 +f 310/382/53 298/393/53 297/394/53 +f 314/385/54 302/395/54 301/396/54 +f 241/397/2 320/319/2 319/398/2 +f 242/320/3 318/296/3 320/399/3 +f 241/293/4 317/288/4 235/291/4 +f 317/327/1 236/400/1 235/401/1 +f 323/402/55 322/403/55 321/404/55 +f 327/405/56 325/406/56 326/407/56 +f 323/402/57 326/407/57 325/406/57 +f 335/408/58 333/409/58 334/410/58 +f 331/411/59 330/412/59 329/413/59 +f 324/414/60 327/405/60 322/415/60 +f 331/411/61 334/410/61 333/409/61 +f 332/416/62 335/408/62 330/417/62 +f 343/418/63 341/419/63 342/420/63 +f 339/421/64 338/422/64 337/423/64 +f 339/421/65 342/420/65 341/419/65 +f 340/424/66 343/418/66 338/425/66 +f 351/426/67 349/427/67 350/428/67 +f 347/429/68 346/430/68 345/431/68 +f 347/429/69 350/428/69 349/427/69 +f 348/432/70 351/426/70 346/433/70 +f 354/434/71 355/435/71 353/436/71 +f 357/437/72 359/438/72 358/439/72 +f 355/435/73 358/439/73 353/436/73 +f 365/440/74 367/441/74 366/442/74 +f 362/443/75 363/444/75 361/445/75 +f 359/438/76 356/446/76 354/447/76 +f 363/444/77 366/442/77 361/445/77 +f 367/441/78 364/448/78 362/449/78 +f 373/450/79 375/451/79 374/452/79 +f 370/453/80 371/454/80 369/455/80 +f 371/454/81 374/452/81 369/455/81 +f 375/451/82 372/456/82 370/457/82 +f 381/458/83 383/459/83 382/460/83 +f 378/461/84 379/462/84 377/463/84 +f 379/462/85 382/460/85 377/463/85 +f 383/459/86 380/464/86 378/465/86 +f 389/466/3 393/467/3 385/468/3 +f 407/469/4 403/470/4 399/471/4 +f 409/472/33 412/473/33 410/474/33 +f 413/475/34 416/476/34 414/477/34 +f 418/478/31 420/479/31 417/480/31 +f 422/481/32 424/482/32 421/483/32 +f 412/473/50 417/480/50 420/479/50 +f 416/476/51 421/483/51 424/482/51 +f 410/484/53 418/478/53 409/485/53 +f 414/486/54 422/481/54 413/487/54 +f 425/488/40 428/489/40 426/490/40 +f 430/491/39 432/492/39 429/493/39 +f 428/489/49 429/493/49 432/492/49 +f 426/494/52 430/491/52 425/495/52 +f 433/496/46 436/497/46 435/498/46 +f 437/499/47 440/500/47 439/501/47 +f 441/502/48 444/503/48 443/504/48 +f 446/505/43 448/506/43 447/507/43 +f 450/508/44 452/509/44 451/510/44 +f 454/511/45 456/512/45 455/513/45 +f 436/497/41 445/514/41 435/498/41 +f 440/500/35 449/515/35 439/501/35 +f 444/503/36 453/516/36 443/504/36 +f 446/505/42 434/517/42 433/518/42 +f 450/508/37 438/519/37 437/520/37 +f 454/511/38 442/521/38 441/522/38 +f 459/523/71 458/524/71 457/525/71 +f 463/526/72 461/527/72 462/528/72 +f 459/523/60 462/528/60 461/527/60 +f 471/529/74 469/530/74 470/531/74 +f 467/532/75 466/533/75 465/534/75 +f 460/535/57 463/526/57 458/536/57 +f 467/532/62 470/531/62 469/530/62 +f 468/537/61 471/529/61 466/538/61 +f 479/539/79 477/540/79 478/541/79 +f 475/542/80 474/543/80 473/544/80 +f 475/542/66 478/541/66 477/540/66 +f 476/545/65 479/539/65 474/546/65 +f 487/547/83 485/548/83 486/549/83 +f 483/550/84 482/551/84 481/552/84 +f 483/550/70 486/549/70 485/548/70 +f 484/553/69 487/547/69 482/554/69 +f 490/555/55 491/556/55 489/557/55 +f 493/558/56 495/559/56 494/560/56 +f 491/556/76 494/560/76 489/557/76 +f 501/561/58 503/562/58 502/563/58 +f 498/564/59 499/565/59 497/566/59 +f 495/559/73 492/567/73 490/568/73 +f 499/565/78 502/563/78 497/566/78 +f 503/562/77 500/569/77 498/570/77 +f 509/571/63 511/572/63 510/573/63 +f 506/574/64 507/575/64 505/576/64 +f 507/575/82 510/573/82 505/576/82 +f 511/572/81 508/577/81 506/578/81 +f 517/579/67 519/580/67 518/581/67 +f 514/582/68 515/583/68 513/584/68 +f 515/583/86 518/581/86 513/584/86 +f 519/580/85 516/585/85 514/586/85 +f 521/587/87 524/588/87 522/589/87 +f 525/590/88 528/591/88 526/592/88 +f 530/593/89 532/594/89 529/595/89 +f 534/596/90 536/597/90 533/598/90 +f 524/588/91 529/595/91 532/594/91 +f 528/591/92 533/598/92 536/597/92 +f 522/599/93 530/593/93 521/600/93 +f 526/601/94 534/596/94 525/602/94 +f 537/603/95 540/604/95 538/605/95 +f 542/606/96 544/607/96 541/608/96 +f 540/604/97 541/608/97 544/607/97 +f 538/609/98 542/606/98 537/610/98 +f 545/611/99 548/612/99 547/613/99 +f 549/614/100 552/615/100 551/616/100 +f 553/617/101 556/618/101 555/619/101 +f 558/620/102 560/621/102 559/622/102 +f 562/623/103 564/624/103 563/625/103 +f 566/626/104 568/627/104 567/628/104 +f 548/612/105 557/629/105 547/613/105 +f 552/615/106 561/630/106 551/616/106 +f 556/618/107 565/631/107 555/619/107 +f 558/620/108 546/632/108 545/633/108 +f 562/623/109 550/634/109 549/635/109 +f 566/626/110 554/636/110 553/637/110 +f 571/638/111 570/639/111 569/640/111 +f 575/641/112 573/642/112 574/643/112 +f 571/638/113 574/643/113 573/642/113 +f 583/644/114 581/645/114 582/646/114 +f 579/647/115 578/648/115 577/649/115 +f 572/650/116 575/641/116 570/651/116 +f 579/647/117 582/646/117 581/645/117 +f 580/652/118 583/644/118 578/653/118 +f 591/654/119 589/655/119 590/656/119 +f 587/657/120 586/658/120 585/659/120 +f 587/657/121 590/656/121 589/655/121 +f 588/660/122 591/654/122 586/661/122 +f 599/662/123 597/663/123 598/664/123 +f 595/665/124 594/666/124 593/667/124 +f 595/665/125 598/664/125 597/663/125 +f 596/668/126 599/662/126 594/669/126 +f 602/670/127 603/671/127 601/672/127 +f 605/673/128 607/674/128 606/675/128 +f 603/671/129 606/675/129 601/672/129 +f 613/676/130 615/677/130 614/678/130 +f 610/679/131 611/680/131 609/681/131 +f 607/674/132 604/682/132 602/683/132 +f 611/680/133 614/678/133 609/681/133 +f 615/677/134 612/684/134 610/685/134 +f 621/686/135 623/687/135 622/688/135 +f 618/689/136 619/690/136 617/691/136 +f 619/690/137 622/688/137 617/691/137 +f 623/687/138 620/692/138 618/693/138 +f 629/694/139 631/695/139 630/696/139 +f 626/697/140 627/698/140 625/699/140 +f 627/698/141 630/696/141 625/699/141 +f 631/695/142 628/700/142 626/701/142 +f 633/702/89 636/703/89 634/704/89 +f 637/705/90 640/706/90 638/707/90 +f 642/708/87 644/709/87 641/710/87 +f 646/711/88 648/712/88 645/713/88 +f 636/703/106 641/710/106 644/709/106 +f 640/706/107 645/713/107 648/712/107 +f 634/714/109 642/708/109 633/715/109 +f 638/716/110 646/711/110 637/717/110 +f 649/718/96 652/719/96 650/720/96 +f 654/721/95 656/722/95 653/723/95 +f 652/719/105 653/723/105 656/722/105 +f 650/724/108 654/721/108 649/725/108 +f 657/726/102 660/727/102 659/728/102 +f 661/729/103 664/730/103 663/731/103 +f 665/732/104 668/733/104 667/734/104 +f 670/735/99 672/736/99 671/737/99 +f 674/738/100 676/739/100 675/740/100 +f 678/741/101 680/742/101 679/743/101 +f 660/727/97 669/744/97 659/728/97 +f 664/730/91 673/745/91 663/731/91 +f 668/733/92 677/746/92 667/734/92 +f 670/735/98 658/747/98 657/748/98 +f 674/738/93 662/749/93 661/750/93 +f 678/741/94 666/751/94 665/752/94 +f 683/753/127 682/754/127 681/755/127 +f 687/756/128 685/757/128 686/758/128 +f 683/753/116 686/758/116 685/757/116 +f 695/759/130 693/760/130 694/761/130 +f 691/762/131 690/763/131 689/764/131 +f 684/765/113 687/756/113 682/766/113 +f 691/762/118 694/761/118 693/760/118 +f 692/767/117 695/759/117 690/768/117 +f 703/769/135 701/770/135 702/771/135 +f 699/772/136 698/773/136 697/774/136 +f 699/772/122 702/771/122 701/770/122 +f 700/775/121 703/769/121 698/776/121 +f 711/777/139 709/778/139 710/779/139 +f 707/780/140 706/781/140 705/782/140 +f 707/780/126 710/779/126 709/778/126 +f 708/783/125 711/777/125 706/784/125 +f 714/785/111 715/786/111 713/787/111 +f 717/788/112 719/789/112 718/790/112 +f 715/786/132 718/790/132 713/787/132 +f 725/791/114 727/792/114 726/793/114 +f 722/794/115 723/795/115 721/796/115 +f 719/789/129 716/797/129 714/798/129 +f 723/795/134 726/793/134 721/796/134 +f 727/792/133 724/799/133 722/800/133 +f 733/801/119 735/802/119 734/803/119 +f 730/804/120 731/805/120 729/806/120 +f 731/805/138 734/803/138 729/806/138 +f 735/802/137 732/807/137 730/808/137 +f 741/809/123 743/810/123 742/811/123 +f 738/812/124 739/813/124 737/814/124 +f 739/813/142 742/811/142 737/814/142 +f 743/810/141 740/815/141 738/816/141 +f 3/1/1 4/817/1 2/2/1 +f 7/4/2 8/818/2 5/5/2 +f 3/7/3 5/819/3 8/8/3 +f 2/2/4 7/4/4 6/6/4 +f 4/10/5 8/820/5 7/11/5 +f 1/13/6 6/821/6 5/14/6 +f 10/16/5 18/822/5 20/17/5 +f 13/19/2 11/26/2 9/20/2 +f 14/21/2 9/20/2 10/22/2 +f 15/23/2 10/22/2 12/24/2 +f 16/25/2 12/24/2 11/26/2 +f 11/27/6 19/823/6 17/28/6 +f 16/30/6 24/824/6 23/31/6 +f 14/33/5 22/825/5 21/34/5 +f 12/36/3 20/826/3 19/37/3 +f 9/20/4 17/827/4 18/39/4 +f 13/19/4 21/828/4 24/40/4 +f 15/41/3 23/829/3 22/42/3 +f 19/44/1 20/47/1 24/45/1 +f 20/47/1 18/49/1 23/48/1 +f 18/49/1 17/51/1 22/50/1 +f 17/51/1 19/44/1 21/46/1 +f 27/52/1 28/64/1 26/53/1 +f 31/55/1 32/83/1 30/56/1 +f 35/58/1 36/830/1 34/59/1 +f 39/61/1 40/831/1 38/62/1 +f 28/64/7 27/52/7 59/65/7 +f 35/67/7 67/832/7 68/68/7 +f 28/70/8 60/833/8 58/71/8 +f 36/69/9 68/68/9 66/73/9 +f 27/52/10 25/91/10 57/75/10 +f 35/58/11 33/60/11 65/76/11 +f 30/78/12 62/834/12 61/79/12 +f 37/63/12 38/62/12 70/81/12 +f 32/83/13 31/90/13 63/84/13 +f 39/86/13 71/93/13 72/87/13 +f 30/56/8 32/83/8 64/85/8 +f 38/62/9 40/88/9 72/87/9 +f 29/80/10 61/79/10 63/84/10 +f 26/72/14 58/71/14 57/75/14 +f 37/92/11 69/835/11 71/93/11 +f 33/60/14 34/74/14 66/73/14 +f 41/94/15 43/98/15 86/95/15 +f 85/97/16 86/95/16 43/98/16 +f 42/100/17 87/103/17 85/101/17 +f 41/94/18 88/96/18 87/103/18 +f 49/104/19 51/836/19 78/105/19 +f 52/107/16 77/111/16 78/108/16 +f 50/110/20 79/112/20 77/111/20 +f 50/110/18 49/104/18 80/106/18 +f 47/113/15 82/837/15 84/114/15 +f 81/116/21 82/837/21 47/113/21 +f 48/117/17 46/838/17 83/118/17 +f 45/115/22 84/114/22 83/119/22 +f 55/121/19 74/125/19 76/122/19 +f 56/124/21 73/127/21 74/125/21 +f 56/124/20 54/128/20 75/126/20 +f 54/128/22 53/839/22 76/129/22 +f 96/130/6 104/840/6 103/131/6 +f 91/133/3 97/841/3 100/134/3 +f 90/136/4 99/147/4 98/137/4 +f 92/139/5 100/842/5 99/140/5 +f 89/142/6 98/843/6 97/143/6 +f 93/145/2 97/151/2 98/137/2 +f 94/146/2 98/137/2 99/147/2 +f 95/148/2 99/147/2 100/149/2 +f 96/150/2 100/149/2 97/151/2 +f 90/152/1 103/165/1 104/153/1 +f 94/155/5 102/844/5 101/156/5 +f 93/145/4 101/845/4 104/158/4 +f 95/159/3 103/846/3 102/160/3 +f 91/162/1 92/154/1 104/153/1 +f 89/164/1 102/166/1 103/165/1 +f 91/162/1 101/163/1 102/166/1 +f 118/168/4 120/847/4 122/169/4 +f 122/169/4 121/186/4 117/167/4 +f 121/186/4 119/848/4 117/167/4 +f 108/170/23 114/180/23 116/171/23 +f 110/172/2 116/171/2 115/173/2 +f 107/175/6 113/178/6 111/176/6 +f 109/174/24 115/173/24 113/178/24 +f 106/179/5 112/849/5 114/180/5 +f 111/182/3 113/850/3 115/173/3 +f 115/173/3 116/171/3 112/181/3 +f 116/171/3 114/851/3 112/181/3 +f 120/183/23 126/192/23 128/184/23 +f 122/169/2 128/184/2 127/185/2 +f 119/187/6 125/190/6 123/188/6 +f 121/186/24 127/185/24 125/190/24 +f 118/191/5 124/852/5 126/192/5 +f 123/194/3 125/853/3 127/185/3 +f 127/185/3 128/184/3 124/193/3 +f 128/184/3 126/854/3 124/193/3 +f 106/196/4 108/855/4 110/172/4 +f 110/172/4 109/174/4 105/195/4 +f 109/174/4 107/856/4 105/195/4 +f 129/199/4 130/857/4 131/858/4 +f 131/858/4 132/859/4 133/197/4 +f 133/197/4 134/860/4 135/861/4 +f 135/861/4 136/862/4 133/197/4 +f 136/862/4 137/198/4 133/197/4 +f 137/198/4 138/863/4 139/864/4 +f 139/864/4 140/865/4 129/199/4 +f 129/199/4 131/858/4 133/197/4 +f 137/198/4 139/864/4 129/199/4 +f 143/202/3 141/866/3 142/867/3 +f 142/867/3 152/868/3 143/202/3 +f 152/868/3 151/200/3 143/202/3 +f 151/200/3 150/869/3 149/870/3 +f 149/870/3 148/871/3 147/201/3 +f 147/201/3 146/872/3 145/873/3 +f 145/873/3 144/874/3 143/202/3 +f 151/200/3 149/870/3 147/201/3 +f 147/201/3 145/873/3 143/202/3 +f 185/203/1 188/875/1 187/204/1 +f 223/206/2 224/272/2 221/207/2 +f 177/209/3 181/876/3 184/210/3 +f 179/212/4 183/215/4 182/213/4 +f 180/211/5 184/210/5 183/215/5 +f 178/214/6 182/213/6 181/216/6 +f 195/218/25 194/241/25 190/219/25 +f 188/221/5 192/237/5 191/222/5 +f 186/224/6 190/234/6 189/225/6 +f 185/227/3 189/235/3 192/228/3 +f 187/204/4 191/220/4 190/219/4 +f 193/230/3 197/877/3 200/231/3 +f 194/233/24 193/245/24 189/225/24 +f 193/230/26 196/232/26 192/228/26 +f 196/236/23 195/243/23 191/222/23 +f 199/238/2 200/878/2 197/239/2 +f 195/218/4 199/238/4 198/240/4 +f 196/236/5 200/879/5 199/242/5 +f 194/233/6 198/880/6 197/244/6 +f 207/246/2 208/250/2 205/247/2 +f 203/249/3 205/247/3 208/250/3 +f 202/252/4 207/246/4 206/248/4 +f 201/253/6 206/248/6 210/254/6 +f 203/249/6 211/881/6 212/256/6 +f 212/257/6 210/882/6 206/248/6 +f 211/258/4 215/883/4 216/259/4 +f 210/261/3 214/264/3 213/262/3 +f 202/252/5 213/262/5 214/264/5 +f 216/259/5 215/883/5 204/251/5 +f 207/246/5 214/884/5 216/265/5 +f 216/265/1 214/884/1 210/266/1 +f 217/268/1 220/885/1 219/269/1 +f 217/271/3 221/207/3 224/272/3 +f 219/269/4 223/206/4 222/208/4 +f 220/274/27 224/272/27 223/206/27 +f 218/276/28 222/208/28 221/207/28 +f 226/278/2 228/282/2 227/279/2 +f 226/278/24 230/886/24 232/281/24 +f 227/279/23 231/284/23 229/283/23 +f 231/284/5 234/326/5 233/285/5 +f 319/286/4 243/300/4 233/287/4 +f 236/289/5 238/887/5 237/290/5 +f 240/292/6 242/888/6 241/293/6 +f 244/295/3 320/399/3 318/296/3 +f 244/298/6 246/301/6 245/299/6 +f 246/301/29 248/889/29 247/302/29 +f 248/303/1 250/306/1 249/304/1 +f 250/306/30 252/890/30 251/307/30 +f 251/308/2 252/891/2 232/309/2 +f 252/311/3 250/314/3 228/312/3 +f 250/314/3 248/316/3 227/315/3 +f 248/316/3 246/318/3 231/317/3 +f 246/318/3 244/295/3 234/297/3 +f 243/300/24 319/398/24 320/319/24 +f 242/320/3 240/892/3 238/321/3 +f 249/304/4 251/308/4 230/310/4 +f 247/305/4 249/304/4 226/323/4 +f 245/299/4 247/305/4 225/324/4 +f 243/300/4 245/299/4 229/325/4 +f 234/326/30 318/893/30 317/327/30 +f 237/290/4 239/294/4 241/293/4 +f 259/328/3 260/334/3 256/329/3 +f 258/331/4 257/335/4 253/332/4 +f 260/334/5 258/331/5 254/333/5 +f 257/335/6 259/894/6 255/336/6 +f 267/337/3 268/343/3 264/338/3 +f 266/340/4 265/344/4 261/341/4 +f 268/343/5 266/340/5 262/342/5 +f 265/344/6 267/895/6 263/345/6 +f 269/346/31 271/896/31 272/347/31 +f 273/349/32 275/897/32 276/350/32 +f 278/352/33 279/898/33 280/353/33 +f 282/355/34 283/899/34 284/356/34 +f 272/347/35 271/896/35 277/354/35 +f 276/350/36 275/897/36 281/357/36 +f 270/358/37 279/898/37 278/352/37 +f 274/360/38 283/899/38 282/355/38 +f 285/362/39 287/900/39 288/363/39 +f 290/365/40 291/901/40 292/366/40 +f 288/363/41 287/900/41 289/367/41 +f 286/368/42 291/901/42 290/365/42 +f 293/370/43 294/902/43 296/371/43 +f 297/373/44 298/903/44 300/374/44 +f 301/376/45 302/904/45 304/377/45 +f 306/379/46 305/388/46 308/380/46 +f 310/382/47 309/389/47 312/383/47 +f 314/385/48 313/390/48 316/386/48 +f 296/371/49 308/380/49 305/388/49 +f 300/374/50 312/383/50 309/389/50 +f 304/377/51 316/386/51 313/390/51 +f 306/379/52 307/381/52 294/391/52 +f 310/382/53 311/384/53 298/393/53 +f 314/385/54 315/387/54 302/395/54 +f 241/397/2 242/905/2 320/319/2 +f 242/320/3 236/322/3 318/296/3 +f 241/293/4 319/286/4 317/288/4 +f 317/327/1 318/893/1 236/400/1 +f 323/402/55 324/906/55 322/403/55 +f 327/405/56 328/907/56 325/406/56 +f 323/402/57 321/404/57 326/407/57 +f 335/408/58 336/908/58 333/409/58 +f 331/411/59 332/909/59 330/412/59 +f 324/414/60 328/907/60 327/405/60 +f 331/411/61 329/413/61 334/410/61 +f 332/416/62 336/908/62 335/408/62 +f 343/418/63 344/910/63 341/419/63 +f 339/421/64 340/911/64 338/422/64 +f 339/421/65 337/423/65 342/420/65 +f 340/424/66 344/910/66 343/418/66 +f 351/426/67 352/912/67 349/427/67 +f 347/429/68 348/913/68 346/430/68 +f 347/429/69 345/431/69 350/428/69 +f 348/432/70 352/912/70 351/426/70 +f 354/434/71 356/914/71 355/435/71 +f 357/437/72 360/915/72 359/438/72 +f 355/435/73 357/437/73 358/439/73 +f 365/440/74 368/916/74 367/441/74 +f 362/443/75 364/917/75 363/444/75 +f 359/438/76 360/915/76 356/446/76 +f 363/444/77 365/440/77 366/442/77 +f 367/441/78 368/916/78 364/448/78 +f 373/450/79 376/918/79 375/451/79 +f 370/453/80 372/919/80 371/454/80 +f 371/454/81 373/450/81 374/452/81 +f 375/451/82 376/918/82 372/456/82 +f 381/458/83 384/920/83 383/459/83 +f 378/461/84 380/921/84 379/462/84 +f 379/462/85 381/458/85 382/460/85 +f 383/459/86 384/920/86 380/464/86 +f 385/468/3 386/922/3 387/923/3 +f 387/923/3 388/924/3 389/466/3 +f 389/466/3 390/925/3 391/926/3 +f 391/926/3 392/927/3 389/466/3 +f 392/927/3 393/467/3 389/466/3 +f 393/467/3 394/928/3 395/929/3 +f 395/929/3 396/930/3 385/468/3 +f 385/468/3 387/923/3 389/466/3 +f 393/467/3 395/929/3 385/468/3 +f 399/471/4 397/931/4 398/932/4 +f 398/932/4 408/933/4 399/471/4 +f 408/933/4 407/469/4 399/471/4 +f 407/469/4 406/934/4 405/935/4 +f 405/935/4 404/936/4 403/470/4 +f 403/470/4 402/937/4 401/938/4 +f 401/938/4 400/939/4 399/471/4 +f 407/469/4 405/935/4 403/470/4 +f 403/470/4 401/938/4 399/471/4 +f 409/472/33 411/940/33 412/473/33 +f 413/475/34 415/941/34 416/476/34 +f 418/478/31 419/942/31 420/479/31 +f 422/481/32 423/943/32 424/482/32 +f 412/473/50 411/940/50 417/480/50 +f 416/476/51 415/941/51 421/483/51 +f 410/484/53 419/942/53 418/478/53 +f 414/486/54 423/943/54 422/481/54 +f 425/488/40 427/944/40 428/489/40 +f 430/491/39 431/945/39 432/492/39 +f 428/489/49 427/944/49 429/493/49 +f 426/494/52 431/945/52 430/491/52 +f 433/496/46 434/946/46 436/497/46 +f 437/499/47 438/947/47 440/500/47 +f 441/502/48 442/948/48 444/503/48 +f 446/505/43 445/514/43 448/506/43 +f 450/508/44 449/515/44 452/509/44 +f 454/511/45 453/516/45 456/512/45 +f 436/497/41 448/506/41 445/514/41 +f 440/500/35 452/509/35 449/515/35 +f 444/503/36 456/512/36 453/516/36 +f 446/505/42 447/507/42 434/517/42 +f 450/508/37 451/510/37 438/519/37 +f 454/511/38 455/513/38 442/521/38 +f 459/523/71 460/949/71 458/524/71 +f 463/526/72 464/950/72 461/527/72 +f 459/523/60 457/525/60 462/528/60 +f 471/529/74 472/951/74 469/530/74 +f 467/532/75 468/952/75 466/533/75 +f 460/535/57 464/950/57 463/526/57 +f 467/532/62 465/534/62 470/531/62 +f 468/537/61 472/951/61 471/529/61 +f 479/539/79 480/953/79 477/540/79 +f 475/542/80 476/954/80 474/543/80 +f 475/542/66 473/544/66 478/541/66 +f 476/545/65 480/953/65 479/539/65 +f 487/547/83 488/955/83 485/548/83 +f 483/550/84 484/956/84 482/551/84 +f 483/550/70 481/552/70 486/549/70 +f 484/553/69 488/955/69 487/547/69 +f 490/555/55 492/957/55 491/556/55 +f 493/558/56 496/958/56 495/559/56 +f 491/556/76 493/558/76 494/560/76 +f 501/561/58 504/959/58 503/562/58 +f 498/564/59 500/960/59 499/565/59 +f 495/559/73 496/958/73 492/567/73 +f 499/565/78 501/561/78 502/563/78 +f 503/562/77 504/959/77 500/569/77 +f 509/571/63 512/961/63 511/572/63 +f 506/574/64 508/962/64 507/575/64 +f 507/575/82 509/571/82 510/573/82 +f 511/572/81 512/961/81 508/577/81 +f 517/579/67 520/963/67 519/580/67 +f 514/582/68 516/964/68 515/583/68 +f 515/583/86 517/579/86 518/581/86 +f 519/580/85 520/963/85 516/585/85 +f 521/587/87 523/965/87 524/588/87 +f 525/590/88 527/966/88 528/591/88 +f 530/593/89 531/967/89 532/594/89 +f 534/596/90 535/968/90 536/597/90 +f 524/588/91 523/965/91 529/595/91 +f 528/591/92 527/966/92 533/598/92 +f 522/599/93 531/967/93 530/593/93 +f 526/601/94 535/968/94 534/596/94 +f 537/603/95 539/969/95 540/604/95 +f 542/606/96 543/970/96 544/607/96 +f 540/604/97 539/969/97 541/608/97 +f 538/609/98 543/970/98 542/606/98 +f 545/611/99 546/971/99 548/612/99 +f 549/614/100 550/972/100 552/615/100 +f 553/617/101 554/973/101 556/618/101 +f 558/620/102 557/629/102 560/621/102 +f 562/623/103 561/630/103 564/624/103 +f 566/626/104 565/631/104 568/627/104 +f 548/612/105 560/621/105 557/629/105 +f 552/615/106 564/624/106 561/630/106 +f 556/618/107 568/627/107 565/631/107 +f 558/620/108 559/622/108 546/632/108 +f 562/623/109 563/625/109 550/634/109 +f 566/626/110 567/628/110 554/636/110 +f 571/638/111 572/974/111 570/639/111 +f 575/641/112 576/975/112 573/642/112 +f 571/638/113 569/640/113 574/643/113 +f 583/644/114 584/976/114 581/645/114 +f 579/647/115 580/977/115 578/648/115 +f 572/650/116 576/975/116 575/641/116 +f 579/647/117 577/649/117 582/646/117 +f 580/652/118 584/976/118 583/644/118 +f 591/654/119 592/978/119 589/655/119 +f 587/657/120 588/979/120 586/658/120 +f 587/657/121 585/659/121 590/656/121 +f 588/660/122 592/978/122 591/654/122 +f 599/662/123 600/980/123 597/663/123 +f 595/665/124 596/981/124 594/666/124 +f 595/665/125 593/667/125 598/664/125 +f 596/668/126 600/980/126 599/662/126 +f 602/670/127 604/982/127 603/671/127 +f 605/673/128 608/983/128 607/674/128 +f 603/671/129 605/673/129 606/675/129 +f 613/676/130 616/984/130 615/677/130 +f 610/679/131 612/985/131 611/680/131 +f 607/674/132 608/983/132 604/682/132 +f 611/680/133 613/676/133 614/678/133 +f 615/677/134 616/984/134 612/684/134 +f 621/686/135 624/986/135 623/687/135 +f 618/689/136 620/987/136 619/690/136 +f 619/690/137 621/686/137 622/688/137 +f 623/687/138 624/986/138 620/692/138 +f 629/694/139 632/988/139 631/695/139 +f 626/697/140 628/989/140 627/698/140 +f 627/698/141 629/694/141 630/696/141 +f 631/695/142 632/988/142 628/700/142 +f 633/702/89 635/990/89 636/703/89 +f 637/705/90 639/991/90 640/706/90 +f 642/708/87 643/992/87 644/709/87 +f 646/711/88 647/993/88 648/712/88 +f 636/703/106 635/990/106 641/710/106 +f 640/706/107 639/991/107 645/713/107 +f 634/714/109 643/992/109 642/708/109 +f 638/716/110 647/993/110 646/711/110 +f 649/718/96 651/994/96 652/719/96 +f 654/721/95 655/995/95 656/722/95 +f 652/719/105 651/994/105 653/723/105 +f 650/724/108 655/995/108 654/721/108 +f 657/726/102 658/996/102 660/727/102 +f 661/729/103 662/997/103 664/730/103 +f 665/732/104 666/998/104 668/733/104 +f 670/735/99 669/744/99 672/736/99 +f 674/738/100 673/745/100 676/739/100 +f 678/741/101 677/746/101 680/742/101 +f 660/727/97 672/736/97 669/744/97 +f 664/730/91 676/739/91 673/745/91 +f 668/733/92 680/742/92 677/746/92 +f 670/735/98 671/737/98 658/747/98 +f 674/738/93 675/740/93 662/749/93 +f 678/741/94 679/743/94 666/751/94 +f 683/753/127 684/999/127 682/754/127 +f 687/756/128 688/1000/128 685/757/128 +f 683/753/116 681/755/116 686/758/116 +f 695/759/130 696/1001/130 693/760/130 +f 691/762/131 692/1002/131 690/763/131 +f 684/765/113 688/1000/113 687/756/113 +f 691/762/118 689/764/118 694/761/118 +f 692/767/117 696/1001/117 695/759/117 +f 703/769/135 704/1003/135 701/770/135 +f 699/772/136 700/1004/136 698/773/136 +f 699/772/122 697/774/122 702/771/122 +f 700/775/121 704/1003/121 703/769/121 +f 711/777/139 712/1005/139 709/778/139 +f 707/780/140 708/1006/140 706/781/140 +f 707/780/126 705/782/126 710/779/126 +f 708/783/125 712/1005/125 711/777/125 +f 714/785/111 716/1007/111 715/786/111 +f 717/788/112 720/1008/112 719/789/112 +f 715/786/132 717/788/132 718/790/132 +f 725/791/114 728/1009/114 727/792/114 +f 722/794/115 724/1010/115 723/795/115 +f 719/789/129 720/1008/129 716/797/129 +f 723/795/134 725/791/134 726/793/134 +f 727/792/133 728/1009/133 724/799/133 +f 733/801/119 736/1011/119 735/802/119 +f 730/804/120 732/1012/120 731/805/120 +f 731/805/138 733/801/138 734/803/138 +f 735/802/137 736/1011/137 732/807/137 +f 741/809/123 744/1013/123 743/810/123 +f 738/812/124 740/1014/124 739/813/124 +f 739/813/142 741/809/142 742/811/142 +f 743/810/141 744/1013/141 740/815/141 s 1 -f 242/525/45 243/526/51 241/527/45 -f 244/528/51 132/529/43 243/526/51 -f 240/530/52 241/531/45 239/532/52 -f 238/533/44 239/532/52 237/534/44 -f 125/535/53 237/534/44 126/536/53 -f 127/537/46 126/536/53 128/538/46 -f 129/539/54 128/538/46 130/540/54 -f 131/541/43 130/540/54 132/529/43 -f 223/542/46 232/543/53 224/544/53 -f 221/545/43 229/546/54 222/547/54 -f 228/548/51 230/549/43 221/545/43 -f 226/550/52 235/551/45 227/552/45 -f 224/544/53 233/553/44 225/554/44 -f 222/547/54 231/555/46 223/542/46 -f 227/556/45 236/557/51 228/548/51 -f 225/554/44 234/558/52 226/550/52 -f 242/525/45 244/528/51 243/526/51 -f 244/528/51 131/541/43 132/529/43 -f 240/530/52 242/559/45 241/531/45 -f 238/533/44 240/530/52 239/532/52 -f 125/535/53 238/533/44 237/534/44 -f 127/537/46 125/535/53 126/536/53 -f 129/539/54 127/537/46 128/538/46 -f 131/541/43 129/539/54 130/540/54 -f 223/542/46 231/555/46 232/543/53 -f 221/545/43 230/549/43 229/546/54 -f 228/548/51 236/557/51 230/549/43 -f 226/550/52 234/558/52 235/551/45 -f 224/544/53 232/543/53 233/553/44 -f 222/547/54 229/546/54 231/555/46 -f 227/556/45 235/560/45 236/557/51 -f 225/554/44 233/553/44 234/558/52 +f 135/1015/1 146/1016/143 147/1017/1 +f 131/1018/144 144/1019/6 132/1020/6 +f 138/1021/5 151/1022/145 139/1023/145 +f 135/1024/1 148/1025/146 136/1026/146 +f 132/1020/6 145/1027/147 133/1028/147 +f 139/1023/145 152/1029/148 140/1030/148 +f 129/1031/2 141/1032/149 130/1033/149 +f 136/1026/146 149/1034/150 137/1035/150 +f 133/1028/147 146/1016/143 134/1036/143 +f 140/1030/148 142/1037/2 129/1031/2 +f 130/1033/149 143/1038/144 131/1018/144 +f 137/1035/150 150/1039/5 138/1021/5 +f 176/1040/148 153/1041/2 164/1042/148 +f 166/1043/149 155/1044/144 154/1045/149 +f 173/1046/150 162/1047/5 161/1048/150 +f 170/1049/143 159/1050/1 158/1051/143 +f 167/1052/144 156/1053/6 155/1044/144 +f 174/1054/5 163/1055/145 162/1047/5 +f 171/1056/1 160/1057/146 159/1058/1 +f 168/1059/6 157/1060/147 156/1053/6 +f 175/1061/145 164/1042/148 163/1055/145 +f 165/1062/2 154/1045/149 153/1041/2 +f 172/1063/146 161/1048/150 160/1057/146 +f 169/1064/147 158/1051/143 157/1060/147 +f 391/1065/1 402/1066/146 403/1067/1 +f 387/1068/145 400/1069/5 388/1070/5 +f 394/1071/6 407/1072/144 395/1073/144 +f 391/1074/1 404/1075/143 392/1076/143 +f 388/1070/5 401/1077/150 389/1078/150 +f 395/1073/144 408/1079/149 396/1080/149 +f 385/1081/2 397/1082/148 386/1083/148 +f 392/1076/143 405/1084/147 393/1085/147 +f 389/1078/150 402/1066/146 390/1086/146 +f 396/1080/149 398/1087/2 385/1081/2 +f 386/1083/148 399/1088/145 387/1068/145 +f 393/1085/147 406/1089/6 394/1071/6 +f 135/1015/1 134/1036/143 146/1016/143 +f 131/1018/144 143/1038/144 144/1019/6 +f 138/1021/5 150/1039/5 151/1022/145 +f 135/1024/1 147/1090/1 148/1025/146 +f 132/1020/6 144/1019/6 145/1027/147 +f 139/1023/145 151/1022/145 152/1029/148 +f 129/1031/2 142/1037/2 141/1032/149 +f 136/1026/146 148/1025/146 149/1034/150 +f 133/1028/147 145/1027/147 146/1016/143 +f 140/1030/148 152/1029/148 142/1037/2 +f 130/1033/149 141/1032/149 143/1038/144 +f 137/1035/150 149/1034/150 150/1039/5 +f 176/1040/148 165/1062/2 153/1041/2 +f 166/1043/149 167/1052/144 155/1044/144 +f 173/1046/150 174/1054/5 162/1047/5 +f 170/1049/143 171/1091/1 159/1050/1 +f 167/1052/144 168/1059/6 156/1053/6 +f 174/1054/5 175/1061/145 163/1055/145 +f 171/1056/1 172/1063/146 160/1057/146 +f 168/1059/6 169/1064/147 157/1060/147 +f 175/1061/145 176/1040/148 164/1042/148 +f 165/1062/2 166/1043/149 154/1045/149 +f 172/1063/146 173/1046/150 161/1048/150 +f 169/1064/147 170/1049/143 158/1051/143 +f 391/1065/1 390/1086/146 402/1066/146 +f 387/1068/145 399/1088/145 400/1069/5 +f 394/1071/6 406/1089/6 407/1072/144 +f 391/1074/1 403/1092/1 404/1075/143 +f 388/1070/5 400/1069/5 401/1077/150 +f 395/1073/144 407/1072/144 408/1079/149 +f 385/1081/2 398/1087/2 397/1082/148 +f 392/1076/143 404/1075/143 405/1084/147 +f 389/1078/150 401/1077/150 402/1066/146 +f 396/1080/149 408/1079/149 398/1087/2 +f 386/1083/148 397/1082/148 399/1088/145 +f 393/1085/147 405/1084/147 406/1089/6 diff --git a/src/main/resources/assets/hbm/models/weapons/_blacksand.obj b/src/main/resources/assets/hbm/models/weapons/_blacksand.obj new file mode 100644 index 000000000..118fd9227 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/_blacksand.obj @@ -0,0 +1,3402 @@ +# Blender v2.79 (sub 0) OBJ File: 'aberrator.blend' +# www.blender.org +o Cylinder +v 0.000000 3.000000 -1.000000 +v 0.000000 3.000000 4.000000 +v 0.500000 2.866025 -1.000000 +v 0.500000 2.866025 4.000000 +v 0.866025 2.500000 -1.000000 +v 0.866025 2.500000 4.000000 +v 1.000000 2.000000 -1.000000 +v 1.000000 2.000000 4.000000 +v 0.866025 1.500000 -1.000000 +v 0.866025 1.500000 4.000000 +v 0.500000 1.133975 -1.000000 +v 0.500000 1.133975 4.000000 +v 0.000000 1.000000 -1.000000 +v 0.000000 1.000000 4.000000 +v -0.500000 1.133975 -1.000000 +v -0.500000 1.133975 4.000000 +v -0.866025 1.500000 -1.000000 +v -0.866025 1.500000 4.000000 +v -1.000000 2.000000 -1.000000 +v -1.000000 2.000000 4.000000 +v -0.866026 2.500000 -1.000000 +v -0.866026 2.500000 4.000000 +v -0.500000 2.866025 -1.000000 +v -0.500000 2.866025 4.000000 +v 0.000000 2.500000 4.500000 +v 0.000000 2.500000 7.500000 +v 0.250000 2.433013 4.500000 +v 0.250000 2.433012 7.500000 +v 0.433013 2.250000 4.500000 +v 0.433013 2.250000 7.500000 +v 0.500000 2.000000 4.500000 +v 0.500000 2.000000 7.500000 +v 0.433013 1.750000 4.500000 +v 0.433013 1.750000 7.500000 +v 0.250000 1.566987 4.500000 +v 0.250000 1.566987 7.500000 +v 0.000000 1.500000 4.500000 +v 0.000000 1.500000 7.500000 +v -0.250000 1.566987 4.500000 +v -0.250000 1.566987 7.500000 +v -0.433013 1.750000 4.500000 +v -0.433013 1.750000 7.500000 +v -0.500000 2.000000 4.500000 +v -0.500000 2.000000 7.500000 +v -0.433013 2.250000 4.500000 +v -0.433013 2.250000 7.500000 +v -0.250000 2.433012 4.500000 +v -0.250000 2.433012 7.500000 +v 0.000000 2.933013 4.250000 +v 0.000000 2.750000 4.433012 +v 0.000000 1.066987 4.250000 +v 0.000000 1.250000 4.433012 +v 0.933013 2.000000 4.250000 +v 0.750000 2.000000 4.433012 +v -0.933013 2.000000 4.250000 +v -0.750000 2.000000 4.433012 +v 0.466506 2.808013 4.250000 +v 0.375000 2.649519 4.433012 +v -0.466506 1.191987 4.250000 +v -0.375000 1.350481 4.433012 +v 0.808013 1.533494 4.250000 +v 0.649519 1.625000 4.433012 +v -0.808013 2.466506 4.250000 +v -0.649519 2.375000 4.433012 +v 0.808013 2.466506 4.250000 +v 0.649519 2.375000 4.433012 +v -0.808013 1.533494 4.250000 +v -0.649519 1.625000 4.433012 +v 0.466506 1.191987 4.250000 +v 0.375000 1.350481 4.433012 +v -0.466506 2.808013 4.250000 +v -0.375000 2.649519 4.433012 +v 0.000000 2.750000 7.500000 +v -0.375000 2.649519 7.500000 +v -0.649519 2.375000 7.500000 +v -0.750000 2.000000 7.500000 +v -0.649519 1.625000 7.500000 +v -0.375000 1.350481 7.500000 +v 0.000000 1.250000 7.500000 +v 0.375000 1.350481 7.500000 +v 0.649519 1.625000 7.500000 +v 0.750000 1.999999 7.500000 +v 0.649519 2.374999 7.500000 +v 0.375000 2.649519 7.500000 +v 0.000000 2.750000 7.875000 +v -0.375000 2.649519 7.875000 +v -0.649519 2.375000 7.875000 +v -0.750000 2.000000 7.875000 +v -0.649519 1.625000 7.875000 +v -0.375000 1.350481 7.875000 +v 0.000000 1.250000 7.875000 +v 0.375000 1.350481 7.875000 +v 0.649519 1.625000 7.875000 +v 0.750000 1.999999 7.875000 +v 0.649519 2.374999 7.875000 +v 0.375000 2.649519 7.875000 +v 0.000000 2.750000 8.375000 +v -0.375000 2.649519 8.375000 +v -0.649519 2.375000 8.375000 +v -0.750000 2.000000 8.375000 +v -0.649519 1.625000 8.375000 +v -0.375000 1.350481 8.375000 +v 0.000000 1.250000 8.375000 +v 0.375000 1.350481 8.375000 +v 0.649519 1.625000 8.375000 +v 0.750000 1.999999 8.375000 +v 0.649519 2.374999 8.375000 +v 0.375000 2.649519 8.375000 +v 0.000000 2.750000 8.750000 +v -0.375000 2.649519 8.750000 +v -0.649519 2.375000 8.750000 +v -0.750000 2.000000 8.750000 +v -0.649519 1.625000 8.750000 +v -0.375000 1.350481 8.750000 +v 0.000000 1.250000 8.750000 +v 0.375000 1.350481 8.750000 +v 0.649519 1.625000 8.750000 +v 0.750000 1.999999 8.750000 +v 0.649519 2.374999 8.750000 +v 0.375000 2.649519 8.750000 +v 0.000000 2.999999 7.875000 +v -0.500000 2.866025 7.875000 +v -0.866025 2.499999 7.875000 +v -1.000000 1.999999 7.875000 +v -0.866025 1.499999 7.875000 +v -0.500000 1.133974 7.875000 +v 0.000000 0.999999 7.875000 +v 0.500000 1.133973 7.875000 +v 0.866025 1.499999 7.875000 +v 1.000000 1.999999 7.875000 +v 0.866025 2.499999 7.875000 +v 0.500000 2.866024 7.875000 +v 0.000000 2.999999 8.375000 +v -0.500000 2.866025 8.375000 +v -0.866025 2.499999 8.375000 +v -1.000000 1.999999 8.375000 +v -0.866025 1.499999 8.375000 +v -0.500000 1.133974 8.375000 +v 0.000000 0.999999 8.375000 +v 0.500000 1.133973 8.375000 +v 0.866025 1.499999 8.375000 +v 1.000000 1.999999 8.375000 +v 0.866025 2.499999 8.375000 +v 0.500000 2.866024 8.375000 +v 0.000000 2.375000 8.750000 +v -0.187500 2.324759 8.750000 +v -0.324759 2.187500 8.750000 +v -0.375000 2.000000 8.750000 +v -0.324759 1.812500 8.750000 +v -0.187500 1.675241 8.750000 +v 0.000000 1.625000 8.750000 +v 0.187500 1.675241 8.750000 +v 0.324759 1.812500 8.750000 +v 0.375000 2.000000 8.750000 +v 0.324759 2.187500 8.750000 +v 0.187500 2.324759 8.750000 +v 0.000000 2.375000 8.250000 +v -0.187500 2.324759 8.250000 +v -0.324759 2.187500 8.250000 +v -0.375000 2.000000 8.250000 +v -0.324759 1.812500 8.250000 +v -0.187500 1.675241 8.250000 +v 0.000000 1.625000 8.250000 +v 0.187500 1.675241 8.250000 +v 0.324759 1.812500 8.250000 +v 0.375000 2.000000 8.250000 +v 0.324759 2.187500 8.250000 +v 0.187500 2.324759 8.250000 +v 0.000000 2.500000 -1.000000 +v 0.250000 2.433013 -1.000000 +v 0.433013 2.250000 -1.000000 +v 0.500000 2.000000 -1.000000 +v 0.433013 1.750000 -1.000000 +v 0.250000 1.566988 -1.000000 +v 0.000000 1.500000 -1.000000 +v -0.250000 1.566987 -1.000000 +v -0.433013 1.750000 -1.000000 +v -0.500000 2.000000 -1.000000 +v -0.433013 2.250000 -1.000000 +v -0.250000 2.433012 -1.000000 +v 0.000000 2.500000 2.000000 +v 0.250000 2.433013 2.000000 +v 0.433012 2.250000 2.000000 +v 0.500000 2.000000 2.000000 +v 0.433012 1.750000 2.000000 +v 0.250000 1.566988 2.000000 +v 0.000000 1.500000 2.000000 +v -0.250000 1.566988 2.000000 +v -0.433013 1.750000 2.000000 +v -0.500000 2.000000 2.000000 +v -0.433013 2.250000 2.000000 +v -0.250000 2.433013 2.000000 +v 0.000000 3.000000 -2.000000 +v 0.000000 2.500000 -2.649519 +v -0.250000 2.433012 1.500000 +v -0.250000 2.433012 -1.000000 +v 0.500000 2.866025 -2.000000 +v 0.433012 2.750000 -2.375000 +v 0.250000 2.433013 -2.649519 +v -0.187500 2.324759 2.000000 +v -0.433013 2.250000 -1.000000 +v -0.500000 2.000000 -1.000000 +v -0.433013 1.750000 -1.000000 +v 0.866025 2.500000 -2.000000 +v 0.750000 2.433013 -2.375000 +v 0.433012 2.250000 -2.649519 +v -0.324759 2.187500 2.000000 +v -0.375000 2.000000 2.000000 +v -0.250000 1.566987 -1.000000 +v 0.000000 1.500000 -1.000000 +v 1.000000 2.000000 -2.000000 +v 0.866025 2.000000 -2.375000 +v 0.500000 2.000000 -2.649519 +v -0.324759 1.812500 2.000000 +v -0.187500 1.675241 2.000000 +v 0.250000 1.566988 -1.000000 +v 0.433013 1.750000 -1.000000 +v 0.866025 1.500000 -2.000000 +v 0.750000 1.566988 -2.375000 +v 0.433012 1.750000 -2.649519 +v 0.000000 1.625000 2.000000 +v 0.187500 1.675241 2.000000 +v 0.500000 2.000000 -1.000000 +v 0.433013 2.250000 -1.000000 +v 0.500000 1.133975 -2.000000 +v 0.433012 1.250000 -2.375000 +v 0.250000 1.566988 -2.649519 +v 0.324759 1.812500 2.000000 +v 0.375000 2.000000 2.000000 +v 0.250000 2.433013 -1.000000 +v 0.000000 2.500000 -1.000000 +v 0.000000 1.000000 -2.000000 +v 0.000000 1.133975 -2.375000 +v 0.000000 1.500000 -2.649519 +v 0.000000 2.000000 -2.750000 +v 0.324759 2.187500 2.000000 +v -0.500000 2.866025 -1.000000 +v -0.866025 2.500000 -1.000000 +v -0.500000 1.133975 -2.000000 +v -0.433013 1.250000 -2.375000 +v -0.250000 1.566988 -2.649519 +v 0.187500 2.324759 2.000000 +v 0.000000 2.375000 2.000000 +v -1.000000 2.000000 -1.000000 +v -0.866025 1.500000 -1.000000 +v -0.866025 1.500000 -2.000000 +v -0.750000 1.566988 -2.375000 +v -0.433013 1.750000 -2.649519 +v 0.250000 2.433013 1.500000 +v 0.433012 2.250000 1.500000 +v -0.500000 1.133975 -1.000000 +v 0.000000 1.000000 -1.000000 +v -1.000000 2.000000 -2.000000 +v -0.866025 2.000000 -2.375000 +v -0.500000 2.000000 -2.649519 +v 0.500000 2.000000 1.500000 +v 0.433012 1.750000 1.500000 +v 0.500000 1.133975 -1.000000 +v 0.866025 1.500000 -1.000000 +v -0.866025 2.500000 -2.000000 +v -0.750000 2.433013 -2.375000 +v -0.433013 2.250000 -2.649519 +v 0.250000 1.566988 1.500000 +v 0.000000 1.500000 1.500000 +v 1.000000 2.000000 -1.000000 +v 0.866025 2.500000 -1.000000 +v -0.500000 2.866025 -2.000000 +v -0.433013 2.750000 -2.375000 +v -0.250000 2.433013 -2.649519 +v -0.250000 1.566987 1.500000 +v -0.433013 1.750000 1.500000 +v 0.500000 2.866025 -1.000000 +v 0.000000 3.000000 -1.000000 +v -0.500000 2.000000 1.500000 +v 0.000000 2.866025 -2.375000 +v -0.433013 2.250000 1.500000 +v 0.000000 2.500000 1.500000 +v -0.250000 1.000000 -1.125000 +v 0.250000 1.000000 -1.125000 +v -0.250000 1.000000 -2.500000 +v 0.250000 1.000000 -2.500000 +v -0.250000 -1.500000 -3.000000 +v -0.250000 -1.500000 -1.625000 +v 0.250000 -1.500000 -1.625000 +v 0.250000 -1.500000 -3.000000 +v -0.250000 1.375000 -2.500000 +v -0.250000 1.375000 -1.125000 +v 0.250000 1.375000 -1.125000 +v 0.250000 1.375000 -2.500000 +v 0.500000 1.000000 -1.375000 +v 0.500000 1.000000 -2.250000 +v 0.500000 -1.500000 -1.875000 +v 0.500000 -1.500000 -2.750000 +v 0.500000 1.375000 -1.375000 +v 0.500000 1.375000 -2.250000 +v -0.500000 1.000000 -2.250000 +v -0.500000 1.000000 -1.375000 +v -0.500000 -1.500000 -2.750000 +v -0.500000 -1.500000 -1.875000 +v -0.500000 1.375000 -2.250000 +v -0.500000 1.375000 -1.375000 +v -0.125000 2.937500 -0.750000 +v 0.125000 2.937500 -0.750000 +v -0.125000 2.937500 -1.000000 +v 0.125000 2.937500 -1.000000 +v -0.125000 3.062500 -0.750000 +v 0.125000 3.062500 -0.750000 +v -0.125000 3.062500 -1.250000 +v 0.125000 3.062500 -1.250000 +v -0.125000 0.250000 -1.375000 +v 0.125000 0.250000 -1.375000 +v -0.125000 0.250000 -0.875000 +v 0.125000 0.250000 -0.875000 +v -0.125000 1.125000 -1.125000 +v 0.125000 1.125000 -1.125000 +v -0.812500 2.500000 3.500000 +v -0.812500 1.500000 3.500000 +v -0.812500 2.500000 0.500000 +v -0.812500 1.500000 0.500000 +v -1.312500 2.500000 0.500000 +v -1.312500 2.500000 3.500000 +v -1.312500 1.500000 3.500000 +v -1.312500 1.500000 0.500000 +v -1.125000 2.375000 3.500000 +v -1.213388 2.338388 3.500000 +v -1.250000 2.250000 3.500000 +v -1.213388 2.161612 3.500000 +v -1.125000 2.125000 3.500000 +v -1.036612 2.161612 3.500000 +v -1.000000 2.250000 3.500000 +v -1.036612 2.338388 3.500000 +v -1.125000 2.375000 4.250000 +v -1.213388 2.338388 4.250000 +v -1.250000 2.250000 4.250000 +v -1.213388 2.161612 4.250000 +v -1.125000 2.125000 4.250000 +v -1.036612 2.161612 4.250000 +v -1.000000 2.250000 4.250000 +v -1.036612 2.338388 4.250000 +v -0.750000 2.375000 5.125000 +v -0.838388 2.338388 5.125000 +v -0.875000 2.250000 5.125000 +v -0.838388 2.161612 5.125000 +v -0.750000 2.125000 5.125000 +v -0.661612 2.161612 5.125000 +v -0.625000 2.250000 5.125000 +v -0.661612 2.338388 5.125000 +v -0.750000 2.375000 7.875000 +v -0.838388 2.338388 7.875000 +v -0.875000 2.250000 7.875000 +v -0.838388 2.161612 7.875000 +v -0.750000 2.125000 7.875000 +v -0.661612 2.161612 7.875000 +v -0.625000 2.250000 7.875000 +v -0.661612 2.338388 7.875000 +v -1.125000 1.875000 3.500000 +v -1.213388 1.838388 3.500000 +v -1.250000 1.750000 3.500000 +v -1.213388 1.661612 3.500000 +v -1.125000 1.625000 3.500000 +v -1.036612 1.661612 3.500000 +v -1.000000 1.750000 3.500000 +v -1.036612 1.838388 3.500000 +v -1.125000 1.875000 4.250000 +v -1.213388 1.838388 4.250000 +v -1.250000 1.750000 4.250000 +v -1.213388 1.661612 4.250000 +v -1.125000 1.625000 4.250000 +v -1.036612 1.661612 4.250000 +v -1.000000 1.750000 4.250000 +v -1.036612 1.838388 4.250000 +v -0.750000 1.875000 5.125000 +v -0.838388 1.838388 5.125000 +v -0.875000 1.750000 5.125000 +v -0.838388 1.661612 5.125000 +v -0.750000 1.625000 5.125000 +v -0.661612 1.661612 5.125000 +v -0.625000 1.750000 5.125000 +v -0.661612 1.838388 5.125000 +v -0.750000 1.875000 7.875000 +v -0.838388 1.838388 7.875000 +v -0.875000 1.750000 7.875000 +v -0.838388 1.661612 7.875000 +v -0.750000 1.625000 7.875000 +v -0.661612 1.661612 7.875000 +v -0.625000 1.750000 7.875000 +v -0.661612 1.838388 7.875000 +v 1.312500 2.500000 2.750000 +v 1.312500 1.500000 2.750000 +v 0.812500 2.500000 2.750000 +v 0.812500 1.500000 2.750000 +v 1.312500 2.500000 1.750000 +v 1.312500 1.500000 1.750000 +v 0.812500 2.500000 1.750000 +v 0.812500 1.500000 1.750000 +v 1.312500 2.375000 2.625000 +v 1.312500 1.625000 2.625000 +v 1.312500 2.375000 1.875000 +v 1.312500 1.625000 1.875000 +v 1.562500 2.250000 2.500000 +v 1.562500 1.750000 2.500000 +v 1.562500 2.250000 2.000000 +v 1.562500 1.750000 2.000000 +v 0.750000 2.974112 2.411612 +v 0.750000 2.937500 2.500000 +v 0.750000 2.974112 2.588388 +v 0.750000 3.062500 2.625000 +v 0.750000 3.062500 2.375000 +v 0.750000 3.150888 2.411612 +v 0.750000 3.187500 2.500000 +v 0.750000 3.150888 2.588388 +v -0.750000 3.150888 2.411612 +v -0.750000 3.187500 2.500000 +v -0.750000 3.150888 2.588388 +v -0.750000 3.062500 2.625000 +v -0.750000 3.062500 2.375000 +v -0.750000 2.974112 2.411612 +v -0.750000 2.937500 2.500000 +v -0.750000 2.974112 2.588388 +v 0.974112 2.500000 2.088388 +v 0.937500 2.500000 2.000000 +v 0.974112 2.500000 1.911612 +v 1.062500 2.500000 1.875000 +v 1.062500 2.500000 2.125000 +v 1.150888 2.500000 2.088388 +v 1.187500 2.500000 2.000000 +v 1.150888 2.500000 1.911612 +v 0.974112 2.750000 2.088388 +v 0.937500 2.750000 2.000000 +v 0.974112 2.750000 1.911612 +v 1.062500 2.750000 1.875000 +v 1.062500 2.750000 2.125000 +v 1.150888 2.750000 2.088388 +v 1.187500 2.750000 2.000000 +v 1.150888 2.750000 1.911612 +v -0.974112 2.750000 2.411612 +v -0.937500 2.750000 2.500000 +v -0.974112 2.750000 2.588388 +v -1.062500 2.750000 2.625000 +v -1.062500 2.750000 2.375000 +v -1.150888 2.750000 2.411612 +v -1.187500 2.750000 2.500000 +v -1.150888 2.750000 2.588388 +v -0.974112 2.500000 2.411612 +v -0.937500 2.500000 2.500000 +v -0.974112 2.500000 2.588388 +v -1.062500 2.500000 2.625000 +v -1.062500 2.500000 2.375000 +v -1.150888 2.500000 2.411612 +v -1.187500 2.500000 2.500000 +v -1.150888 2.500000 2.588388 +v -1.150888 2.500000 2.088388 +v -1.187500 2.500000 2.000000 +v -1.150888 2.500000 1.911612 +v -1.062500 2.500000 1.875000 +v -1.062500 2.500000 2.125000 +v -0.974112 2.500000 2.088388 +v -0.937500 2.500000 2.000000 +v -0.974112 2.500000 1.911612 +v -1.150888 2.750000 2.088388 +v -1.187500 2.750000 2.000000 +v -1.150888 2.750000 1.911612 +v -1.062500 2.750000 1.875000 +v -1.062500 2.750000 2.125000 +v -0.974112 2.750000 2.088388 +v -0.937500 2.750000 2.000000 +v -0.974112 2.750000 1.911612 +v 1.150888 2.750000 2.411612 +v 1.187500 2.750000 2.500000 +v 1.150888 2.750000 2.588388 +v 1.062500 2.750000 2.625000 +v 1.062500 2.750000 2.375000 +v 0.974112 2.750000 2.411612 +v 0.937500 2.750000 2.500000 +v 0.974112 2.750000 2.588388 +v -0.750000 2.974112 2.088388 +v -0.750000 2.937500 2.000000 +v -0.750000 2.974112 1.911612 +v -0.750000 3.062500 1.875000 +v -0.750000 3.062500 2.125000 +v -0.750000 3.150888 2.088388 +v -0.750000 3.187500 2.000000 +v -0.750000 3.150888 1.911612 +v 1.150888 2.500000 2.411612 +v 1.187500 2.500000 2.500000 +v 1.150888 2.500000 2.588388 +v 1.062500 2.500000 2.625000 +v 1.062500 2.500000 2.375000 +v 0.974112 2.500000 2.411612 +v 0.937500 2.500000 2.500000 +v 0.974112 2.500000 2.588388 +v 0.750000 3.150888 2.088388 +v 0.750000 3.187500 2.000000 +v 0.750000 3.150888 1.911612 +v 0.750000 3.062500 1.875000 +v 0.750000 3.062500 2.125000 +v 0.750000 2.974112 2.088388 +v 0.750000 2.937500 2.000000 +v 0.750000 2.974112 1.911612 +v 0.530330 1.646447 4.375000 +v 0.353553 1.469670 4.375000 +v 0.176776 1.646447 4.375000 +v 0.353553 1.823223 4.375000 +v 0.176776 1.646447 7.500000 +v 0.353553 1.823223 7.500000 +v 0.353553 1.469670 7.500000 +v 0.530330 1.646447 7.500000 +v -0.530330 2.353554 4.375000 +v -0.353553 2.530330 4.375000 +v -0.176777 2.353554 4.375000 +v -0.353553 2.176777 4.375000 +v -0.176777 2.353554 7.500000 +v -0.353553 2.176777 7.500000 +v -0.353553 2.530330 7.500000 +v -0.530330 2.353554 7.500000 +v -0.353554 1.469670 4.375000 +v -0.530330 1.646447 4.375000 +v -0.353554 1.823224 4.375000 +v -0.176777 1.646447 4.375000 +v -0.353554 1.823224 7.500000 +v -0.176777 1.646447 7.500000 +v -0.530330 1.646447 7.500000 +v -0.353554 1.469670 7.500000 +v 0.353554 2.530330 4.375000 +v 0.530330 2.353554 4.375000 +v 0.353554 2.176777 4.375000 +v 0.176777 2.353553 4.375000 +v 0.353554 2.176777 7.500000 +v 0.176777 2.353553 7.500000 +v 0.530330 2.353554 7.500000 +v 0.353554 2.530330 7.500000 +v -1.062500 2.500000 0.690000 +v -1.193315 2.500000 0.744185 +v -1.247500 2.500000 0.875000 +v -1.193315 2.500000 1.005815 +v -1.062500 2.500000 1.060000 +v -0.931685 2.500000 1.005815 +v -0.877500 2.500000 0.875000 +v -0.931685 2.500000 0.744185 +v -1.062500 3.250000 0.690000 +v -1.193315 3.250000 0.744185 +v -1.247500 3.250000 0.875000 +v -1.193315 3.250000 1.005815 +v -1.062500 3.250000 1.060000 +v -0.931685 3.250000 1.005815 +v -0.877500 3.250000 0.875000 +v -0.931685 3.250000 0.744185 +v -0.931685 3.250000 1.244185 +v -0.877500 3.250000 1.375000 +v -0.931685 3.250000 1.505815 +v -1.062500 3.250000 1.560000 +v -1.193315 3.250000 1.505815 +v -1.247500 3.250000 1.375000 +v -1.193315 3.250000 1.244185 +v -1.062500 3.250000 1.190000 +v -0.931685 2.500000 1.244185 +v -0.877500 2.500000 1.375000 +v -0.931685 2.500000 1.505815 +v -1.062500 2.500000 1.560000 +v -1.193315 2.500000 1.505815 +v -1.247500 2.500000 1.375000 +v -1.193315 2.500000 1.244185 +v -1.062500 2.500000 1.190000 +v -1.062500 2.500000 2.940000 +v -1.193315 2.500000 2.994185 +v -1.247500 2.500000 3.125000 +v -1.193315 2.500000 3.255815 +v -1.062500 2.500000 3.310000 +v -0.931685 2.500000 3.255815 +v -0.877500 2.500000 3.125000 +v -0.931685 2.500000 2.994185 +v -1.062500 3.250000 2.940000 +v -1.193315 3.250000 2.994185 +v -1.247500 3.250000 3.125000 +v -1.193315 3.250000 3.255815 +v -1.062500 3.250000 3.310000 +v -0.931685 3.250000 3.255815 +v -0.877500 3.250000 3.125000 +v -0.931685 3.250000 2.994185 +v -1.437500 2.375000 1.000000 +v -1.570083 2.320082 1.000000 +v -1.625000 2.187500 1.000000 +v -1.570083 2.054917 1.000000 +v -1.437500 2.000000 1.000000 +v -1.304917 2.054917 1.000000 +v -1.250000 2.187500 1.000000 +v -1.304917 2.320082 1.000000 +v -1.437500 2.375000 2.000000 +v -1.570083 2.320082 2.000000 +v -1.625000 2.187500 2.000000 +v -1.570083 2.054917 2.000000 +v -1.437500 2.000000 2.000000 +v -1.304917 2.054917 2.000000 +v -1.250000 2.187500 2.000000 +v -1.304917 2.320082 2.000000 +v -1.304917 1.945082 2.000000 +v -1.250000 1.812500 2.000000 +v -1.304917 1.679917 2.000000 +v -1.437500 1.625000 2.000000 +v -1.570083 1.679917 2.000000 +v -1.625000 1.812500 2.000000 +v -1.570083 1.945082 2.000000 +v -1.437500 2.000000 2.000000 +v -1.304917 1.945082 1.000000 +v -1.250000 1.812500 1.000000 +v -1.304917 1.679917 1.000000 +v -1.437500 1.625000 1.000000 +v -1.570083 1.679917 1.000000 +v -1.625000 1.812500 1.000000 +v -1.570083 1.945082 1.000000 +v -1.437500 2.000000 1.000000 +v -1.312500 2.437500 1.000000 +v -1.312500 1.562500 1.000000 +v -1.312500 2.437500 0.750000 +v -1.312500 1.562500 0.750000 +v -1.687500 2.437500 0.875000 +v -1.687500 2.437500 1.000000 +v -1.687500 1.562500 1.000000 +v -1.687500 1.562500 0.875000 +v -1.312500 2.437500 2.250000 +v -1.312500 1.562500 2.250000 +v -1.312500 2.437500 2.000000 +v -1.312500 1.562500 2.000000 +v -1.687500 2.437500 2.000000 +v -1.687500 2.437500 2.125000 +v -1.687500 1.562500 2.125000 +v -1.687500 1.562500 2.000000 +v 0.000000 2.375000 -2.625000 +v -0.187500 2.324760 -2.625000 +v -0.324759 2.187500 -2.625000 +v -0.375000 2.000000 -2.625000 +v -0.324759 1.812500 -2.625000 +v -0.187500 1.675241 -2.625000 +v 0.000000 1.625000 -2.625000 +v 0.187500 1.675241 -2.625000 +v 0.324759 1.812500 -2.625000 +v 0.375000 2.000000 -2.625000 +v 0.324759 2.187500 -2.625000 +v 0.187500 2.324760 -2.625000 +v 0.000000 2.375000 -3.000000 +v -0.187500 2.324760 -3.000000 +v -0.324759 2.187500 -3.000000 +v -0.375000 2.000000 -3.000000 +v -0.324759 1.812500 -3.000000 +v -0.187500 1.675241 -3.000000 +v 0.000000 1.625000 -3.000000 +v 0.187500 1.675241 -3.000000 +v 0.324759 1.812500 -3.000000 +v 0.375000 2.000000 -3.000000 +v 0.324759 2.187500 -3.000000 +v 0.187500 2.324760 -3.000000 +v -1.312500 2.250000 3.250000 +v -1.312500 1.750000 3.250000 +v -1.312500 2.250000 2.125000 +v -1.312500 1.750000 2.125000 +v -1.562500 2.250000 2.125000 +v -1.562500 2.250000 3.250000 +v -1.562500 1.750000 3.250000 +v -1.562500 1.750000 2.125000 +v -0.093750 2.162380 -2.875000 +v 0.000000 2.187500 -2.875000 +v -0.162380 2.093750 -2.875000 +v -0.187500 2.000000 -2.875000 +v -0.162380 1.906250 -2.875000 +v -0.093750 1.837620 -2.875000 +v 0.000000 1.812500 -2.875000 +v 0.093750 1.837620 -2.875000 +v 0.162380 1.906250 -2.875000 +v 0.187500 2.000000 -2.875000 +v 0.162380 2.093750 -2.875000 +v 0.093750 2.162380 -2.875000 +v 1.250000 0.875000 -0.125000 +v -1.250000 0.875000 -0.125000 +v 1.250000 0.963389 -0.088388 +v -1.250000 0.963389 -0.088388 +v 1.250000 1.000000 0.000000 +v -1.250000 1.000000 0.000000 +v 1.250000 0.963389 0.088388 +v -1.250000 0.963389 0.088388 +v 1.250000 0.875000 0.125000 +v -1.250000 0.875000 0.125000 +v 1.250000 0.786612 0.088388 +v -1.250000 0.786612 0.088388 +v 1.250000 0.750000 0.000000 +v -1.250000 0.750000 0.000000 +v 1.250000 0.786612 -0.088388 +v -1.250000 0.786612 -0.088388 +v 0.812500 1.750000 -1.750000 +v 0.812500 2.250000 -1.750000 +v 0.812500 2.250000 -1.125000 +v 0.812500 1.750000 -1.125000 +v 1.062500 1.750000 -1.750000 +v 1.062500 2.250000 -1.125000 +v 1.062500 2.250000 -1.750000 +v 1.062500 1.750000 -1.125000 +v 1.187500 1.750000 -1.625000 +v 1.187500 2.250000 -1.625000 +v 1.062500 1.750000 -0.187500 +v 1.187500 1.750000 -0.187500 +v 1.062500 0.687500 -0.062500 +v 1.062500 0.812500 -0.187500 +v 1.187500 0.812500 -0.187500 +v 1.187500 0.687500 -0.062500 +v 1.062500 0.812500 0.187500 +v 1.062500 0.687500 0.062500 +v 1.187500 0.687500 0.062500 +v 1.187500 0.812500 0.187500 +v 1.062500 2.250000 -0.062500 +v 1.062500 2.000000 0.187500 +v 1.187500 2.000000 0.187500 +v 1.187500 2.250000 -0.062500 +v -0.562500 0.687500 -0.062500 +v -0.562500 0.812500 -0.187500 +v -0.562500 0.812500 0.187500 +v -0.562500 0.687500 0.062500 +v 0.562500 0.687500 -0.062500 +v 0.562500 0.812500 -0.187500 +v 0.562500 0.812500 0.187500 +v 0.562500 0.687500 0.062500 +v -0.562500 1.312500 -0.187500 +v -0.562500 1.312500 0.187500 +v 0.562500 1.312500 -0.187500 +v 0.562500 1.312500 0.187500 +v -0.812500 1.750000 -1.750000 +v -0.812500 2.250000 -1.750000 +v -0.812500 2.250000 -1.125000 +v -0.812500 1.750000 -1.125000 +v -1.062500 1.750000 -1.750000 +v -1.062500 2.250000 -1.125000 +v -1.062500 2.250000 -1.750000 +v -1.062500 1.750000 -1.125000 +v -1.187500 1.750000 -1.625000 +v -1.187500 2.250000 -1.625000 +v -1.062500 1.750000 -0.187500 +v -1.187500 1.750000 -0.187500 +v -1.062500 0.687500 -0.062500 +v -1.062500 0.812500 -0.187500 +v -1.187500 0.812500 -0.187500 +v -1.187500 0.687500 -0.062500 +v -1.062500 0.812500 0.187500 +v -1.062500 0.687500 0.062500 +v -1.187500 0.687500 0.062500 +v -1.187500 0.812500 0.187500 +v -1.062500 2.250000 -0.062500 +v -1.062500 2.000000 0.187500 +v -1.187500 2.000000 0.187500 +v -1.187500 2.250000 -0.062500 +vt 0.460000 0.266667 +vt 0.486667 0.226667 +vt 0.486667 0.253333 +vt 0.153333 0.546667 +vt 0.140000 0.580000 +vt 0.140000 0.540000 +vt 0.153333 0.493333 +vt 0.140000 0.526667 +vt 0.140000 0.486667 +vt 0.153333 0.440000 +vt 0.140000 0.473333 +vt 0.140000 0.433333 +vt 0.153333 0.386667 +vt 0.140000 0.420000 +vt 0.140000 0.380000 +vt 0.153333 0.333333 +vt 0.140000 0.366667 +vt 0.140000 0.326667 +vt 0.153333 0.280000 +vt 0.140000 0.313333 +vt 0.140000 0.273333 +vt 0.153333 0.226667 +vt 0.140000 0.260000 +vt 0.140000 0.220000 +vt 0.153333 0.173333 +vt 0.140000 0.206667 +vt 0.140000 0.166667 +vt 0.153333 0.120000 +vt 0.140000 0.153333 +vt 0.140000 0.113333 +vt 0.153333 0.066667 +vt 0.140000 0.100000 +vt 0.140000 0.060000 +vt 0.153333 0.040000 +vt 0.140000 0.006667 +vt 0.153333 0.013333 +vt 0.153333 0.600000 +vt 0.140000 0.633333 +vt 0.140000 0.593333 +vt 0.120000 0.273333 +vt 0.106667 0.320000 +vt 0.106667 0.266667 +vt 0.120000 0.220000 +vt 0.106667 0.213333 +vt 0.120000 0.206667 +vt 0.106667 0.160000 +vt 0.120000 0.166667 +vt 0.120000 0.113333 +vt 0.106667 0.106667 +vt 0.120000 0.060000 +vt 0.106667 0.053333 +vt 0.120000 0.006667 +vt 0.106667 0.000000 +vt 0.120000 0.633333 +vt 0.106667 0.586667 +vt 0.120000 0.593333 +vt 0.120000 0.580000 +vt 0.106667 0.533333 +vt 0.120000 0.540000 +vt 0.120000 0.526667 +vt 0.106667 0.480000 +vt 0.120000 0.486667 +vt 0.120000 0.473333 +vt 0.106667 0.426667 +vt 0.120000 0.433333 +vt 0.120000 0.420000 +vt 0.106667 0.373333 +vt 0.120000 0.380000 +vt 0.120000 0.366667 +vt 0.120000 0.326667 +vt 0.080000 0.160000 +vt 0.066667 0.206667 +vt 0.066667 0.166667 +vt 0.080000 0.213333 +vt 0.066667 0.260000 +vt 0.066667 0.220000 +vt 0.066667 0.273333 +vt 0.080000 0.320000 +vt 0.066667 0.313333 +vt 0.066667 0.366667 +vt 0.066667 0.326667 +vt 0.080000 0.373333 +vt 0.066667 0.420000 +vt 0.066667 0.380000 +vt 0.080000 0.426667 +vt 0.066667 0.473333 +vt 0.066667 0.433333 +vt 0.080000 0.480000 +vt 0.066667 0.526667 +vt 0.066667 0.486667 +vt 0.080000 0.533333 +vt 0.066667 0.580000 +vt 0.066667 0.540000 +vt 0.080000 0.586667 +vt 0.066667 0.633333 +vt 0.066667 0.593333 +vt 0.066667 0.006667 +vt 0.080000 0.053333 +vt 0.066667 0.046667 +vt 0.066667 0.060000 +vt 0.080000 0.106667 +vt 0.066667 0.100000 +vt 0.066667 0.113333 +vt 0.066667 0.153333 +vt 0.046667 0.046667 +vt 0.026667 0.013333 +vt 0.046667 0.006667 +vt 0.046667 0.526667 +vt 0.026667 0.493333 +vt 0.046667 0.486667 +vt 0.046667 0.220000 +vt 0.026667 0.246667 +vt 0.026667 0.226667 +vt 0.046667 0.366667 +vt 0.026667 0.333333 +vt 0.046667 0.326667 +vt 0.046667 0.100000 +vt 0.026667 0.066667 +vt 0.046667 0.060000 +vt 0.046667 0.580000 +vt 0.026667 0.546667 +vt 0.046667 0.540000 +vt 0.046667 0.313333 +vt 0.026667 0.280000 +vt 0.046667 0.273333 +vt 0.046667 0.420000 +vt 0.026667 0.386667 +vt 0.046667 0.380000 +vt 0.046667 0.113333 +vt 0.026667 0.140000 +vt 0.026667 0.120000 +vt 0.046667 0.633333 +vt 0.026667 0.600000 +vt 0.046667 0.593333 +vt 0.046667 0.473333 +vt 0.026667 0.440000 +vt 0.046667 0.433333 +vt 0.046667 0.206667 +vt 0.026667 0.173333 +vt 0.046667 0.166667 +vt 0.197303 0.699979 +vt 0.180000 0.719959 +vt 0.162697 0.660021 +vt 0.460000 0.480000 +vt 0.486667 0.440000 +vt 0.486667 0.466667 +vt 0.486667 0.520000 +vt 0.460000 0.533333 +vt 0.486667 0.573333 +vt 0.460000 0.586667 +vt 0.460000 0.640000 +vt 0.486667 0.600000 +vt 0.486667 0.626667 +vt 0.460000 0.053333 +vt 0.486667 0.013333 +vt 0.486667 0.040000 +vt 0.486667 0.093333 +vt 0.460000 0.106667 +vt 0.460000 0.160000 +vt 0.486667 0.120000 +vt 0.486667 0.146667 +vt 0.460000 0.373333 +vt 0.486667 0.333333 +vt 0.486667 0.360000 +vt 0.460000 0.320000 +vt 0.486667 0.280000 +vt 0.486667 0.306667 +vt 0.486667 0.200000 +vt 0.460000 0.213333 +vt 0.486667 0.413333 +vt 0.460000 0.426667 +vt 0.159989 0.693333 +vt 0.146661 0.739503 +vt 0.106677 0.693333 +vt 0.732697 0.846687 +vt 0.767303 0.846687 +vt 0.750000 0.906626 +vt 0.773468 0.906787 +vt 0.796667 0.826426 +vt 0.819865 0.906787 +vt 0.099472 0.693390 +vt 0.099472 0.799943 +vt 0.053333 0.853219 +vt 0.840000 0.106667 +vt 0.826667 0.080000 +vt 0.840000 0.000000 +vt 0.153333 0.840000 +vt 0.180000 0.813333 +vt 0.180000 0.840000 +vt 0.973333 0.493333 +vt 0.986667 0.440000 +vt 0.986667 0.493333 +vt 0.986667 0.413333 +vt 0.973333 0.440000 +vt 0.973333 0.413333 +vt 0.973333 0.506667 +vt 0.986667 0.506667 +vt 0.966667 0.466667 +vt 0.966667 0.493333 +vt 0.993333 0.466667 +vt 0.106667 0.840000 +vt 0.153333 0.813333 +vt 0.166667 0.720000 +vt 0.166667 0.933333 +vt 0.226667 0.800000 +vt 0.386667 0.693333 +vt 0.386667 0.800000 +vt 0.386667 0.640000 +vt 0.226667 0.693333 +vt 0.226667 0.640000 +vt 0.226667 0.853333 +vt 0.386667 0.853333 +vt 0.200000 0.693333 +vt 0.200000 0.800000 +vt 0.413333 0.800000 +vt 0.413333 0.693333 +vt 0.873333 0.586667 +vt 0.846667 0.480000 +vt 0.873333 0.480000 +vt 0.966667 0.480000 +vt 0.940000 0.586667 +vt 0.940000 0.480000 +vt 0.880000 0.600000 +vt 0.933333 0.653333 +vt 0.880000 0.653333 +vt 0.893333 0.506667 +vt 0.926667 0.480000 +vt 0.920000 0.506667 +vt 0.880000 0.413333 +vt 0.933333 0.466667 +vt 0.880000 0.466667 +vt 0.926667 0.586667 +vt 0.933333 0.600000 +vt 0.933333 0.493333 +vt 0.880000 0.573333 +vt 0.886667 0.480000 +vt 0.920000 0.560000 +vt 0.893333 0.560000 +vt 0.933333 0.573333 +vt 0.886667 0.586667 +vt 0.880000 0.493333 +vt 0.560000 0.666667 +vt 0.726667 0.693333 +vt 0.560000 0.693333 +vt 0.726667 0.640000 +vt 0.560000 0.666667 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.720000 +vt 0.726667 0.640000 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.693333 +vt 0.726667 0.720000 +vt 0.560000 0.693333 +vt 0.560000 0.666667 +vt 0.726667 0.693333 +vt 0.560000 0.693333 +vt 0.726667 0.640000 +vt 0.560000 0.666667 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.720000 +vt 0.726667 0.640000 +vt 0.560000 0.640000 +vt 0.560000 0.720000 +vt 0.726667 0.693333 +vt 0.726667 0.720000 +vt 0.560000 0.693333 +vt 0.000156 0.953333 +vt 0.010000 0.933646 +vt 0.019844 0.953333 +vt 0.053490 0.953333 +vt 0.063333 0.933646 +vt 0.073177 0.953333 +vt 0.000156 0.953333 +vt 0.010000 0.933646 +vt 0.019844 0.953333 +vt 0.480000 0.773333 +vt 0.486667 0.680000 +vt 0.486667 0.773333 +vt 0.433333 0.773333 +vt 0.440000 0.680000 +vt 0.440000 0.773333 +vt 0.440000 0.813333 +vt 0.413333 0.680000 +vt 0.413333 0.773333 +vt 0.460000 0.773333 +vt 0.460000 0.680000 +vt 0.440000 0.640000 +vt 0.433333 0.680000 +vt 0.426667 0.640000 +vt 0.480000 0.813333 +vt 0.493333 0.813333 +vt 0.460000 0.680000 +vt 0.460000 0.773333 +vt 0.506667 0.773333 +vt 0.506667 0.680000 +vt 0.480000 0.640000 +vt 0.480000 0.680000 +vt 0.773333 0.493333 +vt 0.833333 0.440000 +vt 0.833333 0.493333 +vt 0.833333 0.413333 +vt 0.773333 0.440000 +vt 0.773333 0.413333 +vt 0.773333 0.520000 +vt 0.833333 0.520000 +vt 0.791947 0.530054 +vt 0.791947 0.549945 +vt 0.774720 0.549945 +vt 0.846667 0.493333 +vt 0.846667 0.440000 +vt 0.793333 0.800031 +vt 0.799985 0.813334 +vt 0.793333 0.826636 +vt 0.788646 0.777292 +vt 0.793333 0.773409 +vt 0.798021 0.777292 +vt 0.556667 0.993333 +vt 0.556667 0.966667 +vt 0.550000 0.953333 +vt 0.550000 0.953333 +vt 0.556667 0.900000 +vt 0.556667 0.953333 +vt 0.523333 0.993333 +vt 0.523333 0.966667 +vt 0.570000 0.900000 +vt 0.570000 0.953333 +vt 0.556667 0.900000 +vt 0.570000 0.953333 +vt 0.556667 0.953333 +vt 0.453333 0.800000 +vt 0.446667 0.926667 +vt 0.446667 0.800000 +vt 0.480000 0.953333 +vt 0.523333 0.966667 +vt 0.473333 0.900000 +vt 0.466667 0.953333 +vt 0.523333 0.953333 +vt 0.473333 0.900000 +vt 0.466667 0.953333 +vt 0.473333 0.800000 +vt 0.460000 0.786667 +vt 0.453333 0.800000 +vt 0.473333 0.800000 +vt 0.460000 0.786667 +vt 0.466667 0.773333 +vt 0.466667 0.786667 +vt 0.473333 0.773333 +vt 0.460000 0.773333 +vt 0.453333 0.786667 +vt 0.453333 0.773333 +vt 0.480000 0.900000 +vt 0.453333 0.953333 +vt 0.453333 0.926667 +vt 0.453333 0.926667 +vt 0.206667 0.920000 +vt 0.266667 0.933333 +vt 0.206667 0.933333 +vt 0.266667 0.946667 +vt 0.206667 0.946667 +vt 0.206667 0.906667 +vt 0.266667 0.920000 +vt 0.266667 0.853333 +vt 0.266667 0.906667 +vt 0.206667 1.000000 +vt 0.173333 0.946667 +vt 0.173333 0.906667 +vt 0.200000 0.906667 +vt 0.273333 0.946667 +vt 0.550000 0.953333 +vt 0.556667 0.993333 +vt 0.523333 0.993333 +vt 0.556667 0.900000 +vt 0.550000 0.953333 +vt 0.556667 0.953333 +vt 0.523333 0.993333 +vt 0.556667 0.993333 +vt 0.570000 0.900000 +vt 0.570000 0.953333 +vt 0.570000 0.953333 +vt 0.556667 0.900000 +vt 0.556667 0.953333 +vt 0.446667 0.926667 +vt 0.453333 0.800000 +vt 0.446667 0.800000 +vt 0.523333 0.966667 +vt 0.480000 0.953333 +vt 0.473333 0.900000 +vt 0.550000 0.900000 +vt 0.473333 0.900000 +vt 0.523333 0.953333 +vt 0.466667 0.953333 +vt 0.466667 0.786667 +vt 0.460000 0.786667 +vt 0.523333 0.966667 +vt 0.466667 0.953333 +vt 0.466667 0.966667 +vt 0.460000 0.786667 +vt 0.466667 0.786667 +vt 0.473333 0.800000 +vt 0.466667 0.773333 +vt 0.473333 0.773333 +vt 0.453333 0.786667 +vt 0.460000 0.773333 +vt 0.453333 0.773333 +vt 0.480000 0.900000 +vt 0.473333 0.800000 +vt 0.453333 0.953333 +vt 0.453333 0.926667 +vt 0.453333 0.926667 +vt 0.153333 0.573333 +vt 0.153333 0.520000 +vt 0.153333 0.466667 +vt 0.153333 0.413333 +vt 0.153333 0.360000 +vt 0.153333 0.306667 +vt 0.153333 0.253333 +vt 0.153333 0.200000 +vt 0.153333 0.146667 +vt 0.153333 0.093333 +vt 0.140000 0.046667 +vt 0.153333 0.626667 +vt 0.120000 0.313333 +vt 0.120000 0.260000 +vt 0.120000 0.153333 +vt 0.120000 0.100000 +vt 0.120000 0.046667 +vt 0.106667 0.640000 +vt 0.080000 0.266667 +vt 0.080000 0.640000 +vt 0.080000 0.000000 +vt 0.026667 0.033333 +vt 0.026667 0.513333 +vt 0.046667 0.260000 +vt 0.026667 0.353333 +vt 0.026667 0.086667 +vt 0.026667 0.566667 +vt 0.026667 0.300000 +vt 0.026667 0.406667 +vt 0.046667 0.153333 +vt 0.026667 0.620000 +vt 0.026667 0.460000 +vt 0.026667 0.193333 +vt 0.170010 0.714606 +vt 0.162697 0.699979 +vt 0.160021 0.680000 +vt 0.170010 0.645395 +vt 0.180000 0.640041 +vt 0.189990 0.645395 +vt 0.197303 0.660021 +vt 0.199979 0.680000 +vt 0.189990 0.714606 +vt 0.486667 0.493333 +vt 0.486667 0.546667 +vt 0.460000 -0.000000 +vt 0.486667 0.066667 +vt 0.486667 0.173333 +vt 0.486667 0.386667 +vt 0.133333 0.746646 +vt 0.120005 0.739503 +vt 0.110248 0.719989 +vt 0.110248 0.666677 +vt 0.146661 0.647164 +vt 0.120005 0.647164 +vt 0.133333 0.640021 +vt 0.156418 0.666677 +vt 0.156418 0.719989 +vt 0.740010 0.901272 +vt 0.732697 0.886646 +vt 0.730020 0.866667 +vt 0.740010 0.832061 +vt 0.750000 0.826708 +vt 0.759990 0.832061 +vt 0.769980 0.866667 +vt 0.767303 0.886646 +vt 0.759990 0.901272 +vt 0.810060 0.926396 +vt 0.796667 0.933574 +vt 0.783273 0.926396 +vt 0.769880 0.880000 +vt 0.773468 0.853213 +vt 0.783273 0.833603 +vt 0.810060 0.833603 +vt 0.819865 0.853213 +vt 0.823454 0.880000 +vt 0.026695 0.838944 +vt 0.007195 0.799943 +vt 0.000057 0.746667 +vt 0.007195 0.693390 +vt 0.026695 0.654390 +vt 0.053333 0.640114 +vt 0.079972 0.654390 +vt 0.106610 0.746667 +vt 0.079971 0.838944 +vt 0.826667 0.026667 +vt 0.886667 0.000000 +vt 0.886667 0.106667 +vt 0.900000 0.026667 +vt 0.900000 0.080000 +vt 0.993333 0.493333 +vt 0.106667 0.813333 +vt 0.846667 0.586667 +vt 0.966667 0.586667 +vt 0.933333 0.413333 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.726667 0.666667 +vt 0.003040 0.939412 +vt 0.016961 0.939412 +vt 0.016961 0.967254 +vt 0.010000 0.973020 +vt 0.003040 0.967254 +vt 0.056373 0.939412 +vt 0.070294 0.939412 +vt 0.070294 0.967254 +vt 0.063333 0.973020 +vt 0.056373 0.967254 +vt 0.003040 0.939412 +vt 0.016961 0.939412 +vt 0.016961 0.967254 +vt 0.010000 0.973020 +vt 0.003040 0.967254 +vt 0.426667 0.813333 +vt 0.493333 0.640000 +vt 0.788306 0.557226 +vt 0.783333 0.559891 +vt 0.778361 0.557226 +vt 0.773388 0.540000 +vt 0.774720 0.530054 +vt 0.778361 0.522774 +vt 0.783333 0.520109 +vt 0.788306 0.522773 +vt 0.793279 0.540000 +vt 0.788630 0.822740 +vt 0.786682 0.813334 +vt 0.788630 0.803927 +vt 0.798037 0.803927 +vt 0.798037 0.822740 +vt 0.799962 0.786667 +vt 0.798021 0.796041 +vt 0.793333 0.799924 +vt 0.788646 0.796041 +vt 0.786704 0.786667 +vt 0.523333 0.993333 +vt 0.550000 0.900000 +vt 0.556667 0.966667 +vt 0.556667 0.993333 +vt 0.570000 0.900000 +vt 0.480000 0.966667 +vt 0.523333 0.900000 +vt 0.466667 0.966667 +vt 0.466667 0.786667 +vt 0.473333 0.786667 +vt 0.480000 0.800000 +vt 0.446667 0.953333 +vt 0.206667 0.853333 +vt 0.266667 1.000000 +vt 0.200000 0.946667 +vt 0.273333 0.906667 +vt 0.300000 0.906667 +vt 0.300000 0.946667 +vt 0.556667 0.966667 +vt 0.556667 0.966667 +vt 0.570000 0.900000 +vt 0.480000 0.966667 +vt 0.523333 0.900000 +vt 0.453333 0.800000 +vt 0.473333 0.786667 +vt 0.480000 0.800000 +vt 0.446667 0.953333 +vt 0.193333 0.320000 +vt 0.193333 0.266667 +vt 0.193333 0.213333 +vt 0.193333 0.160000 +vt 0.193333 0.106667 +vt 0.193333 0.053333 +vt 0.193333 0.640000 +vt 0.193333 0.586667 +vt 0.193333 0.533333 +vt 0.193333 0.480000 +vt 0.193333 0.426667 +vt 0.193333 0.373333 +vt 0.486667 0.480000 +vt 0.646667 0.453333 +vt 0.646667 0.480000 +vt 0.486667 0.453333 +vt 0.646667 0.426667 +vt 0.486667 0.426667 +vt 0.646667 0.400000 +vt 0.486667 0.400000 +vt 0.646667 0.373333 +vt 0.486667 0.373333 +vt 0.646667 0.346667 +vt 0.486667 0.346667 +vt 0.646667 0.320000 +vt 0.486667 0.640000 +vt 0.646667 0.613333 +vt 0.646667 0.640000 +vt 0.486667 0.613333 +vt 0.646667 0.586667 +vt 0.486667 0.586667 +vt 0.646667 0.560000 +vt 0.486667 0.560000 +vt 0.646667 0.533333 +vt 0.486667 0.533333 +vt 0.646667 0.506667 +vt 0.486667 0.506667 +vt 0.166667 0.313333 +vt 0.180000 0.266667 +vt 0.180000 0.320000 +vt 0.166667 0.220000 +vt 0.180000 0.213333 +vt 0.166667 0.166667 +vt 0.180000 0.160000 +vt 0.166667 0.113333 +vt 0.180000 0.106667 +vt 0.166667 0.100000 +vt 0.180000 0.053333 +vt 0.180000 0.373333 +vt 0.166667 0.326667 +vt 0.180000 0.426667 +vt 0.166667 0.380000 +vt 0.166667 0.473333 +vt 0.180000 0.480000 +vt 0.166667 0.526667 +vt 0.166667 0.486667 +vt 0.166667 0.580000 +vt 0.180000 0.533333 +vt 0.180000 0.586667 +vt 0.180000 0.640000 +vt 0.166667 0.593333 +vt 0.166667 0.006667 +vt 0.180000 -0.000000 +vt 0.153333 0.200000 +vt 0.166667 0.206667 +vt 0.153333 0.253333 +vt 0.153333 0.226667 +vt 0.153333 0.280000 +vt 0.153333 0.306667 +vt 0.153333 0.333333 +vt 0.166667 0.366667 +vt 0.153333 0.360000 +vt 0.153333 0.386667 +vt 0.166667 0.420000 +vt 0.153333 0.413333 +vt 0.153333 0.440000 +vt 0.153333 0.466667 +vt 0.153333 0.520000 +vt 0.153333 0.546667 +vt 0.153333 0.573333 +vt 0.153333 0.600000 +vt 0.166667 0.633333 +vt 0.153333 0.626667 +vt 0.153333 0.040000 +vt 0.166667 0.046667 +vt 0.153333 0.066667 +vt 0.153333 0.093333 +vt 0.153333 0.120000 +vt 0.166667 0.153333 +vt 0.153333 0.146667 +vt 0.193333 -0.000000 +vt 0.000000 0.333333 +vt 0.000000 0.066667 +vt 0.000000 0.546667 +vt 0.000000 0.280000 +vt 0.000000 0.386667 +vt 0.000000 0.120000 +vt 0.000000 0.600000 +vt 0.000000 0.440000 +vt 0.000000 0.173333 +vt 0.000000 0.013333 +vt 0.000000 0.493333 +vt 0.000000 0.226667 +vt 0.646667 0.266667 +vt 0.486667 0.240000 +vt 0.646667 0.240000 +vt 0.646667 0.133333 +vt 0.486667 0.106667 +vt 0.646667 0.106667 +vt 0.646667 0.186667 +vt 0.486667 0.160000 +vt 0.646667 0.160000 +vt 0.646667 0.053333 +vt 0.486667 0.026667 +vt 0.646667 0.026667 +vt 0.646667 0.293333 +vt 0.486667 0.266667 +vt 0.486667 0.133333 +vt 0.646667 0.213333 +vt 0.486667 0.186667 +vt 0.646667 0.080000 +vt 0.486667 0.053333 +vt 0.646667 0.320000 +vt 0.486667 0.293333 +vt 0.486667 0.213333 +vt 0.486667 0.080000 +vt 0.486667 -0.000000 +vt 0.646667 0.000000 +vt 0.746667 0.306667 +vt 0.720000 0.266667 +vt 0.746667 0.280000 +vt 0.850000 0.973333 +vt 0.823333 0.946667 +vt 0.850000 0.946667 +vt 0.823333 0.920000 +vt 0.850000 0.920000 +vt 0.773333 0.293333 +vt 0.700000 0.320000 +vt 0.720000 0.320000 +vt 0.850000 0.760000 +vt 0.823333 0.780000 +vt 0.823333 0.760000 +vt 0.850000 0.840000 +vt 0.823333 0.860000 +vt 0.823333 0.840000 +vt 0.850000 0.680000 +vt 0.823333 0.653333 +vt 0.850000 0.653333 +vt 0.773333 0.240000 +vt 0.746667 0.253333 +vt 0.746667 0.226667 +vt 0.700000 0.266667 +vt 0.720000 0.213333 +vt 0.850000 0.813333 +vt 0.823333 0.833333 +vt 0.823333 0.813333 +vt 0.850000 0.786667 +vt 0.823333 0.806667 +vt 0.823333 0.786667 +vt 0.773333 0.186667 +vt 0.746667 0.200000 +vt 0.746667 0.173333 +vt 0.700000 0.213333 +vt 0.720000 0.160000 +vt 0.850000 0.893333 +vt 0.823333 0.866667 +vt 0.850000 0.866667 +vt 0.773333 0.133333 +vt 0.746667 0.146667 +vt 0.746667 0.120000 +vt 0.700000 0.106667 +vt 0.720000 0.106667 +vt 0.983333 0.680000 +vt 0.983333 0.653333 +vt 0.983333 0.813333 +vt 0.983333 0.786667 +vt 0.983333 0.893333 +vt 0.983333 0.866667 +vt 0.773333 0.080000 +vt 0.746667 0.093333 +vt 0.746667 0.066667 +vt 0.720000 0.053333 +vt 0.983333 0.973333 +vt 0.983333 0.946667 +vt 0.983333 0.840000 +vt 0.983333 0.760000 +vt 0.773333 0.026667 +vt 0.746667 0.040000 +vt 0.746667 0.013333 +vt 0.700000 0.000000 +vt 0.720000 0.000000 +vt 0.983333 0.920000 +vt 0.850000 0.733333 +vt 0.983333 0.733333 +vt 0.700000 0.640000 +vt 0.720000 0.586667 +vt 0.720000 0.640000 +vt 0.850000 0.706667 +vt 0.983333 0.706667 +vt 0.746667 0.600000 +vt 0.746667 0.626667 +vt 0.773333 0.613333 +vt 0.823333 0.700000 +vt 0.823333 0.680000 +vt 0.746667 0.546667 +vt 0.746667 0.573333 +vt 0.773333 0.560000 +vt 0.700000 0.533333 +vt 0.720000 0.533333 +vt 0.746667 0.520000 +vt 0.720000 0.480000 +vt 0.746667 0.493333 +vt 0.700000 0.053333 +vt 0.646667 0.000000 +vt 0.700000 0.480000 +vt 0.646667 0.426667 +vt 0.700000 0.426667 +vt 0.773333 0.506667 +vt 0.700000 0.586667 +vt 0.646667 0.533333 +vt 0.746667 0.440000 +vt 0.746667 0.466667 +vt 0.646667 0.213333 +vt 0.646667 0.373333 +vt 0.700000 0.373333 +vt 0.773333 0.453333 +vt 0.720000 0.426667 +vt 0.646667 0.320000 +vt 0.746667 0.413333 +vt 0.720000 0.373333 +vt 0.746667 0.386667 +vt 0.646667 0.266667 +vt 0.700000 0.160000 +vt 0.646667 0.106667 +vt 0.773333 0.400000 +vt 0.646667 0.586667 +vt 0.746667 0.360000 +vt 0.746667 0.333333 +vt 0.646667 0.480000 +vt 0.646667 0.053333 +vt 0.773333 0.346667 +vt 0.646667 0.160000 +vt 0.823333 0.706667 +vt 0.823333 0.733333 +vt 0.823333 0.913333 +vt 0.823333 0.893333 +vt 0.820000 0.373333 +vt 0.840000 0.413333 +vt 0.820000 0.413333 +vt 0.793333 0.106667 +vt 0.773333 0.373333 +vt 0.773333 0.106667 +vt 0.906667 0.373333 +vt 0.933333 0.106667 +vt 0.933333 0.373333 +vt 0.793333 0.373333 +vt 0.820000 0.106667 +vt 0.886667 0.373333 +vt 0.840000 0.373333 +vt 0.906667 0.413333 +vt 0.793333 0.413333 +vt 0.906667 0.106667 +vt 0.953333 0.373333 +vt 1.000000 0.106667 +vt 1.000000 0.373333 +vt 0.953333 0.413333 +vt 0.953333 0.106667 +vt 0.933333 0.413333 +vt 0.560000 0.760000 +vt 0.600000 0.766667 +vt 0.560000 0.766667 +vt 0.560000 0.720000 +vt 0.600000 0.726667 +vt 0.560000 0.726667 +vt 0.560000 0.733333 +vt 0.600000 0.740000 +vt 0.560000 0.740000 +vt 0.560000 0.746667 +vt 0.600000 0.753333 +vt 0.560000 0.753333 +vt 0.600000 0.773333 +vt 0.560000 0.773333 +vt 0.600000 0.733333 +vt 0.600000 0.746667 +vt 0.600000 0.760000 +vt 0.646667 0.746667 +vt 0.646667 0.753333 +vt 0.646667 0.766667 +vt 0.646667 0.773333 +vt 0.646667 0.733333 +vt 0.646667 0.760000 +vt 0.600000 0.720000 +vt 0.646667 0.726667 +vt 0.646667 0.740000 +vt 0.793333 0.766667 +vt 0.646667 0.720000 +vt 0.793333 0.726667 +vt 0.793333 0.740000 +vt 0.793333 0.753333 +vt 0.793333 0.773333 +vt 0.793333 0.733333 +vt 0.793333 0.746667 +vt 0.793333 0.760000 +vt 0.560000 0.760000 +vt 0.600000 0.766667 +vt 0.560000 0.766667 +vt 0.560000 0.720000 +vt 0.600000 0.726667 +vt 0.560000 0.726667 +vt 0.560000 0.733333 +vt 0.600000 0.740000 +vt 0.560000 0.740000 +vt 0.560000 0.746667 +vt 0.600000 0.753333 +vt 0.560000 0.753333 +vt 0.600000 0.773333 +vt 0.560000 0.773333 +vt 0.600000 0.733333 +vt 0.600000 0.746667 +vt 0.600000 0.760000 +vt 0.646667 0.746667 +vt 0.646667 0.753333 +vt 0.646667 0.766667 +vt 0.646667 0.773333 +vt 0.646667 0.733333 +vt 0.646667 0.760000 +vt 0.600000 0.720000 +vt 0.646667 0.726667 +vt 0.646667 0.740000 +vt 0.793333 0.766667 +vt 0.646667 0.720000 +vt 0.793333 0.726667 +vt 0.793333 0.740000 +vt 0.793333 0.753333 +vt 0.793333 0.773333 +vt 0.793333 0.733333 +vt 0.793333 0.746667 +vt 0.793333 0.760000 +vt 0.506667 0.820000 +vt 0.533333 0.826667 +vt 0.506667 0.826667 +vt 0.506667 0.813333 +vt 0.533333 0.820000 +vt 0.506667 0.806667 +vt 0.533333 0.813333 +vt 0.506667 0.800000 +vt 0.533333 0.806667 +vt 0.533333 0.793333 +vt 0.506667 0.793333 +vt 0.533333 0.786667 +vt 0.506667 0.786667 +vt 0.533333 0.780000 +vt 0.506667 0.780000 +vt 0.613333 0.826667 +vt 0.653333 0.820000 +vt 0.640000 0.813333 +vt 0.653333 0.813333 +vt 0.653333 0.780000 +vt 0.640000 0.773333 +vt 0.653333 0.773333 +vt 0.653333 0.806667 +vt 0.640000 0.800000 +vt 0.653333 0.800000 +vt 0.653333 0.793333 +vt 0.640000 0.786667 +vt 0.653333 0.786667 +vt 0.653333 0.826667 +vt 0.640000 0.820000 +vt 0.640000 0.780000 +vt 0.640000 0.793333 +vt 0.640000 0.806667 +vt 0.613333 0.820000 +vt 0.613333 0.813333 +vt 0.533333 0.800000 +vt 0.613333 0.806667 +vt 0.613333 0.800000 +vt 0.613333 0.793333 +vt 0.613333 0.786667 +vt 0.640000 0.780000 +vt 0.640000 0.786667 +vt 0.640000 0.793333 +vt 0.493333 0.806667 +vt 0.506667 0.813333 +vt 0.493333 0.813333 +vt 0.493333 0.793333 +vt 0.506667 0.800000 +vt 0.493333 0.800000 +vt 0.493333 0.820000 +vt 0.506667 0.826667 +vt 0.493333 0.826667 +vt 0.493333 0.780000 +vt 0.506667 0.786667 +vt 0.493333 0.786667 +vt 0.506667 0.806667 +vt 0.506667 0.793333 +vt 0.493333 0.773333 +vt 0.506667 0.780000 +vt 0.506667 0.820000 +vt 0.640000 0.800000 +vt 0.640000 0.806667 +vt 0.640000 0.813333 +vt 0.640000 0.820000 +vt 0.640000 0.826667 +vt 0.613333 0.773333 +vt 0.640000 0.773333 +vt 0.533333 0.773333 +vt 0.613333 0.780000 +vt 0.506667 0.773333 +vt 0.493333 0.813333 +vt 0.493333 0.820000 +vt 0.493333 0.773333 +vt 0.493333 0.780000 +vt 0.493333 0.786667 +vt 0.493333 0.793333 +vt 0.493333 0.800000 +vt 0.493333 0.806667 +vt 0.493333 0.826667 +vt 0.653333 0.813333 +vt 0.653333 0.806667 +vt 0.653333 0.800000 +vt 0.653333 0.793333 +vt 0.653333 0.786667 +vt 0.653333 0.780000 +vt 0.653333 0.826667 +vt 0.653333 0.820000 +vt 0.653333 0.773333 +vt 0.533333 0.773333 +vt 0.506667 0.773333 +vt 0.613333 0.780000 +vt 0.533333 0.780000 +vt 0.613333 0.773333 +vt 0.613333 0.826667 +vt 0.640000 0.826667 +vt 0.613333 0.820000 +vt 0.613333 0.806667 +vt 0.613333 0.793333 +vt 0.613333 0.786667 +vt 0.533333 0.786667 +vt 0.533333 0.793333 +vt 0.613333 0.800000 +vt 0.533333 0.800000 +vt 0.533333 0.806667 +vt 0.613333 0.813333 +vt 0.533333 0.813333 +vt 0.533333 0.820000 +vt 0.533333 0.826667 +vt 0.026667 0.853333 +vt 0.020000 0.933333 +vt 0.020000 0.853333 +vt 0.013333 0.853333 +vt 0.006667 0.933333 +vt 0.006667 0.853333 +vt 0.053333 0.853333 +vt 0.046667 0.933333 +vt 0.046667 0.853333 +vt 0.033333 0.853333 +vt 0.026667 0.933333 +vt 0.013333 0.933333 +vt 0.000000 0.933333 +vt 0.000000 0.853333 +vt 0.040000 0.933333 +vt 0.040000 0.853333 +vt 0.033333 0.933333 +vt 0.093333 0.853333 +vt 0.086667 0.933333 +vt 0.086667 0.853333 +vt 0.100000 0.853333 +vt 0.093333 0.933333 +vt 0.060000 0.853333 +vt 0.053333 0.933333 +vt 0.053333 0.853333 +vt 0.073333 0.853333 +vt 0.066667 0.933333 +vt 0.066667 0.853333 +vt 0.080000 0.933333 +vt 0.080000 0.853333 +vt 0.106667 0.853333 +vt 0.100000 0.933333 +vt 0.060000 0.933333 +vt 0.073333 0.933333 +vt 0.026667 0.853333 +vt 0.020000 0.933333 +vt 0.020000 0.853333 +vt 0.013333 0.853333 +vt 0.006667 0.933333 +vt 0.006667 0.853333 +vt 0.053333 0.853333 +vt 0.046667 0.933333 +vt 0.046667 0.853333 +vt 0.033333 0.853333 +vt 0.026667 0.933333 +vt 0.013333 0.933333 +vt 0.000000 0.933333 +vt 0.000000 0.853333 +vt 0.040000 0.933333 +vt 0.040000 0.853333 +vt 0.033333 0.933333 +vt 0.506667 0.733333 +vt 0.560000 0.746667 +vt 0.506667 0.746667 +vt 0.506667 0.653333 +vt 0.560000 0.666667 +vt 0.506667 0.666667 +vt 0.506667 0.680000 +vt 0.560000 0.693333 +vt 0.506667 0.693333 +vt 0.506667 0.706667 +vt 0.560000 0.720000 +vt 0.506667 0.720000 +vt 0.560000 0.733333 +vt 0.506667 0.640000 +vt 0.560000 0.653333 +vt 0.560000 0.680000 +vt 0.560000 0.706667 +vt 0.506667 0.693333 +vt 0.560000 0.706667 +vt 0.506667 0.706667 +vt 0.506667 0.666667 +vt 0.560000 0.680000 +vt 0.506667 0.680000 +vt 0.506667 0.640000 +vt 0.560000 0.653333 +vt 0.506667 0.653333 +vt 0.506667 0.720000 +vt 0.560000 0.733333 +vt 0.506667 0.733333 +vt 0.560000 0.720000 +vt 0.560000 0.693333 +vt 0.560000 0.666667 +vt 0.560000 0.746667 +vt 0.506667 0.746667 +vt 0.793333 0.700000 +vt 0.813333 0.720000 +vt 0.793333 0.720000 +vt 0.793333 0.600000 +vt 0.813333 0.620000 +vt 0.793333 0.620000 +vt 0.793333 0.640000 +vt 0.813333 0.660000 +vt 0.793333 0.660000 +vt 0.793333 0.540000 +vt 0.813333 0.560000 +vt 0.793333 0.560000 +vt 0.813333 0.740000 +vt 0.793333 0.740000 +vt 0.813333 0.640000 +vt 0.813333 0.680000 +vt 0.793333 0.680000 +vt 0.813333 0.580000 +vt 0.793333 0.580000 +vt 0.813333 0.760000 +vt 0.793333 0.760000 +vt 0.813333 0.700000 +vt 0.813333 0.600000 +vt 0.793333 0.520000 +vt 0.813333 0.540000 +vt 0.823333 0.673333 +vt 0.823333 0.573333 +vt 0.823333 0.753333 +vt 0.823333 0.680000 +vt 0.823333 0.693333 +vt 0.823333 0.580000 +vt 0.823333 0.593333 +vt 0.813333 0.520000 +vt 0.823333 0.533333 +vt 0.823333 0.700000 +vt 0.823333 0.713333 +vt 0.823333 0.613333 +vt 0.823333 0.640000 +vt 0.823333 0.653333 +vt 0.823333 0.553333 +vt 0.823333 0.720000 +vt 0.823333 0.733333 +vt 0.823333 0.633333 +vt 0.653333 0.813333 +vt 0.786667 0.806667 +vt 0.786667 0.813333 +vt 0.653333 0.806667 +vt 0.786667 0.800000 +vt 0.653333 0.800000 +vt 0.786667 0.793333 +vt 0.653333 0.793333 +vt 0.653333 0.786667 +vt 0.786667 0.780000 +vt 0.653333 0.780000 +vt 0.786667 0.773333 +vt 0.653333 0.826667 +vt 0.786667 0.820000 +vt 0.786667 0.826667 +vt 0.653333 0.820000 +vt 0.486667 0.320000 +vt 0.166667 0.273333 +vt 0.166667 0.260000 +vt 0.166667 0.060000 +vt 0.166667 0.433333 +vt 0.166667 0.540000 +vt 0.153333 0.173333 +vt 0.153333 0.493333 +vt 0.153333 0.013333 +vt 0.000000 0.353333 +vt 0.000000 0.086667 +vt 0.000000 0.566667 +vt 0.000000 0.300000 +vt 0.000000 0.406667 +vt 0.000000 0.140000 +vt 0.000000 0.620000 +vt 0.000000 0.460000 +vt 0.000000 0.193333 +vt 0.000000 0.033333 +vt 0.000000 0.513333 +vt 0.000000 0.246667 +vt 0.486667 0.320000 +vt 0.823333 0.966667 +vt 0.823333 0.940000 +vt 0.823333 0.673333 +vt 0.823333 0.886667 +vt 0.646667 0.640000 +vt 0.823333 0.726667 +vt 0.823333 0.753333 +vt 0.886667 0.413333 +vt 1.000000 0.413333 +vt 0.773333 0.413333 +vt 0.793333 0.720000 +vt 0.793333 0.720000 +vt 0.053333 0.933333 +vt 0.106667 0.933333 +vt 0.053333 0.933333 +vt 0.560000 0.640000 +vt 0.560000 0.640000 +vt 0.823333 0.660000 +vt 0.823333 0.560000 +vt 0.823333 0.740000 +vt 0.823333 0.520000 +vt 0.823333 0.600000 +vt 0.823333 0.540000 +vt 0.823333 0.620000 +vt 0.653333 0.773333 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.2747 0.9615 +vn 0.4472 -0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.4472 0.8944 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3162 0.0000 -0.9487 +vn -0.3162 0.0000 0.9487 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.9918 0.1278 +vn 0.5000 0.8660 0.0000 +vn 0.4959 0.8589 0.1278 +vn 0.8660 0.5000 0.0000 +vn 0.8589 0.4959 0.1278 +vn 0.9918 -0.0000 0.1278 +vn 0.8660 -0.5000 0.0000 +vn 0.8589 -0.4959 0.1278 +vn 0.5000 -0.8660 -0.0000 +vn 0.4959 -0.8589 0.1278 +vn 0.0000 -0.9918 0.1278 +vn -0.5000 -0.8660 0.0000 +vn -0.4959 -0.8589 0.1278 +vn -0.8660 -0.5000 0.0000 +vn -0.8589 -0.4959 0.1278 +vn -0.9918 -0.0000 0.1278 +vn -0.8660 0.5000 0.0000 +vn -0.8589 0.4959 0.1278 +vn -0.5000 0.8660 0.0000 +vn -0.4959 0.8589 0.1278 +vn 0.0000 0.5309 0.8474 +vn 0.4380 0.7586 0.4823 +vn -0.0000 0.8760 0.4823 +vn 0.4598 0.2654 0.8474 +vn 0.7586 0.4380 0.4823 +vn 0.5309 0.0000 0.8474 +vn 0.8760 0.0000 0.4823 +vn 0.4598 -0.2655 0.8474 +vn 0.7586 -0.4380 0.4823 +vn 0.4380 -0.7586 0.4823 +vn -0.4380 0.7586 0.4823 +vn -0.7586 0.4380 0.4823 +vn -0.2654 0.4598 0.8474 +vn -0.5309 0.0000 0.8474 +vn -0.8760 -0.0000 0.4823 +vn -0.4598 -0.2654 0.8474 +vn -0.2654 -0.4598 0.8474 +vn -0.7586 -0.4380 0.4823 +vn -0.4380 -0.7586 0.4823 +vn 0.0000 -0.8760 0.4823 +vn -0.0000 -0.5309 0.8474 +vn 0.2241 0.1294 0.9659 +vn 0.1294 0.2241 0.9659 +vn -0.0000 0.2588 0.9659 +vn -0.1294 0.2241 0.9659 +vn -0.4598 0.2654 0.8474 +vn -0.2241 0.1294 0.9659 +vn -0.2588 0.0000 0.9659 +vn -0.2241 -0.1294 0.9659 +vn -0.1294 -0.2241 0.9659 +vn 0.0000 -0.2588 0.9659 +vn 0.1294 -0.2241 0.9659 +vn 0.2655 -0.4598 0.8474 +vn 0.2241 -0.1294 0.9659 +vn 0.2588 0.0000 0.9659 +vn 0.0000 0.4383 -0.8988 +vn 0.4103 0.7106 -0.5716 +vn 0.2191 0.3796 -0.8988 +vn 0.0000 -0.9701 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn 0.0000 0.9861 -0.1662 +vn 0.0000 0.8205 -0.5716 +vn 0.8402 0.4851 0.2425 +vn 0.4851 0.8402 0.2425 +vn -0.4851 0.8402 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn 0.3796 0.2191 -0.8988 +vn 0.4930 0.8540 -0.1662 +vn 0.7106 0.4103 -0.5716 +vn -0.0000 0.9701 0.2425 +vn 0.4383 0.0000 -0.8988 +vn 0.8540 0.4930 -0.1662 +vn 0.8205 0.0000 -0.5716 +vn -0.9701 -0.0000 0.2425 +vn 0.3796 -0.2191 -0.8988 +vn 0.8540 -0.4930 -0.1662 +vn 0.7106 -0.4103 -0.5716 +vn 0.2191 -0.3796 -0.8988 +vn 0.4103 -0.7106 -0.5716 +vn -0.0000 -0.4383 -0.8988 +vn 0.0000 -0.9861 -0.1662 +vn 0.0000 -0.8205 -0.5716 +vn -0.4103 -0.7106 -0.5716 +vn -0.2191 -0.3796 -0.8988 +vn 0.8402 -0.4851 0.2425 +vn -0.3796 -0.2191 -0.8988 +vn -0.8540 -0.4930 -0.1662 +vn -0.7106 -0.4103 -0.5716 +vn -0.8205 0.0000 -0.5716 +vn -0.4383 0.0000 -0.8988 +vn 0.4930 -0.8540 -0.1662 +vn -0.9861 0.0000 -0.1662 +vn -0.8540 0.4930 -0.1662 +vn -0.4930 -0.8540 -0.1662 +vn -0.3796 0.2191 -0.8988 +vn -0.4930 0.8540 -0.1662 +vn -0.7106 0.4103 -0.5716 +vn -0.4103 0.7106 -0.5716 +vn -0.2191 0.3796 -0.8988 +vn 0.9861 0.0000 -0.1662 +vn 0.9701 -0.0000 0.2425 +vn 0.3735 -0.0899 0.9233 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3941 -0.1802 0.9012 +vn -0.9147 -0.0417 0.4019 +vn -0.9382 -0.0679 0.3394 +vn 0.3902 0.0926 -0.9161 +vn -0.3606 0.1829 -0.9146 +vn -0.3902 0.0926 -0.9161 +vn -0.3735 -0.0899 0.9233 +vn 0.3941 -0.1802 0.9012 +vn 0.9319 0.0343 -0.3612 +vn 0.9147 -0.0417 0.4019 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.9382 -0.0679 0.3394 +vn 0.9033 0.0841 -0.4207 +vn 0.3606 0.1829 -0.9146 +vn -0.9319 0.0343 -0.3612 +vn -0.9239 0.0000 -0.3827 +vn -0.9033 0.0841 -0.4207 +vn -0.3827 0.0000 -0.9239 +vn 0.6724 0.7267 -0.1405 +vn 0.6724 -0.7267 -0.1405 +vn -0.7193 -0.6784 0.1495 +vn -0.7193 0.6784 0.1495 +vn 0.9774 0.0000 -0.2114 +vn -0.0487 -0.9986 0.0209 +vn -0.9814 -0.0000 0.1920 +vn -0.0487 0.9986 0.0209 +vn -0.9774 0.0000 0.2114 +vn -0.6724 0.7267 0.1405 +vn 0.7193 0.6784 -0.1495 +vn 0.9814 -0.0000 -0.1920 +vn 0.0487 -0.9986 -0.0209 +vn 0.0487 0.9986 -0.0209 +vn 0.7193 -0.6784 -0.1495 +vn -0.6724 -0.7267 0.1405 +vn 0.6233 -0.2820 -0.7294 +vn 0.4202 -0.9074 -0.0000 +vn 0.9074 -0.4202 0.0000 +vn -0.0899 0.0899 -0.9919 +vn 0.2820 -0.6233 -0.7294 +vn -0.7023 0.3032 -0.6441 +vn -0.9356 0.3532 0.0000 +vn -0.3032 0.7023 -0.6441 +vn -0.3032 0.7023 0.6441 +vn -0.7023 0.3032 0.6441 +vn -0.0899 0.0899 0.9919 +vn 0.2820 -0.6233 0.7294 +vn 0.6233 -0.2820 0.7294 +vn -0.4202 -0.9074 0.0000 +vn 0.0899 0.0899 -0.9919 +vn -0.7071 0.0000 0.7071 +vn -0.9074 -0.4202 -0.0000 +vn 0.9356 0.3532 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0899 0.0899 0.9919 +vn -0.6233 -0.2820 -0.7294 +vn -0.6233 -0.2820 0.7294 +vn 0.7023 0.3032 0.6441 +vn 0.7023 0.3032 -0.6441 +vn -0.2820 -0.6233 -0.7294 +vn -0.3532 0.9356 -0.0000 +vn 0.3032 0.7023 -0.6441 +vn 0.3532 0.9356 0.0000 +vn 0.3032 0.7023 0.6441 +vn -0.2820 -0.6233 0.7294 +vn 0.2774 -0.4804 -0.8321 +vn 0.4804 -0.2774 -0.8321 +vn -0.4804 0.2774 -0.8321 +vn -0.5547 0.0000 -0.8321 +vn 0.2774 0.4804 -0.8321 +vn -0.0000 0.5547 -0.8321 +vn 0.5547 0.0000 -0.8321 +vn 0.5547 -0.0000 -0.8320 +vn -0.4804 -0.2774 -0.8321 +vn -0.4804 -0.2773 -0.8321 +vn -0.2774 0.4804 -0.8321 +vn -0.2773 0.4804 -0.8321 +vn 0.4804 0.2774 -0.8321 +vn -0.2774 -0.4804 -0.8321 +vn -0.2774 -0.4804 -0.8320 +vn -0.0000 -0.5547 -0.8321 +vn 0.0000 0.7071 -0.7071 +vn 0.2655 0.4598 0.8474 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +s off +f 3/1/1 171/2/1 170/3/1 +f 42/4/1 78/5/1 77/6/1 +f 44/7/1 77/8/1 76/9/1 +f 46/10/1 76/11/1 75/12/1 +f 48/13/1 75/14/1 74/15/1 +f 26/16/1 74/17/1 73/18/1 +f 28/19/1 73/20/1 84/21/1 +f 30/22/1 84/23/1 83/24/1 +f 32/25/1 83/26/1 82/27/1 +f 34/28/1 82/29/1 81/30/1 +f 36/31/1 81/32/1 80/33/1 +f 36/34/1 79/35/1 38/36/1 +f 40/37/1 79/38/1 78/39/1 +f 96/40/1 121/41/1 132/42/1 +f 95/43/1 132/42/1 131/44/1 +f 95/45/1 130/46/1 94/47/1 +f 93/48/1 130/46/1 129/49/1 +f 92/50/1 129/49/1 128/51/1 +f 91/52/1 128/51/1 127/53/1 +f 91/54/1 126/55/1 90/56/1 +f 90/57/1 125/58/1 89/59/1 +f 89/60/1 124/61/1 88/62/1 +f 88/63/1 123/64/1 87/65/1 +f 87/66/1 122/67/1 86/68/1 +f 86/69/1 121/41/1 85/70/1 +f 142/71/2 107/72/2 106/73/2 +f 143/74/2 108/75/2 107/76/2 +f 108/77/2 133/78/2 97/79/2 +f 133/78/2 98/80/2 97/81/2 +f 134/82/2 99/83/2 98/84/2 +f 135/85/2 100/86/2 99/87/2 +f 136/88/2 101/89/2 100/90/2 +f 137/91/2 102/92/2 101/93/2 +f 138/94/2 103/95/2 102/96/2 +f 103/97/2 140/98/2 104/99/2 +f 104/100/2 141/101/2 105/102/2 +f 105/103/2 142/71/2 106/104/2 +f 116/105/2 151/106/2 115/107/2 +f 113/108/2 148/109/2 112/110/2 +f 119/111/2 156/112/2 155/113/2 +f 110/114/2 145/115/2 109/116/2 +f 117/117/2 152/118/2 116/119/2 +f 114/120/2 149/121/2 113/122/2 +f 109/123/2 156/124/2 120/125/2 +f 111/126/2 146/127/2 110/128/2 +f 117/129/2 154/130/2 153/131/2 +f 115/132/2 150/133/2 114/134/2 +f 112/135/2 147/136/2 111/137/2 +f 119/138/2 154/139/2 118/140/2 +f 167/141/2 157/142/2 161/143/2 +f 19/144/1 179/145/1 178/146/1 +f 19/144/1 177/147/1 17/148/1 +f 17/148/1 176/149/1 15/150/1 +f 13/151/1 176/152/1 175/153/1 +f 11/154/1 175/155/1 174/156/1 +f 11/154/1 173/157/1 9/158/1 +f 7/159/1 173/160/1 172/161/1 +f 23/162/1 169/163/1 180/164/1 +f 1/165/1 170/166/1 169/167/1 +f 7/159/1 171/168/1 5/169/1 +f 23/162/1 179/170/1 21/171/1 +f 190/172/1 192/173/1 184/174/1 +f 214/175/2 228/176/2 243/177/2 +f 224/178/1 210/179/1 201/180/1 +f 259/181/2 266/182/2 273/183/2 +f 292/184/3 284/185/3 299/186/3 +f 313/187/3 310/188/3 311/189/3 +f 307/190/4 308/191/4 306/192/4 +f 304/193/5 309/194/5 305/195/5 +f 303/196/2 306/192/2 302/197/2 +f 305/198/6 307/190/6 303/199/6 +f 304/200/7 306/192/7 308/191/7 +f 315/201/8 312/202/8 313/187/8 +f 312/202/7 314/203/7 310/188/7 +f 313/187/6 311/189/6 315/204/6 +f 320/205/7 322/206/7 321/207/7 +f 317/208/3 323/209/3 319/210/3 +f 318/211/4 321/207/4 316/212/4 +f 319/213/1 320/205/1 318/214/1 +f 316/215/2 322/206/2 317/216/2 +f 388/217/2 391/218/2 389/219/2 +f 395/220/1 392/221/1 393/222/1 +f 388/223/4 394/224/4 390/225/4 +f 401/226/9 399/227/9 403/228/9 +f 391/229/3 393/230/3 389/231/3 +f 388/223/6 398/232/6 392/233/6 +f 392/221/6 399/234/6 393/222/6 +f 389/219/6 396/235/6 388/217/6 +f 393/230/6 397/236/6 389/231/6 +f 401/226/6 402/237/6 400/238/6 +f 403/228/10 398/239/10 402/237/10 +f 402/237/11 396/240/11 400/238/11 +f 400/238/12 397/241/12 401/226/12 +f 506/242/13 500/243/13 507/244/13 +f 510/245/14 514/246/14 512/247/14 +f 505/248/14 500/243/14 503/249/14 +f 502/250/15 506/242/15 504/251/15 +f 513/252/15 508/253/15 511/254/15 +f 514/246/16 508/253/16 515/255/16 +f 522/256/15 516/257/15 523/258/15 +f 526/259/13 530/260/13 528/261/13 +f 521/262/13 516/257/13 519/263/13 +f 518/264/16 522/256/16 520/265/16 +f 529/266/16 524/267/16 527/268/16 +f 530/260/14 524/267/14 531/269/14 +f 540/270/4 542/271/4 544/272/4 +f 555/273/4 553/274/4 551/275/4 +f 572/276/4 574/277/4 576/278/4 +f 624/279/7 626/280/7 625/281/7 +f 616/282/7 618/283/7 617/284/7 +f 612/285/4 616/282/4 617/284/4 +f 615/286/17 616/282/17 614/287/17 +f 612/288/2 618/283/2 613/289/2 +f 613/290/3 619/291/3 615/292/3 +f 622/293/4 625/281/4 620/294/4 +f 623/295/1 624/279/1 622/296/1 +f 620/297/18 626/280/18 621/298/18 +f 623/299/3 626/280/3 627/300/3 +f 656/301/7 658/302/7 657/303/7 +f 653/304/3 659/305/3 655/306/3 +f 654/307/4 657/303/4 652/308/4 +f 664/309/1 662/310/1 670/311/1 +f 652/312/2 658/302/2 653/313/2 +f 685/314/7 681/315/7 677/316/7 +f 682/317/6 684/318/6 686/319/6 +f 688/320/3 692/321/3 696/322/3 +f 697/323/19 692/324/19 694/325/19 +f 690/326/4 693/327/4 697/323/4 +f 694/325/1 688/328/1 689/329/1 +f 691/330/2 693/331/2 690/332/2 +f 707/333/2 709/334/2 704/335/2 +f 699/336/3 695/337/3 696/322/3 +f 699/338/6 697/323/6 711/339/6 +f 693/340/7 698/341/7 708/342/7 +f 702/343/6 699/338/6 707/333/6 +f 693/327/4 711/339/4 697/323/4 +f 705/344/7 704/345/7 701/346/7 +f 706/347/3 700/348/3 703/349/3 +f 701/350/20 703/349/20 700/348/20 +f 705/351/21 707/352/21 704/353/21 +f 702/343/1 698/354/1 699/338/1 +f 711/355/22 709/334/22 710/356/22 +f 711/339/6 710/356/6 699/338/6 +f 709/357/7 708/342/7 698/341/7 +f 712/358/3 719/359/3 715/360/3 +f 715/360/21 718/361/21 714/362/21 +f 713/363/20 716/364/20 712/358/20 +f 713/363/1 722/365/1 717/366/1 +f 718/361/2 721/367/2 714/362/2 +f 721/368/7 720/369/7 713/370/7 +f 718/371/6 719/359/6 716/364/6 +f 732/372/3 724/373/3 727/374/3 +f 728/375/23 733/376/23 730/377/23 +f 733/376/4 726/378/4 725/379/4 +f 724/380/1 730/377/1 725/381/1 +f 729/382/2 727/383/2 726/384/2 +f 745/385/2 743/386/2 740/387/2 +f 731/388/3 735/389/3 732/372/3 +f 735/390/7 733/376/7 732/391/7 +f 734/392/6 729/393/6 744/394/6 +f 739/395/7 742/396/7 743/386/7 +f 729/397/4 747/398/4 744/399/4 +f 741/400/6 736/401/6 737/402/6 +f 736/403/3 742/396/3 739/395/3 +f 739/395/20 737/404/20 736/403/20 +f 743/405/21 741/406/21 740/407/21 +f 734/408/1 738/409/1 735/390/1 +f 745/385/22 747/410/22 746/411/22 +f 747/398/7 735/390/7 746/411/7 +f 745/412/6 734/392/6 744/394/6 +f 3/1/1 5/169/1 171/2/1 +f 42/4/1 40/413/1 78/5/1 +f 44/7/1 42/414/1 77/8/1 +f 46/10/1 44/415/1 76/11/1 +f 48/13/1 46/416/1 75/14/1 +f 26/16/1 48/417/1 74/17/1 +f 28/19/1 26/418/1 73/20/1 +f 30/22/1 28/419/1 84/23/1 +f 32/25/1 30/420/1 83/26/1 +f 34/28/1 32/421/1 82/29/1 +f 36/31/1 34/422/1 81/32/1 +f 36/34/1 80/423/1 79/35/1 +f 40/37/1 38/424/1 79/38/1 +f 96/40/1 85/425/1 121/41/1 +f 95/43/1 96/426/1 132/42/1 +f 95/45/1 131/44/1 130/46/1 +f 93/48/1 94/427/1 130/46/1 +f 92/50/1 93/428/1 129/49/1 +f 91/52/1 92/429/1 128/51/1 +f 91/54/1 127/430/1 126/55/1 +f 90/57/1 126/55/1 125/58/1 +f 89/60/1 125/58/1 124/61/1 +f 88/63/1 124/61/1 123/64/1 +f 87/66/1 123/64/1 122/67/1 +f 86/69/1 122/67/1 121/41/1 +f 142/71/2 143/74/2 107/72/2 +f 143/74/2 144/431/2 108/75/2 +f 108/77/2 144/431/2 133/78/2 +f 133/78/2 134/82/2 98/80/2 +f 134/82/2 135/85/2 99/83/2 +f 135/85/2 136/88/2 100/86/2 +f 136/88/2 137/91/2 101/89/2 +f 137/91/2 138/94/2 102/92/2 +f 138/94/2 139/432/2 103/95/2 +f 103/97/2 139/433/2 140/98/2 +f 104/100/2 140/98/2 141/101/2 +f 105/103/2 141/101/2 142/71/2 +f 116/105/2 152/434/2 151/106/2 +f 113/108/2 149/435/2 148/109/2 +f 119/111/2 120/436/2 156/112/2 +f 110/114/2 146/437/2 145/115/2 +f 117/117/2 153/438/2 152/118/2 +f 114/120/2 150/439/2 149/121/2 +f 109/123/2 145/440/2 156/124/2 +f 111/126/2 147/441/2 146/127/2 +f 117/129/2 118/442/2 154/130/2 +f 115/132/2 151/443/2 150/133/2 +f 112/135/2 148/444/2 147/136/2 +f 119/138/2 155/445/2 154/139/2 +f 157/142/2 158/446/2 161/143/2 +f 158/446/2 159/447/2 161/143/2 +f 159/447/2 160/448/2 161/143/2 +f 161/143/2 162/449/2 163/450/2 +f 163/450/2 164/451/2 161/143/2 +f 164/451/2 165/452/2 161/143/2 +f 165/452/2 166/453/2 167/141/2 +f 167/141/2 168/454/2 157/142/2 +f 165/452/2 167/141/2 161/143/2 +f 19/144/1 21/171/1 179/145/1 +f 19/144/1 178/455/1 177/147/1 +f 17/148/1 177/456/1 176/149/1 +f 13/151/1 15/150/1 176/152/1 +f 11/154/1 13/457/1 175/155/1 +f 11/154/1 174/458/1 173/157/1 +f 7/159/1 9/158/1 173/160/1 +f 23/162/1 1/165/1 169/163/1 +f 1/165/1 3/1/1 170/166/1 +f 7/159/1 172/459/1 171/168/1 +f 23/162/1 180/460/1 179/170/1 +f 192/173/1 181/461/1 184/174/1 +f 181/461/1 182/462/1 184/174/1 +f 182/462/1 183/463/1 184/174/1 +f 184/174/1 185/464/1 188/465/1 +f 185/464/1 186/466/1 188/465/1 +f 186/466/1 187/467/1 188/465/1 +f 188/465/1 189/468/1 190/172/1 +f 190/172/1 191/469/1 192/173/1 +f 188/465/1 190/172/1 184/174/1 +f 243/177/2 200/470/2 207/471/2 +f 207/471/2 208/472/2 214/175/2 +f 214/175/2 215/473/2 221/474/2 +f 221/474/2 222/475/2 214/175/2 +f 222/475/2 228/176/2 214/175/2 +f 228/176/2 229/476/2 236/477/2 +f 236/477/2 242/478/2 243/177/2 +f 243/177/2 207/471/2 214/175/2 +f 228/176/2 236/477/2 243/177/2 +f 201/180/1 196/479/1 224/178/1 +f 196/479/1 231/480/1 224/178/1 +f 231/480/1 230/481/1 224/178/1 +f 224/178/1 223/482/1 217/483/1 +f 217/483/1 216/484/1 224/178/1 +f 216/484/1 210/179/1 224/178/1 +f 210/179/1 209/485/1 203/486/1 +f 203/486/1 202/487/1 210/179/1 +f 202/487/1 201/180/1 210/179/1 +f 273/183/2 237/488/2 238/489/2 +f 238/489/2 244/490/2 245/491/2 +f 245/491/2 251/492/2 259/181/2 +f 251/492/2 252/493/2 259/181/2 +f 252/493/2 258/494/2 259/181/2 +f 259/181/2 265/495/2 266/182/2 +f 266/182/2 272/496/2 273/183/2 +f 273/183/2 238/489/2 259/181/2 +f 238/489/2 245/491/2 259/181/2 +f 284/185/3 283/497/3 299/186/3 +f 299/186/3 298/498/3 293/499/3 +f 298/498/3 282/500/3 293/499/3 +f 282/500/3 285/501/3 293/499/3 +f 293/499/3 292/184/3 299/186/3 +f 313/187/3 312/202/3 310/188/3 +f 307/190/4 309/194/4 308/191/4 +f 304/193/5 308/191/5 309/194/5 +f 303/196/2 307/190/2 306/192/2 +f 305/198/6 309/194/6 307/190/6 +f 304/200/7 302/502/7 306/192/7 +f 315/201/8 314/503/8 312/202/8 +f 320/205/7 323/209/7 322/206/7 +f 317/208/3 322/206/3 323/209/3 +f 318/211/4 320/205/4 321/207/4 +f 319/213/1 323/209/1 320/205/1 +f 316/215/2 321/207/2 322/206/2 +f 388/217/2 390/504/2 391/218/2 +f 395/220/1 394/505/1 392/221/1 +f 388/223/4 392/233/4 394/224/4 +f 401/226/9 397/236/9 399/227/9 +f 391/229/3 395/506/3 393/230/3 +f 388/223/6 396/240/6 398/232/6 +f 392/221/6 398/239/6 399/234/6 +f 389/219/6 397/241/6 396/235/6 +f 393/230/6 399/227/6 397/236/6 +f 401/226/6 403/228/6 402/237/6 +f 403/228/10 399/234/10 398/239/10 +f 402/237/11 398/232/11 396/240/11 +f 400/238/12 396/235/12 397/241/12 +f 506/242/13 501/507/13 500/243/13 +f 510/245/14 509/508/14 514/246/14 +f 505/248/14 507/244/14 500/243/14 +f 502/250/15 501/507/15 506/242/15 +f 513/252/15 515/255/15 508/253/15 +f 514/246/16 509/508/16 508/253/16 +f 522/256/15 517/509/15 516/257/15 +f 526/259/13 525/510/13 530/260/13 +f 521/262/13 523/258/13 516/257/13 +f 518/264/16 517/509/16 522/256/16 +f 529/266/16 531/269/16 524/267/16 +f 530/260/14 525/510/14 524/267/14 +f 540/270/4 541/511/4 542/271/4 +f 542/271/4 543/512/4 544/272/4 +f 544/272/4 545/513/4 546/514/4 +f 546/514/4 547/515/4 544/272/4 +f 547/515/4 540/270/4 544/272/4 +f 555/273/4 554/516/4 553/274/4 +f 553/274/4 552/517/4 551/275/4 +f 551/275/4 550/518/4 549/519/4 +f 549/519/4 548/520/4 551/275/4 +f 548/520/4 555/273/4 551/275/4 +f 572/276/4 573/521/4 574/277/4 +f 574/277/4 575/522/4 576/278/4 +f 576/278/4 577/523/4 578/524/4 +f 578/524/4 579/525/4 576/278/4 +f 579/525/4 572/276/4 576/278/4 +f 624/279/7 627/300/7 626/280/7 +f 616/282/7 619/291/7 618/283/7 +f 612/285/4 614/526/4 616/282/4 +f 615/286/17 619/291/17 616/282/17 +f 612/288/2 617/284/2 618/283/2 +f 613/290/3 618/283/3 619/291/3 +f 622/293/4 624/279/4 625/281/4 +f 623/295/1 627/300/1 624/279/1 +f 620/297/18 625/281/18 626/280/18 +f 623/299/3 621/527/3 626/280/3 +f 656/301/7 659/305/7 658/302/7 +f 653/304/3 658/302/3 659/305/3 +f 654/307/4 656/301/4 657/303/4 +f 662/310/1 660/528/1 670/311/1 +f 660/528/1 661/529/1 670/311/1 +f 661/529/1 671/530/1 670/311/1 +f 670/311/1 669/531/1 668/532/1 +f 668/532/1 667/533/1 670/311/1 +f 667/533/1 666/534/1 670/311/1 +f 666/534/1 665/535/1 664/309/1 +f 664/309/1 663/536/1 662/310/1 +f 666/534/1 664/309/1 670/311/1 +f 652/312/2 657/303/2 658/302/2 +f 677/316/7 675/537/7 673/538/7 +f 673/538/7 687/539/7 685/314/7 +f 685/314/7 683/540/7 681/315/7 +f 681/315/7 679/541/7 677/316/7 +f 677/316/7 673/538/7 685/314/7 +f 686/319/6 672/542/6 674/543/6 +f 674/543/6 676/544/6 686/319/6 +f 676/544/6 678/545/6 686/319/6 +f 678/545/6 680/546/6 686/319/6 +f 680/546/6 682/317/6 686/319/6 +f 696/322/3 695/337/3 691/547/3 +f 691/547/3 688/320/3 696/322/3 +f 697/323/19 696/548/19 692/324/19 +f 697/323/4 694/549/4 689/550/4 +f 689/550/4 690/326/4 697/323/4 +f 694/325/1 692/324/1 688/328/1 +f 691/330/2 695/551/2 693/331/2 +f 707/333/2 710/356/2 709/334/2 +f 699/336/3 698/552/3 695/337/3 +f 699/338/6 696/548/6 697/323/6 +f 693/340/7 695/553/7 698/341/7 +f 699/338/6 710/356/6 707/333/6 +f 707/333/6 706/347/6 703/349/6 +f 703/349/6 702/343/6 707/333/6 +f 693/327/4 708/554/4 711/339/4 +f 709/357/7 698/341/7 704/345/7 +f 698/341/7 701/346/7 704/345/7 +f 701/346/7 700/555/7 705/344/7 +f 706/347/3 705/351/3 700/348/3 +f 701/350/20 702/556/20 703/349/20 +f 705/351/21 706/347/21 707/352/21 +f 702/343/1 701/557/1 698/354/1 +f 711/355/22 708/558/22 709/334/22 +f 712/358/3 716/364/3 719/359/3 +f 715/360/21 719/359/21 718/361/21 +f 713/363/20 717/366/20 716/364/20 +f 713/363/1 720/559/1 722/365/1 +f 718/361/2 723/560/2 721/367/2 +f 713/370/7 712/358/7 715/360/7 +f 715/360/7 714/561/7 713/370/7 +f 714/561/7 721/368/7 713/370/7 +f 716/364/6 717/562/6 718/371/6 +f 717/562/6 722/563/6 718/371/6 +f 722/563/6 723/564/6 718/371/6 +f 727/374/3 731/388/3 732/372/3 +f 732/372/3 728/565/3 724/373/3 +f 728/375/23 732/391/23 733/376/23 +f 725/379/4 730/566/4 733/376/4 +f 733/376/4 729/397/4 726/378/4 +f 724/380/1 728/375/1 730/377/1 +f 729/382/2 731/567/2 727/383/2 +f 745/385/2 746/411/2 743/386/2 +f 731/388/3 734/568/3 735/389/3 +f 735/390/7 747/398/7 733/376/7 +f 734/392/6 731/569/6 729/393/6 +f 743/386/7 746/411/7 735/390/7 +f 735/390/7 738/409/7 743/386/7 +f 738/409/7 739/395/7 743/386/7 +f 729/397/4 733/376/4 747/398/4 +f 737/402/6 734/392/6 740/570/6 +f 734/392/6 745/412/6 740/570/6 +f 740/570/6 741/400/6 737/402/6 +f 736/403/3 741/406/3 742/396/3 +f 739/395/20 738/571/20 737/404/20 +f 743/405/21 742/396/21 741/406/21 +f 734/408/1 737/572/1 738/409/1 +f 745/385/22 744/573/22 747/410/22 +s 1 +f 2/574/24 3/1/25 1/165/4 +f 4/575/26 5/169/27 3/1/25 +f 6/576/28 7/159/6 5/169/27 +f 8/577/29 9/158/30 7/159/6 +f 10/578/31 11/154/32 9/158/30 +f 12/579/33 13/457/3 11/154/32 +f 14/580/34 15/150/35 13/151/3 +f 16/581/36 17/148/37 15/150/35 +f 18/582/38 19/144/7 17/148/37 +f 20/583/39 21/171/40 19/144/7 +f 22/584/41 23/162/42 21/171/40 +f 24/585/43 1/165/4 23/162/42 +f 26/586/4 27/587/25 25/588/4 +f 28/589/25 29/590/27 27/587/25 +f 30/591/27 31/592/6 29/590/27 +f 32/593/6 33/594/30 31/592/6 +f 34/595/30 35/596/32 33/594/30 +f 36/597/32 37/598/3 35/596/32 +f 38/599/3 39/600/35 37/601/3 +f 40/602/35 41/603/37 39/600/35 +f 42/604/37 43/605/7 41/603/37 +f 44/606/7 45/607/40 43/605/7 +f 46/608/40 47/609/42 45/607/40 +f 48/610/42 25/588/4 47/609/42 +f 50/611/44 57/612/45 49/613/46 +f 57/612/45 66/614/47 65/615/48 +f 65/615/48 54/616/49 53/617/50 +f 53/617/50 62/618/51 61/619/52 +f 62/620/51 69/621/53 61/619/52 +f 71/622/54 50/623/44 49/613/46 +f 63/624/55 72/625/56 71/622/54 +f 56/626/57 63/624/55 55/627/58 +f 55/627/58 68/628/59 56/629/57 +f 60/630/60 67/631/61 59/632/62 +f 51/633/63 60/634/60 59/632/62 +f 69/621/53 52/635/64 51/636/63 +f 29/637/65 54/616/49 66/638/47 +f 66/614/47 27/639/66 29/640/65 +f 27/641/66 50/611/44 25/642/67 +f 25/643/67 72/644/56 47/645/68 +f 47/646/68 64/647/69 45/648/70 +f 45/649/70 56/626/57 43/650/71 +f 41/651/72 56/629/57 68/628/59 +f 41/652/72 60/630/60 39/653/73 +f 39/654/73 52/655/64 37/656/74 +f 35/657/75 52/635/64 70/658/76 +f 35/659/75 62/620/51 33/660/77 +f 33/661/77 54/662/49 31/663/78 +f 65/615/48 8/577/29 6/576/28 +f 6/576/28 57/612/45 65/615/48 +f 2/574/24 57/612/45 4/575/26 +f 71/622/54 2/574/24 24/585/43 +f 24/585/43 63/624/55 71/622/54 +f 22/584/41 55/627/58 63/624/55 +f 67/631/61 20/583/39 18/582/38 +f 18/582/38 59/632/62 67/631/61 +f 14/580/34 59/632/62 16/581/36 +f 69/621/53 14/664/34 12/579/33 +f 12/579/33 61/619/52 69/621/53 +f 8/577/29 61/619/52 10/578/31 +f 82/29/6 93/48/30 81/30/30 +f 79/38/3 90/56/35 78/39/35 +f 76/11/7 87/65/40 75/12/40 +f 83/26/27 94/47/6 82/27/6 +f 80/423/32 91/52/3 79/35/3 +f 77/8/37 88/62/7 76/9/7 +f 84/23/25 95/43/27 83/24/27 +f 74/17/42 85/70/4 73/18/4 +f 81/32/30 92/50/32 80/33/32 +f 78/5/35 89/59/37 77/6/37 +f 73/20/4 96/40/25 84/21/25 +f 75/14/40 86/68/42 74/15/42 +f 97/79/4 120/125/25 108/77/25 +f 99/83/40 110/128/42 98/84/42 +f 106/104/6 117/129/30 105/103/30 +f 103/95/3 114/134/35 102/96/35 +f 100/86/7 111/137/40 99/87/40 +f 107/72/27 118/140/6 106/73/6 +f 104/99/32 115/107/3 103/97/3 +f 101/89/37 112/110/7 100/90/7 +f 108/75/25 119/111/27 107/76/27 +f 98/80/42 109/116/4 97/81/4 +f 105/102/30 116/119/32 104/100/32 +f 102/92/35 113/122/37 101/93/37 +f 131/44/27 142/71/6 130/46/6 +f 128/51/32 139/433/3 127/53/3 +f 125/58/37 136/88/7 124/61/7 +f 132/42/25 143/74/27 131/44/27 +f 122/67/42 133/78/4 121/41/4 +f 129/49/30 140/98/32 128/51/32 +f 126/55/35 137/91/37 125/58/37 +f 121/41/4 144/431/25 132/42/25 +f 123/64/40 134/82/42 122/67/42 +f 130/46/6 141/101/30 129/49/30 +f 127/430/3 138/94/35 126/55/35 +f 124/61/7 135/85/40 123/64/40 +f 146/437/32 157/665/3 145/115/3 +f 153/438/40 164/666/42 152/118/42 +f 150/439/25 161/667/27 149/121/27 +f 145/440/3 168/668/35 156/124/35 +f 147/441/30 158/669/32 146/127/32 +f 154/130/7 165/670/40 153/131/40 +f 151/443/4 162/671/25 150/133/25 +f 148/444/6 159/672/30 147/136/30 +f 155/445/37 166/673/7 154/139/7 +f 152/434/42 163/674/4 151/106/4 +f 149/435/27 160/675/6 148/109/6 +f 156/112/35 167/676/37 155/113/37 +f 173/677/40 184/678/7 172/679/7 +f 180/680/32 191/681/30 179/682/30 +f 170/683/35 181/684/3 169/685/3 +f 177/686/27 188/687/25 176/688/25 +f 174/689/42 185/690/40 173/677/40 +f 169/685/3 192/691/32 180/680/32 +f 171/692/37 182/693/35 170/683/35 +f 178/694/6 189/695/27 177/686/27 +f 175/696/4 186/697/42 174/689/42 +f 172/679/7 183/698/37 171/692/37 +f 179/682/30 190/699/6 178/694/6 +f 176/688/25 187/700/4 175/701/4 +f 194/702/79 198/703/80 199/704/81 +f 264/705/82 215/706/83 270/707/83 +f 270/707/83 214/708/84 271/709/84 +f 235/710/1 194/702/79 199/704/81 +f 193/711/85 198/703/80 275/712/86 +f 250/713/87 242/714/88 236/715/87 +f 195/716/89 207/717/90 200/718/89 +f 263/719/91 221/720/82 264/721/82 +f 235/722/1 199/723/81 206/724/92 +f 197/725/93 205/726/94 198/703/80 +f 277/727/95 200/728/89 243/729/95 +f 198/703/80 206/724/92 199/723/81 +f 249/730/88 243/731/95 242/732/88 +f 235/733/1 206/734/92 213/735/96 +f 204/736/97 212/737/98 205/726/94 +f 274/738/99 207/739/90 276/740/90 +f 205/726/94 213/735/96 206/734/92 +f 235/741/1 213/742/96 220/743/100 +f 212/737/98 218/744/101 219/745/102 +f 216/746/32 264/721/3 210/747/3 +f 213/742/96 219/745/102 220/743/100 +f 231/748/4 249/730/25 230/749/25 +f 202/750/7 276/740/40 201/751/40 +f 235/752/1 220/753/100 227/754/103 +f 218/744/101 226/755/104 219/745/102 +f 210/756/3 270/707/35 209/757/35 +f 220/753/100 226/755/104 227/754/103 +f 196/758/42 277/727/4 231/748/4 +f 224/759/27 249/730/25 250/713/27 +f 235/760/1 227/761/103 234/762/105 +f 226/755/104 232/763/106 233/764/107 +f 209/757/35 271/709/37 203/765/37 +f 226/755/104 234/762/105 227/761/103 +f 201/751/40 195/716/42 196/758/42 +f 224/759/27 256/766/6 223/767/6 +f 232/768/106 240/769/108 233/770/107 +f 223/767/6 257/771/30 217/772/30 +f 233/770/107 241/773/109 234/774/105 +f 203/765/37 274/738/7 202/750/7 +f 216/746/32 257/771/30 263/719/32 +f 235/775/1 234/774/105 241/773/109 +f 263/719/91 228/776/110 222/777/91 +f 240/769/108 248/778/111 241/779/109 +f 235/780/1 241/779/109 248/778/111 +f 240/769/108 246/781/112 247/782/113 +f 248/783/111 254/784/114 255/785/115 +f 225/786/116 252/787/3 232/763/106 +f 253/788/117 238/789/40 260/790/118 +f 235/791/1 248/783/111 255/785/115 +f 246/781/112 254/784/114 247/782/113 +f 239/792/119 245/793/37 246/781/112 +f 254/784/114 262/794/120 255/795/115 +f 197/725/93 266/796/27 204/736/97 +f 260/790/118 237/797/42 267/798/121 +f 235/799/1 255/795/115 262/794/120 +f 254/784/114 260/790/118 261/800/122 +f 267/798/121 273/801/4 193/711/85 +f 262/802/120 268/803/123 269/804/124 +f 193/711/85 272/805/25 197/725/93 +f 211/806/125 259/807/30 218/744/101 +f 235/808/1 262/802/120 269/804/124 +f 260/790/118 268/803/123 261/800/122 +f 232/768/106 251/809/35 239/792/119 +f 269/810/124 275/712/86 194/811/79 +f 246/781/112 244/812/7 253/788/117 +f 218/744/101 258/813/32 225/786/116 +f 235/814/1 269/810/124 194/811/79 +f 267/798/121 275/712/86 268/803/123 +f 204/736/97 265/815/6 211/806/125 +f 256/766/126 228/816/110 257/771/110 +f 250/713/87 229/817/126 256/766/126 +f 274/738/99 214/818/84 208/819/99 +f 279/820/127 294/821/128 288/822/129 +f 283/823/130 297/824/131 299/825/132 +f 281/826/133 282/827/134 280/828/135 +f 278/829/136 284/830/137 279/820/127 +f 291/831/138 294/821/128 290/832/139 +f 280/828/135 289/833/140 281/826/133 +f 279/820/127 287/834/141 278/829/136 +f 291/831/138 292/184/142 293/499/143 +f 281/826/133 293/499/143 285/835/144 +f 289/833/140 291/831/138 281/826/133 +f 284/830/137 290/832/139 279/820/127 +f 296/836/145 299/837/132 297/838/131 +f 297/838/131 300/839/146 296/836/145 +f 287/834/141 297/824/131 278/829/136 +f 280/828/135 298/840/147 296/836/145 +f 280/828/135 300/839/146 286/841/148 +f 324/842/4 339/843/149 331/844/14 +f 330/845/6 337/846/150 329/847/13 +f 328/848/3 335/849/151 327/850/15 +f 326/851/7 333/852/152 325/853/16 +f 331/844/14 338/854/153 330/855/6 +f 329/847/13 336/856/154 328/848/3 +f 327/850/15 334/857/155 326/851/7 +f 325/853/16 332/858/156 324/842/4 +f 333/852/152 342/859/157 341/860/158 +f 338/854/153 347/861/159 346/862/160 +f 337/846/150 344/863/161 336/856/154 +f 335/849/151 342/859/157 334/857/155 +f 332/858/156 341/860/158 340/864/162 +f 339/843/149 340/864/162 347/861/159 +f 338/865/153 345/866/163 337/846/150 +f 336/856/154 343/867/164 335/849/151 +f 340/864/162 355/868/14 347/861/159 +f 346/869/160 353/870/13 345/866/163 +f 344/863/161 351/871/15 343/867/164 +f 342/859/157 349/872/16 341/860/158 +f 347/861/159 354/873/6 346/862/160 +f 345/866/163 352/874/3 344/863/161 +f 343/867/164 350/875/7 342/859/157 +f 341/860/158 348/876/4 340/864/162 +f 356/877/4 371/878/149 363/879/14 +f 362/880/6 369/881/150 361/882/13 +f 360/883/3 367/884/151 359/885/15 +f 358/886/7 365/887/152 357/888/16 +f 363/879/14 370/889/153 362/890/6 +f 361/882/13 368/891/154 360/883/3 +f 359/885/15 366/892/155 358/886/7 +f 357/888/16 364/893/156 356/877/4 +f 365/887/152 374/894/157 373/895/158 +f 370/889/153 379/896/159 378/897/160 +f 369/881/150 376/898/161 368/891/154 +f 367/884/151 374/894/157 366/892/155 +f 364/893/156 373/895/158 372/899/162 +f 371/878/149 372/899/162 379/896/159 +f 370/900/153 377/901/163 369/881/150 +f 368/891/154 375/902/164 367/884/151 +f 372/899/162 387/903/14 379/896/159 +f 378/904/160 385/905/13 377/901/163 +f 376/898/161 383/906/15 375/902/164 +f 374/894/157 381/907/16 373/895/158 +f 379/896/159 386/908/6 378/897/160 +f 377/901/163 384/909/3 376/898/161 +f 375/902/164 382/910/7 374/894/157 +f 373/895/158 380/911/4 372/899/162 +f 436/912/165 418/913/166 437/914/167 +f 440/915/168 417/916/169 436/912/165 +f 441/917/170 416/918/168 440/915/168 +f 442/919/171 412/920/172 441/917/170 +f 414/921/173 442/919/171 443/922/174 +f 415/923/175 443/922/174 439/924/175 +f 419/925/176 439/924/175 438/926/177 +f 417/916/169 405/927/178 418/913/166 +f 422/928/23 431/929/179 423/930/1 +f 420/931/180 429/932/181 421/933/7 +f 427/934/19 434/935/182 426/936/6 +f 425/937/183 432/938/184 424/939/2 +f 421/940/7 430/941/185 422/928/23 +f 424/939/2 428/942/186 420/931/180 +f 426/936/6 433/943/187 425/937/183 +f 423/930/1 435/944/188 427/934/19 +f 416/918/168 404/945/189 417/916/169 +f 412/920/172 408/946/179 416/918/168 +f 413/947/190 409/948/191 412/920/172 +f 414/921/173 410/949/192 413/947/190 +f 415/923/175 411/950/193 414/921/173 +f 419/925/176 407/951/184 415/923/175 +f 407/951/184 475/952/186 471/953/184 +f 411/950/193 471/953/184 470/954/187 +f 454/955/23 463/956/168 455/957/1 +f 452/958/180 461/959/171 453/960/7 +f 459/961/19 466/962/167 458/963/6 +f 457/964/183 464/965/175 456/966/2 +f 453/960/7 462/967/170 454/955/23 +f 456/966/2 460/968/174 452/958/180 +f 458/969/6 465/970/177 457/964/183 +f 455/957/1 467/971/165 459/961/19 +f 469/972/182 411/950/193 470/954/187 +f 409/948/191 469/972/182 468/973/188 +f 472/974/179 409/948/191 468/973/188 +f 404/945/189 472/974/179 473/975/185 +f 405/927/178 473/975/185 474/976/181 +f 475/952/186 405/977/178 474/978/181 +f 418/979/166 406/980/194 419/925/176 +f 418/979/166 438/926/177 437/981/167 +f 448/982/1 436/912/165 444/983/19 +f 445/984/6 438/926/177 446/985/183 +f 447/986/2 443/922/174 451/987/180 +f 450/988/7 441/917/170 449/989/23 +f 446/985/183 439/924/175 447/986/2 +f 444/983/19 437/914/167 445/990/6 +f 451/987/180 442/919/171 450/988/7 +f 449/989/23 440/915/168 448/982/1 +f 488/991/1 468/973/188 484/992/19 +f 485/993/6 470/954/187 486/994/183 +f 487/995/2 475/952/186 491/996/180 +f 490/997/7 473/975/185 489/998/23 +f 486/994/183 471/953/184 487/995/2 +f 484/992/19 469/972/182 485/993/6 +f 491/996/180 474/978/181 490/999/7 +f 489/998/23 472/974/179 488/991/1 +f 477/1000/166 465/970/177 466/1001/167 +f 477/1000/166 497/1002/194 476/1003/176 +f 428/942/186 498/1004/178 429/932/181 +f 498/1005/178 430/941/185 429/1006/181 +f 499/1007/189 431/929/179 430/941/185 +f 431/929/179 494/1008/191 435/944/188 +f 494/1008/191 434/935/182 435/944/188 +f 434/935/182 492/1009/193 433/943/187 +f 492/1009/193 432/938/184 433/943/187 +f 432/938/184 497/1002/194 428/942/186 +f 476/1003/176 496/1010/184 480/1011/175 +f 480/1011/175 492/1009/193 481/1012/173 +f 481/1012/173 493/1013/192 482/1014/190 +f 482/1014/190 494/1008/191 483/1015/172 +f 483/1015/172 495/1016/179 479/1017/168 +f 479/1017/168 499/1007/189 478/1018/169 +f 478/1018/169 498/1005/178 477/1019/166 +f 476/1003/176 464/965/175 465/970/177 +f 464/965/175 481/1012/173 460/968/174 +f 481/1012/173 461/959/171 460/968/174 +f 461/959/171 483/1015/172 462/967/170 +f 483/1015/172 463/956/168 462/967/170 +f 463/956/168 478/1018/169 467/971/165 +f 467/971/165 477/1019/166 466/962/167 +f 538/1020/6 545/1021/183 537/1022/183 +f 536/1023/2 543/1024/180 535/1025/180 +f 534/1026/7 541/1027/23 533/1028/23 +f 539/1029/19 546/1030/6 538/1020/6 +f 537/1022/183 544/1031/2 536/1023/2 +f 535/1025/180 542/1032/7 534/1033/7 +f 533/1028/23 540/1034/1 532/1035/1 +f 532/1035/1 547/1036/19 539/1029/19 +f 563/1037/1 548/1038/19 556/1039/19 +f 562/1040/23 555/1041/1 563/1037/1 +f 560/1042/180 553/1043/7 561/1044/7 +f 558/1045/183 551/1046/2 559/1047/2 +f 556/1039/19 549/1048/6 557/1049/6 +f 561/1050/7 554/1051/23 562/1040/23 +f 559/1047/2 552/1052/180 560/1042/180 +f 557/1049/6 550/1053/183 558/1045/183 +f 570/1054/6 577/1055/183 569/1056/183 +f 568/1057/2 575/1058/180 567/1059/180 +f 566/1060/7 573/1061/23 565/1062/23 +f 571/1063/19 578/1064/6 570/1054/6 +f 569/1056/183 576/1065/2 568/1057/2 +f 567/1059/180 574/1066/7 566/1067/7 +f 565/1062/23 572/1068/1 564/1069/1 +f 564/1069/1 579/1070/19 571/1063/19 +f 587/1071/14 594/1072/6 586/1073/6 +f 585/1074/13 592/1075/3 584/1076/3 +f 583/1077/15 590/1078/7 582/1079/7 +f 581/1080/16 588/1081/4 580/1082/4 +f 580/1082/4 595/1083/14 587/1071/14 +f 586/1084/6 593/1085/13 585/1074/13 +f 584/1076/3 591/1086/15 583/1077/15 +f 582/1079/7 589/1087/16 581/1080/16 +f 609/1088/7 602/1089/16 610/1090/16 +f 607/1091/3 600/1092/15 608/1093/15 +f 605/1094/6 598/1095/13 606/1096/13 +f 611/1097/4 596/1098/14 604/1099/14 +f 610/1090/16 603/1100/4 611/1097/4 +f 608/1093/15 601/1101/7 609/1088/7 +f 606/1096/13 599/1102/3 607/1091/3 +f 604/1099/14 597/1103/6 605/1104/6 +f 631/1105/7 644/1106/37 632/1107/37 +f 638/1108/27 651/1109/25 639/1110/25 +f 628/1111/4 641/1112/42 629/1113/42 +f 635/1114/32 648/1115/30 636/1116/30 +f 632/1107/37 645/1117/35 633/1118/35 +f 639/1110/25 640/1119/4 628/1111/4 +f 629/1113/42 642/1120/40 630/1121/40 +f 636/1116/30 649/1122/6 637/1123/6 +f 633/1118/35 646/1124/3 634/1125/3 +f 630/1121/40 643/1126/7 631/1105/7 +f 637/1123/6 650/1127/27 638/1108/27 +f 634/1128/3 647/1129/32 635/1114/32 +f 641/1112/195 662/1130/196 642/1120/196 +f 648/1115/197 669/1131/198 649/1122/198 +f 645/1117/199 666/1132/200 646/1124/200 +f 643/1126/201 662/1133/196 663/1134/202 +f 650/1127/203 669/1135/198 670/1136/204 +f 646/1137/200 667/1138/205 647/1129/206 +f 644/1106/207 663/1139/202 664/1140/207 +f 650/1127/203 671/1141/208 651/1109/209 +f 641/1112/195 661/1142/210 660/1143/195 +f 647/1129/206 668/1144/197 648/1115/197 +f 645/1117/199 664/1145/207 665/1146/199 +f 651/1109/209 661/1147/210 640/1119/210 +f 673/1148/1 674/1149/211 672/1150/1 +f 675/1151/211 676/1152/4 674/1149/211 +f 677/1153/4 678/1154/22 676/1152/4 +f 679/1155/22 680/546/2 678/1154/22 +f 681/1156/2 682/1157/21 680/546/2 +f 683/1158/21 684/1159/3 682/1157/21 +f 685/1160/3 686/1161/20 684/1162/3 +f 687/1163/20 672/1150/1 686/1161/20 +f 2/574/24 4/575/26 3/1/25 +f 4/575/26 6/576/28 5/169/27 +f 6/576/28 8/577/29 7/159/6 +f 8/577/29 10/578/31 9/158/30 +f 10/578/31 12/579/33 11/154/32 +f 12/579/33 14/664/34 13/457/3 +f 14/580/34 16/581/36 15/150/35 +f 16/581/36 18/582/38 17/148/37 +f 18/582/38 20/583/39 19/144/7 +f 20/583/39 22/584/41 21/171/40 +f 22/584/41 24/585/43 23/162/42 +f 24/585/43 2/574/24 1/165/4 +f 26/586/4 28/589/25 27/587/25 +f 28/589/25 30/591/27 29/590/27 +f 30/591/27 32/593/6 31/592/6 +f 32/593/6 34/595/30 33/594/30 +f 34/595/30 36/597/32 35/596/32 +f 36/597/32 38/1164/3 37/598/3 +f 38/599/3 40/602/35 39/600/35 +f 40/602/35 42/604/37 41/603/37 +f 42/604/37 44/606/7 43/605/7 +f 44/606/7 46/608/40 45/607/40 +f 46/608/40 48/610/42 47/609/42 +f 48/610/42 26/586/4 25/588/4 +f 50/611/44 58/1165/212 57/612/45 +f 57/612/45 58/1166/212 66/614/47 +f 65/615/48 66/638/47 54/616/49 +f 53/617/50 54/662/49 62/618/51 +f 62/620/51 70/1167/76 69/621/53 +f 71/622/54 72/644/56 50/623/44 +f 63/624/55 64/647/69 72/625/56 +f 56/626/57 64/1168/69 63/624/55 +f 55/627/58 67/631/61 68/628/59 +f 60/630/60 68/1169/59 67/631/61 +f 51/633/63 52/655/64 60/634/60 +f 69/621/53 70/658/76 52/635/64 +f 29/637/65 31/1170/78 54/616/49 +f 66/614/47 58/1166/212 27/639/66 +f 27/641/66 58/1165/212 50/611/44 +f 25/643/67 50/623/44 72/644/56 +f 47/646/68 72/625/56 64/647/69 +f 45/649/70 64/1168/69 56/626/57 +f 41/651/72 43/1171/71 56/629/57 +f 41/652/72 68/1169/59 60/630/60 +f 39/654/73 60/634/60 52/655/64 +f 35/657/75 37/1172/74 52/635/64 +f 35/659/75 70/1167/76 62/620/51 +f 33/661/77 62/618/51 54/662/49 +f 65/615/48 53/617/50 8/577/29 +f 6/576/28 4/575/26 57/612/45 +f 2/574/24 49/613/46 57/612/45 +f 71/622/54 49/613/46 2/574/24 +f 24/585/43 22/584/41 63/624/55 +f 22/584/41 20/583/39 55/627/58 +f 67/631/61 55/627/58 20/583/39 +f 18/582/38 16/581/36 59/632/62 +f 14/580/34 51/633/63 59/632/62 +f 69/621/53 51/636/63 14/664/34 +f 12/579/33 10/578/31 61/619/52 +f 8/577/29 53/617/50 61/619/52 +f 82/29/6 94/427/6 93/48/30 +f 79/38/3 91/54/3 90/56/35 +f 76/11/7 88/63/7 87/65/40 +f 83/26/27 95/45/27 94/47/6 +f 80/423/32 92/429/32 91/52/3 +f 77/8/37 89/60/37 88/62/7 +f 84/23/25 96/426/25 95/43/27 +f 74/17/42 86/69/42 85/70/4 +f 81/32/30 93/428/30 92/50/32 +f 78/5/35 90/57/35 89/59/37 +f 73/20/4 85/425/4 96/40/25 +f 75/14/40 87/66/40 86/68/42 +f 97/79/4 109/123/4 120/125/25 +f 99/83/40 111/126/40 110/128/42 +f 106/104/6 118/442/6 117/129/30 +f 103/95/3 115/132/3 114/134/35 +f 100/86/7 112/135/7 111/137/40 +f 107/72/27 119/138/27 118/140/6 +f 104/99/32 116/105/32 115/107/3 +f 101/89/37 113/108/37 112/110/7 +f 108/75/25 120/436/25 119/111/27 +f 98/80/42 110/114/42 109/116/4 +f 105/102/30 117/117/30 116/119/32 +f 102/92/35 114/120/35 113/122/37 +f 131/44/27 143/74/27 142/71/6 +f 128/51/32 140/98/32 139/433/3 +f 125/58/37 137/91/37 136/88/7 +f 132/42/25 144/431/25 143/74/27 +f 122/67/42 134/82/42 133/78/4 +f 129/49/30 141/101/30 140/98/32 +f 126/55/35 138/94/35 137/91/37 +f 121/41/4 133/78/4 144/431/25 +f 123/64/40 135/85/40 134/82/42 +f 130/46/6 142/71/6 141/101/30 +f 127/430/3 139/432/3 138/94/35 +f 124/61/7 136/88/7 135/85/40 +f 146/437/32 158/1173/32 157/665/3 +f 153/438/40 165/1174/40 164/666/42 +f 150/439/25 162/1175/25 161/667/27 +f 145/440/3 157/1176/3 168/668/35 +f 147/441/30 159/1177/30 158/669/32 +f 154/130/7 166/1178/7 165/670/40 +f 151/443/4 163/1179/4 162/671/25 +f 148/444/6 160/1180/6 159/672/30 +f 155/445/37 167/1181/37 166/673/7 +f 152/434/42 164/1182/42 163/674/4 +f 149/435/27 161/1183/27 160/675/6 +f 156/112/35 168/1184/35 167/676/37 +f 173/677/40 185/690/40 184/678/7 +f 180/680/32 192/691/32 191/681/30 +f 170/683/35 182/693/35 181/684/3 +f 177/686/27 189/695/27 188/687/25 +f 174/689/42 186/697/42 185/690/40 +f 169/685/3 181/684/3 192/691/32 +f 171/692/37 183/698/37 182/693/35 +f 178/694/6 190/699/6 189/695/27 +f 175/696/4 187/1185/4 186/697/42 +f 172/679/7 184/678/7 183/698/37 +f 179/682/30 191/681/30 190/699/6 +f 176/688/25 188/687/25 187/700/4 +f 194/702/79 275/712/86 198/703/80 +f 264/705/82 221/1186/82 215/706/83 +f 270/707/83 215/1187/83 214/708/84 +f 193/711/85 197/725/93 198/703/80 +f 250/713/87 249/730/88 242/714/88 +f 195/716/89 276/740/90 207/717/90 +f 263/719/91 222/1188/91 221/720/82 +f 197/725/93 204/736/97 205/726/94 +f 277/727/95 195/716/89 200/728/89 +f 198/703/80 205/726/94 206/724/92 +f 249/730/88 277/727/95 243/731/95 +f 204/736/97 211/806/125 212/737/98 +f 274/738/99 208/1189/99 207/739/90 +f 205/726/94 212/737/98 213/735/96 +f 212/737/98 211/806/125 218/744/101 +f 216/746/32 263/719/32 264/721/3 +f 213/742/96 212/737/98 219/745/102 +f 231/748/4 277/727/4 249/730/25 +f 202/750/7 274/738/7 276/740/40 +f 218/744/101 225/786/116 226/755/104 +f 210/756/3 264/705/3 270/707/35 +f 220/753/100 219/745/102 226/755/104 +f 196/758/42 195/716/42 277/727/4 +f 224/759/27 230/749/25 249/730/25 +f 226/755/104 225/786/116 232/763/106 +f 209/757/35 270/707/35 271/709/37 +f 226/755/104 233/764/107 234/762/105 +f 201/751/40 276/740/40 195/716/42 +f 224/759/27 250/713/27 256/766/6 +f 232/768/106 239/792/119 240/769/108 +f 223/767/6 256/766/6 257/771/30 +f 233/770/107 240/769/108 241/773/109 +f 203/765/37 271/709/37 274/738/7 +f 216/746/32 217/772/30 257/771/30 +f 263/719/91 257/771/110 228/776/110 +f 240/769/108 247/782/113 248/778/111 +f 240/769/108 239/792/119 246/781/112 +f 248/783/111 247/782/113 254/784/114 +f 225/786/116 258/813/32 252/787/3 +f 253/788/117 244/812/7 238/789/40 +f 246/781/112 253/788/117 254/784/114 +f 239/792/119 251/809/35 245/793/37 +f 254/784/114 261/800/122 262/794/120 +f 197/725/93 272/805/25 266/796/27 +f 260/790/118 238/789/40 237/797/42 +f 254/784/114 253/788/117 260/790/118 +f 267/798/121 237/797/42 273/801/4 +f 262/802/120 261/800/122 268/803/123 +f 193/711/85 273/801/4 272/805/25 +f 211/806/125 265/815/6 259/807/30 +f 260/790/118 267/798/121 268/803/123 +f 232/768/106 252/1190/3 251/809/35 +f 269/810/124 268/803/123 275/712/86 +f 246/781/112 245/793/37 244/812/7 +f 218/744/101 259/807/30 258/813/32 +f 267/798/121 193/711/85 275/712/86 +f 204/736/97 266/796/27 265/815/6 +f 256/766/126 229/1191/126 228/816/110 +f 250/713/87 236/1192/87 229/817/126 +f 274/738/99 271/709/84 214/818/84 +f 279/820/127 290/832/139 294/821/128 +f 283/823/130 278/829/136 297/824/131 +f 281/826/133 285/835/144 282/827/134 +f 278/829/136 283/823/130 284/830/137 +f 291/831/138 295/1193/213 294/821/128 +f 280/828/135 286/841/148 289/833/140 +f 279/820/127 288/822/129 287/834/141 +f 291/831/138 290/832/139 292/184/142 +f 281/826/133 291/831/138 293/499/143 +f 289/833/140 295/1193/213 291/831/138 +f 284/830/137 292/184/142 290/832/139 +f 296/836/145 298/840/147 299/837/132 +f 297/838/131 301/1194/214 300/839/146 +f 287/834/141 301/1195/214 297/824/131 +f 280/828/135 282/827/134 298/840/147 +f 280/828/135 296/836/145 300/839/146 +f 324/842/4 332/858/156 339/843/149 +f 330/845/6 338/865/153 337/846/150 +f 328/848/3 336/856/154 335/849/151 +f 326/851/7 334/857/155 333/852/152 +f 331/844/14 339/843/149 338/854/153 +f 329/847/13 337/846/150 336/856/154 +f 327/850/15 335/849/151 334/857/155 +f 325/853/16 333/852/152 332/858/156 +f 333/852/152 334/857/155 342/859/157 +f 338/854/153 339/843/149 347/861/159 +f 337/846/150 345/866/163 344/863/161 +f 335/849/151 343/867/164 342/859/157 +f 332/858/156 333/852/152 341/860/158 +f 339/843/149 332/858/156 340/864/162 +f 338/865/153 346/869/160 345/866/163 +f 336/856/154 344/863/161 343/867/164 +f 340/864/162 348/876/4 355/868/14 +f 346/869/160 354/1196/6 353/870/13 +f 344/863/161 352/874/3 351/871/15 +f 342/859/157 350/875/7 349/872/16 +f 347/861/159 355/868/14 354/873/6 +f 345/866/163 353/870/13 352/874/3 +f 343/867/164 351/871/15 350/875/7 +f 341/860/158 349/872/16 348/876/4 +f 356/877/4 364/893/156 371/878/149 +f 362/880/6 370/900/153 369/881/150 +f 360/883/3 368/891/154 367/884/151 +f 358/886/7 366/892/155 365/887/152 +f 363/879/14 371/878/149 370/889/153 +f 361/882/13 369/881/150 368/891/154 +f 359/885/15 367/884/151 366/892/155 +f 357/888/16 365/887/152 364/893/156 +f 365/887/152 366/892/155 374/894/157 +f 370/889/153 371/878/149 379/896/159 +f 369/881/150 377/901/163 376/898/161 +f 367/884/151 375/902/164 374/894/157 +f 364/893/156 365/887/152 373/895/158 +f 371/878/149 364/893/156 372/899/162 +f 370/900/153 378/904/160 377/901/163 +f 368/891/154 376/898/161 375/902/164 +f 372/899/162 380/911/4 387/903/14 +f 378/904/160 386/1197/6 385/905/13 +f 376/898/161 384/909/3 383/906/15 +f 374/894/157 382/910/7 381/907/16 +f 379/896/159 387/903/14 386/908/6 +f 377/901/163 385/905/13 384/909/3 +f 375/902/164 383/906/15 382/910/7 +f 373/895/158 381/907/16 380/911/4 +f 436/912/165 417/916/169 418/913/166 +f 440/915/168 416/918/168 417/916/169 +f 441/917/170 412/920/172 416/918/168 +f 442/919/171 413/947/190 412/920/172 +f 414/921/173 413/947/190 442/919/171 +f 415/923/175 414/921/173 443/922/174 +f 419/925/176 415/923/175 439/924/175 +f 417/916/169 404/945/189 405/927/178 +f 422/928/23 430/941/185 431/929/179 +f 420/931/180 428/942/186 429/932/181 +f 427/934/19 435/944/188 434/935/182 +f 425/937/183 433/943/187 432/938/184 +f 421/940/7 429/1006/181 430/941/185 +f 424/939/2 432/938/184 428/942/186 +f 426/936/6 434/935/182 433/943/187 +f 423/930/1 431/929/179 435/944/188 +f 416/918/168 408/946/179 404/945/189 +f 412/920/172 409/948/191 408/946/179 +f 413/947/190 410/949/192 409/948/191 +f 414/921/173 411/950/193 410/949/192 +f 415/923/175 407/951/184 411/950/193 +f 419/925/176 406/980/194 407/951/184 +f 407/951/184 406/980/194 475/952/186 +f 411/950/193 407/951/184 471/953/184 +f 454/955/23 462/967/170 463/956/168 +f 452/958/180 460/968/174 461/959/171 +f 459/961/19 467/971/165 466/962/167 +f 457/964/183 465/970/177 464/965/175 +f 453/960/7 461/959/171 462/967/170 +f 456/966/2 464/965/175 460/968/174 +f 458/969/6 466/1001/167 465/970/177 +f 455/957/1 463/956/168 467/971/165 +f 469/972/182 410/949/192 411/950/193 +f 409/948/191 410/949/192 469/972/182 +f 472/974/179 408/946/179 409/948/191 +f 404/945/189 408/946/179 472/974/179 +f 405/927/178 404/945/189 473/975/185 +f 475/952/186 406/980/194 405/977/178 +f 418/979/166 405/977/178 406/980/194 +f 418/979/166 419/925/176 438/926/177 +f 448/982/1 440/915/168 436/912/165 +f 445/984/6 437/981/167 438/926/177 +f 447/986/2 439/924/175 443/922/174 +f 450/988/7 442/919/171 441/917/170 +f 446/985/183 438/926/177 439/924/175 +f 444/983/19 436/912/165 437/914/167 +f 451/987/180 443/922/174 442/919/171 +f 449/989/23 441/917/170 440/915/168 +f 488/991/1 472/974/179 468/973/188 +f 485/993/6 469/972/182 470/954/187 +f 487/995/2 471/953/184 475/952/186 +f 490/997/7 474/976/181 473/975/185 +f 486/994/183 470/954/187 471/953/184 +f 484/992/19 468/973/188 469/972/182 +f 491/996/180 475/952/186 474/978/181 +f 489/998/23 473/975/185 472/974/179 +f 477/1000/166 476/1003/176 465/970/177 +f 477/1000/166 498/1004/178 497/1002/194 +f 428/942/186 497/1002/194 498/1004/178 +f 498/1005/178 499/1007/189 430/941/185 +f 499/1007/189 495/1016/179 431/929/179 +f 431/929/179 495/1016/179 494/1008/191 +f 494/1008/191 493/1013/192 434/935/182 +f 434/935/182 493/1013/192 492/1009/193 +f 492/1009/193 496/1010/184 432/938/184 +f 432/938/184 496/1010/184 497/1002/194 +f 476/1003/176 497/1002/194 496/1010/184 +f 480/1011/175 496/1010/184 492/1009/193 +f 481/1012/173 492/1009/193 493/1013/192 +f 482/1014/190 493/1013/192 494/1008/191 +f 483/1015/172 494/1008/191 495/1016/179 +f 479/1017/168 495/1016/179 499/1007/189 +f 478/1018/169 499/1007/189 498/1005/178 +f 476/1003/176 480/1011/175 464/965/175 +f 464/965/175 480/1011/175 481/1012/173 +f 481/1012/173 482/1014/190 461/959/171 +f 461/959/171 482/1014/190 483/1015/172 +f 483/1015/172 479/1017/168 463/956/168 +f 463/956/168 479/1017/168 478/1018/169 +f 467/971/165 478/1018/169 477/1019/166 +f 538/1020/6 546/1030/6 545/1021/183 +f 536/1023/2 544/1031/2 543/1024/180 +f 534/1026/7 542/1198/7 541/1027/23 +f 539/1029/19 547/1036/19 546/1030/6 +f 537/1022/183 545/1021/183 544/1031/2 +f 535/1025/180 543/1024/180 542/1032/7 +f 533/1028/23 541/1027/23 540/1034/1 +f 532/1035/1 540/1034/1 547/1036/19 +f 563/1037/1 555/1041/1 548/1038/19 +f 562/1040/23 554/1051/23 555/1041/1 +f 560/1042/180 552/1052/180 553/1043/7 +f 558/1045/183 550/1053/183 551/1046/2 +f 556/1039/19 548/1038/19 549/1048/6 +f 561/1050/7 553/1199/7 554/1051/23 +f 559/1047/2 551/1046/2 552/1052/180 +f 557/1049/6 549/1048/6 550/1053/183 +f 570/1054/6 578/1064/6 577/1055/183 +f 568/1057/2 576/1065/2 575/1058/180 +f 566/1060/7 574/1200/7 573/1061/23 +f 571/1063/19 579/1070/19 578/1064/6 +f 569/1056/183 577/1055/183 576/1065/2 +f 567/1059/180 575/1058/180 574/1066/7 +f 565/1062/23 573/1061/23 572/1068/1 +f 564/1069/1 572/1068/1 579/1070/19 +f 587/1071/14 595/1083/14 594/1072/6 +f 585/1074/13 593/1085/13 592/1075/3 +f 583/1077/15 591/1086/15 590/1078/7 +f 581/1080/16 589/1087/16 588/1081/4 +f 580/1082/4 588/1081/4 595/1083/14 +f 586/1084/6 594/1201/6 593/1085/13 +f 584/1076/3 592/1075/3 591/1086/15 +f 582/1079/7 590/1078/7 589/1087/16 +f 609/1088/7 601/1101/7 602/1089/16 +f 607/1091/3 599/1102/3 600/1092/15 +f 605/1094/6 597/1202/6 598/1095/13 +f 611/1097/4 603/1100/4 596/1098/14 +f 610/1090/16 602/1089/16 603/1100/4 +f 608/1093/15 600/1092/15 601/1101/7 +f 606/1096/13 598/1095/13 599/1102/3 +f 604/1099/14 596/1098/14 597/1103/6 +f 631/1105/7 643/1126/7 644/1106/37 +f 638/1108/27 650/1127/27 651/1109/25 +f 628/1111/4 640/1119/4 641/1112/42 +f 635/1114/32 647/1129/32 648/1115/30 +f 632/1107/37 644/1106/37 645/1117/35 +f 639/1110/25 651/1109/25 640/1119/4 +f 629/1113/42 641/1112/42 642/1120/40 +f 636/1116/30 648/1115/30 649/1122/6 +f 633/1118/35 645/1117/35 646/1124/3 +f 630/1121/40 642/1120/40 643/1126/7 +f 637/1123/6 649/1122/6 650/1127/27 +f 634/1128/3 646/1137/3 647/1129/32 +f 641/1112/195 660/1203/195 662/1130/196 +f 648/1115/197 668/1204/197 669/1131/198 +f 645/1117/199 665/1205/199 666/1132/200 +f 643/1126/201 642/1120/196 662/1133/196 +f 650/1127/203 649/1122/198 669/1135/198 +f 646/1137/200 666/1206/200 667/1138/205 +f 644/1106/207 643/1126/201 663/1139/202 +f 650/1127/203 670/1207/204 671/1141/208 +f 641/1112/195 640/1119/210 661/1142/210 +f 647/1129/206 667/1208/205 668/1144/197 +f 645/1117/199 644/1106/207 664/1145/207 +f 651/1109/209 671/1209/208 661/1147/210 +f 673/1148/1 675/1151/211 674/1149/211 +f 675/1151/211 677/1153/4 676/1152/4 +f 677/1153/4 679/1155/22 678/1154/22 +f 679/1155/22 681/1156/2 680/546/2 +f 681/1156/2 683/1158/21 682/1157/21 +f 683/1158/21 685/1210/3 684/1159/3 +f 685/1160/3 687/1163/20 686/1161/20 +f 687/1163/20 673/1148/1 672/1150/1 diff --git a/src/main/resources/assets/hbm/models/weapons/carbine.obj b/src/main/resources/assets/hbm/models/weapons/carbine.obj new file mode 100644 index 000000000..d11ea138d --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/carbine.obj @@ -0,0 +1,2634 @@ +# Blender v2.79 (sub 0) OBJ File: 'carbine.blend' +# www.blender.org +o Cylinder +v -0.000000 1.187500 4.375000 +v -0.000000 1.187500 8.000000 +v 0.093750 1.162380 4.375000 +v 0.093750 1.162380 8.000000 +v 0.162380 1.093750 4.375000 +v 0.162380 1.093750 8.000000 +v 0.187500 1.000000 4.375000 +v 0.187500 1.000000 8.000000 +v 0.162380 0.906250 4.375000 +v 0.162380 0.906250 8.000000 +v 0.093750 0.837620 4.375000 +v 0.093750 0.837620 8.000000 +v 0.000000 0.812500 4.375000 +v 0.000000 0.812500 8.000000 +v -0.093750 0.837620 4.375000 +v -0.093750 0.837620 8.000000 +v -0.162380 0.906250 4.375000 +v -0.162380 0.906250 8.000000 +v -0.187500 1.000000 4.375000 +v -0.187500 1.000000 8.000000 +v -0.162380 1.093750 4.375000 +v -0.162380 1.093750 8.000000 +v -0.093750 1.162380 4.375000 +v -0.093750 1.162380 8.000000 +v -0.000000 1.125000 8.000000 +v -0.062500 1.108253 8.000000 +v -0.108253 1.062500 8.000000 +v -0.125000 1.000000 8.000000 +v -0.108253 0.937500 8.000000 +v -0.062500 0.891747 8.000000 +v -0.000000 0.875000 8.000000 +v 0.062500 0.891747 8.000000 +v 0.108253 0.937500 8.000000 +v 0.125000 1.000000 8.000000 +v 0.108253 1.062500 8.000000 +v 0.062500 1.108253 8.000000 +v -0.062500 1.108253 7.000000 +v -0.000000 1.125000 7.000000 +v -0.108253 1.062500 7.000000 +v -0.125000 1.000000 7.000000 +v -0.108253 0.937500 7.000000 +v -0.062500 0.891747 7.000000 +v -0.000000 0.875000 7.000000 +v 0.062500 0.891747 7.000000 +v 0.108253 0.937500 7.000000 +v 0.125000 1.000000 7.000000 +v 0.108253 1.062500 7.000000 +v 0.062500 1.108253 7.000000 +v -0.250000 1.000000 4.375000 +v 0.250000 1.000000 4.375000 +v -0.125000 1.375000 4.375000 +v 0.125000 1.375000 4.375000 +v -0.250000 1.000000 5.000000 +v 0.250000 1.000000 5.000000 +v -0.250000 0.750000 5.250000 +v 0.250000 0.750000 5.250000 +v -0.250000 0.500000 5.000000 +v 0.250000 0.500000 5.000000 +v -0.250000 0.500000 4.125000 +v 0.250000 0.500000 4.125000 +v -0.250000 0.312500 3.500000 +v 0.250000 0.312500 3.500000 +v 0.250000 1.000000 3.500000 +v -0.250000 1.000000 3.500000 +v -0.250000 0.312500 1.375000 +v 0.250000 0.312500 1.375000 +v -0.250000 1.125000 4.375000 +v 0.250000 1.125000 4.375000 +v -0.125000 1.375000 1.500000 +v 0.125000 1.375000 1.500000 +v -0.250000 1.125000 1.500000 +v 0.250000 1.125000 1.500000 +v 0.250000 1.125000 3.500000 +v -0.250000 1.125000 3.500000 +v 0.250000 1.000000 1.500000 +v -0.250000 1.000000 1.500000 +v -0.250000 0.625000 1.375000 +v 0.250000 0.625000 1.375000 +v 0.062500 1.312500 4.375000 +v -0.187500 1.125000 3.500000 +v -0.062500 1.312500 4.375000 +v 0.062500 1.312500 1.500000 +v -0.187500 1.125000 1.500000 +v -0.062500 1.312500 1.500000 +v -0.187500 1.000000 3.500000 +v -0.187500 1.000000 1.500000 +v 0.187500 1.125000 3.500000 +v 0.187500 1.125000 1.500000 +v 0.187500 1.000000 3.500000 +v 0.187500 1.000000 1.500000 +v 0.250000 0.375000 3.625000 +v 0.125000 1.375000 3.625000 +v 0.250000 1.125000 3.625000 +v -0.250000 0.375000 3.625000 +v -0.250000 1.125000 3.625000 +v -0.125000 1.375000 3.625000 +v 0.062500 1.312500 3.625000 +v 0.250000 0.375000 3.375000 +v -0.062500 1.312500 3.625000 +v 0.125000 1.375000 3.375000 +v 0.250000 1.125000 3.375000 +v -0.250000 0.375000 3.375000 +v -0.250000 1.125000 3.375000 +v -0.125000 1.375000 3.375000 +v 0.062500 1.312500 3.375000 +v -0.062500 1.312500 3.375000 +v 0.312500 0.312500 3.625000 +v 0.312500 1.125000 3.625000 +v 0.312500 0.312500 3.375000 +v 0.312500 1.125000 3.375000 +v 0.125000 1.437500 3.625000 +v -0.125000 1.437500 3.625000 +v 0.062500 1.375000 3.625000 +v -0.062500 1.375000 3.625000 +v 0.125000 1.437500 3.375000 +v -0.125000 1.437500 3.375000 +v 0.062500 1.375000 3.375000 +v -0.062500 1.375000 3.375000 +v -0.312500 0.312500 3.625000 +v -0.312500 1.125000 3.625000 +v -0.312500 0.312500 3.375000 +v -0.312500 1.125000 3.375000 +v 0.250000 0.250000 3.625000 +v 0.250000 0.250000 3.375000 +v -0.250000 0.250000 3.625000 +v -0.250000 0.250000 3.375000 +v 0.250000 0.312500 2.375000 +v 0.125000 1.375000 2.375000 +v 0.250000 1.125000 2.375000 +v -0.250000 0.312500 2.375000 +v -0.250000 1.125000 2.375000 +v -0.125000 1.375000 2.375000 +v 0.062500 1.312500 2.375000 +v 0.250000 0.312500 1.875000 +v -0.062500 1.312500 2.375000 +v 0.125000 1.375000 1.875000 +v 0.250000 1.125000 1.875000 +v -0.250000 0.312500 1.875000 +v -0.250000 1.125000 1.875000 +v -0.125000 1.375000 1.875000 +v 0.062500 1.312500 1.875000 +v -0.062500 1.312500 1.875000 +v 0.312500 0.312500 2.375000 +v 0.312500 1.125000 2.375000 +v 0.312500 0.312500 1.875000 +v 0.312500 1.125000 1.875000 +v 0.125000 1.437500 2.375000 +v -0.125000 1.437500 2.375000 +v 0.062500 1.375000 2.375000 +v -0.062500 1.375000 2.375000 +v 0.125000 1.437500 1.875000 +v -0.125000 1.437500 1.875000 +v 0.062500 1.375000 1.875000 +v -0.062500 1.375000 1.875000 +v -0.312500 0.312500 2.375000 +v -0.312500 1.125000 2.375000 +v -0.312500 0.312500 1.875000 +v -0.312500 1.125000 1.875000 +v 0.250000 0.250000 2.375000 +v 0.250000 0.250000 1.875000 +v -0.250000 0.250000 2.375000 +v -0.250000 0.250000 1.875000 +v -0.250000 0.437500 -0.500000 +v -0.125000 0.312500 -0.500000 +v 0.125000 0.312500 -0.500000 +v 0.250000 0.437500 -0.500000 +v -0.125000 1.062500 -1.000000 +v -0.250000 0.937500 -1.000000 +v 0.250000 0.937500 -1.000000 +v 0.125000 1.062500 -1.000000 +v -0.125000 0.312500 -1.750000 +v -0.250000 0.437500 -1.750000 +v 0.250000 0.437500 -1.750000 +v 0.125000 0.312500 -1.750000 +v -0.250000 0.937500 -1.750000 +v -0.125000 1.062500 -1.750000 +v 0.125000 1.062500 -1.750000 +v 0.250000 0.937500 -1.750000 +v -0.000000 1.125000 1.437500 +v -0.062500 1.108253 1.437500 +v -0.108253 1.062500 1.437500 +v -0.125000 1.000000 1.437500 +v -0.108253 0.937500 1.437500 +v -0.062500 0.891747 1.437500 +v -0.000000 0.875000 1.437500 +v 0.062500 0.891747 1.437500 +v 0.108253 0.937500 1.437500 +v 0.125000 1.000000 1.437500 +v 0.108253 1.062500 1.437500 +v 0.062500 1.108253 1.437500 +v -0.093750 1.162380 1.437500 +v -0.162380 1.093750 1.437500 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v 0.162380 1.093750 1.437500 +v 0.093750 1.162380 1.437500 +v -0.000000 1.187500 1.437500 +v -0.000000 1.125000 1.937500 +v -0.062500 1.108253 1.937500 +v -0.108253 1.062500 1.937500 +v -0.125000 1.000000 1.937500 +v -0.108253 0.937500 1.937500 +v -0.062500 0.891747 1.937500 +v -0.000000 0.875000 1.937500 +v 0.062500 0.891747 1.937500 +v 0.108253 0.937500 1.937500 +v 0.125000 1.000000 1.937500 +v 0.108253 1.062500 1.937500 +v 0.062500 1.108253 1.937500 +v -0.093750 1.162380 1.562500 +v -0.162380 1.093750 1.562500 +v -0.187500 1.000000 1.562500 +v -0.162380 0.906250 1.562500 +v -0.093750 0.837620 1.562500 +v 0.000000 0.812500 1.562500 +v 0.093750 0.837620 1.562500 +v 0.162380 0.906250 1.562500 +v 0.187500 1.000000 1.562500 +v 0.162380 1.093750 1.562500 +v 0.093750 1.162380 1.562500 +v -0.000000 1.187500 1.562500 +v 0.125000 1.000000 1.500000 +v 0.125000 1.125000 1.500000 +v -0.125000 1.125000 1.500000 +v -0.125000 1.000000 1.500000 +v 0.312500 1.000000 1.625000 +v 0.312500 1.000000 -1.000000 +v 0.312500 0.875000 1.625000 +v 0.312500 0.625000 1.375000 +v 0.312500 0.375000 1.375000 +v 0.187500 0.250000 1.375000 +v -0.187500 0.250000 1.375000 +v -0.312500 0.375000 1.375000 +v -0.312500 0.625000 1.375000 +v -0.312500 0.875000 1.625000 +v -0.312500 1.000000 1.625000 +v -0.312500 1.000000 -1.000000 +v 0.312500 0.625000 -0.750000 +v 0.312500 0.375000 -0.750000 +v 0.187500 0.250000 -0.750000 +v -0.187500 0.250000 -0.750000 +v -0.312500 0.375000 -0.750000 +v -0.312500 0.625000 -0.750000 +v 0.250000 1.000000 1.625000 +v 0.250000 0.875000 1.625000 +v 0.250000 0.625000 1.375000 +v 0.250000 0.375000 1.375000 +v -0.250000 0.375000 1.375000 +v -0.250000 0.625000 1.375000 +v -0.250000 0.875000 1.625000 +v -0.250000 1.000000 1.625000 +v 0.187500 0.312500 1.375000 +v -0.187500 0.312500 1.375000 +v -0.093750 1.162380 1.125000 +v -0.162380 1.093750 1.125000 +v -0.187500 1.000000 1.125000 +v -0.162380 0.906250 1.125000 +v -0.093750 0.837620 1.125000 +v 0.000000 0.812500 1.125000 +v 0.093750 0.837620 1.125000 +v 0.162380 0.906250 1.125000 +v 0.187500 1.000000 1.125000 +v 0.162380 1.093750 1.125000 +v 0.093750 1.162380 1.125000 +v -0.000000 1.187500 1.125000 +v -0.093750 1.162380 0.125000 +v -0.162380 1.093750 0.125000 +v -0.187500 1.000000 0.125000 +v -0.162380 0.906250 0.125000 +v -0.093750 0.837620 0.125000 +v 0.000000 0.812500 0.125000 +v 0.093750 0.837620 0.125000 +v 0.162380 0.906250 0.125000 +v 0.187500 1.000000 0.125000 +v 0.162380 1.093750 0.125000 +v 0.093750 1.162380 0.125000 +v -0.000000 1.187500 0.125000 +v 0.187500 1.000000 1.500000 +v -0.187500 1.000000 1.500000 +v 0.187500 1.000000 0.125000 +v -0.187500 1.000000 0.125000 +v -0.000000 1.250000 0.125000 +v -0.125000 1.216506 0.125000 +v -0.216506 1.125000 0.125000 +v -0.250000 1.000000 0.125000 +v -0.216506 0.875000 0.125000 +v -0.125000 0.783494 0.125000 +v -0.000000 0.750000 0.125000 +v 0.125000 0.783494 0.125000 +v 0.216506 0.875000 0.125000 +v 0.250000 1.000000 0.125000 +v 0.216506 1.125000 0.125000 +v 0.125000 1.216506 0.125000 +v -0.125000 1.216506 -0.125000 +v -0.000000 1.250000 -0.125000 +v -0.216506 1.125000 -0.125000 +v -0.250000 1.000000 -0.125000 +v 0.093750 0.837620 1.375000 +v 0.000000 0.812500 1.375000 +v -0.093750 0.837620 1.375000 +v -0.162380 0.906250 1.375000 +v -0.187500 1.000000 1.375000 +v 0.250000 1.000000 -0.125000 +v 0.216506 1.125000 -0.125000 +v 0.125000 1.216506 -0.125000 +v 0.162380 0.906250 1.375000 +v 0.187500 1.000000 1.375000 +v 0.000000 1.312500 1.375000 +v -0.156250 1.270633 1.375000 +v -0.270633 1.156250 1.375000 +v -0.312500 1.000000 1.375000 +v -0.093750 0.837620 1.125000 +v 0.000000 0.812500 1.125000 +v 0.093750 0.837620 1.125000 +v 0.162380 0.906250 1.125000 +v 0.187500 1.000000 1.125000 +v 0.312500 1.000000 1.375000 +v 0.270633 1.156250 1.375000 +v 0.156250 1.270633 1.375000 +v -0.162380 0.906250 1.125000 +v -0.187500 1.000000 1.125000 +v -0.156250 1.270633 1.125000 +v 0.000000 1.312500 1.125000 +v -0.270633 1.156250 1.125000 +v -0.312500 1.000000 1.125000 +v 0.312500 1.000000 1.125000 +v 0.270633 1.156250 1.125000 +v 0.156250 1.270633 1.125000 +v -0.093750 1.162380 1.437500 +v -0.162380 1.093750 1.437500 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v 0.162380 1.093750 1.437500 +v 0.093750 1.162380 1.437500 +v -0.000000 1.187500 1.437500 +v -0.093750 1.162380 1.375000 +v -0.162380 1.093750 1.375000 +v -0.187500 1.000000 1.375000 +v -0.162380 0.906250 1.375000 +v -0.093750 0.837620 1.375000 +v 0.000000 0.812500 1.375000 +v 0.093750 0.837620 1.375000 +v 0.162380 0.906250 1.375000 +v 0.187500 1.000000 1.375000 +v 0.162380 1.093750 1.375000 +v 0.093750 1.162380 1.375000 +v -0.000000 1.187500 1.375000 +v -0.187500 1.000000 1.437500 +v -0.162380 0.906250 1.437500 +v -0.093750 0.837620 1.437500 +v 0.000000 0.812500 1.437500 +v 0.093750 0.837620 1.437500 +v 0.162380 0.906250 1.437500 +v 0.187500 1.000000 1.437500 +v -0.187500 1.000000 0.125000 +v -0.162380 0.906250 0.125000 +v -0.093750 0.837620 0.125000 +v 0.000000 0.812500 0.125000 +v 0.093750 0.837620 0.125000 +v 0.162380 0.906250 0.125000 +v 0.187500 1.000000 0.125000 +v -0.250000 1.000000 7.875000 +v -0.216506 0.875000 7.875000 +v -0.125000 0.783494 7.875000 +v -0.000000 0.750000 7.875000 +v 0.125000 0.783494 7.875000 +v 0.216506 0.875000 7.875000 +v 0.250000 1.000000 7.875000 +v -0.000000 1.250000 6.125000 +v -0.125000 1.216506 6.125000 +v -0.216506 1.125000 6.125000 +v -0.250000 1.000000 6.125000 +v -0.216506 0.875000 6.125000 +v -0.125000 0.783494 6.125000 +v -0.000000 0.750000 6.125000 +v 0.125000 0.783494 6.125000 +v 0.216506 0.875000 6.125000 +v 0.250000 1.000000 6.125000 +v 0.216506 1.125000 6.125000 +v 0.125000 1.216506 6.125000 +v -0.250000 1.000000 7.500000 +v -0.216506 0.875000 7.500000 +v -0.125000 0.783494 7.500000 +v -0.000000 0.750000 7.500000 +v 0.125000 0.783494 7.500000 +v 0.216506 0.875000 7.500000 +v 0.250000 1.000000 7.500000 +v 0.216506 1.125000 5.250000 +v 0.250000 1.000000 5.375000 +v 0.216506 0.875000 5.500000 +v -0.125000 1.387500 7.500000 +v 0.125000 1.387500 7.500000 +v 0.125000 1.387500 7.875000 +v -0.125000 1.387500 7.875000 +v 0.187500 1.387500 7.875000 +v 0.187500 1.387500 7.500000 +v -0.187500 1.387500 7.875000 +v -0.187500 1.387500 7.500000 +v 0.187500 1.000000 7.875000 +v 0.162380 0.906250 7.875000 +v 0.093750 0.837620 7.875000 +v 0.000000 0.812500 7.875000 +v -0.093750 0.837620 7.875000 +v -0.162380 0.906250 7.875000 +v -0.187500 1.000000 7.875000 +v 0.187500 1.000000 7.500000 +v 0.162380 0.906250 7.500000 +v 0.093750 0.837620 7.500000 +v 0.000000 0.812500 7.500000 +v -0.093750 0.837620 7.500000 +v -0.162380 0.906250 7.500000 +v -0.187500 1.000000 7.500000 +v 0.125000 0.783494 5.500000 +v -0.000000 0.750000 5.500000 +v -0.125000 0.783494 5.500000 +v -0.216506 0.875000 5.500000 +v -0.250000 1.000000 5.375000 +v -0.216506 1.125000 5.250000 +v -0.312500 1.691561 7.881433 +v -0.312500 1.691561 7.506433 +v 0.250000 1.687500 7.875000 +v 0.312500 1.687500 7.875000 +v 0.312500 1.687500 7.500000 +v 0.250000 1.687500 7.500000 +v -0.250000 1.691561 7.506433 +v -0.250000 1.691561 7.881433 +v 0.062500 1.125000 7.500000 +v 0.062500 1.125000 7.875000 +v 0.062500 1.387500 7.875000 +v 0.062500 1.387500 7.500000 +v -0.062500 1.387500 7.875000 +v -0.062500 1.125000 7.875000 +v -0.062500 1.125000 7.500000 +v -0.062500 1.387500 7.500000 +v 0.062500 1.250000 7.875000 +v 0.062500 1.250000 7.500000 +v -0.062500 1.250000 7.875000 +v -0.062500 1.250000 7.500000 +v 0.062500 1.250000 7.812500 +v 0.062500 1.250000 7.562500 +v -0.062500 1.250000 7.812500 +v -0.062500 1.250000 7.562500 +v 0.062500 1.437500 7.562500 +v -0.062500 1.437500 7.562500 +v -0.062500 1.437500 7.812500 +v 0.062500 1.437500 7.812500 +v 0.031250 1.562500 7.625000 +v -0.031250 1.562500 7.625000 +v -0.031250 1.562500 7.750000 +v 0.031250 1.562500 7.750000 +v -0.000000 1.187500 5.250000 +v 0.093750 1.162380 5.250000 +v 0.162380 1.093750 5.250000 +v 0.187500 1.000000 5.375000 +v 0.162380 0.906250 5.500000 +v 0.093750 0.837620 5.500000 +v 0.000000 0.812500 5.500000 +v -0.093750 0.837620 5.500000 +v -0.162380 0.906250 5.500000 +v -0.187500 1.000000 5.375000 +v -0.162380 1.093750 5.250000 +v -0.093750 1.162380 5.250000 +v -0.000000 1.187500 6.125000 +v 0.093750 1.162380 6.125000 +v 0.162380 1.093750 6.125000 +v 0.187500 1.000000 6.125000 +v 0.162380 0.906250 6.125000 +v 0.093750 0.837620 6.125000 +v 0.000000 0.812500 6.125000 +v -0.093750 0.837620 6.125000 +v -0.162380 0.906250 6.125000 +v -0.187500 1.000000 6.125000 +v -0.162380 1.093750 6.125000 +v -0.093750 1.162380 6.125000 +v -0.000000 1.250000 4.875000 +v 0.125000 1.216506 4.875000 +v 0.216506 1.125000 4.875000 +v -0.216506 1.125000 4.875000 +v -0.125000 1.216506 4.875000 +v 0.093750 1.162380 4.875000 +v -0.000000 1.187500 4.875000 +v 0.162380 1.093750 4.875000 +v -0.093750 1.162380 4.875000 +v -0.162380 1.093750 4.875000 +v -0.000000 1.250000 4.437500 +v -0.125000 1.216506 4.437500 +v -0.216506 1.125000 4.437500 +v -0.250000 1.000000 4.437500 +v 0.312500 1.000000 4.500000 +v 0.312500 0.500100 4.500000 +v 0.312500 1.000000 4.750000 +v 0.312500 0.500100 4.750000 +v 0.250000 1.000000 4.437500 +v 0.216506 1.125000 4.437500 +v 0.125000 1.216506 4.437500 +v -0.000000 1.187500 4.437500 +v 0.093750 1.162380 4.437500 +v 0.162380 1.093750 4.437500 +v 0.187500 1.000000 4.437500 +v -0.250000 1.000000 4.500000 +v -0.250000 0.500000 4.500000 +v 0.250000 1.000000 4.500000 +v -0.187500 1.000000 4.437500 +v -0.162380 1.093750 4.437500 +v -0.093750 1.162380 4.437500 +v -0.125000 1.216506 4.812500 +v -0.000000 1.250000 4.812500 +v -0.216506 1.125000 4.812500 +v -0.250000 1.000000 4.812500 +v 0.250000 0.500000 4.500000 +v 0.250000 1.000000 4.812500 +v 0.216506 1.125000 4.812500 +v 0.125000 1.216506 4.812500 +v 0.093750 1.162380 4.812500 +v -0.000000 1.187500 4.812500 +v 0.162380 1.093750 4.812500 +v 0.187500 1.000000 4.812500 +v -0.250000 1.000000 4.750000 +v -0.250000 0.500000 4.750000 +v 0.250000 1.000000 4.750000 +v 0.250000 0.500000 4.750000 +v -0.187500 1.000000 4.812500 +v -0.162380 1.093750 4.812500 +v -0.093750 1.162380 4.812500 +v -0.312500 0.500100 4.750000 +v -0.312500 1.000000 4.750000 +v -0.312500 0.500100 4.500000 +v -0.312500 1.000000 4.500000 +v 0.250000 0.437600 4.750000 +v 0.250000 0.437600 4.500000 +v -0.250000 0.437600 4.750000 +v -0.250000 0.437600 4.500000 +v 0.187500 0.437600 4.750000 +v 0.187500 0.437600 4.500000 +v 0.125000 0.437600 4.750000 +v 0.125000 0.437600 4.500000 +v 0.187500 0.187600 4.750000 +v 0.187500 0.187600 4.500000 +v 0.125000 0.187600 4.750000 +v 0.125000 0.187600 4.500000 +v 0.187500 0.062600 4.687500 +v 0.187500 0.062600 4.562500 +v 0.125000 0.062600 4.687500 +v 0.125000 0.062600 4.562500 +v -0.125000 0.437600 4.750000 +v -0.125000 0.437600 4.500000 +v -0.187500 0.437600 4.750000 +v -0.187500 0.437600 4.500000 +v -0.125000 0.187600 4.750000 +v -0.125000 0.187600 4.500000 +v -0.187500 0.187600 4.750000 +v -0.187500 0.187600 4.500000 +v -0.125000 0.062600 4.687500 +v -0.125000 0.062600 4.562500 +v -0.187500 0.062600 4.687500 +v -0.187500 0.062600 4.562500 +v -0.250000 0.156350 4.656250 +v -0.250000 0.218850 4.656250 +v -0.250000 0.156350 4.593750 +v -0.250000 0.218850 4.593750 +v 0.250000 0.156350 4.656250 +v 0.250000 0.218850 4.656250 +v 0.250000 0.156350 4.593750 +v 0.250000 0.218850 4.593750 +v 0.125000 1.000000 1.125000 +v 0.500000 1.000000 1.125000 +v 0.125000 1.000000 1.000000 +v 0.500000 1.000000 1.000000 +v 0.125000 1.062500 1.125000 +v 0.500000 1.062500 1.125000 +v 0.125000 1.062500 1.000000 +v 0.500000 1.062500 1.000000 +v 0.312500 1.000000 1.250000 +v 0.312500 0.875000 1.250000 +v 0.312500 1.000000 -0.875000 +v 0.312500 0.875000 -0.875000 +v 0.437500 0.875000 1.250000 +v 0.437500 1.000000 1.250000 +v 0.437500 0.875000 0.000000 +v 0.437500 1.000000 0.000000 +v 0.500000 0.906250 1.125000 +v 0.500000 1.156250 1.125000 +v 0.500000 0.906250 1.000000 +v 0.500000 1.156250 1.000000 +v 0.750000 0.968750 1.125000 +v 0.750000 1.093750 1.125000 +v 0.750000 0.968750 1.000000 +v 0.750000 1.093750 1.000000 +v 0.625000 0.906250 1.000000 +v 0.625000 1.156250 1.000000 +v 0.625000 0.906250 1.125000 +v 0.625000 1.156250 1.125000 +v -0.125000 1.000000 1.125000 +v -0.500000 1.000000 1.125000 +v -0.125000 1.000000 1.000000 +v -0.500000 1.000000 1.000000 +v -0.125000 1.062500 1.125000 +v -0.500000 1.062500 1.125000 +v -0.125000 1.062500 1.000000 +v -0.500000 1.062500 1.000000 +v -0.500000 0.906250 1.125000 +v -0.500000 1.156250 1.125000 +v -0.500000 0.906250 1.000000 +v -0.500000 1.156250 1.000000 +v -0.750000 0.968750 1.125000 +v -0.750000 1.093750 1.125000 +v -0.750000 0.968750 1.000000 +v -0.750000 1.093750 1.000000 +v -0.625000 0.906250 1.000000 +v -0.625000 1.156250 1.000000 +v -0.625000 0.906250 1.125000 +v -0.625000 1.156250 1.125000 +v 0.687500 0.875000 0.000000 +v 0.687500 1.000000 0.000000 +v 0.562500 0.875000 -0.500000 +v 0.562500 1.000000 -0.500000 +v 0.687500 1.000000 0.000000 +v 0.562500 1.000000 0.000000 +v 0.687500 1.062500 0.000000 +v 0.562500 1.062500 0.000000 +v 0.625000 1.000000 -0.062500 +v 0.562500 1.000000 -0.062500 +v 0.625000 1.062500 -0.062500 +v 0.562500 1.062500 -0.062500 +v -0.312500 1.000000 1.250000 +v -0.312500 0.875000 1.250000 +v -0.312500 1.000000 -0.875000 +v -0.312500 0.875000 -0.875000 +v -0.437500 0.875000 1.250000 +v -0.437500 1.000000 1.250000 +v -0.437500 0.875000 0.000000 +v -0.437500 1.000000 0.000000 +v -0.687500 0.875000 0.000000 +v -0.687500 1.000000 0.000000 +v -0.562500 0.875000 -0.500000 +v -0.562500 1.000000 -0.500000 +v -0.687500 1.000000 0.000000 +v -0.562500 1.000000 0.000000 +v -0.687500 1.062500 0.000000 +v -0.562500 1.062500 0.000000 +v -0.625000 1.000000 -0.062500 +v -0.562500 1.000000 -0.062500 +v -0.625000 1.062500 -0.062500 +v -0.562500 1.062500 -0.062500 +v 0.125000 0.187500 -2.000000 +v 0.250000 0.312500 -2.000000 +v 0.250000 0.812500 -2.000000 +v 0.125000 0.937500 -2.000000 +v -0.250000 0.312500 -2.000000 +v -0.125000 0.187500 -2.000000 +v -0.125000 0.937500 -2.000000 +v -0.250000 0.812500 -2.000000 +v 0.125000 -0.062500 -2.500000 +v 0.250000 0.062500 -2.500000 +v 0.250000 0.562500 -2.750000 +v 0.125000 0.687500 -2.750000 +v -0.250000 0.062500 -2.500000 +v -0.125000 -0.062500 -2.500000 +v -0.125000 0.687500 -2.750000 +v -0.250000 0.562500 -2.750000 +v 0.250000 0.687500 -3.000000 +v 0.125000 0.812500 -3.000000 +v -0.125000 0.812500 -3.000000 +v -0.250000 0.687500 -3.000000 +v 0.250000 0.812500 -3.500000 +v 0.125000 0.937500 -3.500000 +v -0.125000 0.937500 -3.500000 +v -0.250000 0.812500 -3.500000 +v 0.250000 0.812500 -7.750000 +v 0.125000 0.937500 -7.750000 +v -0.125000 0.937500 -7.750000 +v -0.250000 0.812500 -7.750000 +v 0.125000 -0.937500 -3.125000 +v 0.250000 -0.812500 -3.125000 +v -0.250000 -0.812500 -3.125000 +v -0.125000 -0.937500 -3.125000 +v 0.125000 -0.687500 -4.000000 +v 0.250000 -0.562500 -4.000000 +v -0.250000 -0.562500 -4.000000 +v -0.125000 -0.687500 -4.000000 +v 0.125000 -0.812500 -5.000000 +v 0.250000 -0.687500 -5.000000 +v -0.250000 -0.687500 -5.000000 +v -0.125000 -0.812500 -5.000000 +v 0.125000 -1.687500 -7.375000 +v 0.250000 -1.562500 -7.375000 +v -0.250000 -1.562500 -7.375000 +v -0.125000 -1.687500 -7.375000 +v 0.125000 -1.687500 -7.875000 +v 0.250000 -1.562500 -7.875000 +v -0.250000 -1.562500 -7.875000 +v -0.125000 -1.687500 -7.875000 +v 0.125000 -1.437500 -8.125000 +v 0.250000 -1.437500 -8.000000 +v -0.250000 -1.437500 -8.000000 +v -0.125000 -1.437500 -8.125000 +v 0.125000 0.562500 -8.125000 +v 0.250000 0.562500 -8.000000 +v -0.250000 0.562500 -8.000000 +v -0.125000 0.562500 -8.125000 +v 0.312500 0.875000 -1.000000 +v -0.312500 0.875000 -1.000000 +v 0.250000 1.000000 3.500000 +v -0.250000 1.000000 3.500000 +v 0.250000 1.125000 3.500000 +v -0.250000 1.125000 3.500000 +v -0.187500 1.125000 3.500000 +v -0.187500 1.000000 3.500000 +v 0.187500 1.125000 3.500000 +v 0.187500 1.000000 3.500000 +v 0.250000 1.000000 1.375000 +v 0.250000 1.125000 1.375000 +v -0.250000 1.125000 1.375000 +v -0.250000 1.000000 1.375000 +v -0.187500 1.125000 1.375000 +v -0.187500 1.000000 1.375000 +v 0.187500 1.000000 1.375000 +v 0.187500 1.125000 1.375000 +v 0.312500 1.000000 -1.000000 +v -0.312500 1.000000 -1.000000 +v 0.312500 1.000000 -0.125000 +v -0.312500 1.000000 -0.125000 +v 0.312500 1.125000 -1.000000 +v -0.312500 1.125000 -1.000000 +v 0.312500 1.125000 -0.125000 +v -0.312500 1.125000 -0.125000 +v 0.187500 1.250000 -0.875000 +v -0.187500 1.250000 -0.875000 +v 0.187500 1.250000 -0.125000 +v -0.187500 1.250000 -0.125000 +v 0.187500 1.375000 -0.125000 +v -0.187500 1.375000 -0.125000 +v 0.187500 1.375000 -0.625000 +v -0.187500 1.375000 -0.625000 +v 0.187500 1.437500 -0.125000 +v -0.187500 1.437500 -0.125000 +v -0.125000 1.437500 -0.125000 +v -0.125000 1.437500 -0.625000 +v 0.125000 1.437500 -0.125000 +v 0.125000 1.437500 -0.625000 +v 0.187500 1.562500 -0.625000 +v -0.187500 1.562500 -0.625000 +v -0.125000 1.562500 -0.625000 +v 0.125000 1.562500 -0.625000 +v 0.000000 1.687500 -0.250000 +v -0.088388 1.650888 -0.250000 +v -0.125000 1.562500 -0.250000 +v -0.000000 1.437500 -0.312500 +v 0.000000 1.437500 -0.250000 +v 0.125000 1.562500 -0.250000 +v 0.088388 1.650888 -0.250000 +v 0.000000 1.656250 -0.250000 +v -0.066291 1.628791 -0.250000 +v -0.093750 1.562500 -0.250000 +v -0.066291 1.496209 -0.250000 +v 0.000000 1.468750 -0.250000 +v 0.066291 1.496209 -0.250000 +v 0.093750 1.562500 -0.250000 +v 0.066291 1.628791 -0.250000 +v -0.125000 1.437500 -0.250000 +v 0.125000 1.437500 -0.250000 +v 0.000000 1.687500 -0.312500 +v -0.088388 1.650888 -0.312500 +v -0.125000 1.562500 -0.312500 +v 0.125000 1.562500 -0.312500 +v 0.088388 1.650888 -0.312500 +v 0.000000 1.656250 -0.312500 +v -0.066291 1.628791 -0.312500 +v -0.093750 1.562500 -0.312500 +v -0.066291 1.496209 -0.312500 +v 0.000000 1.468750 -0.312500 +v 0.066291 1.496209 -0.312500 +v 0.093750 1.562500 -0.312500 +v 0.066291 1.628791 -0.312500 +v -0.125000 1.437500 -0.312500 +v 0.125000 1.437500 -0.312500 +v 0.187500 1.250000 -0.125000 +v -0.187500 1.250000 -0.125000 +v 0.187500 1.250000 -0.750000 +v -0.187500 1.250000 -0.750000 +v 0.125000 1.375000 -0.187500 +v -0.125000 1.375000 -0.187500 +v 0.125000 1.375000 -0.562500 +v -0.125000 1.375000 -0.562500 +v 0.187500 1.525888 -0.411612 +v 0.187500 1.562500 -0.500000 +v 0.187500 1.525888 -0.588388 +v 0.187500 1.437500 -0.625000 +v 0.187500 1.437500 -0.375000 +v 0.187500 1.349112 -0.411612 +v 0.187500 1.312500 -0.500000 +v 0.187500 1.349112 -0.588388 +v 0.250000 1.437500 -0.625000 +v 0.250000 1.349112 -0.588388 +v 0.250000 1.312500 -0.500000 +v 0.250000 1.349112 -0.411612 +v 0.250000 1.437500 -0.375000 +v 0.250000 1.562500 -0.500000 +v 0.250000 1.525888 -0.588388 +v 0.250000 1.525888 -0.411612 +v -0.250000 1.525888 -0.411612 +v -0.250000 1.562500 -0.500000 +v -0.250000 1.525888 -0.588388 +v -0.250000 1.437500 -0.625000 +v -0.250000 1.437500 -0.375000 +v -0.250000 1.349112 -0.411612 +v -0.250000 1.312500 -0.500000 +v -0.250000 1.349112 -0.588388 +v -0.187500 1.437500 -0.625000 +v -0.187500 1.349112 -0.588388 +v -0.187500 1.312500 -0.500000 +v -0.187500 1.349112 -0.411612 +v -0.187500 1.437500 -0.375000 +v -0.187500 1.562500 -0.500000 +v -0.187500 1.525888 -0.588388 +v -0.187500 1.525888 -0.411612 +v 0.187500 0.875000 1.125000 +v -0.187500 0.875000 1.125000 +v 0.187500 0.875000 0.125000 +v -0.187500 0.875000 0.125000 +v -0.187500 -1.375000 1.125000 +v 0.187500 -1.375000 1.125000 +v -0.187500 -1.375000 0.125000 +v 0.187500 -1.375000 0.125000 +v 0.000000 1.000000 0.187500 +v -0.062500 0.983253 0.187500 +v -0.108253 0.937500 0.187500 +v -0.125000 0.875000 0.187500 +v -0.108253 0.812500 0.187500 +v -0.062500 0.766747 0.187500 +v -0.000000 0.750000 0.187500 +v 0.062500 0.766747 0.187500 +v 0.108253 0.812500 0.187500 +v 0.125000 0.875000 0.187500 +v 0.108253 0.937500 0.187500 +v 0.062500 0.983253 0.187500 +v 0.000000 1.000000 0.812500 +v -0.062500 0.983253 0.812500 +v -0.108253 0.937500 0.812500 +v -0.125000 0.875000 0.812500 +v -0.108253 0.812500 0.812500 +v -0.062500 0.766747 0.812500 +v -0.000000 0.750000 0.812500 +v 0.062500 0.766747 0.812500 +v 0.108253 0.812500 0.812500 +v 0.125000 0.875000 0.812500 +v 0.108253 0.937500 0.812500 +v 0.062500 0.983253 0.812500 +v 0.000000 0.968750 1.000000 +v -0.046875 0.956190 1.000000 +v -0.081190 0.921875 1.000000 +v -0.093750 0.875000 1.000000 +v -0.081190 0.828125 1.000000 +v -0.046875 0.793810 1.000000 +v -0.000000 0.781250 1.000000 +v 0.046875 0.793810 1.000000 +v 0.081190 0.828125 1.000000 +v 0.093750 0.875000 1.000000 +v 0.081190 0.921875 1.000000 +v 0.046875 0.956190 1.000000 +v 0.000000 0.906250 1.062500 +v -0.015625 0.902063 1.062500 +v -0.027063 0.890625 1.062500 +v -0.031250 0.875000 1.062500 +v -0.027063 0.859375 1.062500 +v -0.015625 0.847937 1.062500 +v 0.000000 0.843750 1.062500 +v 0.015625 0.847937 1.062500 +v 0.027063 0.859375 1.062500 +v 0.031250 0.875000 1.062500 +v 0.027063 0.890625 1.062500 +v 0.015625 0.902063 1.062500 +v -0.125000 0.875000 1.125000 +v -0.062500 0.750000 1.125000 +v 0.062500 0.750000 1.125000 +v 0.125000 0.875000 1.125000 +v -0.125000 0.875000 0.125000 +v -0.062500 0.750000 0.125000 +v 0.062500 0.750000 0.125000 +v 0.125000 0.875000 0.125000 +v -0.125000 0.250000 0.000000 +v 0.125000 0.250000 0.000000 +v -0.125000 0.250000 -0.750000 +v 0.125000 0.250000 -0.750000 +v -0.125000 0.000000 -0.750000 +v -0.125000 0.000000 0.000000 +v 0.125000 0.000000 0.000000 +v 0.125000 0.000000 -0.750000 +v -0.062500 0.312500 -1.750000 +v 0.062500 0.312500 -1.750000 +v -0.062500 -0.062500 -1.750000 +v 0.062500 -0.062500 -1.750000 +v -0.062500 -0.312500 -1.500000 +v 0.062500 -0.312500 -1.500000 +v -0.062500 -0.312500 -0.875000 +v 0.062500 -0.312500 -0.875000 +v -0.062500 -0.125000 -0.687500 +v 0.062500 -0.125000 -0.687500 +v -0.062500 0.000000 -0.625000 +v 0.062500 0.000000 -0.625000 +v -0.062500 0.312500 -1.687500 +v 0.062500 0.312500 -1.687500 +v -0.062500 -0.062500 -1.687500 +v 0.062500 -0.062500 -1.687500 +v -0.062500 -0.250000 -1.500000 +v 0.062500 -0.250000 -1.500000 +v -0.062500 -0.250000 -0.875000 +v 0.062500 -0.250000 -0.875000 +v -0.062500 -0.125000 -0.750000 +v 0.062500 -0.125000 -0.750000 +v -0.062500 0.000000 -0.687500 +v 0.062500 0.000000 -0.687500 +v -0.062500 0.312500 -1.562500 +v 0.062500 0.312500 -1.562500 +v -0.062500 0.312500 -1.312500 +v 0.062500 0.312500 -1.312500 +v -0.062500 0.187500 -1.500000 +v 0.062500 0.187500 -1.500000 +v -0.062500 0.187500 -1.375000 +v 0.062500 0.187500 -1.375000 +v -0.062500 0.000000 -1.500000 +v 0.062500 0.000000 -1.500000 +v -0.062500 0.000000 -1.375000 +v 0.062500 0.000000 -1.375000 +v -0.062500 -0.187500 -1.312500 +v 0.062500 -0.187500 -1.312500 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.2588 -0.9659 0.0000 +vn -0.2588 -0.9659 0.0000 +vn -0.9659 -0.2588 -0.0000 +vn 0.9659 -0.2588 0.0000 +vn 0.9872 0.1592 0.0000 +vn -0.9231 0.3846 0.0000 +vn -0.9249 -0.3802 0.0000 +vn -0.9872 0.1592 0.0000 +vn 0.9249 0.3802 0.0000 +vn 0.9231 -0.3846 0.0000 +vn 0.0000 -0.0212 0.9998 +vn 0.0000 0.0212 -0.9998 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.9701 0.2425 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.4472 -0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn -0.4472 -0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.9701 0.0000 -0.2425 +vn 0.8321 0.0000 -0.5547 +vn 0.7071 0.0000 -0.7071 +vn -0.9701 0.0000 -0.2425 +vn -0.8321 0.0000 -0.5547 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9701 0.2425 +vn -0.8944 0.4472 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 0.8321 -0.5547 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9894 0.1452 +vn 0.1602 0.9871 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9522 0.3054 0.0000 +vn -0.1602 0.9871 0.0000 +vn -0.9522 0.3054 0.0000 +vn -0.9732 0.2298 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9637 0.2669 0.0000 +vn 0.1222 0.9925 0.0000 +vn -0.1222 0.9925 0.0000 +vn -0.9637 0.2669 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.9523 0.3051 0.0000 +vn -0.9414 -0.3297 0.0706 +vn -0.8629 -0.5054 0.0000 +vn -0.3595 0.9099 -0.2070 +vn 0.9523 0.3051 0.0000 +vn 0.9414 -0.3297 0.0706 +vn 0.8994 0.4225 -0.1123 +vn -0.9232 0.3569 -0.1429 +vn -0.9129 -0.3651 0.1826 +vn 0.3954 -0.8912 0.2222 +vn 0.8629 -0.5054 0.0000 +vn 0.3595 0.9099 -0.2070 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.9915 0.1299 0.0000 +vn -0.7768 0.6297 0.0000 +vn 0.9915 0.1299 0.0000 +vn -0.8911 -0.4538 0.0000 +vn 0.8911 -0.4538 0.0000 +vn 0.0000 -0.7689 -0.6394 +vn 0.2869 -0.6590 -0.6953 +vn 0.3536 -0.6124 -0.7071 +vn -0.0447 -0.7380 -0.6733 +vn -0.2869 -0.6590 -0.6953 +vn 0.0407 -0.7592 -0.6496 +vn 0.3057 -0.7078 -0.6369 +vn 0.4000 -0.6928 -0.6000 +vn 0.0000 -0.8000 -0.6000 +vn 0.7768 0.6297 0.0000 +vn -0.4192 0.9051 0.0712 +vn -0.9552 0.2954 0.0181 +vn -0.3954 -0.8912 0.2222 +vn -0.3568 -0.8355 0.4178 +vn 0.3568 -0.8355 0.4178 +vn 0.3688 0.8568 -0.3605 +vn 0.9129 -0.3651 0.1826 +vn 0.9232 0.3569 -0.1429 +vn -0.8994 0.4225 -0.1123 +vn -0.3688 0.8568 -0.3605 +vn 0.4192 0.9051 0.0712 +vn -0.3607 0.8769 0.3178 +vn 0.9552 0.2954 0.0181 +vn 0.3163 -0.6961 0.6445 +vn -0.9268 -0.3007 0.2251 +vn -0.3163 -0.6961 0.6445 +vn 0.9268 -0.3007 0.2251 +vn -0.9066 0.3929 0.1537 +vn 0.9066 0.3929 0.1537 +vn 0.3607 0.8769 0.3178 +vn -0.3711 0.9219 0.1112 +vn -0.9123 0.4062 0.0530 +vn 0.9123 0.4062 0.0530 +vn 0.3711 0.9219 0.1112 +vn -0.3416 0.8756 -0.3416 +vn -0.8727 0.4330 -0.2257 +vn 0.3416 0.8756 -0.3416 +vn 0.3335 -0.8970 0.2902 +vn -0.8515 -0.4669 0.2386 +vn -0.3335 -0.8970 0.2902 +vn 0.8515 -0.4669 0.2386 +vn 0.4002 -0.9135 -0.0737 +vn -0.4002 -0.9135 -0.0737 +vn 0.9405 -0.3390 -0.0241 +vn 0.3851 -0.8955 0.2233 +vn -0.9313 -0.3548 0.0821 +vn -0.3851 -0.8955 0.2233 +vn 0.9313 -0.3548 0.0821 +vn 0.3654 -0.9172 0.1589 +vn -0.9063 -0.4149 0.0807 +vn -0.3654 -0.9172 0.1589 +vn 0.9063 -0.4149 0.0807 +vn 0.3416 -0.8756 -0.3416 +vn -0.3416 -0.8756 -0.3416 +vn 0.8727 -0.4330 -0.2257 +vn 0.3416 -0.3416 -0.8756 +vn -0.8727 -0.2257 -0.4330 +vn -0.3416 -0.3416 -0.8756 +vn 0.8727 -0.2257 -0.4330 +vn 0.3416 0.3416 -0.8756 +vn -0.3416 0.3416 -0.8756 +vn 0.8727 0.2257 -0.4330 +vn -0.9405 -0.3390 -0.0241 +vn 0.8727 0.4330 -0.2257 +vn -0.8727 0.2257 -0.4330 +vn -0.9808 0.1951 0.0000 +vn 0.9808 0.1951 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -0.9967 0.0814 +vn -0.9967 -0.0000 0.0814 +vn 0.8632 0.4983 0.0814 +vn 0.0000 0.9967 0.0814 +vn 0.4983 -0.8632 0.0814 +vn -0.8632 -0.4983 0.0814 +vn 0.4983 0.8632 0.0814 +vn -0.4983 0.8632 0.0814 +vn 0.8632 -0.4983 0.0814 +vn -0.4983 -0.8632 0.0814 +vn -0.8632 0.4983 0.0814 +vn 0.9967 -0.0000 0.0814 +vn -0.4494 -0.7784 0.4382 +vn -0.7784 -0.4494 0.4382 +vn 0.0000 0.8989 0.4382 +vn 0.4494 0.7784 0.4382 +vn -0.4494 0.7784 0.4382 +vn 0.8989 -0.0000 0.4382 +vn 0.7784 -0.4494 0.4382 +vn -0.8989 -0.0000 0.4382 +vn -0.7784 0.4494 0.4382 +vn 0.4494 -0.7784 0.4382 +vn -0.0000 -0.8989 0.4382 +vn 0.7784 0.4494 0.4382 +vn -0.2172 -0.3762 0.9007 +vn -0.3762 -0.2172 0.9007 +vn 0.0000 0.4344 0.9007 +vn 0.2172 0.3762 0.9007 +vn -0.3762 0.2172 0.9007 +vn -0.2172 0.3762 0.9007 +vn 0.4344 -0.0000 0.9007 +vn 0.3762 -0.2172 0.9007 +vn 0.3762 0.2172 0.9007 +vn 0.2172 -0.3762 0.9007 +vn 0.0000 -0.4344 0.9007 +vn -0.4344 0.0000 0.9007 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.5847 0.8112 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.5847 -0.8112 +vn 0.0000 -0.2298 0.9732 +vn 0.0000 -0.2298 -0.9732 +vn 0.0000 0.1602 0.9871 +vn 0.0000 -0.8507 0.5257 +vn 0.9732 0.2298 0.0000 +vn -0.3536 -0.6124 -0.7071 +vn -0.8727 -0.4330 -0.2257 +s off +f 10//1 34//1 33//1 +f 8//1 35//1 34//1 +f 6//1 36//1 35//1 +f 4//1 25//1 36//1 +f 24//1 25//1 2//1 +f 24//1 27//1 26//1 +f 22//1 28//1 27//1 +f 20//1 29//1 28//1 +f 18//1 30//1 29//1 +f 14//1 30//1 16//1 +f 14//1 32//1 31//1 +f 10//1 32//1 12//1 +f 41//1 45//1 38//1 +f 50//1 67//1 49//1 +f 79//1 81//1 67//1 +f 146//2 134//2 137//2 +f 88//2 70//2 72//2 +f 64//3 86//3 76//3 +f 86//4 80//4 83//4 +f 74//2 85//2 64//2 +f 71//5 80//5 74//5 +f 87//6 90//6 88//6 +f 73//5 88//5 72//5 +f 75//3 89//3 63//3 +f 63//2 87//2 73//2 +f 110//2 98//2 101//2 +f 91//1 108//1 93//1 +f 97//1 114//1 99//1 +f 92//1 113//1 97//1 +f 118//2 105//2 106//2 +f 104//2 118//2 106//2 +f 96//1 114//1 112//1 +f 117//2 100//2 105//2 +f 102//2 122//2 103//2 +f 94//1 120//1 119//1 +f 122//2 104//2 103//2 +f 96//1 120//1 95//1 +f 100//2 110//2 101//2 +f 92//1 108//1 111//1 +f 123//1 107//1 91//1 +f 124//2 126//2 102//2 +f 127//1 144//1 129//1 +f 133//1 150//1 135//1 +f 128//1 149//1 133//1 +f 154//2 141//2 142//2 +f 140//2 154//2 142//2 +f 132//1 150//1 148//1 +f 153//2 136//2 141//2 +f 157//2 139//2 138//2 +f 131//1 155//1 130//1 +f 158//2 140//2 139//2 +f 132//1 156//1 131//1 +f 136//2 146//2 137//2 +f 128//1 144//1 147//1 +f 159//1 143//1 127//1 +f 160//2 162//2 138//2 +f 83//2 69//2 84//2 +f 190//2 200//2 189//2 +f 179//2 201//2 190//2 +f 179//2 191//2 202//2 +f 181//2 191//2 180//2 +f 182//2 192//2 181//2 +f 183//2 193//2 182//2 +f 184//2 194//2 183//2 +f 184//2 196//2 195//2 +f 186//2 196//2 185//2 +f 186//2 198//2 197//2 +f 188//2 198//2 187//2 +f 189//2 199//2 188//2 +f 88//2 227//2 228//2 +f 83//2 230//2 86//2 +f 229//2 84//2 82//2 +f 213//2 209//2 205//2 +f 239//4 247//4 238//4 +f 237//5 245//5 236//5 +f 235//6 243//6 234//6 +f 238//7 246//7 237//7 +f 236//8 244//8 235//8 +f 248//2 243//2 245//2 +f 243//9 712//9 711//9 +f 711//2 242//2 232//2 +f 234//1 252//1 235//1 +f 233//10 251//10 234//10 +f 231//1 250//1 233//1 +f 240//1 256//1 241//1 +f 239//10 255//10 240//10 +f 238//1 254//1 239//1 +f 236//1 258//1 237//1 +f 258//1 238//1 237//1 +f 235//1 257//1 236//1 +f 231//3 285//3 283//3 +f 232//3 286//3 285//3 +f 295//1 297//1 287//1 +f 307//1 312//1 313//1 +f 326//2 328//2 321//2 +f 312//5 331//5 322//5 +f 303//11 318//11 319//11 +f 305//12 318//12 304//12 +f 306//7 317//7 305//7 +f 307//13 325//13 306//13 +f 311//14 321//14 312//14 +f 316//5 326//5 307//5 +f 303//8 320//8 311//8 +f 335//1 337//1 341//1 +f 396//2 416//2 397//2 +f 395//2 417//2 396//2 +f 395//2 419//2 418//2 +f 394//2 420//2 419//2 +f 393//2 421//2 420//2 +f 392//2 422//2 421//2 +f 373//1 415//1 372//1 +f 374//1 414//1 373//1 +f 375//1 413//1 374//1 +f 376//1 412//1 375//1 +f 410//1 376//1 377//1 +f 409//1 377//1 378//1 +f 397//15 405//15 378//15 +f 409//1 405//1 403//1 +f 403//16 434//16 402//16 +f 406//2 416//2 402//2 +f 407//17 430//17 408//17 +f 422//2 408//2 401//2 +f 391//18 407//18 408//18 +f 407//1 415//1 404//1 +f 447//1 438//1 445//1 +f 433//3 431//3 432//3 +f 435//3 429//3 436//3 +f 406//2 434//2 433//2 +f 404//19 435//19 436//19 +f 406//20 432//20 405//20 +f 407//21 436//21 429//21 +f 408//22 435//22 401//22 +f 405//1 431//1 403//1 +f 445//4 440//4 446//4 +f 448//3 445//3 446//3 +f 445//1 438//1 409//1 +f 440//3 403//3 402//3 +f 446//2 440//2 402//2 +f 443//2 446//2 437//2 +f 447//1 441//1 404//1 +f 447//6 444//6 441//6 +f 448//2 443//2 422//2 +f 441//3 401//3 404//3 +f 453//23 460//23 456//23 +f 451//4 454//4 452//4 +f 450//6 456//6 449//6 +f 452//2 453//2 450//2 +f 449//1 455//1 451//1 +f 458//3 460//3 457//3 +f 454//24 457//24 453//24 +f 456//25 459//25 455//25 +f 455//26 458//26 454//26 +f 471//8 493//8 472//8 +f 425//2 469//2 468//2 +f 424//2 468//2 467//2 +f 423//2 467//2 466//2 +f 423//2 465//2 400//2 +f 475//1 388//1 389//1 +f 390//1 475//1 389//1 +f 379//1 474//1 390//1 +f 380//1 473//1 379//1 +f 381//1 484//1 380//1 +f 382//1 483//1 381//1 +f 383//1 482//1 382//1 +f 384//1 481//1 383//1 +f 385//1 480//1 384//1 +f 386//1 479//1 385//1 +f 477//1 386//1 387//1 +f 476//1 387//1 388//1 +f 486//2 492//2 490//2 +f 485//2 490//2 491//2 +f 489//2 491//2 493//2 +f 488//2 493//2 494//2 +f 428//27 494//27 471//27 +f 461//12 490//12 462//12 +f 472//11 491//11 461//11 +f 462//7 492//7 463//7 +f 463//28 487//28 398//28 +f 503//2 508//2 504//2 +f 505//2 508//2 507//2 +f 495//2 507//2 506//2 +f 496//2 506//2 515//2 +f 497//2 515//2 514//2 +f 498//2 514//2 513//2 +f 511//2 520//2 540//2 +f 531//1 529//1 541//1 +f 526//1 521//1 522//1 +f 523//1 526//1 522//1 +f 517//1 524//1 523//1 +f 516//1 525//1 517//1 +f 518//1 534//1 516//1 +f 519//1 533//1 518//1 +f 539//5 542//5 540//5 +f 502//8 540//8 500//8 +f 537//7 541//7 535//7 +f 536//4 537//4 535//4 +f 502//6 499//6 501//6 +f 528//1 535//1 529//1 +f 537//2 510//2 511//2 +f 512//3 501//3 499//3 +f 528//3 538//3 536//3 +f 530//1 502//1 501//1 +f 512//2 500//2 520//2 +f 561//29 563//29 559//29 +f 549//29 551//29 547//29 +f 544//2 550//2 546//2 +f 543//6 548//6 544//6 +f 545//1 547//1 543//1 +f 546//4 549//4 545//4 +f 551//5 554//5 552//5 +f 550//4 553//4 549//4 +f 548//30 554//30 550//30 +f 547//6 552//6 548//6 +f 556//2 562//2 558//2 +f 555//6 560//6 556//6 +f 557//1 559//1 555//1 +f 558//4 561//4 557//4 +f 563//5 566//5 564//5 +f 562//4 565//4 561//4 +f 560//30 566//30 562//30 +f 559//6 564//6 560//6 +f 568//4 569//4 567//4 +f 570//2 573//2 569//2 +f 574//6 571//6 573//6 +f 572//1 567//1 571//1 +f 573//5 567//5 569//5 +f 570//3 572//3 574//3 +f 243//6 711//6 232//6 +f 575//5 578//5 576//5 +f 582//3 579//3 580//3 +f 606//5 603//5 604//5 +f 578//2 581//2 582//2 +f 592//4 593//4 591//4 +f 576//1 579//1 575//1 +f 587//6 590//6 588//6 +f 583//3 590//3 585//3 +f 584//1 588//1 583//1 +f 584//5 589//5 587//5 +f 589//1 624//1 590//1 +f 598//6 595//6 597//6 +f 598//2 597//2 599//2 +f 597//31 601//31 599//31 +f 594//3 602//3 600//3 +f 600//32 596//32 598//32 +f 599//5 591//5 593//5 +f 606//2 609//2 605//2 +f 607//3 610//3 608//3 +f 592//1 591//1 601//1 +f 613//6 612//6 611//6 +f 607//1 604//1 603//1 +f 615//4 618//4 617//4 +f 620//2 614//2 619//2 +f 621//33 617//33 619//33 +f 622//3 614//3 620//3 +f 616//34 620//34 618//34 +f 611//5 619//5 613//5 +f 622//1 616//1 621//1 +f 623//35 626//35 624//35 +f 625//5 589//5 586//5 +f 590//3 626//3 585//3 +f 625//36 585//36 626//36 +f 627//1 630//1 628//1 +f 634//2 631//2 632//2 +f 630//4 632//4 628//4 +f 627//37 633//37 629//37 +f 630//3 633//3 634//3 +f 642//4 639//4 640//4 +f 642//3 635//3 637//3 +f 640//1 636//1 635//1 +f 636//5 641//5 638//5 +f 644//1 641//1 642//1 +f 646//38 643//38 644//38 +f 641//5 645//5 638//5 +f 642//3 646//3 644//3 +f 637//39 645//39 646//39 +f 650//1 647//1 648//1 +f 651//2 654//2 652//2 +f 652//6 650//6 648//6 +f 653//40 647//40 649//40 +f 650//3 653//3 649//3 +f 239//4 242//4 248//4 +f 241//3 256//3 284//3 +f 718//1 716//1 714//1 +f 719//1 713//1 715//1 +f 713//6 722//6 715//6 +f 720//5 721//5 713//5 +f 719//4 727//4 720//4 +f 714//5 726//5 718//5 +f 716//4 724//4 714//4 +f 715//3 728//3 719//3 +f 717//3 723//3 716//3 +f 718//6 725//6 717//6 +f 735//41 737//41 739//41 +f 729//6 735//6 731//6 +f 744//5 741//5 742//5 +f 732//4 734//4 730//4 +f 730//2 733//2 729//2 +f 740//3 737//3 738//3 +f 736//42 738//42 734//42 +f 734//43 737//43 733//43 +f 732//1 731//1 739//1 +f 747//3 750//3 748//3 +f 743//6 745//6 741//6 +f 750//2 751//2 743//2 +f 747//1 746//1 742//1 +f 743//2 748//2 750//2 +f 746//4 744//4 742//4 +f 747//44 752//44 746//44 +f 748//6 753//6 747//6 +f 745//44 754//44 749//44 +f 750//4 749//4 754//4 +f 752//2 748//2 744//2 +f 760//1 769//1 768//1 +f 755//1 763//1 762//1 +f 755//1 769//1 761//1 +f 771//1 767//1 759//1 +f 770//1 765//1 757//1 +f 757//1 763//1 756//1 +f 782//2 775//2 786//2 +f 774//2 779//2 780//2 +f 784//2 775//2 783//2 +f 784//2 772//2 776//2 +f 772//2 778//2 773//2 +f 778//2 774//2 773//2 +f 800//4 795//4 797//4 +f 810//6 806//6 804//6 +f 794//45 788//45 792//45 +f 793//46 787//46 789//46 +f 793//47 790//47 794//47 +f 792//25 787//25 791//25 +f 816//4 811//4 813//4 +f 826//6 822//6 820//6 +f 887//3 828//3 883//3 +f 831//5 834//5 832//5 +f 827//6 834//6 829//6 +f 832//1 885//1 884//1 +f 830//4 831//4 828//4 +f 833//2 888//2 889//2 +f 843//2 841//2 837//2 +f 829//3 886//3 827//3 +f 890//45 885//45 886//45 +f 888//46 883//46 884//46 +f 889//3 884//3 885//3 +f 895//5 897//5 896//5 +f 892//6 898//6 894//6 +f 893//4 896//4 891//4 +f 894//2 895//2 893//2 +f 891//1 897//1 892//1 +f 913//4 899//4 901//4 +f 912//6 902//6 900//6 +f 917//4 903//4 905//4 +f 916//6 906//6 904//6 +f 915//4 901//4 903//4 +f 902//6 916//6 904//6 +f 921//4 907//4 909//4 +f 908//6 922//6 910//6 +f 919//4 905//4 907//4 +f 906//6 920//6 908//6 +f 930//6 924//6 926//6 +f 927//4 925//4 923//4 +f 931//4 929//4 927//4 +f 934//6 928//6 930//6 +f 932//6 934//6 936//6 +f 933//4 931//4 935//4 +f 10//1 8//1 34//1 +f 8//1 6//1 35//1 +f 6//1 4//1 36//1 +f 4//1 2//1 25//1 +f 24//1 26//1 25//1 +f 24//1 22//1 27//1 +f 22//1 20//1 28//1 +f 20//1 18//1 29//1 +f 18//1 16//1 30//1 +f 14//1 31//1 30//1 +f 14//1 12//1 32//1 +f 10//1 33//1 32//1 +f 38//1 37//1 41//1 +f 37//1 39//1 41//1 +f 39//1 40//1 41//1 +f 41//1 42//1 43//1 +f 43//1 44//1 45//1 +f 45//1 46//1 47//1 +f 47//1 48//1 45//1 +f 48//1 38//1 45//1 +f 41//1 43//1 45//1 +f 50//1 68//1 67//1 +f 68//1 52//1 79//1 +f 81//1 51//1 67//1 +f 68//1 79//1 67//1 +f 146//2 145//2 134//2 +f 88//2 82//2 70//2 +f 64//3 85//3 86//3 +f 86//4 85//4 80//4 +f 74//2 80//2 85//2 +f 71//5 83//5 80//5 +f 87//6 89//6 90//6 +f 73//5 87//5 88//5 +f 75//3 90//3 89//3 +f 63//2 89//2 87//2 +f 110//2 109//2 98//2 +f 91//1 107//1 108//1 +f 97//1 113//1 114//1 +f 92//1 111//1 113//1 +f 118//2 117//2 105//2 +f 104//2 116//2 118//2 +f 96//1 99//1 114//1 +f 117//2 115//2 100//2 +f 102//2 121//2 122//2 +f 94//1 95//1 120//1 +f 122//2 116//2 104//2 +f 96//1 112//1 120//1 +f 100//2 115//2 110//2 +f 92//1 93//1 108//1 +f 91//1 94//1 123//1 +f 94//1 119//1 125//1 +f 123//1 94//1 125//1 +f 121//2 102//2 126//2 +f 102//2 98//2 124//2 +f 98//2 109//2 124//2 +f 127//1 143//1 144//1 +f 133//1 149//1 150//1 +f 128//1 147//1 149//1 +f 154//2 153//2 141//2 +f 140//2 152//2 154//2 +f 132//1 135//1 150//1 +f 153//2 151//2 136//2 +f 157//2 158//2 139//2 +f 131//1 156//1 155//1 +f 158//2 152//2 140//2 +f 132//1 148//1 156//1 +f 136//2 151//2 146//2 +f 128//1 129//1 144//1 +f 127//1 130//1 159//1 +f 130//1 155//1 161//1 +f 159//1 130//1 161//1 +f 157//2 138//2 162//2 +f 138//2 134//2 160//2 +f 134//2 145//2 160//2 +f 83//2 71//2 69//2 +f 190//2 201//2 200//2 +f 179//2 202//2 201//2 +f 179//2 180//2 191//2 +f 181//2 192//2 191//2 +f 182//2 193//2 192//2 +f 183//2 194//2 193//2 +f 184//2 195//2 194//2 +f 184//2 185//2 196//2 +f 186//2 197//2 196//2 +f 186//2 187//2 198//2 +f 188//2 199//2 198//2 +f 189//2 200//2 199//2 +f 88//2 90//2 227//2 +f 83//2 229//2 230//2 +f 82//2 88//2 228//2 +f 229//2 83//2 84//2 +f 82//2 228//2 229//2 +f 205//2 204//2 213//2 +f 204//2 203//2 213//2 +f 203//2 214//2 213//2 +f 213//2 212//2 211//2 +f 211//2 210//2 209//2 +f 209//2 208//2 207//2 +f 207//2 206//2 205//2 +f 213//2 211//2 209//2 +f 209//2 207//2 205//2 +f 239//4 248//4 247//4 +f 237//5 246//5 245//5 +f 235//6 244//6 243//6 +f 238//7 247//7 246//7 +f 236//8 245//8 244//8 +f 243//2 244//2 245//2 +f 245//2 246//2 248//2 +f 246//2 247//2 248//2 +f 243//9 248//9 712//9 +f 711//2 712//2 242//2 +f 234//1 251//1 252//1 +f 233//10 250//10 251//10 +f 231//1 249//1 250//1 +f 240//1 255//1 256//1 +f 239//10 254//10 255//10 +f 238//1 253//1 254//1 +f 236//1 257//1 258//1 +f 258//1 253//1 238//1 +f 235//1 252//1 257//1 +f 283//3 249//3 231//3 +f 231//3 232//3 285//3 +f 232//3 242//3 286//3 +f 287//1 288//1 289//1 +f 289//1 290//1 291//1 +f 291//1 292//1 293//1 +f 293//1 294//1 295//1 +f 295//1 296//1 297//1 +f 297//1 298//1 287//1 +f 287//1 289//1 295//1 +f 289//1 291//1 295//1 +f 291//1 293//1 295//1 +f 303//1 311//1 312//1 +f 312//1 322//1 323//1 +f 323//1 324//1 312//1 +f 324//1 313//1 312//1 +f 313//1 314//1 307//1 +f 314//1 315//1 307//1 +f 315//1 316//1 307//1 +f 307//1 306//1 305//1 +f 305//1 304//1 303//1 +f 303//1 312//1 305//1 +f 305//1 312//1 307//1 +f 321//2 320//2 319//2 +f 319//2 318//2 321//2 +f 318//2 317//2 321//2 +f 317//2 325//2 326//2 +f 326//2 330//2 329//2 +f 329//2 327//2 326//2 +f 327//2 328//2 326//2 +f 328//2 333//2 321//2 +f 333//2 332//2 321//2 +f 332//2 331//2 321//2 +f 317//2 326//2 321//2 +f 312//5 321//5 331//5 +f 303//11 304//11 318//11 +f 305//12 317//12 318//12 +f 306//7 325//7 317//7 +f 307//13 326//13 325//13 +f 311//14 320//14 321//14 +f 316//5 330//5 326//5 +f 303//8 319//8 320//8 +f 345//1 334//1 335//1 +f 335//1 336//1 337//1 +f 337//1 338//1 341//1 +f 338//1 339//1 341//1 +f 339//1 340//1 341//1 +f 341//1 342//1 345//1 +f 342//1 343//1 345//1 +f 343//1 344//1 345//1 +f 345//1 335//1 341//1 +f 396//2 417//2 416//2 +f 395//2 418//2 417//2 +f 395//2 394//2 419//2 +f 394//2 393//2 420//2 +f 393//2 392//2 421//2 +f 392//2 391//2 422//2 +f 373//1 414//1 415//1 +f 374//1 413//1 414//1 +f 375//1 412//1 413//1 +f 376//1 411//1 412//1 +f 410//1 411//1 376//1 +f 409//1 410//1 377//1 +f 397//15 406//15 405//15 +f 409//1 378//1 405//1 +f 403//16 431//16 434//16 +f 406//2 397//2 416//2 +f 407//17 429//17 430//17 +f 422//2 391//2 408//2 +f 391//18 372//18 407//18 +f 407//1 372//1 415//1 +f 447//1 442//1 438//1 +f 433//3 434//3 431//3 +f 435//3 430//3 429//3 +f 406//2 402//2 434//2 +f 404//19 401//19 435//19 +f 406//20 433//20 432//20 +f 407//21 404//21 436//21 +f 408//22 430//22 435//22 +f 405//1 432//1 431//1 +f 445//4 439//4 440//4 +f 448//3 447//3 445//3 +f 409//1 403//1 445//1 +f 403//1 439//1 445//1 +f 440//3 439//3 403//3 +f 402//2 416//2 446//2 +f 416//2 437//2 446//2 +f 443//2 448//2 446//2 +f 404//1 415//1 447//1 +f 415//1 442//1 447//1 +f 447//6 448//6 444//6 +f 422//2 401//2 448//2 +f 401//2 444//2 448//2 +f 441//3 444//3 401//3 +f 453//23 457//23 460//23 +f 451//4 455//4 454//4 +f 450//6 453//6 456//6 +f 452//2 454//2 453//2 +f 449//1 456//1 455//1 +f 458//3 459//3 460//3 +f 454//24 458//24 457//24 +f 456//25 460//25 459//25 +f 455//26 459//26 458//26 +f 471//8 494//8 493//8 +f 425//2 426//2 469//2 +f 424//2 425//2 468//2 +f 423//2 424//2 467//2 +f 423//2 466//2 465//2 +f 475//1 476//1 388//1 +f 390//1 474//1 475//1 +f 379//1 473//1 474//1 +f 380//1 484//1 473//1 +f 381//1 483//1 484//1 +f 382//1 482//1 483//1 +f 383//1 481//1 482//1 +f 384//1 480//1 481//1 +f 385//1 479//1 480//1 +f 386//1 478//1 479//1 +f 477//1 478//1 386//1 +f 476//1 477//1 387//1 +f 486//2 487//2 492//2 +f 485//2 486//2 490//2 +f 489//2 485//2 491//2 +f 488//2 489//2 493//2 +f 428//27 488//27 494//27 +f 461//12 491//12 490//12 +f 472//11 493//11 491//11 +f 462//7 490//7 492//7 +f 463//28 492//28 487//28 +f 503//2 509//2 508//2 +f 505//2 504//2 508//2 +f 495//2 505//2 507//2 +f 496//2 495//2 506//2 +f 497//2 496//2 515//2 +f 498//2 497//2 514//2 +f 520//2 500//2 540//2 +f 540//2 542//2 511//2 +f 542//2 537//2 511//2 +f 529//1 535//1 541//1 +f 541//1 539//1 531//1 +f 539//1 502//1 531//1 +f 526//1 527//1 521//1 +f 523//1 524//1 526//1 +f 517//1 525//1 524//1 +f 516//1 534//1 525//1 +f 518//1 533//1 534//1 +f 519//1 532//1 533//1 +f 539//5 541//5 542//5 +f 502//8 539//8 540//8 +f 537//7 542//7 541//7 +f 536//4 538//4 537//4 +f 502//6 500//6 499//6 +f 528//1 536//1 535//1 +f 537//2 538//2 510//2 +f 512//3 530//3 501//3 +f 528//3 510//3 538//3 +f 530//1 531//1 502//1 +f 512//2 499//2 500//2 +f 561//29 565//29 563//29 +f 549//29 553//29 551//29 +f 544//2 548//2 550//2 +f 543//6 547//6 548//6 +f 545//1 549//1 547//1 +f 546//4 550//4 549//4 +f 551//5 553//5 554//5 +f 550//4 554//4 553//4 +f 548//30 552//30 554//30 +f 547//6 551//6 552//6 +f 556//2 560//2 562//2 +f 555//6 559//6 560//6 +f 557//1 561//1 559//1 +f 558//4 562//4 561//4 +f 563//5 565//5 566//5 +f 562//4 566//4 565//4 +f 560//30 564//30 566//30 +f 559//6 563//6 564//6 +f 568//4 570//4 569//4 +f 570//2 574//2 573//2 +f 574//6 572//6 571//6 +f 572//1 568//1 567//1 +f 573//5 571//5 567//5 +f 570//3 568//3 572//3 +f 232//6 231//6 243//6 +f 231//6 233//6 234//6 +f 243//6 231//6 234//6 +f 575//5 577//5 578//5 +f 582//3 581//3 579//3 +f 606//5 605//5 603//5 +f 578//2 577//2 581//2 +f 592//4 594//4 593//4 +f 576//1 580//1 579//1 +f 587//6 589//6 590//6 +f 583//3 588//3 590//3 +f 584//1 587//1 588//1 +f 584//5 586//5 589//5 +f 589//1 623//1 624//1 +f 598//6 596//6 595//6 +f 599//2 593//2 594//2 +f 594//2 600//2 599//2 +f 600//2 598//2 599//2 +f 597//31 595//31 601//31 +f 594//3 592//3 602//3 +f 600//32 602//32 596//32 +f 599//5 601//5 591//5 +f 606//2 610//2 609//2 +f 607//3 609//3 610//3 +f 601//1 595//1 596//1 +f 596//1 602//1 601//1 +f 602//1 592//1 601//1 +f 613//6 614//6 612//6 +f 607//1 608//1 604//1 +f 615//4 616//4 618//4 +f 614//2 613//2 619//2 +f 619//2 617//2 618//2 +f 618//2 620//2 619//2 +f 621//33 615//33 617//33 +f 622//3 612//3 614//3 +f 616//34 622//34 620//34 +f 611//5 621//5 619//5 +f 616//1 615//1 621//1 +f 621//1 611//1 612//1 +f 612//1 622//1 621//1 +f 623//35 625//35 626//35 +f 625//5 623//5 589//5 +f 590//3 624//3 626//3 +f 625//36 586//36 585//36 +f 627//1 629//1 630//1 +f 634//2 633//2 631//2 +f 630//4 634//4 632//4 +f 627//37 631//37 633//37 +f 630//3 629//3 633//3 +f 642//4 641//4 639//4 +f 642//3 640//3 635//3 +f 640//1 639//1 636//1 +f 636//5 639//5 641//5 +f 644//1 643//1 641//1 +f 646//38 645//38 643//38 +f 641//5 643//5 645//5 +f 642//3 637//3 646//3 +f 637//39 638//39 645//39 +f 650//1 649//1 647//1 +f 651//2 653//2 654//2 +f 652//6 654//6 650//6 +f 653//40 651//40 647//40 +f 650//3 654//3 653//3 +f 239//4 240//4 241//4 +f 241//4 242//4 239//4 +f 242//4 712//4 248//4 +f 284//3 286//3 241//3 +f 286//3 242//3 241//3 +f 718//1 717//1 716//1 +f 719//1 720//1 713//1 +f 713//6 721//6 722//6 +f 720//5 727//5 721//5 +f 719//4 728//4 727//4 +f 714//5 724//5 726//5 +f 716//4 723//4 724//4 +f 715//3 722//3 728//3 +f 717//3 725//3 723//3 +f 718//6 726//6 725//6 +f 735//41 733//41 737//41 +f 729//6 733//6 735//6 +f 744//5 743//5 741//5 +f 732//4 736//4 734//4 +f 730//2 734//2 733//2 +f 740//3 739//3 737//3 +f 736//42 740//42 738//42 +f 734//43 738//43 737//43 +f 731//1 735//1 739//1 +f 739//1 740//1 732//1 +f 740//1 736//1 732//1 +f 747//3 749//3 750//3 +f 743//6 751//6 745//6 +f 750//2 754//2 751//2 +f 742//1 741//1 749//1 +f 741//1 745//1 749//1 +f 749//1 747//1 742//1 +f 743//2 744//2 748//2 +f 746//4 752//4 744//4 +f 747//44 753//44 752//44 +f 745//44 751//44 754//44 +f 752//2 753//2 748//2 +f 760//1 761//1 769//1 +f 755//1 756//1 763//1 +f 755//1 762//1 769//1 +f 771//1 760//1 767//1 +f 760//1 768//1 767//1 +f 767//1 766//1 759//1 +f 770//1 759//1 765//1 +f 759//1 766//1 765//1 +f 765//1 764//1 757//1 +f 757//1 764//1 763//1 +f 758//2 781//2 782//2 +f 782//2 783//2 775//2 +f 786//2 758//2 782//2 +f 781//2 758//2 780//2 +f 758//2 785//2 780//2 +f 785//2 774//2 780//2 +f 784//2 776//2 775//2 +f 784//2 777//2 772//2 +f 772//2 777//2 778//2 +f 778//2 779//2 774//2 +f 797//4 798//4 802//4 +f 802//4 801//4 800//4 +f 800//4 799//4 795//4 +f 795//4 796//4 797//4 +f 797//4 802//4 800//4 +f 804//6 803//6 809//6 +f 809//6 808//6 810//6 +f 810//6 807//6 806//6 +f 806//6 805//6 804//6 +f 804//6 809//6 810//6 +f 794//45 790//45 788//45 +f 793//46 791//46 787//46 +f 793//47 789//47 790//47 +f 792//25 788//25 787//25 +f 813//4 814//4 818//4 +f 818//4 817//4 816//4 +f 816//4 815//4 811//4 +f 811//4 812//4 813//4 +f 813//4 818//4 816//4 +f 820//6 819//6 825//6 +f 825//6 824//6 826//6 +f 826//6 823//6 822//6 +f 822//6 821//6 820//6 +f 820//6 825//6 826//6 +f 887//3 830//3 828//3 +f 831//5 833//5 834//5 +f 827//6 832//6 834//6 +f 832//1 827//1 885//1 +f 827//1 886//1 885//1 +f 828//1 831//1 884//1 +f 831//1 832//1 884//1 +f 884//1 883//1 828//1 +f 830//4 833//4 831//4 +f 833//2 830//2 888//2 +f 830//2 887//2 888//2 +f 829//2 834//2 889//2 +f 834//2 833//2 889//2 +f 889//2 890//2 829//2 +f 837//2 836//2 835//2 +f 835//2 846//2 837//2 +f 846//2 845//2 837//2 +f 845//2 844//2 843//2 +f 843//2 842//2 841//2 +f 841//2 840//2 839//2 +f 839//2 838//2 841//2 +f 838//2 837//2 841//2 +f 845//2 843//2 837//2 +f 829//3 890//3 886//3 +f 890//45 889//45 885//45 +f 888//46 887//46 883//46 +f 889//3 888//3 884//3 +f 895//5 898//5 897//5 +f 892//6 897//6 898//6 +f 893//4 895//4 896//4 +f 894//2 898//2 895//2 +f 891//1 896//1 897//1 +f 913//4 911//4 899//4 +f 912//6 914//6 902//6 +f 917//4 915//4 903//4 +f 916//6 918//6 906//6 +f 915//4 913//4 901//4 +f 902//6 914//6 916//6 +f 921//4 919//4 907//4 +f 908//6 920//6 922//6 +f 919//4 917//4 905//4 +f 906//6 918//6 920//6 +f 930//6 928//6 924//6 +f 927//4 929//4 925//4 +f 931//4 933//4 929//4 +f 934//6 932//6 928//6 +s 1 +f 2//3 3//48 1//3 +f 4//48 5//49 3//48 +f 6//49 7//6 5//49 +f 8//6 9//50 7//6 +f 10//50 11//28 9//50 +f 12//28 13//5 11//28 +f 14//5 15//27 13//5 +f 16//27 17//51 15//27 +f 18//51 19//4 17//51 +f 20//4 21//52 19//4 +f 22//52 23//53 21//52 +f 24//53 1//3 23//53 +f 29//49 40//6 28//6 +f 36//27 47//51 35//51 +f 26//28 38//5 25//5 +f 33//52 44//53 32//53 +f 30//48 41//49 29//49 +f 25//5 48//27 36//27 +f 27//50 37//28 26//28 +f 34//4 45//52 33//52 +f 31//3 42//48 30//48 +f 28//6 39//50 27//50 +f 35//51 46//4 34//4 +f 32//53 43//3 31//3 +f 49//3 54//54 50//3 +f 53//54 56//1 54//54 +f 55//1 58//55 56//1 +f 57//55 60//56 58//55 +f 59//56 62//56 60//56 +f 52//57 82//58 79//58 +f 61//56 66//5 62//56 +f 73//59 72//46 70//57 +f 69//60 71//45 74//61 +f 73//59 50//6 63//6 +f 67//62 64//4 49//4 +f 63//6 50//6 60//6 +f 57//4 55//4 53//4 +f 81//63 69//60 51//60 +f 79//58 84//63 81//63 +f 107//64 110//65 108//65 +f 111//66 110//65 115//66 +f 111//66 117//58 113//58 +f 113//58 118//63 114//63 +f 114//63 116//67 112//67 +f 120//68 116//67 122//68 +f 120//68 121//69 119//69 +f 121//69 125//70 119//69 +f 107//64 124//71 109//64 +f 123//71 126//70 124//71 +f 143//64 146//65 144//65 +f 147//66 146//65 151//66 +f 147//66 153//58 149//58 +f 149//58 154//63 150//63 +f 150//63 152//67 148//67 +f 156//68 152//67 158//68 +f 156//68 157//69 155//69 +f 157//69 161//70 155//69 +f 143//64 160//71 145//64 +f 159//71 162//70 160//71 +f 168//72 172//73 163//74 +f 170//63 176//75 167//58 +f 169//76 173//77 178//78 +f 172//73 662//79 659//80 +f 174//81 166//82 165//71 +f 170//63 178//78 177//83 +f 172//73 164//70 163//74 +f 176//75 168//72 167//58 +f 164//70 174//81 165//71 +f 190//27 203//5 179//5 +f 180//28 205//50 181//50 +f 187//52 212//4 188//4 +f 184//48 209//3 185//3 +f 181//50 206//6 182//6 +f 188//4 213//51 189//51 +f 185//3 210//53 186//53 +f 182//6 207//49 183//49 +f 189//51 214//27 190//27 +f 179//5 204//28 180//28 +f 186//53 211//52 187//52 +f 183//49 208//48 184//48 +f 197//28 220//5 196//5 +f 194//51 217//4 193//4 +f 201//48 224//49 200//49 +f 191//53 226//3 202//3 +f 198//50 221//28 197//28 +f 195//27 218//51 194//51 +f 202//3 225//48 201//48 +f 192//52 215//53 191//53 +f 199//6 222//50 198//50 +f 196//5 219//27 195//27 +f 193//4 216//52 192//52 +f 200//49 223//6 199//6 +f 272//52 261//4 260//52 +f 279//6 268//49 267//6 +f 276//5 265//28 264//5 +f 273//4 262//51 261//4 +f 280//49 269//48 268//49 +f 282//3 259//53 270//3 +f 277//28 266//50 265//28 +f 274//51 263//27 262//51 +f 281//48 270//3 269//48 +f 271//53 260//52 259//53 +f 278//50 267//6 266//50 +f 275//27 264//5 263//27 +f 289//52 302//84 290//84 +f 296//85 309//49 297//49 +f 298//48 309//49 310//48 +f 287//3 299//53 288//53 +f 298//48 300//3 287//3 +f 288//53 301//52 289//52 +f 314//53 329//52 315//52 +f 322//85 332//49 323//49 +f 315//52 330//84 316//84 +f 323//49 333//48 324//48 +f 324//48 328//3 313//3 +f 313//3 327//53 314//53 +f 348//4 337//51 336//4 +f 355//49 344//48 343//49 +f 357//3 334//53 345//3 +f 352//28 341//50 340//28 +f 349//51 338//27 337//51 +f 356//48 345//3 344//48 +f 346//53 335//52 334//53 +f 353//50 342//6 341//50 +f 350//27 339//5 338//27 +f 347//52 336//4 335//52 +f 354//6 343//49 342//6 +f 351//5 340//28 339//5 +f 362//53 368//3 361//3 +f 360//48 366//49 359//49 +f 363//52 369//53 362//53 +f 361//3 367//48 360//48 +f 359//49 365//85 358//85 +f 364//84 370//52 363//52 +f 394//5 376//28 375//5 +f 395//28 377//50 376//28 +f 396//50 378//14 377//50 +f 391//13 373//51 372//13 +f 392//51 374//27 373//51 +f 393//27 375//5 374//27 +f 424//5 384//27 425//27 +f 427//86 381//52 428//87 +f 399//88 389//49 388//6 +f 423//28 385//5 424//5 +f 426//89 382//4 427//86 +f 400//90 386//28 423//28 +f 425//27 383//51 426//89 +f 428//87 381//52 380//53 +f 485//3 380//53 379//3 +f 400//90 388//6 387//50 +f 399//91 463//92 398//93 +f 427//94 471//95 470//96 +f 426//97 470//96 469//98 +f 399//91 465//95 464//99 +f 486//48 379//3 390//48 +f 496//53 517//3 495//3 +f 497//52 516//53 496//53 +f 504//49 521//85 503//85 +f 498//84 518//52 497//52 +f 505//48 522//49 504//49 +f 495//3 523//48 505//48 +f 390//48 389//49 398//100 +f 662//79 669//101 670//102 +f 171//103 659//80 660//104 +f 171//103 655//105 174//81 +f 178//78 658//106 177//83 +f 174//81 656//107 173//77 +f 173//77 657//108 178//78 +f 175//109 661//110 662//79 +f 177//83 661//110 176//75 +f 666//111 673//112 669//101 +f 657//108 666//111 658//106 +f 656//107 665//113 657//108 +f 660//104 663//114 655//105 +f 660//104 667//115 668//116 +f 655//105 664//117 656//107 +f 658//106 669//101 661//110 +f 659//80 670//102 667//115 +f 669//101 674//118 670//102 +f 666//111 671//119 672//120 +f 672//120 677//121 673//112 +f 673//112 678//122 674//118 +f 672//120 675//123 676//124 +f 676//124 681//125 677//121 +f 677//121 682//126 678//122 +f 675//123 680//127 676//124 +f 668//116 683//128 663//114 +f 668//116 685//129 686//130 +f 663//114 684//131 664//117 +f 686//130 687//132 683//128 +f 685//129 690//133 686//130 +f 684//131 687//132 688//134 +f 690//133 691//135 687//132 +f 690//133 693//136 694//137 +f 687//132 692//138 688//134 +f 694//137 695//139 691//135 +f 694//137 697//140 698//141 +f 691//135 696//142 692//138 +f 698//141 699//143 695//139 +f 697//140 702//144 698//141 +f 695//139 700//145 696//142 +f 702//144 703//146 699//143 +f 702//144 705//147 706//148 +f 699//143 704//149 700//145 +f 706//148 707//150 703//146 +f 705//147 710//151 706//148 +f 703//146 708//152 704//149 +f 674//118 689//153 670//102 +f 684//131 665//113 664//117 +f 708//152 680//127 679//154 +f 681//125 709//155 682//126 +f 707//150 681//125 680//127 +f 675//123 704//149 679//154 +f 688//134 671//119 665//113 +f 692//138 696//142 704//149 +f 679//154 704//149 708//152 +f 705//147 682//126 709//155 +f 705//147 678//122 682//126 +f 693//136 705//147 697//140 +f 685//129 670//102 689//153 +f 756//42 774//156 757//156 +f 764//6 778//8 763//8 +f 757//156 785//4 770//4 +f 765//41 779//6 764//6 +f 771//6 775//157 760//157 +f 766//3 780//41 765//41 +f 767//42 781//3 766//3 +f 768//4 782//42 767//42 +f 760//157 776//41 761//41 +f 769//7 783//4 768//4 +f 761//41 772//3 755//3 +f 755//3 773//42 756//42 +f 762//5 784//7 769//7 +f 763//8 777//5 762//5 +f 800//10 807//1 799//1 +f 801//5 806//10 800//10 +f 796//3 809//43 797//43 +f 797//43 803//2 798//2 +f 802//9 805//5 801//5 +f 798//2 804//9 802//9 +f 795//158 808//3 796//3 +f 799//1 810//158 795//158 +f 816//10 823//1 815//1 +f 817//5 822//10 816//10 +f 812//3 825//43 813//43 +f 813//43 819//2 814//2 +f 818//9 821//5 817//5 +f 814//2 820//9 818//9 +f 811//158 824//3 812//3 +f 815//1 826//158 811//158 +f 842//28 853//159 841//5 +f 839//51 850//160 838//4 +f 846//48 857//161 845//49 +f 836//53 847//162 835//3 +f 843//50 854//163 842//28 +f 840//27 851//164 839//51 +f 835//3 858//165 846//48 +f 837//52 848//166 836//53 +f 844//6 855//167 843//50 +f 841//5 852//168 840//27 +f 838//4 849//169 837//52 +f 845//49 856//170 844//6 +f 851//164 864//171 863//172 +f 858//165 859//173 870//174 +f 849//169 860//175 848//166 +f 855//167 868//176 867//177 +f 853//159 864//171 852//168 +f 849//169 862//178 861//179 +f 857//161 868//176 856//170 +f 853//159 866//180 865//181 +f 851//164 862//178 850//160 +f 858//165 869//182 857//161 +f 848//166 859//173 847//162 +f 855//167 866//180 854//163 +f 863//172 876//183 875//184 +f 870//174 871//185 882//186 +f 860//175 873//187 872//188 +f 867//177 880//189 879//190 +f 865//181 876//183 864//171 +f 862//178 873//187 861//179 +f 868//176 881//191 880//189 +f 865//181 878//192 877//193 +f 862//178 875//184 874//194 +f 870//174 881//191 869//182 +f 860//175 871//185 859//173 +f 867//177 878//192 866//180 +f 875//184 879//190 871//185 +f 902//195 899//2 900//2 +f 904//196 901//195 902//195 +f 906//55 903//196 904//196 +f 908//197 905//55 906//55 +f 910//29 907//197 908//197 +f 912//1 913//198 914//198 +f 916//54 917//199 918//199 +f 917//199 920//200 918//199 +f 920//200 921//24 922//24 +f 915//54 914//198 913//198 +f 929//201 926//29 925//29 +f 924//30 927//202 923//30 +f 928//202 931//195 927//202 +f 933//203 930//201 929//201 +f 936//204 933//203 935//204 +f 936//204 931//195 932//195 +f 2//3 4//48 3//48 +f 4//48 6//49 5//49 +f 6//49 8//6 7//6 +f 8//6 10//50 9//50 +f 10//50 12//28 11//28 +f 12//28 14//5 13//5 +f 14//5 16//27 15//27 +f 16//27 18//51 17//51 +f 18//51 20//4 19//4 +f 20//4 22//52 21//52 +f 22//52 24//53 23//53 +f 24//53 2//3 1//3 +f 29//49 41//49 40//6 +f 36//27 48//27 47//51 +f 26//28 37//28 38//5 +f 33//52 45//52 44//53 +f 30//48 42//48 41//49 +f 25//5 38//5 48//27 +f 27//50 39//50 37//28 +f 34//4 46//4 45//52 +f 31//3 43//3 42//48 +f 28//6 40//6 39//50 +f 35//51 47//51 46//4 +f 32//53 44//53 43//3 +f 49//3 53//54 54//54 +f 53//54 55//1 56//1 +f 55//1 57//55 58//55 +f 57//55 59//56 60//56 +f 59//56 61//56 62//56 +f 52//57 70//57 82//58 +f 61//56 65//5 66//5 +f 70//57 52//57 73//59 +f 52//57 68//205 73//59 +f 74//61 67//62 51//60 +f 51//60 69//60 74//61 +f 73//59 68//205 50//6 +f 67//62 74//61 64//4 +f 50//6 54//6 58//6 +f 54//6 56//6 58//6 +f 58//6 60//6 50//6 +f 60//6 62//6 63//6 +f 62//6 66//6 78//6 +f 63//6 62//6 75//6 +f 78//6 75//6 62//6 +f 53//4 49//4 57//4 +f 49//4 64//4 59//4 +f 59//4 64//4 61//4 +f 64//4 76//4 61//4 +f 76//4 77//4 61//4 +f 77//4 65//4 61//4 +f 59//4 57//4 49//4 +f 81//63 84//63 69//60 +f 79//58 82//58 84//63 +f 107//64 109//64 110//65 +f 111//66 108//65 110//65 +f 111//66 115//66 117//58 +f 113//58 117//58 118//63 +f 114//63 118//63 116//67 +f 120//68 112//67 116//67 +f 120//68 122//68 121//69 +f 121//69 126//70 125//70 +f 107//64 123//71 124//71 +f 123//71 125//70 126//70 +f 143//64 145//64 146//65 +f 147//66 144//65 146//65 +f 147//66 151//66 153//58 +f 149//58 153//58 154//63 +f 150//63 154//63 152//67 +f 156//68 148//67 152//67 +f 156//68 158//68 157//69 +f 157//69 162//70 161//70 +f 143//64 159//71 160//71 +f 159//71 161//70 162//70 +f 168//72 175//109 172//73 +f 170//63 177//83 176//75 +f 169//76 166//82 173//77 +f 172//73 175//109 662//79 +f 174//81 173//77 166//82 +f 170//63 169//76 178//78 +f 172//73 171//103 164//70 +f 176//75 175//109 168//72 +f 164//70 171//103 174//81 +f 190//27 214//27 203//5 +f 180//28 204//28 205//50 +f 187//52 211//52 212//4 +f 184//48 208//48 209//3 +f 181//50 205//50 206//6 +f 188//4 212//4 213//51 +f 185//3 209//3 210//53 +f 182//6 206//6 207//49 +f 189//51 213//51 214//27 +f 179//5 203//5 204//28 +f 186//53 210//53 211//52 +f 183//49 207//49 208//48 +f 197//28 221//28 220//5 +f 194//51 218//51 217//4 +f 201//48 225//48 224//49 +f 191//53 215//53 226//3 +f 198//50 222//50 221//28 +f 195//27 219//27 218//51 +f 202//3 226//3 225//48 +f 192//52 216//52 215//53 +f 199//6 223//6 222//50 +f 196//5 220//5 219//27 +f 193//4 217//4 216//52 +f 200//49 224//49 223//6 +f 272//52 273//4 261//4 +f 279//6 280//49 268//49 +f 276//5 277//28 265//28 +f 273//4 274//51 262//51 +f 280//49 281//48 269//48 +f 282//3 271//53 259//53 +f 277//28 278//50 266//50 +f 274//51 275//27 263//27 +f 281//48 282//3 270//3 +f 271//53 272//52 260//52 +f 278//50 279//6 267//6 +f 275//27 276//5 264//5 +f 289//52 301//52 302//84 +f 296//85 308//85 309//49 +f 298//48 297//49 309//49 +f 287//3 300//3 299//53 +f 298//48 310//48 300//3 +f 288//53 299//53 301//52 +f 314//53 327//53 329//52 +f 322//85 331//85 332//49 +f 315//52 329//52 330//84 +f 323//49 332//49 333//48 +f 324//48 333//48 328//3 +f 313//3 328//3 327//53 +f 348//4 349//51 337//51 +f 355//49 356//48 344//48 +f 357//3 346//53 334//53 +f 352//28 353//50 341//50 +f 349//51 350//27 338//27 +f 356//48 357//3 345//3 +f 346//53 347//52 335//52 +f 353//50 354//6 342//6 +f 350//27 351//5 339//5 +f 347//52 348//4 336//4 +f 354//6 355//49 343//49 +f 351//5 352//28 340//28 +f 362//53 369//53 368//3 +f 360//48 367//48 366//49 +f 363//52 370//52 369//53 +f 361//3 368//3 367//48 +f 359//49 366//49 365//85 +f 364//84 371//84 370//52 +f 394//5 395//28 376//28 +f 395//28 396//50 377//50 +f 396//50 397//14 378//14 +f 391//13 392//51 373//51 +f 392//51 393//27 374//27 +f 393//27 394//5 375//5 +f 424//5 385//5 384//27 +f 427//86 382//4 381//52 +f 399//88 398//100 389//49 +f 423//28 386//28 385//5 +f 426//89 383//51 382//4 +f 400//90 387//50 386//28 +f 425//27 384//27 383//51 +f 380//53 489//53 428//87 +f 489//53 488//42 428//87 +f 485//3 489//53 380//53 +f 400//90 399//88 388//6 +f 399//91 464//99 463//92 +f 427//94 428//206 471//95 +f 426//97 427//94 470//96 +f 399//91 400//206 465//95 +f 486//48 485//3 379//3 +f 496//53 516//53 517//3 +f 497//52 518//52 516//53 +f 504//49 522//49 521//85 +f 498//84 519//84 518//52 +f 505//48 523//48 522//49 +f 495//3 517//3 523//48 +f 487//41 486//48 398//100 +f 486//48 390//48 398//100 +f 662//79 661//110 669//101 +f 171//103 172//73 659//80 +f 171//103 660//104 655//105 +f 178//78 657//108 658//106 +f 174//81 655//105 656//107 +f 173//77 656//107 657//108 +f 175//109 176//75 661//110 +f 177//83 658//106 661//110 +f 666//111 672//120 673//112 +f 657//108 665//113 666//111 +f 656//107 664//117 665//113 +f 660//104 668//116 663//114 +f 660//104 659//80 667//115 +f 655//105 663//114 664//117 +f 658//106 666//111 669//101 +f 659//80 662//79 670//102 +f 669//101 673//112 674//118 +f 666//111 665//113 671//119 +f 672//120 676//124 677//121 +f 673//112 677//121 678//122 +f 672//120 671//119 675//123 +f 676//124 680//127 681//125 +f 677//121 681//125 682//126 +f 675//123 679//154 680//127 +f 668//116 686//130 683//128 +f 668//116 667//115 685//129 +f 663//114 683//128 684//131 +f 686//130 690//133 687//132 +f 685//129 689//153 690//133 +f 684//131 683//128 687//132 +f 690//133 694//137 691//135 +f 690//133 689//153 693//136 +f 687//132 691//135 692//138 +f 694//137 698//141 695//139 +f 694//137 693//136 697//140 +f 691//135 695//139 696//142 +f 698//141 702//144 699//143 +f 697//140 701//207 702//144 +f 695//139 699//143 700//145 +f 702//144 706//148 703//146 +f 702//144 701//207 705//147 +f 699//143 703//146 704//149 +f 706//148 710//151 707//150 +f 705//147 709//155 710//151 +f 703//146 707//150 708//152 +f 674//118 678//122 689//153 +f 684//131 688//134 665//113 +f 708//152 707//150 680//127 +f 681//125 710//151 709//155 +f 707//150 710//151 681//125 +f 688//134 675//123 671//119 +f 700//145 704//149 696//142 +f 704//149 675//123 692//138 +f 675//123 688//134 692//138 +f 693//136 689//153 678//122 +f 678//122 705//147 693//136 +f 705//147 701//207 697//140 +f 685//129 667//115 670//102 +f 756//42 773//42 774//156 +f 764//6 779//6 778//8 +f 757//156 774//156 785//4 +f 765//41 780//41 779//6 +f 771//6 786//6 775//157 +f 766//3 781//3 780//41 +f 767//42 782//42 781//3 +f 768//4 783//4 782//42 +f 760//157 775//157 776//41 +f 769//7 784//7 783//4 +f 761//41 776//41 772//3 +f 755//3 772//3 773//42 +f 762//5 777//5 784//7 +f 763//8 778//8 777//5 +f 800//10 806//10 807//1 +f 801//5 805//5 806//10 +f 796//3 808//3 809//43 +f 797//43 809//43 803//2 +f 802//9 804//9 805//5 +f 798//2 803//2 804//9 +f 795//158 810//158 808//3 +f 799//1 807//1 810//158 +f 816//10 822//10 823//1 +f 817//5 821//5 822//10 +f 812//3 824//3 825//43 +f 813//43 825//43 819//2 +f 818//9 820//9 821//5 +f 814//2 819//2 820//9 +f 811//158 826//158 824//3 +f 815//1 823//1 826//158 +f 842//28 854//163 853//159 +f 839//51 851//164 850//160 +f 846//48 858//165 857//161 +f 836//53 848//166 847//162 +f 843//50 855//167 854//163 +f 840//27 852//168 851//164 +f 835//3 847//162 858//165 +f 837//52 849//169 848//166 +f 844//6 856//170 855//167 +f 841//5 853//159 852//168 +f 838//4 850//160 849//169 +f 845//49 857//161 856//170 +f 851//164 852//168 864//171 +f 858//165 847//162 859//173 +f 849//169 861//179 860//175 +f 855//167 856//170 868//176 +f 853//159 865//181 864//171 +f 849//169 850//160 862//178 +f 857//161 869//182 868//176 +f 853//159 854//163 866//180 +f 851//164 863//172 862//178 +f 858//165 870//174 869//182 +f 848//166 860//175 859//173 +f 855//167 867//177 866//180 +f 863//172 864//171 876//183 +f 870//174 859//173 871//185 +f 860//175 861//179 873//187 +f 867//177 868//176 880//189 +f 865//181 877//193 876//183 +f 862//178 874//194 873//187 +f 868//176 869//182 881//191 +f 865//181 866//180 878//192 +f 862//178 863//172 875//184 +f 870//174 882//186 881//191 +f 860//175 872//188 871//185 +f 867//177 879//190 878//192 +f 871//185 872//188 875//184 +f 872//188 873//187 875//184 +f 873//187 874//194 875//184 +f 875//184 876//183 877//193 +f 877//193 878//192 879//190 +f 879//190 880//189 881//191 +f 881//191 882//186 879//190 +f 882//186 871//185 879//190 +f 875//184 877//193 879//190 +f 902//195 901//195 899//2 +f 904//196 903//196 901//195 +f 906//55 905//55 903//196 +f 908//197 907//197 905//55 +f 910//29 909//29 907//197 +f 912//1 911//1 913//198 +f 916//54 915//54 917//199 +f 917//199 919//200 920//200 +f 920//200 919//200 921//24 +f 915//54 916//54 914//198 +f 929//201 930//201 926//29 +f 924//30 928//202 927//202 +f 928//202 932//195 931//195 +f 933//203 934//203 930//201 +f 936//204 934//203 933//203 +f 936//204 935//204 931//195 diff --git a/src/main/resources/assets/hbm/models/weapons/minigun.obj b/src/main/resources/assets/hbm/models/weapons/minigun.obj new file mode 100644 index 000000000..7cd89bcc0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/minigun.obj @@ -0,0 +1,5599 @@ +# Blender v2.79 (sub 0) OBJ File: 'minigun.blend' +# www.blender.org +o Circle +v 0.000000 1.500000 -2.000000 +v -0.574025 1.385819 -2.000000 +v -1.060660 1.060660 -2.000000 +v -1.385819 0.574025 -2.000000 +v -1.500000 -0.000000 -2.000000 +v -1.385819 -0.574025 -2.000000 +v -1.060660 -1.060660 -2.000000 +v -0.574025 -1.385819 -2.000000 +v 0.000000 -1.500000 -2.000000 +v 0.574025 -1.385819 -2.000000 +v 1.060660 -1.060660 -2.000000 +v 1.385819 -0.574025 -2.000000 +v 1.500000 -0.000000 -2.000000 +v 1.385819 0.574025 -2.000000 +v 1.060660 1.060660 -2.000000 +v 0.574024 1.385820 -2.000000 +v 0.000000 1.500000 -5.000000 +v -0.574025 1.385819 -5.000000 +v -1.060660 1.060660 -5.000000 +v -1.385819 0.574025 -5.000000 +v -1.500000 -0.000000 -5.000000 +v -1.385819 -0.574025 -5.000000 +v -1.060660 -1.060660 -5.000000 +v -0.574025 -1.385819 -5.000000 +v 0.000000 -1.500000 -5.000000 +v 0.574025 -1.385819 -5.000000 +v 1.060660 -1.060660 -5.000000 +v 1.385819 -0.574025 -5.000000 +v 1.500000 -0.000000 -5.000000 +v 1.385819 0.574025 -5.000000 +v 1.060660 1.060660 -5.000000 +v 0.574024 1.385820 -5.000000 +v 0.000000 1.250000 -5.500000 +v -0.478354 1.154850 -5.500000 +v -0.883883 0.883883 -5.500000 +v -1.154849 0.478354 -5.500000 +v -1.250000 0.000000 -5.500000 +v -1.154849 -0.478354 -5.500000 +v -0.883883 -0.883883 -5.500000 +v -0.478354 -1.154850 -5.500000 +v 0.000000 -1.250000 -5.500000 +v 0.478354 -1.154850 -5.500000 +v 0.883883 -0.883884 -5.500000 +v 1.154849 -0.478354 -5.500000 +v 1.250000 0.000000 -5.500000 +v 1.154849 0.478354 -5.500000 +v 0.883883 0.883884 -5.500000 +v 0.478354 1.154850 -5.500000 +v 0.000000 1.250000 -9.000000 +v -0.478354 1.154850 -9.000000 +v -0.883883 0.883883 -9.000000 +v -1.154849 0.478354 -9.000000 +v -1.250000 0.000000 -9.000000 +v -1.154849 -0.478354 -9.000000 +v -0.883883 -0.883883 -9.000000 +v -0.478354 -1.154850 -9.000000 +v 0.000000 -1.250000 -9.000000 +v 0.478354 -1.154850 -9.000000 +v 0.883883 -0.883884 -9.000000 +v 1.154849 -0.478354 -9.000000 +v 1.250000 0.000000 -9.000000 +v 1.154849 0.478354 -9.000000 +v 0.883883 0.883884 -9.000000 +v 0.478354 1.154850 -9.000000 +v 0.000000 1.000000 -9.500000 +v -0.382684 0.923880 -9.500000 +v -0.707107 0.707107 -9.500000 +v -0.923880 0.382684 -9.500000 +v -1.000000 -0.000000 -9.500000 +v -0.923880 -0.382684 -9.500000 +v -0.707107 -0.707107 -9.500000 +v -0.382684 -0.923880 -9.500000 +v -0.000000 -1.000000 -9.500000 +v 0.382683 -0.923880 -9.500000 +v 0.707107 -0.707107 -9.500000 +v 0.923879 -0.382684 -9.500000 +v 1.000000 -0.000000 -9.500000 +v 0.923879 0.382684 -9.500000 +v 0.707107 0.707107 -9.500000 +v 0.382683 0.923880 -9.500000 +v -0.750000 0.000000 -6.000000 +v -0.750000 1.500000 -6.000000 +v -0.750000 0.000000 -10.500000 +v -0.750000 1.500000 -10.500000 +v 0.750000 0.000000 -6.000000 +v 0.750000 1.500000 -6.000000 +v 0.750000 0.000000 -10.500000 +v 0.750000 1.500000 -10.500000 +v -0.750000 2.000000 -8.250000 +v 0.750000 2.000000 -8.250000 +v -0.375000 -0.750000 -10.500000 +v -0.375000 -0.750000 -6.000000 +v 0.375000 -0.750000 -10.500000 +v 0.375000 -0.750000 -6.000000 +v 0.000000 1.437500 -2.000000 +v -0.218750 1.378886 -2.000000 +v -0.378886 1.218750 -2.000000 +v -0.437500 1.000000 -2.000000 +v -0.378886 0.781250 -2.000000 +v -0.218750 0.621114 -2.000000 +v 0.000000 0.562500 -2.000000 +v 0.218750 0.621114 -2.000000 +v 0.378886 0.781250 -2.000000 +v 0.437500 1.000000 -2.000000 +v 0.378886 1.218750 -2.000000 +v 0.218750 1.378886 -2.000000 +v 0.000000 1.437500 2.000000 +v -0.218750 1.378886 2.000000 +v -0.378886 1.218750 2.000000 +v -0.437500 1.000000 2.000000 +v -0.378886 0.781250 2.000000 +v -0.218750 0.621114 2.000000 +v 0.000000 0.562500 2.000000 +v 0.218750 0.621114 2.000000 +v 0.378886 0.781250 2.000000 +v 0.437500 1.000000 2.000000 +v 0.378886 1.218750 2.000000 +v 0.218750 1.378886 2.000000 +v 0.000000 1.500000 2.250000 +v -0.250000 1.433012 2.250000 +v -0.433013 1.250000 2.250000 +v -0.500000 1.000000 2.250000 +v -0.433013 0.750000 2.250000 +v -0.250000 0.566987 2.250000 +v 0.000000 0.500000 2.250000 +v 0.250000 0.566987 2.250000 +v 0.433012 0.750000 2.250000 +v 0.500000 1.000000 2.250000 +v 0.433013 1.250000 2.250000 +v 0.250000 1.433012 2.250000 +v 0.000000 1.500000 3.250000 +v -0.250000 1.433012 3.250000 +v -0.433013 1.250000 3.250000 +v -0.500000 1.000000 3.250000 +v -0.433013 0.750000 3.250000 +v -0.250000 0.566987 3.250000 +v 0.000000 0.500000 3.250000 +v 0.250000 0.566987 3.250000 +v 0.433012 0.750000 3.250000 +v 0.500000 1.000000 3.250000 +v 0.433013 1.250000 3.250000 +v 0.250000 1.433012 3.250000 +v 0.000000 1.437500 3.500000 +v -0.218750 1.378886 3.500000 +v -0.378886 1.218750 3.500000 +v -0.437500 1.000000 3.500000 +v -0.378886 0.781250 3.500000 +v -0.218750 0.621114 3.500000 +v 0.000000 0.562500 3.500000 +v 0.218750 0.621114 3.500000 +v 0.378886 0.781250 3.500000 +v 0.437500 1.000000 3.500000 +v 0.378886 1.218750 3.500000 +v 0.218750 1.378886 3.500000 +v 0.000000 1.437500 8.500000 +v -0.218750 1.378886 8.500000 +v -0.378886 1.218750 8.500000 +v -0.437500 1.000000 8.500000 +v -0.378886 0.781250 8.500000 +v -0.218750 0.621114 8.500000 +v 0.000000 0.562500 8.500000 +v 0.218750 0.621114 8.500000 +v 0.378886 0.781250 8.500000 +v 0.437500 1.000000 8.500000 +v 0.378886 1.218750 8.500000 +v 0.218750 1.378886 8.500000 +v 0.000000 1.500000 8.750000 +v -0.250000 1.433012 8.750000 +v -0.433013 1.250000 8.750000 +v -0.500000 1.000000 8.750000 +v -0.433013 0.750000 8.750000 +v -0.250000 0.566987 8.750000 +v 0.000000 0.500000 8.750000 +v 0.250000 0.566987 8.750000 +v 0.433012 0.750000 8.750000 +v 0.500000 1.000000 8.750000 +v 0.433013 1.250000 8.750000 +v 0.250000 1.433012 8.750000 +v 0.000000 1.500000 11.250000 +v -0.250000 1.433012 11.250000 +v -0.433013 1.250000 11.250000 +v -0.500000 1.000000 11.250000 +v -0.433013 0.750000 11.250000 +v -0.250000 0.566987 11.250000 +v 0.000000 0.500000 11.250000 +v 0.250000 0.566987 11.250000 +v 0.433012 0.750000 11.250000 +v 0.500000 1.000000 11.250000 +v 0.433013 1.250000 11.250000 +v 0.250000 1.433012 11.250000 +v 0.000000 1.437500 11.500000 +v -0.218750 1.378886 11.500000 +v -0.378886 1.218750 11.500000 +v -0.437500 1.000000 11.500000 +v -0.378886 0.781250 11.500000 +v -0.218750 0.621114 11.500000 +v 0.000000 0.562500 11.500000 +v 0.218750 0.621114 11.500000 +v 0.378886 0.781250 11.500000 +v 0.437500 1.000000 11.500000 +v 0.378886 1.218750 11.500000 +v 0.218750 1.378886 11.500000 +v 0.000000 1.437500 12.000000 +v -0.218750 1.378886 12.000000 +v -0.378886 1.218750 12.000000 +v -0.437500 1.000000 12.000000 +v -0.378886 0.781250 12.000000 +v -0.218750 0.621114 12.000000 +v 0.000000 0.562500 12.000000 +v 0.218750 0.621114 12.000000 +v 0.378886 0.781250 12.000000 +v 0.437500 1.000000 12.000000 +v 0.378886 1.218750 12.000000 +v 0.218750 1.378886 12.000000 +v 0.000000 1.312500 12.000000 +v -0.156250 1.270633 12.000000 +v -0.270633 1.156250 12.000000 +v -0.312500 1.000000 12.000000 +v -0.270633 0.843750 12.000000 +v -0.156250 0.729367 12.000000 +v 0.000000 0.687500 12.000000 +v 0.156250 0.729367 12.000000 +v 0.270633 0.843750 12.000000 +v 0.312500 1.000000 12.000000 +v 0.270633 1.156250 12.000000 +v 0.156250 1.270633 12.000000 +v 0.000000 1.312500 11.500000 +v -0.156250 1.270633 11.500000 +v -0.270633 1.156250 11.500000 +v -0.312500 1.000000 11.500000 +v -0.270633 0.843750 11.500000 +v -0.156250 0.729367 11.500000 +v 0.000000 0.687500 11.500000 +v 0.156250 0.729367 11.500000 +v 0.270633 0.843750 11.500000 +v 0.312500 1.000000 11.500000 +v 0.270633 1.156250 11.500000 +v 0.156250 1.270633 11.500000 +v 0.000000 1.625000 11.000000 +v -0.812500 1.407292 11.000000 +v -1.407291 0.812500 11.000000 +v -1.625000 0.000000 11.000000 +v -1.407291 -0.812500 11.000000 +v -0.812500 -1.407292 11.000000 +v -0.000000 -1.625000 11.000000 +v 0.812500 -1.407292 11.000000 +v 1.407290 -0.812500 11.000000 +v 1.625000 0.000000 11.000000 +v 1.407291 0.812500 11.000000 +v 0.812501 1.407292 11.000000 +v 0.000000 1.625000 10.000000 +v -0.812500 1.407292 10.000000 +v -1.407291 0.812500 10.000000 +v -1.625000 0.000000 10.000000 +v -1.407291 -0.812500 10.000000 +v -0.812500 -1.407292 10.000000 +v -0.000000 -1.625000 10.000000 +v 0.812500 -1.407292 10.000000 +v 1.407290 -0.812500 10.000000 +v 1.625000 0.000000 10.000000 +v 1.407291 0.812500 10.000000 +v 0.812501 1.407292 10.000000 +v -0.375000 2.500000 -11.250000 +v 0.375000 2.500000 -11.250000 +v -0.375000 1.750000 -12.000000 +v 0.375000 1.750000 -12.000000 +v -0.375000 0.750000 -10.500000 +v 0.375000 0.750000 -10.500000 +v -0.375000 1.750000 -7.750000 +v 0.375000 1.750000 -7.750000 +v -0.375000 4.000000 -11.250000 +v 0.375000 4.000000 -11.250000 +v -0.375000 4.000000 -7.750000 +v 0.375000 4.000000 -7.750000 +v -0.375000 4.000000 -8.250000 +v 0.375000 4.000000 -8.250000 +v -0.375000 2.500000 -8.250000 +v 0.375000 2.500000 -8.250000 +v -0.375000 4.000000 -10.750000 +v 0.375000 4.000000 -10.750000 +v -0.375000 2.500000 -10.750000 +v 0.375000 2.500000 -10.750000 +v 0.000000 3.875000 -8.250000 +v -0.265165 3.765165 -8.250000 +v -0.375000 3.500000 -8.250000 +v -0.265165 3.234835 -8.250000 +v 0.000000 3.125000 -8.250000 +v 0.265165 3.234835 -8.250000 +v 0.375000 3.500000 -8.250000 +v 0.265165 3.765165 -8.250000 +v 0.000000 3.875000 -10.750000 +v -0.265165 3.765165 -10.750000 +v -0.375000 3.500000 -10.750000 +v -0.265165 3.234835 -10.750000 +v 0.000000 3.125000 -10.750000 +v 0.265165 3.234835 -10.750000 +v 0.375000 3.500000 -10.750000 +v 0.265165 3.765165 -10.750000 +v -1.500000 0.250000 -5.750000 +v -1.500000 -0.750000 -8.250000 +v -1.500000 0.250000 -8.250000 +v 1.500000 0.250000 -5.750000 +v 1.500000 -0.750000 -8.250000 +v 1.500000 0.250000 -8.250000 +v 2.000000 0.250000 -8.000000 +v 2.000000 -0.750000 -8.000000 +v 2.000000 0.250000 -6.250000 +v -2.000000 -0.750000 -8.000000 +v -2.000000 0.250000 -6.250000 +v -2.000000 0.250000 -8.000000 +v -1.500000 0.750000 -6.250000 +v -1.500000 0.750000 -8.000000 +v 1.500000 0.750000 -8.000000 +v 1.500000 0.750000 -6.250000 +v 2.000000 0.750000 -7.750000 +v 2.000000 0.750000 -6.750000 +v -2.000000 0.750000 -6.750000 +v -2.000000 0.750000 -7.750000 +v -1.500000 -1.500000 -7.500000 +v -1.500000 -1.500000 -5.750000 +v 1.500000 -1.500000 -7.500000 +v 1.500000 -1.500000 -5.750000 +v 2.000000 -1.500000 -6.250000 +v 2.000000 -1.500000 -7.250000 +v -2.000000 -1.500000 -7.250000 +v -2.000000 -1.500000 -6.250000 +v 1.125000 0.375000 -2.000000 +v 1.125000 -0.375000 -2.000000 +v 1.125000 0.375000 -5.750000 +v 1.125000 -0.375000 -5.750000 +v 1.875000 0.375000 -5.500000 +v 1.875000 0.375000 -2.250000 +v 1.875000 -0.375000 -2.250000 +v 1.875000 -0.375000 -5.500000 +v 2.375000 0.187500 -4.500000 +v 2.375000 0.187500 -3.250000 +v 2.375000 -0.187500 -3.250000 +v 2.375000 -0.187500 -4.500000 +v -1.125000 0.375000 -2.000000 +v -1.125000 -0.375000 -2.000000 +v -1.125000 0.375000 -5.750000 +v -1.125000 -0.375000 -5.750000 +v -1.875000 0.375000 -5.500000 +v -1.875000 0.375000 -2.250000 +v -1.875000 -0.375000 -2.250000 +v -1.875000 -0.375000 -5.500000 +v -2.375000 0.187500 -4.500000 +v -2.375000 0.187500 -3.250000 +v -2.375000 -0.187500 -3.250000 +v -2.375000 -0.187500 -4.500000 +v -1.223240 1.817343 -4.000000 +v -1.223240 1.817343 -3.000000 +v -0.840556 1.741222 -4.000000 +v -0.840556 1.741222 -3.000000 +v -0.516133 1.524449 -4.000000 +v -0.516133 1.524449 -3.000000 +v -0.299360 1.200026 -4.000000 +v -0.299360 1.200026 -3.000000 +v -0.223240 0.817343 -4.000000 +v -0.223240 0.817343 -3.000000 +v -0.299360 0.434659 -4.000000 +v -0.299360 0.434659 -3.000000 +v -0.516133 0.110236 -4.000000 +v -0.516133 0.110236 -3.000000 +v -0.840556 -0.106537 -4.000000 +v -0.840556 -0.106537 -3.000000 +v -1.223239 -0.182657 -4.000000 +v -1.223239 -0.182657 -3.000000 +v -1.605923 -0.106537 -4.000000 +v -1.605923 -0.106537 -3.000000 +v -1.930346 0.110236 -4.000000 +v -1.930346 0.110236 -3.000000 +v -2.147119 0.434659 -4.000000 +v -2.147119 0.434659 -3.000000 +v -2.223239 0.817343 -4.000000 +v -2.223239 0.817343 -3.000000 +v -2.147119 1.200026 -4.000000 +v -2.147119 1.200026 -3.000000 +v -1.930346 1.524450 -4.000000 +v -1.930346 1.524450 -3.000000 +v -1.605923 1.741222 -4.000000 +v -1.605923 1.741222 -3.000000 +v 1.223239 1.817343 -4.000000 +v 1.223239 1.817343 -3.000000 +v 1.605923 1.741222 -4.000000 +v 1.605923 1.741222 -3.000000 +v 1.930346 1.524450 -4.000000 +v 1.930346 1.524450 -3.000000 +v 2.147119 1.200026 -4.000000 +v 2.147119 1.200026 -3.000000 +v 2.223239 0.817343 -4.000000 +v 2.223239 0.817343 -3.000000 +v 2.147119 0.434659 -4.000000 +v 2.147119 0.434659 -3.000000 +v 1.930346 0.110236 -4.000000 +v 1.930346 0.110236 -3.000000 +v 1.605923 -0.106537 -4.000000 +v 1.605923 -0.106537 -3.000000 +v 1.223240 -0.182657 -4.000000 +v 1.223240 -0.182657 -3.000000 +v 0.840556 -0.106537 -4.000000 +v 0.840556 -0.106537 -3.000000 +v 0.516133 0.110236 -4.000000 +v 0.516133 0.110236 -3.000000 +v 0.299360 0.434659 -4.000000 +v 0.299360 0.434659 -3.000000 +v 0.223239 0.817343 -4.000000 +v 0.223239 0.817343 -3.000000 +v 0.299360 1.200027 -4.000000 +v 0.299360 1.200027 -3.000000 +v 0.516133 1.524450 -4.000000 +v 0.516133 1.524450 -3.000000 +v 0.840557 1.741223 -4.000000 +v 0.840557 1.741223 -3.000000 +v 1.500000 -0.500000 -0.750000 +v 1.500000 0.500000 -0.750000 +v 1.500000 -0.500000 -2.250000 +v 1.500000 0.500000 -2.250000 +v 2.000000 -0.500000 -0.750000 +v 2.000000 0.500000 -0.750000 +v 2.000000 -0.500000 -2.250000 +v 2.000000 0.500000 -2.250000 +v 2.000000 0.000000 -2.125000 +v 2.000000 0.265165 -2.015165 +v 2.000000 0.375000 -1.750000 +v 2.000000 0.265165 -1.484835 +v 2.000000 0.000000 -1.375000 +v 2.000000 -0.265165 -1.484835 +v 2.000000 -0.375000 -1.750000 +v 2.000000 -0.265165 -2.015165 +v 4.500000 0.000000 -2.125000 +v 4.500000 0.265165 -2.015165 +v 4.500000 0.375000 -1.750000 +v 4.500000 0.265165 -1.484835 +v 4.500000 0.000000 -1.375000 +v 4.500000 -0.265165 -1.484835 +v 4.500000 -0.375000 -1.750000 +v 4.500000 -0.265165 -2.015165 +v 2.000000 -0.250000 -0.250000 +v 2.000000 0.250000 -0.250000 +v 4.500000 0.500000 -0.750000 +v 4.500000 -0.500000 -0.750000 +v 4.500000 0.250000 -0.250000 +v 4.500000 -0.250000 -0.250000 +v 5.000000 0.500000 -0.750000 +v 5.000000 -0.500000 -0.750000 +v 4.500000 0.500000 -2.250000 +v 4.500000 -0.500000 -2.250000 +v 5.000000 0.500000 -1.750000 +v 5.000000 -0.500000 -1.750000 +v -0.500000 -1.000000 -2.500000 +v 0.500000 -1.000000 -2.500000 +v -0.500000 -1.000000 -6.500000 +v 0.500000 -1.000000 -6.500000 +v -0.500000 -2.000000 -5.500000 +v -0.500000 -2.000000 -2.500000 +v 0.500000 -2.000000 -2.500000 +v 0.500000 -2.000000 -5.500000 +v 1.250000 0.000000 -8.000000 +v 1.250000 0.500000 -8.000000 +v 1.250000 0.000000 -9.750000 +v 1.250000 0.500000 -9.750000 +v 1.750000 0.000000 -8.000000 +v 1.750000 0.500000 -8.000000 +v 1.750000 0.000000 -9.750000 +v 1.750000 0.500000 -9.750000 +v -1.000000 1.250000 -6.500000 +v 1.250000 0.000000 -10.250000 +v 1.750000 0.000000 -10.250000 +v 1.000000 1.250000 -6.500000 +v 1.750000 -1.000000 -9.750000 +v 1.250000 -1.000000 -9.750000 +v 1.750000 -1.000000 -10.250000 +v 1.250000 -1.000000 -10.250000 +v -1.750000 0.000000 -8.000000 +v -1.750000 0.500000 -8.000000 +v -1.750000 0.000000 -9.750000 +v -1.750000 0.500000 -9.750000 +v -1.250000 0.000000 -8.000000 +v -1.250000 0.500000 -8.000000 +v -1.250000 0.000000 -9.750000 +v -1.250000 0.500000 -9.750000 +v -1.000000 1.250000 -7.750000 +v -1.750000 0.000000 -10.250000 +v -1.250000 0.000000 -10.250000 +v 1.000000 1.250000 -7.750000 +v -1.250000 -1.000000 -9.750000 +v -1.750000 -1.000000 -9.750000 +v -1.250000 -1.000000 -10.250000 +v -1.750000 -1.000000 -10.250000 +v 1.000000 0.750000 -7.750000 +v 1.250000 -1.500000 -9.750000 +v -1.000000 0.750000 -7.750000 +v 1.250000 -1.500000 -10.250000 +v -1.250000 -1.500000 -9.750000 +v 1.000000 0.750000 -6.500000 +v -1.250000 -1.500000 -10.250000 +v -1.000000 0.750000 -6.500000 +v -1.500000 -2.000000 -2.750000 +v 1.500000 -2.000000 -2.750000 +v -1.500000 -2.000000 -5.250000 +v 1.500000 -2.000000 -5.250000 +v -1.500000 -4.000000 -5.250000 +v -1.500000 -4.000000 -2.750000 +v 1.500000 -4.000000 -2.750000 +v 1.500000 -4.000000 -5.250000 +v -1.500000 -1.970942 -3.082382 +v -1.500000 -2.345942 -3.082382 +v -1.500000 -1.970942 -3.957382 +v -1.500000 -2.345942 -3.957382 +v -2.000000 -1.970942 -3.082382 +v -2.000000 -2.345942 -3.082382 +v -2.000000 -1.970942 -3.957382 +v -2.000000 -2.345942 -3.957382 +v -2.500000 -1.470942 -3.082382 +v -2.875000 -1.470942 -3.082382 +v -2.500000 -1.470942 -3.957382 +v -2.875000 -1.470942 -3.957382 +v -2.500000 0.654058 -3.082382 +v -2.875000 0.654058 -3.082382 +v -2.500000 0.654058 -3.957382 +v -2.875000 0.654058 -3.957382 +v -2.000000 1.154058 -3.082382 +v -2.000000 1.154058 -3.957382 +v -2.000000 1.529058 -3.082382 +v -2.000000 1.529058 -3.957382 +v -0.750000 1.375000 -3.250000 +v 0.750000 1.375000 -3.250000 +v 1.750000 0.000000 -4.750000 +v 1.750000 0.000000 -3.000000 +v 1.616789 -0.669696 -4.750000 +v 1.616789 -0.669696 -3.000000 +v 1.237437 -1.237437 -4.750000 +v 1.237437 -1.237437 -3.000000 +v 0.669696 -1.616789 -4.750000 +v 0.669696 -1.616789 -3.000000 +v 0.000000 -1.750000 -4.750000 +v 0.000000 -1.750000 -3.000000 +v -0.669696 -1.616789 -4.750000 +v -0.669696 -1.616789 -3.000000 +v -1.237436 -1.237437 -4.750000 +v -1.237436 -1.237437 -3.000000 +v -1.616789 -0.669696 -4.750000 +v -1.616789 -0.669696 -3.000000 +v -1.750000 0.000000 -4.750000 +v -1.750000 0.000000 -3.000000 +v -0.750000 1.375000 -3.750000 +v 0.750000 1.375000 -3.750000 +v 0.750000 1.625000 -3.750000 +v -0.750000 1.625000 -3.750000 +v 0.750000 1.625000 -3.250000 +v -0.750000 1.625000 -3.250000 +v -0.000000 -1.437500 -2.000000 +v 0.218750 -1.378886 -2.000000 +v 0.378886 -1.218750 -2.000000 +v 0.437500 -1.000000 -2.000000 +v 0.378886 -0.781250 -2.000000 +v 0.218750 -0.621114 -2.000000 +v -0.000000 -0.562500 -2.000000 +v -0.218750 -0.621114 -2.000000 +v -0.378887 -0.781250 -2.000000 +v -0.437500 -1.000000 -2.000000 +v -0.378887 -1.218750 -2.000000 +v -0.218750 -1.378886 -2.000000 +v -0.000000 -1.437500 2.000000 +v 0.218750 -1.378886 2.000000 +v 0.378886 -1.218750 2.000000 +v 0.437500 -1.000000 2.000000 +v 0.378886 -0.781250 2.000000 +v 0.218750 -0.621114 2.000000 +v -0.000000 -0.562500 2.000000 +v -0.218750 -0.621114 2.000000 +v -0.378887 -0.781250 2.000000 +v -0.437500 -1.000000 2.000000 +v -0.378887 -1.218750 2.000000 +v -0.218750 -1.378886 2.000000 +v -0.000000 -1.500000 2.250000 +v 0.250000 -1.433012 2.250000 +v 0.433013 -1.250000 2.250000 +v 0.500000 -1.000000 2.250000 +v 0.433013 -0.750000 2.250000 +v 0.250000 -0.566987 2.250000 +v -0.000000 -0.500000 2.250000 +v -0.250000 -0.566987 2.250000 +v -0.433013 -0.750000 2.250000 +v -0.500000 -1.000000 2.250000 +v -0.433013 -1.250000 2.250000 +v -0.250000 -1.433012 2.250000 +v -0.000000 -1.500000 3.250000 +v 0.250000 -1.433012 3.250000 +v 0.433013 -1.250000 3.250000 +v 0.500000 -1.000000 3.250000 +v 0.433013 -0.750000 3.250000 +v 0.250000 -0.566987 3.250000 +v -0.000000 -0.500000 3.250000 +v -0.250000 -0.566987 3.250000 +v -0.433013 -0.750000 3.250000 +v -0.500000 -1.000000 3.250000 +v -0.433013 -1.250000 3.250000 +v -0.250000 -1.433012 3.250000 +v -0.000000 -1.437500 3.500000 +v 0.218750 -1.378886 3.500000 +v 0.378886 -1.218750 3.500000 +v 0.437500 -1.000000 3.500000 +v 0.378886 -0.781250 3.500000 +v 0.218750 -0.621114 3.500000 +v -0.000000 -0.562500 3.500000 +v -0.218750 -0.621114 3.500000 +v -0.378887 -0.781250 3.500000 +v -0.437500 -1.000000 3.500000 +v -0.378887 -1.218750 3.500000 +v -0.218750 -1.378886 3.500000 +v -0.000000 -1.437500 8.500000 +v 0.218750 -1.378886 8.500000 +v 0.378886 -1.218750 8.500000 +v 0.437500 -1.000000 8.500000 +v 0.378886 -0.781250 8.500000 +v 0.218750 -0.621114 8.500000 +v -0.000000 -0.562500 8.500000 +v -0.218750 -0.621114 8.500000 +v -0.378887 -0.781250 8.500000 +v -0.437500 -1.000000 8.500000 +v -0.378887 -1.218750 8.500000 +v -0.218750 -1.378886 8.500000 +v -0.000000 -1.500000 8.750000 +v 0.250000 -1.433012 8.750000 +v 0.433013 -1.250000 8.750000 +v 0.500000 -1.000000 8.750000 +v 0.433013 -0.750000 8.750000 +v 0.250000 -0.566987 8.750000 +v -0.000000 -0.500000 8.750000 +v -0.250000 -0.566987 8.750000 +v -0.433013 -0.750000 8.750000 +v -0.500000 -1.000000 8.750000 +v -0.433013 -1.250000 8.750000 +v -0.250000 -1.433012 8.750000 +v -0.000000 -1.500000 11.250000 +v 0.250000 -1.433012 11.250000 +v 0.433013 -1.250000 11.250000 +v 0.500000 -1.000000 11.250000 +v 0.433013 -0.750000 11.250000 +v 0.250000 -0.566987 11.250000 +v -0.000000 -0.500000 11.250000 +v -0.250000 -0.566987 11.250000 +v -0.433013 -0.750000 11.250000 +v -0.500000 -1.000000 11.250000 +v -0.433013 -1.250000 11.250000 +v -0.250000 -1.433012 11.250000 +v -0.000000 -1.437500 11.500000 +v 0.218750 -1.378886 11.500000 +v 0.378886 -1.218750 11.500000 +v 0.437500 -1.000000 11.500000 +v 0.378886 -0.781250 11.500000 +v 0.218750 -0.621114 11.500000 +v -0.000000 -0.562500 11.500000 +v -0.218750 -0.621114 11.500000 +v -0.378887 -0.781250 11.500000 +v -0.437500 -1.000000 11.500000 +v -0.378887 -1.218750 11.500000 +v -0.218750 -1.378886 11.500000 +v -0.000000 -1.437500 12.000000 +v 0.218750 -1.378886 12.000000 +v 0.378886 -1.218750 12.000000 +v 0.437500 -1.000000 12.000000 +v 0.378886 -0.781250 12.000000 +v 0.218750 -0.621114 12.000000 +v -0.000000 -0.562500 12.000000 +v -0.218750 -0.621114 12.000000 +v -0.378887 -0.781250 12.000000 +v -0.437500 -1.000000 12.000000 +v -0.378887 -1.218750 12.000000 +v -0.218750 -1.378886 12.000000 +v -0.000000 -1.312500 12.000000 +v 0.156250 -1.270633 12.000000 +v 0.270633 -1.156250 12.000000 +v 0.312500 -1.000000 12.000000 +v 0.270632 -0.843750 12.000000 +v 0.156250 -0.729367 12.000000 +v -0.000000 -0.687500 12.000000 +v -0.156250 -0.729367 12.000000 +v -0.270633 -0.843750 12.000000 +v -0.312500 -1.000000 12.000000 +v -0.270633 -1.156250 12.000000 +v -0.156250 -1.270633 12.000000 +v -0.000000 -1.312500 11.500000 +v 0.156250 -1.270633 11.500000 +v 0.270633 -1.156250 11.500000 +v 0.312500 -1.000000 11.500000 +v 0.270632 -0.843750 11.500000 +v 0.156250 -0.729367 11.500000 +v -0.000000 -0.687500 11.500000 +v -0.156250 -0.729367 11.500000 +v -0.270633 -0.843750 11.500000 +v -0.312500 -1.000000 11.500000 +v -0.270633 -1.156250 11.500000 +v -0.156250 -1.270633 11.500000 +v 1.244911 0.718750 -2.000000 +v 1.084775 0.878886 -2.000000 +v 0.866025 0.937500 -2.000000 +v 0.647275 0.878886 -2.000000 +v 0.487139 0.718750 -2.000000 +v 0.428525 0.500000 -2.000000 +v 0.487139 0.281250 -2.000000 +v 0.647275 0.121114 -2.000000 +v 0.866025 0.062500 -2.000000 +v 1.084775 0.121114 -2.000000 +v 1.244911 0.281250 -2.000000 +v 1.303525 0.500000 -2.000000 +v 1.244911 0.718750 2.000000 +v 1.084775 0.878886 2.000000 +v 0.866025 0.937500 2.000000 +v 0.647275 0.878886 2.000000 +v 0.487139 0.718750 2.000000 +v 0.428525 0.500000 2.000000 +v 0.487139 0.281250 2.000000 +v 0.647275 0.121114 2.000000 +v 0.866025 0.062500 2.000000 +v 1.084775 0.121114 2.000000 +v 1.244911 0.281250 2.000000 +v 1.303525 0.500000 2.000000 +v 1.299038 0.750000 2.250000 +v 1.116025 0.933012 2.250000 +v 0.866025 1.000000 2.250000 +v 0.616025 0.933012 2.250000 +v 0.433012 0.750000 2.250000 +v 0.366025 0.500000 2.250000 +v 0.433012 0.250000 2.250000 +v 0.616025 0.066987 2.250000 +v 0.866025 -0.000000 2.250000 +v 1.116025 0.066987 2.250000 +v 1.299038 0.249999 2.250000 +v 1.366025 0.500000 2.250000 +v 1.299038 0.750000 3.250000 +v 1.116025 0.933012 3.250000 +v 0.866025 1.000000 3.250000 +v 0.616025 0.933012 3.250000 +v 0.433012 0.750000 3.250000 +v 0.366025 0.500000 3.250000 +v 0.433012 0.250000 3.250000 +v 0.616025 0.066987 3.250000 +v 0.866025 -0.000000 3.250000 +v 1.116025 0.066987 3.250000 +v 1.299038 0.249999 3.250000 +v 1.366025 0.500000 3.250000 +v 1.244911 0.718750 3.500000 +v 1.084775 0.878886 3.500000 +v 0.866025 0.937500 3.500000 +v 0.647275 0.878886 3.500000 +v 0.487139 0.718750 3.500000 +v 0.428525 0.500000 3.500000 +v 0.487139 0.281250 3.500000 +v 0.647275 0.121114 3.500000 +v 0.866025 0.062500 3.500000 +v 1.084775 0.121114 3.500000 +v 1.244911 0.281250 3.500000 +v 1.303525 0.500000 3.500000 +v 1.244911 0.718750 8.500000 +v 1.084775 0.878886 8.500000 +v 0.866025 0.937500 8.500000 +v 0.647275 0.878886 8.500000 +v 0.487139 0.718750 8.500000 +v 0.428525 0.500000 8.500000 +v 0.487139 0.281250 8.500000 +v 0.647275 0.121114 8.500000 +v 0.866025 0.062500 8.500000 +v 1.084775 0.121114 8.500000 +v 1.244911 0.281250 8.500000 +v 1.303525 0.500000 8.500000 +v 1.299038 0.750000 8.750000 +v 1.116025 0.933012 8.750000 +v 0.866025 1.000000 8.750000 +v 0.616025 0.933012 8.750000 +v 0.433012 0.750000 8.750000 +v 0.366025 0.500000 8.750000 +v 0.433012 0.250000 8.750000 +v 0.616025 0.066987 8.750000 +v 0.866025 -0.000000 8.750000 +v 1.116025 0.066987 8.750000 +v 1.299038 0.249999 8.750000 +v 1.366025 0.500000 8.750000 +v 1.299038 0.750000 11.250000 +v 1.116025 0.933012 11.250000 +v 0.866025 1.000000 11.250000 +v 0.616025 0.933012 11.250000 +v 0.433012 0.750000 11.250000 +v 0.366025 0.500000 11.250000 +v 0.433012 0.250000 11.250000 +v 0.616025 0.066987 11.250000 +v 0.866025 -0.000000 11.250000 +v 1.116025 0.066987 11.250000 +v 1.299038 0.249999 11.250000 +v 1.366025 0.500000 11.250000 +v 1.244911 0.718750 11.500000 +v 1.084775 0.878886 11.500000 +v 0.866025 0.937500 11.500000 +v 0.647275 0.878886 11.500000 +v 0.487139 0.718750 11.500000 +v 0.428525 0.500000 11.500000 +v 0.487139 0.281250 11.500000 +v 0.647275 0.121114 11.500000 +v 0.866025 0.062500 11.500000 +v 1.084775 0.121114 11.500000 +v 1.244911 0.281250 11.500000 +v 1.303525 0.500000 11.500000 +v 1.244911 0.718750 12.000000 +v 1.084775 0.878886 12.000000 +v 0.866025 0.937500 12.000000 +v 0.647275 0.878886 12.000000 +v 0.487139 0.718750 12.000000 +v 0.428525 0.500000 12.000000 +v 0.487139 0.281250 12.000000 +v 0.647275 0.121114 12.000000 +v 0.866025 0.062500 12.000000 +v 1.084775 0.121114 12.000000 +v 1.244911 0.281250 12.000000 +v 1.303525 0.500000 12.000000 +v 1.136658 0.656250 12.000000 +v 1.022276 0.770633 12.000000 +v 0.866025 0.812500 12.000000 +v 0.709775 0.770633 12.000000 +v 0.595393 0.656250 12.000000 +v 0.553525 0.500000 12.000000 +v 0.595392 0.343750 12.000000 +v 0.709775 0.229367 12.000000 +v 0.866025 0.187500 12.000000 +v 1.022275 0.229367 12.000000 +v 1.136658 0.343750 12.000000 +v 1.178525 0.500000 12.000000 +v 1.136658 0.656250 11.500000 +v 1.022276 0.770633 11.500000 +v 0.866025 0.812500 11.500000 +v 0.709775 0.770633 11.500000 +v 0.595393 0.656250 11.500000 +v 0.553525 0.500000 11.500000 +v 0.595392 0.343750 11.500000 +v 0.709775 0.229367 11.500000 +v 0.866025 0.187500 11.500000 +v 1.022275 0.229367 11.500000 +v 1.136658 0.343750 11.500000 +v 1.178525 0.500000 11.500000 +v -1.244912 -0.718750 -2.000000 +v -1.084776 -0.878886 -2.000000 +v -0.866026 -0.937500 -2.000000 +v -0.647276 -0.878886 -2.000000 +v -0.487140 -0.718750 -2.000000 +v -0.428526 -0.500000 -2.000000 +v -0.487140 -0.281250 -2.000000 +v -0.647276 -0.121114 -2.000000 +v -0.866026 -0.062500 -2.000000 +v -1.084775 -0.121113 -2.000000 +v -1.244912 -0.281250 -2.000000 +v -1.303526 -0.500000 -2.000000 +v -1.244912 -0.718750 2.000000 +v -1.084776 -0.878886 2.000000 +v -0.866026 -0.937500 2.000000 +v -0.647276 -0.878886 2.000000 +v -0.487140 -0.718750 2.000000 +v -0.428526 -0.500000 2.000000 +v -0.487140 -0.281250 2.000000 +v -0.647276 -0.121114 2.000000 +v -0.866026 -0.062500 2.000000 +v -1.084775 -0.121113 2.000000 +v -1.244912 -0.281250 2.000000 +v -1.303526 -0.500000 2.000000 +v -1.299038 -0.750000 2.250000 +v -1.116026 -0.933012 2.250000 +v -0.866025 -1.000000 2.250000 +v -0.616026 -0.933012 2.250000 +v -0.433013 -0.750000 2.250000 +v -0.366026 -0.500000 2.250000 +v -0.433013 -0.250000 2.250000 +v -0.616025 -0.066987 2.250000 +v -0.866025 0.000000 2.250000 +v -1.116025 -0.066987 2.250000 +v -1.299038 -0.249999 2.250000 +v -1.366025 -0.500000 2.250000 +v -1.299038 -0.750000 3.250000 +v -1.116026 -0.933012 3.250000 +v -0.866025 -1.000000 3.250000 +v -0.616026 -0.933012 3.250000 +v -0.433013 -0.750000 3.250000 +v -0.366026 -0.500000 3.250000 +v -0.433013 -0.250000 3.250000 +v -0.616025 -0.066987 3.250000 +v -0.866025 0.000000 3.250000 +v -1.116025 -0.066987 3.250000 +v -1.299038 -0.249999 3.250000 +v -1.366025 -0.500000 3.250000 +v -1.244912 -0.718750 3.500000 +v -1.084776 -0.878886 3.500000 +v -0.866026 -0.937500 3.500000 +v -0.647276 -0.878886 3.500000 +v -0.487140 -0.718750 3.500000 +v -0.428526 -0.500000 3.500000 +v -0.487140 -0.281250 3.500000 +v -0.647276 -0.121114 3.500000 +v -0.866026 -0.062500 3.500000 +v -1.084775 -0.121113 3.500000 +v -1.244912 -0.281250 3.500000 +v -1.303526 -0.500000 3.500000 +v -1.244912 -0.718750 8.500000 +v -1.084776 -0.878886 8.500000 +v -0.866026 -0.937500 8.500000 +v -0.647276 -0.878886 8.500000 +v -0.487140 -0.718750 8.500000 +v -0.428526 -0.500000 8.500000 +v -0.487140 -0.281250 8.500000 +v -0.647276 -0.121114 8.500000 +v -0.866026 -0.062500 8.500000 +v -1.084775 -0.121113 8.500000 +v -1.244912 -0.281250 8.500000 +v -1.303526 -0.500000 8.500000 +v -1.299038 -0.750000 8.750000 +v -1.116026 -0.933012 8.750000 +v -0.866025 -1.000000 8.750000 +v -0.616026 -0.933012 8.750000 +v -0.433013 -0.750000 8.750000 +v -0.366026 -0.500000 8.750000 +v -0.433013 -0.250000 8.750000 +v -0.616025 -0.066987 8.750000 +v -0.866025 0.000000 8.750000 +v -1.116025 -0.066987 8.750000 +v -1.299038 -0.249999 8.750000 +v -1.366025 -0.500000 8.750000 +v -1.299038 -0.750000 11.250000 +v -1.116026 -0.933012 11.250000 +v -0.866025 -1.000000 11.250000 +v -0.616026 -0.933012 11.250000 +v -0.433013 -0.750000 11.250000 +v -0.366026 -0.500000 11.250000 +v -0.433013 -0.250000 11.250000 +v -0.616025 -0.066987 11.250000 +v -0.866025 0.000000 11.250000 +v -1.116025 -0.066987 11.250000 +v -1.299038 -0.249999 11.250000 +v -1.366025 -0.500000 11.250000 +v -1.244912 -0.718750 11.500000 +v -1.084776 -0.878886 11.500000 +v -0.866026 -0.937500 11.500000 +v -0.647276 -0.878886 11.500000 +v -0.487140 -0.718750 11.500000 +v -0.428526 -0.500000 11.500000 +v -0.487140 -0.281250 11.500000 +v -0.647276 -0.121114 11.500000 +v -0.866026 -0.062500 11.500000 +v -1.084775 -0.121113 11.500000 +v -1.244912 -0.281250 11.500000 +v -1.303526 -0.500000 11.500000 +v -1.244912 -0.718750 12.000000 +v -1.084776 -0.878886 12.000000 +v -0.866026 -0.937500 12.000000 +v -0.647276 -0.878886 12.000000 +v -0.487140 -0.718750 12.000000 +v -0.428526 -0.500000 12.000000 +v -0.487140 -0.281250 12.000000 +v -0.647276 -0.121114 12.000000 +v -0.866026 -0.062500 12.000000 +v -1.084775 -0.121113 12.000000 +v -1.244912 -0.281250 12.000000 +v -1.303526 -0.500000 12.000000 +v -1.136659 -0.656250 12.000000 +v -1.022276 -0.770633 12.000000 +v -0.866026 -0.812500 12.000000 +v -0.709776 -0.770633 12.000000 +v -0.595393 -0.656250 12.000000 +v -0.553526 -0.500000 12.000000 +v -0.595393 -0.343750 12.000000 +v -0.709775 -0.229367 12.000000 +v -0.866026 -0.187500 12.000000 +v -1.022276 -0.229367 12.000000 +v -1.136659 -0.343750 12.000000 +v -1.178526 -0.500000 12.000000 +v -1.136659 -0.656250 11.500000 +v -1.022276 -0.770633 11.500000 +v -0.866026 -0.812500 11.500000 +v -0.709776 -0.770633 11.500000 +v -0.595393 -0.656250 11.500000 +v -0.553526 -0.500000 11.500000 +v -0.595393 -0.343750 11.500000 +v -0.709775 -0.229367 11.500000 +v -0.866026 -0.187500 11.500000 +v -1.022276 -0.229367 11.500000 +v -1.136659 -0.343750 11.500000 +v -1.178526 -0.500000 11.500000 +v 1.244911 -0.718750 -2.000000 +v 1.303525 -0.500000 -2.000000 +v 1.244911 -0.281250 -2.000000 +v 1.084775 -0.121114 -2.000000 +v 0.866025 -0.062500 -2.000000 +v 0.647275 -0.121114 -2.000000 +v 0.487139 -0.281250 -2.000000 +v 0.428525 -0.500000 -2.000000 +v 0.487139 -0.718750 -2.000000 +v 0.647275 -0.878886 -2.000000 +v 0.866025 -0.937500 -2.000000 +v 1.084775 -0.878886 -2.000000 +v 1.244911 -0.718750 2.000000 +v 1.303525 -0.500000 2.000000 +v 1.244911 -0.281250 2.000000 +v 1.084775 -0.121114 2.000000 +v 0.866025 -0.062500 2.000000 +v 0.647275 -0.121114 2.000000 +v 0.487139 -0.281250 2.000000 +v 0.428525 -0.500000 2.000000 +v 0.487139 -0.718750 2.000000 +v 0.647275 -0.878886 2.000000 +v 0.866025 -0.937500 2.000000 +v 1.084775 -0.878886 2.000000 +v 1.299038 -0.750000 2.250000 +v 1.366025 -0.500000 2.250000 +v 1.299038 -0.250000 2.250000 +v 1.116025 -0.066987 2.250000 +v 0.866025 0.000000 2.250000 +v 0.616025 -0.066987 2.250000 +v 0.433012 -0.250000 2.250000 +v 0.366025 -0.500000 2.250000 +v 0.433012 -0.750000 2.250000 +v 0.616025 -0.933013 2.250000 +v 0.866024 -1.000000 2.250000 +v 1.116025 -0.933013 2.250000 +v 1.299038 -0.750000 3.250000 +v 1.366025 -0.500000 3.250000 +v 1.299038 -0.250000 3.250000 +v 1.116025 -0.066987 3.250000 +v 0.866025 0.000000 3.250000 +v 0.616025 -0.066987 3.250000 +v 0.433012 -0.250000 3.250000 +v 0.366025 -0.500000 3.250000 +v 0.433012 -0.750000 3.250000 +v 0.616025 -0.933013 3.250000 +v 0.866024 -1.000000 3.250000 +v 1.116025 -0.933013 3.250000 +v 1.244911 -0.718750 3.500000 +v 1.303525 -0.500000 3.500000 +v 1.244911 -0.281250 3.500000 +v 1.084775 -0.121114 3.500000 +v 0.866025 -0.062500 3.500000 +v 0.647275 -0.121114 3.500000 +v 0.487139 -0.281250 3.500000 +v 0.428525 -0.500000 3.500000 +v 0.487139 -0.718750 3.500000 +v 0.647275 -0.878886 3.500000 +v 0.866025 -0.937500 3.500000 +v 1.084775 -0.878886 3.500000 +v 1.244911 -0.718750 8.500000 +v 1.303525 -0.500000 8.500000 +v 1.244911 -0.281250 8.500000 +v 1.084775 -0.121114 8.500000 +v 0.866025 -0.062500 8.500000 +v 0.647275 -0.121114 8.500000 +v 0.487139 -0.281250 8.500000 +v 0.428525 -0.500000 8.500000 +v 0.487139 -0.718750 8.500000 +v 0.647275 -0.878886 8.500000 +v 0.866025 -0.937500 8.500000 +v 1.084775 -0.878886 8.500000 +v 1.299038 -0.750000 8.750000 +v 1.366025 -0.500000 8.750000 +v 1.299038 -0.250000 8.750000 +v 1.116025 -0.066987 8.750000 +v 0.866025 0.000000 8.750000 +v 0.616025 -0.066987 8.750000 +v 0.433012 -0.250000 8.750000 +v 0.366025 -0.500000 8.750000 +v 0.433012 -0.750000 8.750000 +v 0.616025 -0.933013 8.750000 +v 0.866024 -1.000000 8.750000 +v 1.116025 -0.933013 8.750000 +v 1.299038 -0.750000 11.250000 +v 1.366025 -0.500000 11.250000 +v 1.299038 -0.250000 11.250000 +v 1.116025 -0.066987 11.250000 +v 0.866025 0.000000 11.250000 +v 0.616025 -0.066987 11.250000 +v 0.433012 -0.250000 11.250000 +v 0.366025 -0.500000 11.250000 +v 0.433012 -0.750000 11.250000 +v 0.616025 -0.933013 11.250000 +v 0.866024 -1.000000 11.250000 +v 1.116025 -0.933013 11.250000 +v 1.244911 -0.718750 11.500000 +v 1.303525 -0.500000 11.500000 +v 1.244911 -0.281250 11.500000 +v 1.084775 -0.121114 11.500000 +v 0.866025 -0.062500 11.500000 +v 0.647275 -0.121114 11.500000 +v 0.487139 -0.281250 11.500000 +v 0.428525 -0.500000 11.500000 +v 0.487139 -0.718750 11.500000 +v 0.647275 -0.878886 11.500000 +v 0.866025 -0.937500 11.500000 +v 1.084775 -0.878886 11.500000 +v 1.244911 -0.718750 12.000000 +v 1.303525 -0.500000 12.000000 +v 1.244911 -0.281250 12.000000 +v 1.084775 -0.121114 12.000000 +v 0.866025 -0.062500 12.000000 +v 0.647275 -0.121114 12.000000 +v 0.487139 -0.281250 12.000000 +v 0.428525 -0.500000 12.000000 +v 0.487139 -0.718750 12.000000 +v 0.647275 -0.878886 12.000000 +v 0.866025 -0.937500 12.000000 +v 1.084775 -0.878886 12.000000 +v 1.136658 -0.656250 12.000000 +v 1.178525 -0.500000 12.000000 +v 1.136658 -0.343750 12.000000 +v 1.022275 -0.229367 12.000000 +v 0.866025 -0.187500 12.000000 +v 0.709775 -0.229367 12.000000 +v 0.595392 -0.343750 12.000000 +v 0.553525 -0.500000 12.000000 +v 0.595392 -0.656250 12.000000 +v 0.709775 -0.770633 12.000000 +v 0.866025 -0.812500 12.000000 +v 1.022275 -0.770633 12.000000 +v 1.136658 -0.656250 11.500000 +v 1.178525 -0.500000 11.500000 +v 1.136658 -0.343750 11.500000 +v 1.022275 -0.229367 11.500000 +v 0.866025 -0.187500 11.500000 +v 0.709775 -0.229367 11.500000 +v 0.595392 -0.343750 11.500000 +v 0.553525 -0.500000 11.500000 +v 0.595392 -0.656250 11.500000 +v 0.709775 -0.770633 11.500000 +v 0.866025 -0.812500 11.500000 +v 1.022275 -0.770633 11.500000 +v -1.244911 0.718750 -2.000000 +v -1.303525 0.500000 -2.000000 +v -1.244912 0.281250 -2.000000 +v -1.084775 0.121114 -2.000000 +v -0.866026 0.062500 -2.000000 +v -0.647275 0.121114 -2.000000 +v -0.487139 0.281250 -2.000000 +v -0.428525 0.500000 -2.000000 +v -0.487139 0.718750 -2.000000 +v -0.647275 0.878886 -2.000000 +v -0.866025 0.937500 -2.000000 +v -1.084775 0.878886 -2.000000 +v -1.244911 0.718750 2.000000 +v -1.303525 0.500000 2.000000 +v -1.244912 0.281250 2.000000 +v -1.084775 0.121114 2.000000 +v -0.866026 0.062500 2.000000 +v -0.647275 0.121114 2.000000 +v -0.487139 0.281250 2.000000 +v -0.428525 0.500000 2.000000 +v -0.487139 0.718750 2.000000 +v -0.647275 0.878886 2.000000 +v -0.866025 0.937500 2.000000 +v -1.084775 0.878886 2.000000 +v -1.299038 0.750000 2.250000 +v -1.366025 0.500000 2.250000 +v -1.299038 0.250000 2.250000 +v -1.116025 0.066988 2.250000 +v -0.866025 -0.000000 2.250000 +v -0.616025 0.066988 2.250000 +v -0.433013 0.250000 2.250000 +v -0.366025 0.500000 2.250000 +v -0.433013 0.750000 2.250000 +v -0.616025 0.933013 2.250000 +v -0.866025 1.000000 2.250000 +v -1.116025 0.933013 2.250000 +v -1.299038 0.750000 3.250000 +v -1.366025 0.500000 3.250000 +v -1.299038 0.250000 3.250000 +v -1.116025 0.066988 3.250000 +v -0.866025 -0.000000 3.250000 +v -0.616025 0.066988 3.250000 +v -0.433013 0.250000 3.250000 +v -0.366025 0.500000 3.250000 +v -0.433013 0.750000 3.250000 +v -0.616025 0.933013 3.250000 +v -0.866025 1.000000 3.250000 +v -1.116025 0.933013 3.250000 +v -1.244911 0.718750 3.500000 +v -1.303525 0.500000 3.500000 +v -1.244912 0.281250 3.500000 +v -1.084775 0.121114 3.500000 +v -0.866026 0.062500 3.500000 +v -0.647275 0.121114 3.500000 +v -0.487139 0.281250 3.500000 +v -0.428525 0.500000 3.500000 +v -0.487139 0.718750 3.500000 +v -0.647275 0.878886 3.500000 +v -0.866025 0.937500 3.500000 +v -1.084775 0.878886 3.500000 +v -1.244911 0.718750 8.500000 +v -1.303525 0.500000 8.500000 +v -1.244912 0.281250 8.500000 +v -1.084775 0.121114 8.500000 +v -0.866026 0.062500 8.500000 +v -0.647275 0.121114 8.500000 +v -0.487139 0.281250 8.500000 +v -0.428525 0.500000 8.500000 +v -0.487139 0.718750 8.500000 +v -0.647275 0.878886 8.500000 +v -0.866025 0.937500 8.500000 +v -1.084775 0.878886 8.500000 +v -1.299038 0.750000 8.750000 +v -1.366025 0.500000 8.750000 +v -1.299038 0.250000 8.750000 +v -1.116025 0.066988 8.750000 +v -0.866025 -0.000000 8.750000 +v -0.616025 0.066988 8.750000 +v -0.433013 0.250000 8.750000 +v -0.366025 0.500000 8.750000 +v -0.433013 0.750000 8.750000 +v -0.616025 0.933013 8.750000 +v -0.866025 1.000000 8.750000 +v -1.116025 0.933013 8.750000 +v -1.299038 0.750000 11.250000 +v -1.366025 0.500000 11.250000 +v -1.299038 0.250000 11.250000 +v -1.116025 0.066988 11.250000 +v -0.866025 -0.000000 11.250000 +v -0.616025 0.066988 11.250000 +v -0.433013 0.250000 11.250000 +v -0.366025 0.500000 11.250000 +v -0.433013 0.750000 11.250000 +v -0.616025 0.933013 11.250000 +v -0.866025 1.000000 11.250000 +v -1.116025 0.933013 11.250000 +v -1.244911 0.718750 11.500000 +v -1.303525 0.500000 11.500000 +v -1.244912 0.281250 11.500000 +v -1.084775 0.121114 11.500000 +v -0.866026 0.062500 11.500000 +v -0.647275 0.121114 11.500000 +v -0.487139 0.281250 11.500000 +v -0.428525 0.500000 11.500000 +v -0.487139 0.718750 11.500000 +v -0.647275 0.878886 11.500000 +v -0.866025 0.937500 11.500000 +v -1.084775 0.878886 11.500000 +v -1.244911 0.718750 12.000000 +v -1.303525 0.500000 12.000000 +v -1.244912 0.281250 12.000000 +v -1.084775 0.121114 12.000000 +v -0.866026 0.062500 12.000000 +v -0.647275 0.121114 12.000000 +v -0.487139 0.281250 12.000000 +v -0.428525 0.500000 12.000000 +v -0.487139 0.718750 12.000000 +v -0.647275 0.878886 12.000000 +v -0.866025 0.937500 12.000000 +v -1.084775 0.878886 12.000000 +v -1.136658 0.656250 12.000000 +v -1.178525 0.500000 12.000000 +v -1.136659 0.343750 12.000000 +v -1.022275 0.229367 12.000000 +v -0.866025 0.187500 12.000000 +v -0.709775 0.229367 12.000000 +v -0.595392 0.343750 12.000000 +v -0.553525 0.500000 12.000000 +v -0.595393 0.656250 12.000000 +v -0.709775 0.770633 12.000000 +v -0.866025 0.812500 12.000000 +v -1.022275 0.770633 12.000000 +v -1.136658 0.656250 11.500000 +v -1.178525 0.500000 11.500000 +v -1.136659 0.343750 11.500000 +v -1.022275 0.229367 11.500000 +v -0.866025 0.187500 11.500000 +v -0.709775 0.229367 11.500000 +v -0.595392 0.343750 11.500000 +v -0.553525 0.500000 11.500000 +v -0.595393 0.656250 11.500000 +v -0.709775 0.770633 11.500000 +v -0.866025 0.812500 11.500000 +v -1.022275 0.770633 11.500000 +vt 0.205104 0.294129 +vt 0.205104 0.205871 +vt 0.242265 0.205871 +vt 0.592105 0.390625 +vt 0.532895 0.359375 +vt 0.532895 0.265625 +vt 0.125000 0.781250 +vt 0.171053 0.812500 +vt 0.125000 0.812500 +vt 0.414474 0.148438 +vt 0.473684 0.242188 +vt 0.414474 0.242188 +vt 0.592105 -0.000000 +vt 0.651316 0.031250 +vt 0.651316 0.125000 +vt 0.710526 0.148438 +vt 0.769737 0.242188 +vt 0.710526 0.242188 +vt 0.651316 0.218750 +vt 0.532895 0.171875 +vt 0.651316 0.171875 +vt 0.651316 0.265625 +vt 0.184211 0.812500 +vt 0.171053 0.812500 +vt 0.184211 0.781250 +vt 0.532895 0.125000 +vt 0.264746 0.027479 +vt 0.276304 0.093750 +vt 0.236842 0.187471 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.689948 0.292980 +vt 0.726974 0.242210 +vt 0.764000 0.394520 +vt 0.689948 0.496105 +vt 0.726974 0.445335 +vt 0.764000 0.496105 +vt 0.496711 0.640625 +vt 0.509868 0.546875 +vt 0.496711 0.500000 +vt 0.608553 0.437500 +vt 0.628289 0.390625 +vt 0.628289 0.437500 +vt 0.569079 0.437500 +vt 0.608553 0.390625 +vt 0.509868 0.546875 +vt 0.496711 0.640625 +vt 0.496711 0.500000 +vt 0.608553 0.546875 +vt 0.588816 0.640625 +vt 0.588816 0.546875 +vt 0.509868 0.687500 +vt 0.496711 0.687500 +vt 0.509868 0.640625 +vt 0.529605 0.546875 +vt 0.529605 0.640625 +vt 0.588816 0.687500 +vt 0.575658 0.640625 +vt 0.555921 0.640625 +vt 0.575658 0.546875 +vt 0.575658 0.640625 +vt 0.509868 0.687500 +vt 0.509868 0.640625 +vt 0.476974 0.640625 +vt 0.476974 0.500000 +vt 0.575658 0.640625 +vt 0.588816 0.546875 +vt 0.575658 0.546875 +vt 0.569079 0.437500 +vt 0.401316 0.218750 +vt 0.322368 0.156250 +vt 0.401316 0.156250 +vt 0.414474 0.218750 +vt 0.401316 0.250000 +vt 0.296053 0.250000 +vt 0.309211 0.265625 +vt 0.309211 0.328125 +vt 0.401316 0.109375 +vt 0.309211 0.218750 +vt 0.322368 0.250000 +vt 0.309211 0.250000 +vt 0.401316 0.500000 +vt 0.414474 0.390625 +vt 0.414474 0.500000 +vt 0.322368 0.218750 +vt 0.309211 0.156250 +vt 0.414474 0.328125 +vt 0.414474 0.265625 +vt 0.427632 0.250000 +vt 0.322368 0.109375 +vt 0.322368 0.359375 +vt 0.322368 0.500000 +vt 0.309211 0.390625 +vt 0.322368 0.390625 +vt 0.401316 0.359375 +vt 0.401316 0.390625 +vt 0.414474 0.359375 +vt 0.322368 -0.000000 +vt 0.309211 0.031250 +vt 0.414474 0.156250 +vt 0.414474 0.109375 +vt 0.019737 0.753906 +vt 0.046053 0.789062 +vt 0.019737 0.800781 +vt 0.125000 0.800781 +vt 0.105263 0.753906 +vt 0.125000 0.753906 +vt 0.000000 0.753906 +vt -0.000000 0.800781 +vt 0.111842 0.687500 +vt 0.019737 0.734375 +vt 0.013158 0.687500 +vt 0.013158 0.867188 +vt 0.105263 0.820312 +vt 0.111842 0.867188 +vt 0.046053 0.769531 +vt 0.078947 0.789062 +vt 0.105263 0.734375 +vt 0.019737 0.820312 +vt 0.105263 0.800781 +vt 0.078947 0.765625 +vt 0.078947 0.789062 +vt 0.105263 0.753906 +vt 0.105263 0.800781 +vt 0.019737 0.753906 +vt -0.000000 0.800781 +vt 0.000000 0.753906 +vt 0.125000 0.753906 +vt 0.125000 0.800781 +vt 0.105263 0.734375 +vt 0.013158 0.687500 +vt 0.111842 0.687500 +vt 0.019737 0.820312 +vt 0.111842 0.867188 +vt 0.013158 0.867188 +vt 0.046053 0.789062 +vt 0.078947 0.765625 +vt 0.046053 0.769531 +vt 0.019737 0.734375 +vt 0.105263 0.820312 +vt 0.019737 0.800781 +vt 0.946511 0.187500 +vt 0.939054 0.230254 +vt 0.903051 0.144746 +vt 0.858679 0.131639 +vt 0.891942 0.164362 +vt 0.878164 0.243361 +vt 0.939054 0.105254 +vt 0.903051 0.105254 +vt 0.903051 0.019746 +vt 0.858679 0.006639 +vt 0.891941 0.039361 +vt 0.878164 0.118361 +vt 0.164474 0.906250 +vt 0.125000 0.843750 +vt 0.164474 0.843750 +vt 0.125000 0.906250 +vt 0.111842 0.843750 +vt 0.125000 0.937500 +vt 0.164474 1.000000 +vt 0.125000 1.000000 +vt 0.125000 0.812500 +vt 0.164474 0.937500 +vt 0.184211 0.859375 +vt 0.250000 0.828125 +vt 0.263158 0.828125 +vt 0.250000 0.859375 +vt 0.269737 0.937500 +vt 0.309211 1.000000 +vt 0.269737 1.000000 +vt 0.184211 0.921875 +vt 0.250000 0.984375 +vt 0.184211 0.984375 +vt 0.250000 0.890625 +vt 0.184211 0.890625 +vt 0.250000 0.921875 +vt 0.269737 0.843750 +vt 0.309211 0.906250 +vt 0.296053 0.843750 +vt 0.309211 0.843750 +vt 0.269737 0.812500 +vt 0.296053 0.906250 +vt 0.309211 0.937500 +vt 0.269737 0.906250 +vt 0.671053 0.148438 +vt 0.493421 0.750000 +vt 0.414474 0.812500 +vt 0.414474 0.750000 +vt 0.519737 0.812500 +vt 0.519737 0.750000 +vt 0.388158 0.750000 +vt 0.388158 0.812500 +vt 0.414474 0.875000 +vt 0.493421 0.812500 +vt 0.519737 0.875000 +vt 0.414474 0.687500 +vt 0.171053 0.750000 +vt 0.125000 0.718750 +vt 0.171053 0.718750 +vt 0.125000 0.687500 +vt 0.171053 0.687500 +vt 0.171053 0.781250 +vt 0.125000 0.750000 +vt 0.342105 0.781250 +vt 0.328947 0.750000 +vt 0.342105 0.750000 +vt 0.171053 0.718750 +vt 0.184211 0.718750 +vt 0.184211 0.750000 +vt 0.210526 0.812500 +vt 0.230263 0.390625 +vt 0.243421 0.468750 +vt 0.230263 0.468750 +vt 0.223684 0.781250 +vt 0.210526 0.781250 +vt 0.223684 0.750000 +vt 0.184211 0.687500 +vt 0.210526 0.718750 +vt 0.210526 0.781250 +vt 0.210526 0.750000 +vt 0.388158 0.750000 +vt 0.342105 0.718750 +vt 0.388158 0.718750 +vt 0.328947 0.718750 +vt 0.342105 0.718750 +vt 0.388158 0.812500 +vt 0.342105 0.812500 +vt 0.342105 0.687500 +vt 0.388158 0.781250 +vt 0.342105 0.812500 +vt 0.328947 0.812500 +vt 0.328947 0.781250 +vt 0.302632 0.718750 +vt 0.309211 0.468750 +vt 0.296053 0.390625 +vt 0.309211 0.390625 +vt 0.296053 0.359375 +vt 0.243421 0.390625 +vt 0.243421 0.359375 +vt 0.302632 0.687500 +vt 0.328947 0.687500 +vt 0.302632 0.750000 +vt 0.302632 0.781250 +vt 0.289474 0.718750 +vt 0.296053 0.468750 +vt 0.289474 0.687500 +vt 0.302632 0.687500 +vt 0.289474 0.781250 +vt 0.223684 0.812500 +vt 0.210526 0.687500 +vt 0.223684 0.687500 +vt 0.223684 0.718750 +vt 0.302632 0.781250 +vt 0.289474 0.750000 +vt 0.243421 0.500000 +vt 0.296053 0.500000 +vt 0.618421 0.687500 +vt 0.684211 0.875000 +vt 0.618421 0.875000 +vt 0.736842 0.875000 +vt 0.802632 0.687500 +vt 0.802632 0.875000 +vt 0.684211 0.562500 +vt 0.684211 0.687500 +vt 0.618421 1.000000 +vt 0.565789 0.687500 +vt 0.835526 0.531250 +vt 0.825658 0.562500 +vt 0.825658 0.531250 +vt 0.868421 0.531250 +vt 0.858553 0.562500 +vt 0.858553 0.531250 +vt 0.835526 0.562500 +vt 0.802632 0.562500 +vt 0.802632 0.531250 +vt 0.835526 0.640625 +vt 0.825658 0.578125 +vt 0.802632 0.625000 +vt 0.802632 0.578125 +vt 0.858553 0.640625 +vt 0.835526 0.773438 +vt 0.825658 0.640625 +vt 0.802632 0.773438 +vt 0.802632 0.640625 +vt 0.825658 0.789062 +vt 0.802632 0.835938 +vt 0.802632 0.789062 +vt 0.858553 0.773438 +vt 0.835526 0.851562 +vt 0.868421 0.625000 +vt 0.868421 0.578125 +vt 0.868421 0.640625 +vt 0.858553 0.851562 +vt 0.868421 0.789062 +vt 0.868421 0.835938 +vt 0.825658 0.625000 +vt 0.825658 0.773438 +vt 0.825658 0.835938 +vt 0.684211 0.890625 +vt 0.723684 0.875000 +vt 0.723684 0.890625 +vt 0.723684 0.921875 +vt 0.684211 0.937500 +vt 0.684211 0.921875 +vt 0.799894 0.379950 +vt 0.824715 0.321000 +vt 0.859817 0.321000 +vt 0.859817 0.430375 +vt 0.874696 0.453987 +vt 0.888129 0.531009 +vt 0.513158 0.242188 +vt 0.473684 0.148438 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.105263 0.531250 +vt 0.108553 0.531250 +vt 0.108553 0.515625 +vt 0.105263 0.527344 +vt 0.105263 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.105263 0.609375 +vt 0.108553 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.076772 0.572282 +vt 0.090991 0.572282 +vt 0.083882 0.601529 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.108553 0.515625 +vt 0.105263 0.527344 +vt 0.105263 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.105263 0.609375 +vt 0.108553 0.609375 +vt 0.105263 0.605469 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.108553 0.593750 +vt 0.105263 0.578125 +vt 0.108553 0.578125 +vt 0.105263 0.562500 +vt 0.108553 0.562500 +vt 0.105263 0.546875 +vt 0.108553 0.546875 +vt 0.108553 0.531250 +vt 0.105263 0.542969 +vt 0.105263 0.531250 +vt 0.105263 0.515625 +vt 0.108553 0.515625 +vt 0.108553 0.500000 +vt 0.105263 0.511719 +vt 0.105263 0.500000 +vt 0.108553 0.687500 +vt 0.105263 0.671875 +vt 0.108553 0.671875 +vt 0.105263 0.656250 +vt 0.108553 0.656250 +vt 0.105263 0.640625 +vt 0.108553 0.640625 +vt 0.105263 0.625000 +vt 0.108553 0.625000 +vt 0.108553 0.609375 +vt 0.105263 0.621094 +vt 0.105263 0.609375 +vt 0.105263 0.593750 +vt 0.090991 0.591780 +vt 0.083882 0.601529 +vt 0.076772 0.572282 +vt 0.242265 0.294129 +vt 0.233740 0.307657 +vt 0.223684 0.312408 +vt 0.213628 0.307658 +vt 0.199407 0.273883 +vt 0.197407 0.250000 +vt 0.199407 0.226117 +vt 0.213628 0.192342 +vt 0.223684 0.187592 +vt 0.233740 0.192343 +vt 0.247961 0.226117 +vt 0.249961 0.250000 +vt 0.247961 0.273883 +vt 0.651316 0.359375 +vt 0.532895 0.031250 +vt 0.769737 0.148438 +vt 0.532895 0.218750 +vt 0.221741 0.180337 +vt 0.208939 0.160021 +vt 0.200384 0.129615 +vt 0.197381 0.093750 +vt 0.200384 0.057884 +vt 0.208939 0.027479 +vt 0.221741 0.007163 +vt 0.236842 0.000029 +vt 0.251943 0.007163 +vt 0.273300 0.057885 +vt 0.273300 0.129616 +vt 0.264746 0.160021 +vt 0.251943 0.180337 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.748351 0.431686 +vt 0.726974 0.445290 +vt 0.705597 0.431686 +vt 0.689948 0.394520 +vt 0.684220 0.343750 +vt 0.705597 0.255814 +vt 0.748351 0.255814 +vt 0.764000 0.292980 +vt 0.769728 0.343750 +vt 0.726974 0.648415 +vt 0.705597 0.634811 +vt 0.689948 0.597645 +vt 0.684220 0.546875 +vt 0.705597 0.458939 +vt 0.748351 0.458939 +vt 0.769728 0.546875 +vt 0.764000 0.597645 +vt 0.748351 0.634811 +vt 0.509868 0.640625 +vt 0.569079 0.390625 +vt 0.608553 0.640625 +vt 0.575658 0.687500 +vt 0.555921 0.546875 +vt 0.575658 0.687500 +vt 0.588816 0.640625 +vt 0.608553 0.500000 +vt 0.608553 0.500000 +vt 0.414474 0.250000 +vt 0.296053 0.359375 +vt 0.250000 0.359375 +vt 0.250000 0.296875 +vt 0.269737 0.250000 +vt 0.453947 0.250000 +vt 0.427632 0.359375 +vt 0.473684 0.296875 +vt 0.473684 0.359375 +vt 0.309211 0.109375 +vt 0.309211 0.500000 +vt 0.309211 0.359375 +vt 0.401316 -0.000000 +vt 0.414474 0.031250 +vt 0.414474 0.093750 +vt 0.309211 0.093750 +vt 0.930795 0.243361 +vt 0.921053 0.247964 +vt 0.911310 0.243361 +vt 0.903051 0.230254 +vt 0.897532 0.210638 +vt 0.895594 0.187500 +vt 0.897532 0.164362 +vt 0.911310 0.131639 +vt 0.921053 0.127036 +vt 0.930795 0.131639 +vt 0.939054 0.144746 +vt 0.944573 0.164362 +vt 0.944573 0.210638 +vt 0.868421 0.247964 +vt 0.844901 0.210638 +vt 0.858679 0.243361 +vt 0.850419 0.230254 +vt 0.842963 0.187500 +vt 0.844901 0.164362 +vt 0.850419 0.144746 +vt 0.868421 0.127036 +vt 0.878164 0.131639 +vt 0.886423 0.144746 +vt 0.893879 0.187500 +vt 0.891942 0.210638 +vt 0.886423 0.230254 +vt 0.930795 0.118361 +vt 0.921053 0.122964 +vt 0.911310 0.118361 +vt 0.897532 0.085639 +vt 0.895594 0.062500 +vt 0.897532 0.039362 +vt 0.911310 0.006639 +vt 0.921053 0.002036 +vt 0.930795 0.006639 +vt 0.939054 0.019746 +vt 0.944573 0.039362 +vt 0.946511 0.062500 +vt 0.944573 0.085638 +vt 0.868421 0.122964 +vt 0.858679 0.118361 +vt 0.850419 0.105254 +vt 0.844901 0.085638 +vt 0.842963 0.062500 +vt 0.844901 0.039362 +vt 0.850419 0.019746 +vt 0.868421 0.002036 +vt 0.878164 0.006639 +vt 0.886423 0.019746 +vt 0.893879 0.062500 +vt 0.891941 0.085638 +vt 0.886423 0.105254 +vt 0.111842 0.906250 +vt 0.164474 0.812500 +vt 0.184211 0.828125 +vt 0.171053 0.828125 +vt 0.171053 0.921875 +vt 0.263158 0.921875 +vt 0.309211 0.812500 +vt 0.671053 0.242188 +vt 0.519737 0.687500 +vt 0.210526 0.687500 +vt 0.388158 0.687500 +vt 0.302632 0.812500 +vt 0.289474 0.812500 +vt 0.736842 0.687500 +vt 0.618421 0.562500 +vt 0.684211 1.000000 +vt 0.565789 0.875000 +vt 0.868421 0.562500 +vt 0.868421 0.773438 +vt 0.684211 0.875000 +vt 0.723684 0.937500 +vt 0.888129 0.421634 +vt 0.796403 0.421634 +vt 0.809836 0.344612 +vt 0.842266 0.312709 +vt 0.874696 0.344612 +vt 0.884638 0.379950 +vt 0.884638 0.489325 +vt 0.796403 0.531009 +vt 0.799894 0.489325 +vt 0.809836 0.453987 +vt 0.824715 0.430375 +vt 0.842266 0.422084 +vt 0.513158 0.148438 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.542969 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.621094 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.092091 0.582031 +vt 0.090991 0.591780 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.621094 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.105263 0.589844 +vt 0.105263 0.574219 +vt 0.105263 0.558594 +vt 0.105263 0.527344 +vt 0.105263 0.683594 +vt 0.105263 0.667969 +vt 0.105263 0.652344 +vt 0.105263 0.636719 +vt 0.105263 0.605469 +vt 0.079777 0.598917 +vt 0.076772 0.591780 +vt 0.075672 0.582031 +vt 0.079777 0.565145 +vt 0.083882 0.562533 +vt 0.087986 0.565145 +vt 0.090991 0.572282 +vt 0.092091 0.582031 +vt 0.087986 0.598917 +vt 0.078947 0.175781 +vt -0.000000 0.210938 +vt -0.000000 0.175781 +vt 0.078947 0.492188 +vt 0.000000 0.527344 +vt 0.000000 0.492188 +vt 0.078947 0.210938 +vt -0.000000 0.246094 +vt 0.078947 0.527344 +vt 0.000000 0.562500 +vt 0.078947 0.281250 +vt -0.000000 0.316406 +vt -0.000000 0.281250 +vt 0.078947 0.246094 +vt 0.078947 0.000000 +vt 0.000000 0.035156 +vt 0.000000 0.000000 +vt 0.078947 0.316406 +vt -0.000000 0.351562 +vt 0.078947 0.035156 +vt 0.000000 0.070312 +vt 0.078947 0.351562 +vt -0.000000 0.386719 +vt 0.078947 0.070312 +vt 0.000000 0.105469 +vt 0.078947 0.386719 +vt 0.000000 0.421875 +vt 0.078947 0.105469 +vt -0.000000 0.140625 +vt 0.078947 0.421875 +vt 0.000000 0.457031 +vt 0.078947 0.140625 +vt 0.078947 0.457031 +vt 0.092105 0.210938 +vt 0.092105 0.246094 +vt 0.092105 0.281250 +vt 0.092105 0.316406 +vt 0.092105 0.351562 +vt 0.092105 0.417969 +vt 0.092105 0.421875 +vt 0.092105 0.488281 +vt 0.092105 0.492188 +vt 0.092105 0.527344 +vt 0.078947 0.562500 +vt 0.092105 0.000000 +vt 0.092105 0.066406 +vt 0.092105 0.101562 +vt 0.092105 0.105469 +vt 0.092105 0.140625 +vt 0.092105 0.175781 +vt 0.092105 0.312500 +vt 0.184211 0.343750 +vt 0.092105 0.343750 +vt 0.092105 0.062500 +vt 0.184211 0.093750 +vt 0.092105 0.093750 +vt 0.184211 0.375000 +vt 0.092105 0.375000 +vt 0.184211 0.125000 +vt 0.092105 0.125000 +vt 0.184211 0.406250 +vt 0.092105 0.406250 +vt 0.184211 0.156250 +vt 0.092105 0.156250 +vt 0.184211 0.437500 +vt 0.092105 0.437500 +vt 0.184211 0.187500 +vt 0.092105 0.187500 +vt 0.184211 0.468750 +vt 0.092105 0.468750 +vt 0.184211 0.218750 +vt 0.092105 0.218750 +vt 0.184211 0.500000 +vt 0.092105 0.500000 +vt 0.092105 0.250000 +vt 0.184211 0.281250 +vt 0.092105 0.281250 +vt 0.184211 0.250000 +vt 0.184211 0.031250 +vt 0.092105 0.031250 +vt 0.184211 0.312500 +vt 0.184211 0.062500 +vt 0.197368 0.183594 +vt 0.197368 0.191406 +vt 0.197368 0.222656 +vt 0.197368 0.253906 +vt 0.197368 0.285156 +vt 0.197368 0.339844 +vt 0.197368 0.371094 +vt 0.197368 0.378906 +vt 0.197368 0.410156 +vt 0.197368 0.464844 +vt 0.197368 0.496094 +vt 0.184211 0.000000 +vt 0.197368 0.027344 +vt 0.197368 0.058594 +vt 0.197368 0.066406 +vt 0.197368 0.121094 +vt 0.197368 0.128906 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.656250 +vt 0.194079 0.640625 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.640625 +vt 0.121711 0.625000 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.769737 0.218750 +vt 0.796053 0.164062 +vt 0.796053 0.218750 +vt 0.769737 0.492188 +vt 0.796053 0.437500 +vt 0.796053 0.492188 +vt 0.769737 0.656250 +vt 0.796053 0.601562 +vt 0.796053 0.656250 +vt 0.769737 0.164062 +vt 0.796053 0.109375 +vt 0.769737 0.437500 +vt 0.796053 0.382812 +vt 0.769737 0.328125 +vt 0.796053 0.273438 +vt 0.796053 0.328125 +vt 0.769737 0.601562 +vt 0.796053 0.546875 +vt 0.769737 0.109375 +vt 0.796053 0.054688 +vt 0.769737 0.382812 +vt 0.769737 0.273438 +vt 0.769737 0.546875 +vt 0.769737 0.054688 +vt 0.796053 -0.000000 +vt 0.480263 0.406250 +vt 0.414474 0.421875 +vt 0.414474 0.406250 +vt 0.480263 0.375000 +vt 0.414474 0.390625 +vt 0.414474 0.375000 +vt 0.480263 0.468750 +vt 0.414474 0.484375 +vt 0.414474 0.468750 +vt 0.480263 0.437500 +vt 0.414474 0.453125 +vt 0.414474 0.437500 +vt 0.480263 0.421875 +vt 0.480263 0.390625 +vt 0.480263 0.484375 +vt 0.414474 0.500000 +vt 0.480263 0.453125 +vt 1.000000 0.187500 +vt 0.973684 0.210938 +vt 0.973684 0.187500 +vt 1.000000 0.210938 +vt 0.973684 0.234375 +vt 1.000000 0.234375 +vt 0.973684 0.257812 +vt 1.000000 0.257812 +vt 0.973684 0.281250 +vt 1.000000 0.281250 +vt 0.973684 0.304688 +vt 1.000000 0.304688 +vt 0.973684 0.328125 +vt 1.000000 0.328125 +vt 0.973684 0.351562 +vt 1.000000 0.351562 +vt 0.973684 0.375000 +vt 1.000000 -0.000000 +vt 0.973684 0.023438 +vt 0.973684 -0.000000 +vt 1.000000 0.023438 +vt 0.973684 0.046875 +vt 1.000000 0.046875 +vt 0.973684 0.070312 +vt 1.000000 0.070312 +vt 0.973684 0.093750 +vt 1.000000 0.093750 +vt 0.973684 0.117188 +vt 1.000000 0.117188 +vt 0.973684 0.140625 +vt 1.000000 0.140625 +vt 0.973684 0.164062 +vt 1.000000 0.164062 +vt 0.973684 0.187500 +vt 0.947368 0.210938 +vt 0.947368 0.187500 +vt 0.973684 0.210938 +vt 0.947368 0.234375 +vt 0.973684 0.234375 +vt 0.947368 0.257812 +vt 0.973684 0.257812 +vt 0.947368 0.281250 +vt 0.973684 0.281250 +vt 0.947368 0.304688 +vt 0.973684 0.304688 +vt 0.947368 0.328125 +vt 0.973684 0.328125 +vt 0.947368 0.351562 +vt 0.973684 0.351562 +vt 0.947368 0.375000 +vt 0.973684 0.000000 +vt 0.947368 0.023438 +vt 0.947368 0.000000 +vt 0.973684 0.023438 +vt 0.947368 0.046875 +vt 0.973684 0.070312 +vt 0.947368 0.070312 +vt 0.947368 0.093750 +vt 0.973684 0.093750 +vt 0.947368 0.117188 +vt 0.973684 0.117188 +vt 0.947368 0.140625 +vt 0.973684 0.140625 +vt 0.947368 0.164062 +vt 0.973684 0.164062 +vt 0.375000 0.843750 +vt 0.309211 0.828125 +vt 0.375000 0.828125 +vt 0.375000 0.937500 +vt 0.309211 0.921875 +vt 0.375000 0.921875 +vt 0.375000 0.906250 +vt 0.309211 0.890625 +vt 0.375000 0.890625 +vt 0.375000 0.875000 +vt 0.309211 0.859375 +vt 0.375000 0.859375 +vt 0.309211 0.812500 +vt 0.375000 0.812500 +vt 0.309211 0.906250 +vt 0.309211 0.875000 +vt 0.309211 0.843750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.842105 -0.000000 +vt 0.796053 0.039062 +vt 0.796053 0.000000 +vt 0.842105 0.039062 +vt 0.796053 0.078125 +vt 0.842105 0.078125 +vt 0.796053 0.117188 +vt 0.842105 0.117188 +vt 0.796053 0.156250 +vt 0.842105 0.156250 +vt 0.796053 0.195312 +vt 0.842105 0.195312 +vt 0.796053 0.234375 +vt 0.842105 0.234375 +vt 0.796053 0.273438 +vt 0.842105 0.273438 +vt 0.796053 0.312500 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.640625 +vt 0.121711 0.625000 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.332237 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.625000 +vt 0.121711 0.609375 +vt 0.121711 0.656250 +vt 0.121711 0.640625 +vt 0.121711 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.640625 +vt 0.194079 0.625000 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.656250 +vt 0.121711 0.640625 +vt 0.121711 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.515625 +vt 0.121711 0.500000 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.365132 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.332237 0.609375 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.671875 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.640625 +vt 0.121711 0.671875 +vt 0.121711 0.656250 +vt 0.121711 0.687500 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.531250 +vt 0.121711 0.546875 +vt 0.121711 0.562500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.476974 0.625000 +vt 0.371711 0.609375 +vt 0.476974 0.609375 +vt 0.371711 0.593750 +vt 0.476974 0.593750 +vt 0.476974 0.640625 +vt 0.371711 0.625000 +vt 0.476974 0.656250 +vt 0.371711 0.640625 +vt 0.476974 0.671875 +vt 0.371711 0.656250 +vt 0.476974 0.687500 +vt 0.371711 0.671875 +vt 0.476974 0.515625 +vt 0.371711 0.500000 +vt 0.476974 0.500000 +vt 0.476974 0.531250 +vt 0.371711 0.515625 +vt 0.476974 0.546875 +vt 0.371711 0.531250 +vt 0.476974 0.562500 +vt 0.371711 0.546875 +vt 0.476974 0.578125 +vt 0.371711 0.562500 +vt 0.371711 0.578125 +vt 0.365132 0.625000 +vt 0.365132 0.609375 +vt 0.365132 0.593750 +vt 0.365132 0.578125 +vt 0.365132 0.562500 +vt 0.365132 0.546875 +vt 0.365132 0.531250 +vt 0.365132 0.515625 +vt 0.365132 0.500000 +vt 0.371711 0.687500 +vt 0.365132 0.671875 +vt 0.365132 0.656250 +vt 0.365132 0.640625 +vt 0.338816 0.593750 +vt 0.338816 0.609375 +vt 0.338816 0.625000 +vt 0.338816 0.640625 +vt 0.338816 0.656250 +vt 0.365132 0.687500 +vt 0.338816 0.671875 +vt 0.338816 0.500000 +vt 0.338816 0.515625 +vt 0.338816 0.531250 +vt 0.338816 0.546875 +vt 0.338816 0.562500 +vt 0.338816 0.578125 +vt 0.332237 0.609375 +vt 0.332237 0.593750 +vt 0.332237 0.578125 +vt 0.332237 0.562500 +vt 0.332237 0.546875 +vt 0.332237 0.531250 +vt 0.332237 0.515625 +vt 0.332237 0.500000 +vt 0.338816 0.687500 +vt 0.332237 0.671875 +vt 0.332237 0.656250 +vt 0.332237 0.640625 +vt 0.332237 0.625000 +vt 0.200658 0.593750 +vt 0.200658 0.609375 +vt 0.200658 0.625000 +vt 0.200658 0.640625 +vt 0.200658 0.656250 +vt 0.332237 0.687500 +vt 0.200658 0.671875 +vt 0.200658 0.500000 +vt 0.200658 0.515625 +vt 0.200658 0.531250 +vt 0.200658 0.546875 +vt 0.200658 0.562500 +vt 0.200658 0.578125 +vt 0.194079 0.562500 +vt 0.194079 0.546875 +vt 0.194079 0.578125 +vt 0.194079 0.593750 +vt 0.194079 0.609375 +vt 0.194079 0.625000 +vt 0.194079 0.640625 +vt 0.194079 0.656250 +vt 0.200658 0.687500 +vt 0.194079 0.671875 +vt 0.194079 0.500000 +vt 0.194079 0.531250 +vt 0.194079 0.515625 +vt 0.128289 0.593750 +vt 0.128289 0.609375 +vt 0.128289 0.625000 +vt 0.128289 0.640625 +vt 0.128289 0.656250 +vt 0.194079 0.687500 +vt 0.128289 0.671875 +vt 0.128289 0.500000 +vt 0.128289 0.515625 +vt 0.128289 0.531250 +vt 0.128289 0.546875 +vt 0.128289 0.562500 +vt 0.128289 0.578125 +vt 0.121711 0.593750 +vt 0.121711 0.578125 +vt 0.121711 0.609375 +vt 0.121711 0.625000 +vt 0.121711 0.640625 +vt 0.121711 0.656250 +vt 0.128289 0.687500 +vt 0.121711 0.671875 +vt 0.121711 0.500000 +vt 0.121711 0.515625 +vt 0.121711 0.546875 +vt 0.121711 0.531250 +vt 0.121711 0.562500 +vt 0.121711 0.687500 +vt 0.092105 0.593750 +vt 0.092105 0.609375 +vt 0.092105 0.625000 +vt 0.092105 0.640625 +vt 0.092105 0.656250 +vt 0.092105 0.671875 +vt 0.092105 0.500000 +vt 0.092105 0.515625 +vt 0.092105 0.531250 +vt 0.092105 0.546875 +vt 0.092105 0.562500 +vt 0.092105 0.578125 +vt 0.092105 0.242188 +vt 0.092105 0.277344 +vt 0.092105 0.312500 +vt 0.092105 0.347656 +vt 0.092105 0.382812 +vt 0.092105 0.386719 +vt 0.092105 0.453125 +vt 0.092105 0.457031 +vt 0.092105 0.523438 +vt 0.092105 0.558594 +vt 0.092105 0.035156 +vt 0.092105 0.070312 +vt 0.092105 0.136719 +vt 0.092105 0.171875 +vt 0.092105 0.207031 +vt 0.197368 0.160156 +vt 0.197368 0.214844 +vt 0.197368 0.246094 +vt 0.197368 0.277344 +vt 0.197368 0.308594 +vt 0.197368 0.316406 +vt 0.197368 0.347656 +vt 0.197368 0.402344 +vt 0.197368 0.433594 +vt 0.197368 0.441406 +vt 0.197368 0.472656 +vt 0.197368 0.003906 +vt 0.197368 0.035156 +vt 0.197368 0.089844 +vt 0.197368 0.097656 +vt 0.197368 0.152344 +vt 0.338816 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.769737 -0.000000 +vt 0.480263 0.500000 +vt 1.000000 0.375000 +vt 0.973684 0.375000 +vt 0.973684 0.046875 +vt 0.309211 0.937500 +vt 0.842105 0.312500 +vt 0.338816 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.338816 0.687500 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.371711 0.687500 +vt 0.128289 0.687500 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +vt 0.092105 0.605469 +vt 0.092105 0.621094 +vt 0.092105 0.636719 +vt 0.092105 0.652344 +vt 0.092105 0.667969 +vt 0.092105 0.683594 +vt 0.092105 0.511719 +vt 0.092105 0.527344 +vt 0.092105 0.542969 +vt 0.092105 0.558594 +vt 0.092105 0.574219 +vt 0.092105 0.589844 +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.9762 0.2169 +vn 0.0000 0.9762 -0.2169 +vn 0.0000 -1.0000 0.0000 +vn 0.8944 -0.4472 0.0000 +vn -0.8944 -0.4472 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 1.0000 0.0000 +vn -0.4082 0.4082 -0.8165 +vn 0.0000 -0.7071 -0.7071 +vn 0.4082 0.4082 -0.8165 +vn -0.7071 0.0000 0.7071 +vn 0.4472 0.0000 -0.8944 +vn 0.3333 -0.6667 -0.6667 +vn -0.4472 0.0000 -0.8944 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.4472 -0.8944 +vn 0.5774 0.5774 0.5774 +vn -0.5774 0.5774 0.5774 +vn -0.3333 -0.6667 -0.6667 +vn 0.8944 0.0000 0.4472 +vn 0.3162 0.0000 -0.9487 +vn 0.3162 0.0000 0.9487 +vn 0.3511 -0.9363 0.0000 +vn 0.3511 0.9363 0.0000 +vn 0.8944 0.0000 -0.4472 +vn -0.8944 0.0000 0.4472 +vn -0.3162 0.0000 -0.9487 +vn -0.3162 0.0000 0.9487 +vn -0.3511 -0.9363 0.0000 +vn -0.3511 0.9363 0.0000 +vn -0.8944 0.0000 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.6325 0.6325 -0.4472 +vn 0.3423 0.8263 -0.4472 +vn -0.0000 0.8944 -0.4472 +vn -0.3423 0.8263 -0.4472 +vn -0.6325 0.6325 -0.4472 +vn -0.8263 0.3423 -0.4472 +vn -0.8263 -0.3423 -0.4472 +vn -0.6325 -0.6325 -0.4472 +vn -0.3423 -0.8263 -0.4472 +vn -0.0000 -0.8944 -0.4472 +vn 0.3423 -0.8263 -0.4472 +vn 0.6325 -0.6325 -0.4472 +vn 0.8263 -0.3423 -0.4472 +vn 0.8263 0.3423 -0.4472 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.9701 -0.0000 -0.2425 +vn -0.8402 0.4851 -0.2425 +vn -0.4851 0.8402 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.4851 0.8402 -0.2425 +vn 0.8402 0.4851 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn 0.8402 -0.4851 -0.2425 +vn 0.4851 -0.8402 -0.2425 +vn -0.0000 -0.9701 -0.2425 +vn -0.4851 -0.8402 -0.2425 +vn -0.8402 -0.4851 -0.2425 +vn 0.0000 0.9701 0.2425 +vn -0.4851 0.8402 0.2425 +vn 0.4851 0.8402 0.2425 +vn 0.8402 0.4851 0.2425 +vn 0.9701 -0.0000 0.2425 +vn 0.8402 -0.4851 0.2425 +vn 0.4851 -0.8402 0.2425 +vn -0.0000 -0.9701 0.2425 +vn -0.4851 -0.8402 0.2425 +vn -0.8402 -0.4851 0.2425 +vn -0.9701 -0.0000 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.0000 -0.7071 0.7071 +vn 0.9808 -0.1951 0.0000 +vn -0.9808 -0.1951 0.0000 +s off +f 79/1/1 75/2/1 71/3/1 +f 90/4/2 86/5/2 85/6/2 +f 460/7/3 461/8/3 459/9/3 +f 89/10/4 86/11/4 90/12/4 +f 89/13/3 84/14/3 83/15/3 +f 84/16/5 90/17/5 88/18/5 +f 93/19/6 92/20/6 91/21/6 +f 85/6/7 93/19/7 87/22/7 +f 461/23/3 462/24/3 468/25/3 +f 83/15/8 92/20/8 81/26/8 +f 11/27/9 13/28/9 1/29/9 +f 203/30/9 226/31/9 214/32/9 +f 214/32/9 225/33/9 213/34/9 +f 213/34/9 224/35/9 212/36/9 +f 212/36/9 223/37/9 211/38/9 +f 211/38/9 222/39/9 210/40/9 +f 209/41/9 222/42/9 221/43/9 +f 209/44/9 220/45/9 208/46/9 +f 208/46/9 219/47/9 207/48/9 +f 207/48/9 218/49/9 206/50/9 +f 206/50/9 217/51/9 205/52/9 +f 204/53/9 217/54/9 216/55/9 +f 203/30/9 216/56/9 215/57/9 +f 237/58/9 227/59/9 231/60/9 +f 259/61/1 257/62/1 253/63/1 +f 243/64/9 245/65/9 247/66/9 +f 273/67/3 277/68/3 269/69/3 +f 266/70/10 263/71/10 264/72/10 +f 268/73/11 265/74/11 266/70/11 +f 278/75/2 274/76/2 270/77/2 +f 263/78/1 272/79/1 264/80/1 +f 274/76/12 275/81/12 273/82/12 +f 276/83/1 277/84/1 275/85/1 +f 271/86/12 280/87/12 272/79/12 +f 279/88/9 282/89/9 280/87/9 +f 282/90/12 277/91/12 278/92/12 +f 270/77/9 273/93/9 269/94/9 +f 279/95/3 263/96/3 281/97/3 +f 280/87/2 264/80/2 272/79/2 +f 267/98/3 269/69/3 277/68/3 +f 278/75/2 270/77/2 268/73/2 +f 301/99/1 303/100/1 300/101/1 +f 310/102/13 312/103/13 301/99/13 +f 305/104/2 315/105/2 316/106/2 +f 303/100/14 319/107/14 300/101/14 +f 305/108/15 313/109/15 315/110/15 +f 320/111/16 309/112/16 326/113/16 +f 304/114/17 306/115/17 303/100/17 +f 317/116/3 318/117/3 310/118/3 +f 306/115/18 321/119/18 303/100/18 +f 300/101/19 310/102/19 301/99/19 +f 314/120/12 316/106/12 313/109/12 +f 322/121/20 307/122/20 302/123/20 +f 302/123/21 311/124/21 299/125/21 +f 301/99/22 313/109/22 304/114/22 +f 307/122/23 314/120/23 302/123/23 +f 309/112/24 311/124/24 317/126/24 +f 322/127/6 321/119/6 323/128/6 +f 308/129/25 319/107/25 325/130/25 +f 320/111/9 302/123/9 299/125/9 +f 333/131/26 336/132/26 332/133/26 +f 329/134/27 334/135/27 330/136/27 +f 328/137/28 332/133/28 327/138/28 +f 330/139/6 333/140/6 328/141/6 +f 327/142/12 331/143/12 329/144/12 +f 337/145/2 335/146/2 336/132/2 +f 334/147/29 337/145/29 333/140/29 +f 332/148/30 335/146/30 331/143/30 +f 331/149/31 338/150/31 334/135/31 +f 348/151/32 345/152/32 344/153/32 +f 346/154/33 341/155/33 342/156/33 +f 344/153/34 340/157/34 339/158/34 +f 345/159/6 342/160/6 340/161/6 +f 343/162/12 339/163/12 341/164/12 +f 347/165/3 349/166/3 348/151/3 +f 345/159/35 350/167/35 346/168/35 +f 343/162/36 348/151/36 344/169/36 +f 346/154/37 347/165/37 343/170/37 +f 360/171/9 356/172/9 372/173/9 +f 365/174/1 373/175/1 381/176/1 +f 388/177/9 412/178/9 404/179/9 +f 397/180/1 405/181/1 413/182/1 +f 416/183/3 417/184/3 415/185/3 +f 418/186/1 421/187/1 417/184/1 +f 422/188/2 419/189/2 421/190/2 +f 421/191/6 415/185/6 417/184/6 +f 418/186/12 420/192/12 422/188/12 +f 439/193/16 416/183/16 415/185/16 +f 442/194/38 446/195/38 444/196/38 +f 441/197/3 448/198/3 442/199/3 +f 420/200/1 442/201/1 419/202/1 +f 439/193/9 443/203/9 440/204/9 +f 443/203/39 441/205/39 420/200/39 +f 446/206/20 443/203/20 444/196/20 +f 447/207/40 450/208/40 448/209/40 +f 442/210/6 450/208/6 446/206/6 +f 441/197/12 449/211/12 447/212/12 +f 446/206/2 449/211/2 445/213/2 +f 83/214/1 84/16/1 88/18/1 +f 455/215/6 457/216/6 456/217/6 +f 454/218/14 455/215/14 453/219/14 +f 451/220/9 457/216/9 452/221/9 +f 452/222/2 458/223/2 454/224/2 +f 451/225/3 455/215/3 456/217/3 +f 466/226/2 463/227/2 465/228/2 +f 465/228/6 459/229/6 461/230/6 +f 462/231/12 464/232/12 466/226/12 +f 482/233/10 484/234/10 478/235/10 +f 466/236/2 465/237/2 469/238/2 +f 468/25/3 472/239/3 461/23/3 +f 491/240/2 470/241/2 496/242/2 +f 474/243/1 473/244/1 494/245/1 +f 461/246/9 471/247/9 465/237/9 +f 469/238/1 474/248/1 468/25/1 +f 465/237/2 473/249/2 469/238/2 +f 476/250/3 477/251/3 475/252/3 +f 477/253/3 478/254/3 484/234/3 +f 482/233/2 479/255/2 481/256/2 +f 481/257/6 475/252/6 477/251/6 +f 478/235/12 480/258/12 482/233/12 +f 471/247/41 494/245/41 473/249/41 +f 482/259/2 481/260/2 485/261/2 +f 484/234/3 488/262/3 477/253/3 +f 498/263/3 483/264/3 493/265/3 +f 493/266/1 486/267/1 491/268/1 +f 477/253/9 487/269/9 481/270/9 +f 485/261/1 490/271/1 484/234/1 +f 481/260/2 489/272/2 485/261/2 +f 490/271/42 495/273/42 488/262/42 +f 470/241/12 483/264/12 467/274/12 +f 487/275/9 488/276/9 495/273/9 +f 489/277/12 472/278/12 474/243/12 +f 471/279/9 472/280/9 492/281/9 +f 495/273/9 472/280/9 487/275/9 +f 490/282/1 489/277/1 497/283/1 +f 494/245/1 489/277/1 474/243/1 +f 492/281/6 497/283/6 494/245/6 +f 466/226/10 468/25/10 462/231/10 +f 496/284/9 467/274/9 498/285/9 +f 500/286/12 501/287/12 499/288/12 +f 503/289/6 505/290/6 504/291/6 +f 500/286/2 506/292/2 502/293/2 +f 501/287/3 504/294/3 499/288/3 +f 502/293/1 503/289/1 501/287/1 +f 499/288/9 505/295/9 500/286/9 +f 510/296/1 513/297/1 509/298/1 +f 507/299/9 512/300/9 508/301/9 +f 508/301/6 514/302/6 510/296/6 +f 509/298/12 511/303/12 507/304/12 +f 512/300/42 518/305/42 514/302/42 +f 513/306/43 515/307/43 511/308/43 +f 516/309/3 522/310/3 518/305/3 +f 517/311/2 519/312/2 515/313/2 +f 521/314/41 523/315/41 519/316/41 +f 520/317/44 526/318/44 522/310/44 +f 515/319/9 512/300/9 511/320/9 +f 515/321/9 520/317/9 516/309/9 +f 525/322/9 519/323/9 523/324/9 +f 514/302/1 517/325/1 513/306/1 +f 521/326/1 518/305/1 522/310/1 +f 522/310/1 524/327/1 521/314/1 +f 549/328/1 547/329/1 550/330/1 +f 552/331/9 528/332/9 551/333/9 +f 551/333/12 550/330/12 552/331/12 +f 531/334/1 535/335/1 539/336/1 +f 536/337/9 534/338/9 530/339/9 +f 85/340/9 86/11/9 82/341/9 +f 661/342/9 684/343/9 672/344/9 +f 672/344/9 683/345/9 671/346/9 +f 671/346/9 682/347/9 670/348/9 +f 670/348/9 681/349/9 669/350/9 +f 669/350/9 680/351/9 668/352/9 +f 667/353/9 680/354/9 679/355/9 +f 667/356/9 678/357/9 666/358/9 +f 666/358/9 677/359/9 665/360/9 +f 665/360/9 676/361/9 664/362/9 +f 664/362/9 675/363/9 663/364/9 +f 662/365/9 675/366/9 674/367/9 +f 661/342/9 674/368/9 673/369/9 +f 695/370/9 685/371/9 689/372/9 +f 805/373/9 828/374/9 816/375/9 +f 816/375/9 827/376/9 815/377/9 +f 815/377/9 826/378/9 814/379/9 +f 814/379/9 825/380/9 813/381/9 +f 812/382/9 825/383/9 824/384/9 +f 811/385/9 824/386/9 823/387/9 +f 811/388/9 822/389/9 810/390/9 +f 810/390/9 821/391/9 809/392/9 +f 809/392/9 820/393/9 808/394/9 +f 808/394/9 819/395/9 807/396/9 +f 807/396/9 818/397/9 806/398/9 +f 805/373/9 818/399/9 817/400/9 +f 839/401/9 829/402/9 833/403/9 +f 949/404/9 972/405/9 960/406/9 +f 960/406/9 971/407/9 959/408/9 +f 959/408/9 970/409/9 958/410/9 +f 957/411/9 970/412/9 969/413/9 +f 957/411/9 968/414/9 956/415/9 +f 955/416/9 968/417/9 967/418/9 +f 955/419/9 966/420/9 954/421/9 +f 954/421/9 965/422/9 953/423/9 +f 953/423/9 964/424/9 952/425/9 +f 952/425/9 963/426/9 951/427/9 +f 950/428/9 963/429/9 962/430/9 +f 949/404/9 962/431/9 961/432/9 +f 977/433/9 981/434/9 973/435/9 +f 1093/436/9 1116/437/9 1104/438/9 +f 1104/438/9 1115/439/9 1103/440/9 +f 1103/440/9 1114/441/9 1102/442/9 +f 1101/443/9 1114/444/9 1113/445/9 +f 1100/446/9 1113/447/9 1112/448/9 +f 1099/449/9 1112/450/9 1111/451/9 +f 1099/452/9 1110/453/9 1098/454/9 +f 1098/454/9 1109/455/9 1097/456/9 +f 1097/456/9 1108/457/9 1096/458/9 +f 1096/458/9 1107/459/9 1095/460/9 +f 1095/460/9 1106/461/9 1094/462/9 +f 1093/436/9 1106/463/9 1105/464/9 +f 1127/465/9 1117/466/9 1121/467/9 +f 1237/468/9 1260/469/9 1248/470/9 +f 1248/470/9 1259/471/9 1247/472/9 +f 1247/472/9 1258/473/9 1246/474/9 +f 1245/475/9 1258/476/9 1257/477/9 +f 1245/475/9 1256/478/9 1244/479/9 +f 1243/480/9 1256/481/9 1255/482/9 +f 1243/483/9 1254/484/9 1242/485/9 +f 1242/485/9 1253/486/9 1241/487/9 +f 1241/487/9 1252/488/9 1240/489/9 +f 1240/489/9 1251/490/9 1239/491/9 +f 1238/492/9 1251/493/9 1250/494/9 +f 1238/492/9 1249/495/9 1237/468/9 +f 1271/496/9 1261/497/9 1265/498/9 +f 67/499/1 66/500/1 65/501/1 +f 65/501/1 80/502/1 67/499/1 +f 80/502/1 79/1/1 67/499/1 +f 79/1/1 78/503/1 77/504/1 +f 77/504/1 76/505/1 79/1/1 +f 76/505/1 75/2/1 79/1/1 +f 75/2/1 74/506/1 71/3/1 +f 74/506/1 73/507/1 71/3/1 +f 73/507/1 72/508/1 71/3/1 +f 71/3/1 70/509/1 69/510/1 +f 69/510/1 68/511/1 67/499/1 +f 71/3/1 69/510/1 67/499/1 +f 67/499/1 79/1/1 71/3/1 +f 85/6/2 87/22/2 90/4/2 +f 87/22/2 88/512/2 90/4/2 +f 460/7/3 462/231/3 461/8/3 +f 89/10/4 82/341/4 86/11/4 +f 83/15/3 81/26/3 89/13/3 +f 81/26/3 82/513/3 89/13/3 +f 84/16/5 89/514/5 90/17/5 +f 93/19/6 94/515/6 92/20/6 +f 85/6/7 94/515/7 93/19/7 +f 83/15/8 91/21/8 92/20/8 +f 1/29/9 2/516/9 3/517/9 +f 3/517/9 4/518/9 1/29/9 +f 4/518/9 5/519/9 1/29/9 +f 5/519/9 6/520/9 7/521/9 +f 7/521/9 8/522/9 9/523/9 +f 9/523/9 10/524/9 11/27/9 +f 11/27/9 12/525/9 13/28/9 +f 13/28/9 14/526/9 1/29/9 +f 14/526/9 15/527/9 1/29/9 +f 15/527/9 16/528/9 1/29/9 +f 5/519/9 7/521/9 1/29/9 +f 7/521/9 9/523/9 1/29/9 +f 9/523/9 11/27/9 1/29/9 +f 203/30/9 215/529/9 226/31/9 +f 214/32/9 226/530/9 225/33/9 +f 213/34/9 225/531/9 224/35/9 +f 212/36/9 224/532/9 223/37/9 +f 211/38/9 223/533/9 222/39/9 +f 209/41/9 210/40/9 222/42/9 +f 209/44/9 221/534/9 220/45/9 +f 208/46/9 220/535/9 219/47/9 +f 207/48/9 219/536/9 218/49/9 +f 206/50/9 218/537/9 217/51/9 +f 204/53/9 205/52/9 217/54/9 +f 203/30/9 204/53/9 216/56/9 +f 227/59/9 228/538/9 229/539/9 +f 229/539/9 230/540/9 227/59/9 +f 230/540/9 231/60/9 227/59/9 +f 231/60/9 232/541/9 233/542/9 +f 233/542/9 234/543/9 235/544/9 +f 235/544/9 236/545/9 237/58/9 +f 237/58/9 238/546/9 227/59/9 +f 231/60/9 233/542/9 235/544/9 +f 235/544/9 237/58/9 231/60/9 +f 253/63/1 252/547/1 251/548/1 +f 251/548/1 262/549/1 261/550/1 +f 261/550/1 260/551/1 259/61/1 +f 259/61/1 258/552/1 257/62/1 +f 257/62/1 256/553/1 255/554/1 +f 255/554/1 254/555/1 257/62/1 +f 254/555/1 253/63/1 257/62/1 +f 253/63/1 251/548/1 261/550/1 +f 261/550/1 259/61/1 253/63/1 +f 239/556/9 240/557/9 241/558/9 +f 241/558/9 242/559/9 243/64/9 +f 243/64/9 244/560/9 245/65/9 +f 245/65/9 246/561/9 247/66/9 +f 247/66/9 248/562/9 239/556/9 +f 248/562/9 249/563/9 239/556/9 +f 249/563/9 250/564/9 239/556/9 +f 239/556/9 241/558/9 247/66/9 +f 241/558/9 243/64/9 247/66/9 +f 273/67/3 275/565/3 277/68/3 +f 266/70/10 265/74/10 263/71/10 +f 268/73/11 267/566/11 265/74/11 +f 278/75/2 276/83/2 274/76/2 +f 263/78/1 271/567/1 272/79/1 +f 274/76/12 276/83/12 275/81/12 +f 276/83/1 278/75/1 277/84/1 +f 271/86/12 279/568/12 280/87/12 +f 279/88/9 281/569/9 282/89/9 +f 282/90/12 281/570/12 277/91/12 +f 270/77/9 274/76/9 273/93/9 +f 279/95/3 271/571/3 263/96/3 +f 280/87/2 282/89/2 264/80/2 +f 277/68/3 281/97/3 267/98/3 +f 281/97/3 263/96/3 267/98/3 +f 263/96/3 265/572/3 267/98/3 +f 266/573/2 264/80/2 268/73/2 +f 264/80/2 282/89/2 268/73/2 +f 282/89/2 278/75/2 268/73/2 +f 301/99/1 304/114/1 303/100/1 +f 310/102/13 318/574/13 312/103/13 +f 316/106/2 307/575/2 305/104/2 +f 307/575/2 323/576/2 324/577/2 +f 306/578/2 307/575/2 324/577/2 +f 306/578/2 305/104/2 307/575/2 +f 303/100/14 321/119/14 319/107/14 +f 305/108/15 304/114/15 313/109/15 +f 320/111/16 299/125/16 309/112/16 +f 304/114/17 305/108/17 306/115/17 +f 310/118/3 308/579/3 309/580/3 +f 308/579/3 325/581/3 309/580/3 +f 325/581/3 326/582/3 309/580/3 +f 309/580/3 317/116/3 310/118/3 +f 306/115/18 324/583/18 321/119/18 +f 300/101/19 308/129/19 310/102/19 +f 315/105/12 313/109/12 316/106/12 +f 313/109/12 312/103/12 314/120/12 +f 312/103/12 318/117/12 317/116/12 +f 317/116/12 311/124/12 312/103/12 +f 311/124/12 314/120/12 312/103/12 +f 322/121/20 323/584/20 307/122/20 +f 302/123/21 314/120/21 311/124/21 +f 301/99/22 312/103/22 313/109/22 +f 307/122/23 316/585/23 314/120/23 +f 309/112/24 299/125/24 311/124/24 +f 322/127/6 320/586/6 319/107/6 +f 320/586/6 326/587/6 319/107/6 +f 326/587/6 325/588/6 319/107/6 +f 319/107/6 321/119/6 322/127/6 +f 321/119/6 324/589/6 323/128/6 +f 308/129/25 300/101/25 319/107/25 +f 320/111/9 322/121/9 302/123/9 +f 333/131/26 337/145/26 336/132/26 +f 329/134/27 331/149/27 334/135/27 +f 328/137/28 333/131/28 332/133/28 +f 330/139/6 334/147/6 333/140/6 +f 327/142/12 332/148/12 331/143/12 +f 337/145/2 338/150/2 335/146/2 +f 334/147/29 338/150/29 337/145/29 +f 332/148/30 336/132/30 335/146/30 +f 331/149/31 335/146/31 338/150/31 +f 348/151/32 349/166/32 345/152/32 +f 346/154/33 343/170/33 341/155/33 +f 344/153/34 345/152/34 340/157/34 +f 345/159/6 346/168/6 342/160/6 +f 343/162/12 344/169/12 339/163/12 +f 347/165/3 350/167/3 349/166/3 +f 345/159/35 349/166/35 350/167/35 +f 343/162/36 347/165/36 348/151/36 +f 346/154/37 350/167/37 347/165/37 +f 356/172/9 354/590/9 352/591/9 +f 352/591/9 382/592/9 380/593/9 +f 380/593/9 378/594/9 376/595/9 +f 376/595/9 374/596/9 372/173/9 +f 372/173/9 370/597/9 368/598/9 +f 368/598/9 366/599/9 364/600/9 +f 364/600/9 362/601/9 360/171/9 +f 360/171/9 358/602/9 356/172/9 +f 356/172/9 352/591/9 372/173/9 +f 352/591/9 380/593/9 372/173/9 +f 380/593/9 376/595/9 372/173/9 +f 372/173/9 368/598/9 364/600/9 +f 364/600/9 360/171/9 372/173/9 +f 381/176/1 351/603/1 357/604/1 +f 351/603/1 353/605/1 357/604/1 +f 353/605/1 355/606/1 357/604/1 +f 357/604/1 359/607/1 365/174/1 +f 359/607/1 361/608/1 365/174/1 +f 361/608/1 363/609/1 365/174/1 +f 365/174/1 367/610/1 369/611/1 +f 369/611/1 371/612/1 365/174/1 +f 371/612/1 373/175/1 365/174/1 +f 373/175/1 375/613/1 381/176/1 +f 375/613/1 377/614/1 381/176/1 +f 377/614/1 379/615/1 381/176/1 +f 381/176/1 357/604/1 365/174/1 +f 388/177/9 386/616/9 412/178/9 +f 386/616/9 384/617/9 412/178/9 +f 384/617/9 414/618/9 412/178/9 +f 412/178/9 410/619/9 408/620/9 +f 408/620/9 406/621/9 412/178/9 +f 406/621/9 404/179/9 412/178/9 +f 404/179/9 402/622/9 400/623/9 +f 400/623/9 398/624/9 396/625/9 +f 396/625/9 394/626/9 392/627/9 +f 392/627/9 390/628/9 388/177/9 +f 404/179/9 400/623/9 396/625/9 +f 396/625/9 392/627/9 404/179/9 +f 392/627/9 388/177/9 404/179/9 +f 413/182/1 383/629/1 385/630/1 +f 385/630/1 387/631/1 389/632/1 +f 389/632/1 391/633/1 397/180/1 +f 391/633/1 393/634/1 397/180/1 +f 393/634/1 395/635/1 397/180/1 +f 397/180/1 399/636/1 405/181/1 +f 399/636/1 401/637/1 405/181/1 +f 401/637/1 403/638/1 405/181/1 +f 405/181/1 407/639/1 409/640/1 +f 409/640/1 411/641/1 413/182/1 +f 413/182/1 385/630/1 389/632/1 +f 405/181/1 409/640/1 413/182/1 +f 413/182/1 389/632/1 397/180/1 +f 416/183/3 418/186/3 417/184/3 +f 418/186/1 422/642/1 421/187/1 +f 422/188/2 420/192/2 419/189/2 +f 421/191/6 419/643/6 415/185/6 +f 418/186/12 416/183/12 420/192/12 +f 439/193/16 440/204/16 416/183/16 +f 444/196/38 439/193/38 419/644/38 +f 439/193/38 415/645/38 419/644/38 +f 419/644/38 442/194/38 444/196/38 +f 441/197/3 447/212/3 448/198/3 +f 420/200/1 441/205/1 442/201/1 +f 439/193/9 444/196/9 443/203/9 +f 416/646/39 440/204/39 420/200/39 +f 440/204/39 443/203/39 420/200/39 +f 443/203/39 445/647/39 441/205/39 +f 446/206/20 445/213/20 443/203/20 +f 447/207/40 449/211/40 450/208/40 +f 442/210/6 448/648/6 450/208/6 +f 441/197/12 445/213/12 449/211/12 +f 446/206/2 450/208/2 449/211/2 +f 88/18/1 87/649/1 83/214/1 +f 87/649/1 93/19/1 83/214/1 +f 93/19/1 91/21/1 83/214/1 +f 455/215/6 458/223/6 457/216/6 +f 454/218/14 458/223/14 455/215/14 +f 451/220/9 456/217/9 457/216/9 +f 452/222/2 457/216/2 458/223/2 +f 451/225/3 453/650/3 455/215/3 +f 466/226/2 464/232/2 463/227/2 +f 465/228/6 463/227/6 459/229/6 +f 462/231/12 460/7/12 464/232/12 +f 482/233/10 485/261/10 484/234/10 +f 468/25/3 474/248/3 472/239/3 +f 491/240/2 486/267/2 470/241/2 +f 461/246/9 472/651/9 471/247/9 +f 469/238/1 473/249/1 474/248/1 +f 465/237/2 471/247/2 473/249/2 +f 476/250/3 478/235/3 477/251/3 +f 482/233/2 480/258/2 479/255/2 +f 481/257/6 479/652/6 475/252/6 +f 478/235/12 476/250/12 480/258/12 +f 471/247/41 492/281/41 494/245/41 +f 484/234/3 490/271/3 488/262/3 +f 498/263/3 467/274/3 483/264/3 +f 493/266/1 483/264/1 486/267/1 +f 477/253/9 488/262/9 487/269/9 +f 485/261/1 489/272/1 490/271/1 +f 481/260/2 487/653/2 489/272/2 +f 490/271/42 497/283/42 495/273/42 +f 470/241/12 486/267/12 483/264/12 +f 489/277/12 487/654/12 472/278/12 +f 495/273/9 492/281/9 472/280/9 +f 494/245/1 497/283/1 489/277/1 +f 492/281/6 495/273/6 497/283/6 +f 466/226/10 469/238/10 468/25/10 +f 496/284/9 470/241/9 467/274/9 +f 500/286/12 502/293/12 501/287/12 +f 503/289/6 506/655/6 505/290/6 +f 500/286/2 505/656/2 506/292/2 +f 501/287/3 503/657/3 504/294/3 +f 502/293/1 506/655/1 503/289/1 +f 499/288/9 504/658/9 505/295/9 +f 510/296/1 514/302/1 513/297/1 +f 507/299/9 511/659/9 512/300/9 +f 508/301/6 512/300/6 514/302/6 +f 509/298/12 513/297/12 511/303/12 +f 512/300/42 516/309/42 518/305/42 +f 513/306/43 517/325/43 515/307/43 +f 516/309/3 520/317/3 522/310/3 +f 517/311/2 521/326/2 519/312/2 +f 521/314/41 524/327/41 523/315/41 +f 520/317/44 525/322/44 526/318/44 +f 515/319/9 516/309/9 512/300/9 +f 515/321/9 519/660/9 520/317/9 +f 525/322/9 520/317/9 519/323/9 +f 514/302/1 518/305/1 517/325/1 +f 521/326/1 517/311/1 518/305/1 +f 522/310/1 526/318/1 524/327/1 +f 549/328/1 548/661/1 547/329/1 +f 552/331/9 527/662/9 528/332/9 +f 551/333/12 549/328/12 550/330/12 +f 545/663/1 529/664/1 531/334/1 +f 531/334/1 533/665/1 535/335/1 +f 535/335/1 537/666/1 539/336/1 +f 539/336/1 541/667/1 531/334/1 +f 541/667/1 543/668/1 531/334/1 +f 543/668/1 545/663/1 531/334/1 +f 534/338/9 532/669/9 530/339/9 +f 530/339/9 546/670/9 544/671/9 +f 544/671/9 542/672/9 530/339/9 +f 542/672/9 540/673/9 530/339/9 +f 540/673/9 538/674/9 530/339/9 +f 538/674/9 536/337/9 530/339/9 +f 82/341/9 81/675/9 85/340/9 +f 81/675/9 92/20/9 85/340/9 +f 92/20/9 94/515/9 85/340/9 +f 661/342/9 673/676/9 684/343/9 +f 672/344/9 684/677/9 683/345/9 +f 671/346/9 683/678/9 682/347/9 +f 670/348/9 682/679/9 681/349/9 +f 669/350/9 681/680/9 680/351/9 +f 667/353/9 668/352/9 680/354/9 +f 667/356/9 679/681/9 678/357/9 +f 666/358/9 678/682/9 677/359/9 +f 665/360/9 677/683/9 676/361/9 +f 664/362/9 676/684/9 675/363/9 +f 662/365/9 663/364/9 675/366/9 +f 661/342/9 662/365/9 674/368/9 +f 685/371/9 686/685/9 687/686/9 +f 687/686/9 688/687/9 685/371/9 +f 688/687/9 689/372/9 685/371/9 +f 689/372/9 690/688/9 691/689/9 +f 691/689/9 692/690/9 693/691/9 +f 693/691/9 694/692/9 695/370/9 +f 695/370/9 696/693/9 685/371/9 +f 689/372/9 691/689/9 693/691/9 +f 693/691/9 695/370/9 689/372/9 +f 805/373/9 817/694/9 828/374/9 +f 816/375/9 828/695/9 827/376/9 +f 815/377/9 827/696/9 826/378/9 +f 814/379/9 826/697/9 825/380/9 +f 812/382/9 813/381/9 825/383/9 +f 811/385/9 812/382/9 824/386/9 +f 811/388/9 823/698/9 822/389/9 +f 810/390/9 822/699/9 821/391/9 +f 809/392/9 821/700/9 820/393/9 +f 808/394/9 820/701/9 819/395/9 +f 807/396/9 819/702/9 818/397/9 +f 805/373/9 806/398/9 818/399/9 +f 829/402/9 830/703/9 831/704/9 +f 831/704/9 832/705/9 829/402/9 +f 832/705/9 833/403/9 829/402/9 +f 833/403/9 834/706/9 835/707/9 +f 835/707/9 836/708/9 837/709/9 +f 837/709/9 838/710/9 839/401/9 +f 839/401/9 840/711/9 829/402/9 +f 833/403/9 835/707/9 837/709/9 +f 837/709/9 839/401/9 833/403/9 +f 949/404/9 961/712/9 972/405/9 +f 960/406/9 972/713/9 971/407/9 +f 959/408/9 971/714/9 970/409/9 +f 957/411/9 958/410/9 970/412/9 +f 957/411/9 969/715/9 968/414/9 +f 955/416/9 956/415/9 968/417/9 +f 955/419/9 967/716/9 966/420/9 +f 954/421/9 966/717/9 965/422/9 +f 953/423/9 965/718/9 964/424/9 +f 952/425/9 964/719/9 963/426/9 +f 950/428/9 951/427/9 963/429/9 +f 949/404/9 950/428/9 962/431/9 +f 973/435/9 974/720/9 977/433/9 +f 974/720/9 975/721/9 977/433/9 +f 975/721/9 976/722/9 977/433/9 +f 977/433/9 978/723/9 979/724/9 +f 979/724/9 980/725/9 981/434/9 +f 981/434/9 982/726/9 983/727/9 +f 983/727/9 984/728/9 973/435/9 +f 977/433/9 979/724/9 981/434/9 +f 981/434/9 983/727/9 973/435/9 +f 1093/436/9 1105/729/9 1116/437/9 +f 1104/438/9 1116/730/9 1115/439/9 +f 1103/440/9 1115/731/9 1114/441/9 +f 1101/443/9 1102/442/9 1114/444/9 +f 1100/446/9 1101/443/9 1113/447/9 +f 1099/449/9 1100/446/9 1112/450/9 +f 1099/452/9 1111/732/9 1110/453/9 +f 1098/454/9 1110/733/9 1109/455/9 +f 1097/456/9 1109/734/9 1108/457/9 +f 1096/458/9 1108/735/9 1107/459/9 +f 1095/460/9 1107/736/9 1106/461/9 +f 1093/436/9 1094/462/9 1106/463/9 +f 1117/466/9 1118/737/9 1121/467/9 +f 1118/737/9 1119/738/9 1121/467/9 +f 1119/738/9 1120/739/9 1121/467/9 +f 1121/467/9 1122/740/9 1123/741/9 +f 1123/741/9 1124/742/9 1125/743/9 +f 1125/743/9 1126/744/9 1127/465/9 +f 1127/465/9 1128/745/9 1117/466/9 +f 1121/467/9 1123/741/9 1125/743/9 +f 1125/743/9 1127/465/9 1121/467/9 +f 1237/468/9 1249/746/9 1260/469/9 +f 1248/470/9 1260/747/9 1259/471/9 +f 1247/472/9 1259/748/9 1258/473/9 +f 1245/475/9 1246/474/9 1258/476/9 +f 1245/475/9 1257/749/9 1256/478/9 +f 1243/480/9 1244/479/9 1256/481/9 +f 1243/483/9 1255/750/9 1254/484/9 +f 1242/485/9 1254/751/9 1253/486/9 +f 1241/487/9 1253/752/9 1252/488/9 +f 1240/489/9 1252/753/9 1251/490/9 +f 1238/492/9 1239/491/9 1251/493/9 +f 1238/492/9 1250/754/9 1249/495/9 +f 1261/497/9 1262/755/9 1265/498/9 +f 1262/755/9 1263/756/9 1265/498/9 +f 1263/756/9 1264/757/9 1265/498/9 +f 1265/498/9 1266/758/9 1267/759/9 +f 1267/759/9 1268/760/9 1269/761/9 +f 1269/761/9 1270/762/9 1271/496/9 +f 1271/496/9 1272/763/9 1261/497/9 +f 1265/498/9 1267/759/9 1269/761/9 +f 1269/761/9 1271/496/9 1265/498/9 +s 1 +f 30/764/45 15/765/43 14/766/45 +f 23/767/42 8/768/46 7/769/42 +f 31/770/43 16/771/47 15/765/43 +f 24/772/46 9/773/6 8/768/46 +f 17/774/12 2/775/48 1/776/12 +f 32/777/47 1/776/12 16/771/47 +f 25/778/6 10/779/49 9/780/6 +f 18/781/48 3/782/44 2/775/48 +f 26/783/49 11/784/41 10/779/49 +f 19/785/44 4/786/50 3/782/44 +f 27/787/41 12/788/51 11/784/41 +f 20/789/50 5/790/3 4/786/50 +f 28/791/51 13/792/2 12/788/51 +f 21/793/3 6/794/52 5/790/3 +f 29/795/2 14/766/45 13/792/2 +f 22/796/52 7/769/42 6/794/52 +f 47/797/53 32/777/54 31/770/53 +f 48/798/54 17/774/55 32/777/54 +f 33/799/55 18/781/56 17/774/55 +f 34/800/56 19/785/57 18/781/56 +f 35/801/57 20/789/58 19/785/57 +f 20/789/58 37/802/37 21/793/37 +f 37/803/37 22/796/59 21/793/37 +f 22/796/59 39/804/60 23/767/60 +f 39/805/60 24/772/61 23/767/60 +f 40/806/61 25/807/62 24/772/61 +f 41/808/62 26/783/63 25/778/62 +f 26/783/63 43/809/64 27/787/64 +f 27/787/64 44/810/65 28/791/65 +f 44/811/65 29/795/31 28/791/65 +f 45/812/31 30/764/66 29/795/31 +f 46/813/66 31/770/53 30/764/66 +f 35/814/44 52/815/50 36/816/50 +f 43/817/41 60/818/51 44/819/51 +f 36/816/50 53/820/3 37/821/3 +f 44/819/51 61/822/2 45/823/2 +f 37/821/3 54/824/52 38/825/52 +f 45/823/2 62/826/45 46/827/45 +f 38/825/52 55/828/42 39/829/42 +f 46/827/45 63/830/43 47/831/43 +f 39/829/42 56/832/46 40/833/46 +f 47/831/43 64/834/47 48/835/47 +f 40/833/46 57/836/6 41/837/6 +f 33/838/12 50/839/48 34/840/48 +f 48/835/47 49/841/12 33/838/12 +f 41/808/6 58/842/49 42/843/49 +f 34/840/48 51/844/44 35/814/44 +f 42/843/49 59/845/41 43/817/41 +f 62/826/66 79/846/53 63/830/53 +f 79/847/53 64/834/54 63/830/53 +f 80/848/54 49/841/55 64/834/54 +f 65/849/55 50/839/56 49/841/55 +f 66/850/56 51/844/57 50/839/56 +f 51/844/57 68/851/58 52/815/58 +f 52/815/58 69/852/37 53/820/37 +f 69/853/37 54/824/59 53/820/37 +f 70/854/59 55/828/60 54/824/59 +f 55/828/60 72/855/61 56/832/61 +f 56/832/61 73/856/62 57/836/62 +f 57/857/62 74/858/63 58/842/63 +f 58/842/63 75/859/64 59/845/64 +f 75/860/64 60/818/65 59/845/64 +f 60/818/65 77/861/31 61/822/31 +f 77/862/31 62/826/66 61/822/31 +f 96/863/67 107/864/12 95/865/12 +f 97/866/68 108/867/67 96/863/67 +f 98/868/3 109/869/68 97/866/68 +f 99/870/69 110/871/3 98/868/3 +f 100/872/70 111/873/69 99/870/69 +f 101/874/6 112/875/70 100/872/70 +f 102/876/71 113/877/6 101/878/6 +f 103/879/72 114/880/71 102/876/71 +f 104/881/2 115/882/72 103/879/72 +f 105/883/73 116/884/2 104/881/2 +f 106/885/74 117/886/73 105/883/73 +f 95/865/12 118/887/74 106/885/74 +f 110/871/75 121/888/76 109/869/76 +f 109/869/76 120/889/77 108/867/77 +f 108/867/77 119/890/78 107/864/78 +f 118/887/79 119/890/78 130/891/79 +f 117/886/80 130/891/79 129/892/80 +f 116/884/81 129/892/80 128/893/81 +f 115/882/82 128/893/81 127/894/82 +f 114/880/83 127/894/82 126/895/83 +f 113/877/84 126/895/83 125/896/84 +f 113/897/84 124/898/85 112/875/85 +f 111/873/86 124/898/85 123/899/86 +f 111/873/86 122/900/75 110/871/75 +f 120/889/67 131/901/12 119/890/12 +f 121/888/68 132/902/67 120/889/67 +f 122/900/3 133/903/68 121/888/68 +f 123/899/69 134/904/3 122/900/3 +f 124/898/70 135/905/69 123/899/69 +f 125/906/6 136/907/70 124/898/70 +f 126/895/71 137/908/6 125/896/6 +f 127/894/72 138/909/71 126/895/71 +f 128/893/2 139/910/72 127/894/72 +f 129/892/73 140/911/2 128/893/2 +f 130/891/74 141/912/73 129/892/73 +f 119/890/12 142/913/74 130/891/74 +f 131/901/87 144/914/88 143/915/87 +f 131/901/87 154/916/89 142/913/89 +f 142/913/89 153/917/90 141/912/90 +f 141/912/90 152/918/91 140/911/91 +f 140/911/91 151/919/92 139/910/92 +f 139/910/92 150/920/93 138/909/93 +f 138/909/93 149/921/94 137/908/94 +f 136/907/95 149/922/94 148/923/95 +f 136/907/95 147/924/96 135/905/96 +f 134/904/97 147/924/96 146/925/97 +f 133/903/98 146/925/97 145/926/98 +f 132/902/88 145/926/98 144/914/88 +f 144/914/67 155/927/12 143/915/12 +f 145/926/68 156/928/67 144/914/67 +f 146/925/3 157/929/68 145/926/68 +f 147/924/69 158/930/3 146/925/3 +f 148/923/70 159/931/69 147/924/69 +f 149/922/6 160/932/70 148/923/70 +f 150/920/71 161/933/6 149/921/6 +f 151/919/72 162/934/71 150/920/71 +f 152/918/2 163/935/72 151/919/72 +f 153/917/73 164/936/2 152/918/2 +f 154/916/74 165/937/73 153/917/73 +f 143/915/12 166/938/74 154/916/74 +f 164/936/81 177/939/80 176/940/81 +f 165/937/80 178/941/79 177/939/80 +f 155/927/78 178/941/79 166/938/79 +f 156/928/77 167/942/78 155/927/78 +f 157/929/76 168/943/77 156/928/77 +f 158/930/75 169/944/76 157/929/76 +f 158/930/75 171/945/86 170/946/75 +f 160/932/85 171/945/86 159/931/86 +f 161/947/84 172/948/85 160/932/85 +f 162/934/83 173/949/84 161/933/84 +f 162/934/83 175/950/82 174/951/83 +f 163/935/82 176/940/81 175/950/82 +f 168/943/67 179/952/12 167/942/12 +f 169/944/68 180/953/67 168/943/67 +f 170/946/3 181/954/68 169/944/68 +f 171/945/69 182/955/3 170/946/3 +f 172/948/70 183/956/69 171/945/69 +f 173/957/6 184/958/70 172/948/70 +f 174/951/71 185/959/6 173/949/6 +f 175/950/72 186/960/71 174/951/71 +f 176/940/2 187/961/72 175/950/72 +f 177/939/73 188/962/2 176/940/2 +f 178/941/74 189/963/73 177/939/73 +f 167/942/12 190/964/74 178/941/74 +f 190/964/89 191/965/87 202/966/89 +f 180/953/88 191/965/87 179/952/87 +f 181/954/98 192/967/88 180/953/88 +f 181/954/98 194/968/97 193/969/98 +f 183/956/96 194/968/97 182/955/97 +f 183/956/96 196/970/95 195/971/96 +f 185/972/94 196/970/95 184/958/95 +f 185/959/94 198/973/93 197/974/94 +f 187/961/92 198/973/93 186/960/93 +f 188/962/91 199/975/92 187/961/92 +f 189/963/90 200/976/91 188/962/91 +f 189/963/90 202/966/89 201/977/90 +f 192/967/67 203/30/12 191/965/12 +f 193/969/68 204/53/67 192/967/67 +f 194/968/3 205/52/68 193/969/68 +f 195/971/69 206/50/3 194/968/3 +f 196/970/70 207/48/69 195/971/69 +f 197/978/6 208/46/70 196/970/70 +f 198/973/71 209/41/6 197/974/6 +f 199/975/72 210/40/71 198/973/71 +f 200/976/2 211/38/72 199/975/72 +f 201/977/73 212/36/2 200/976/2 +f 202/966/74 213/34/73 201/977/73 +f 191/965/12 214/32/74 202/966/74 +f 216/56/71 227/979/6 215/57/6 +f 217/54/72 228/980/71 216/55/71 +f 218/537/2 229/981/72 217/51/72 +f 219/536/73 230/982/2 218/49/2 +f 220/535/74 231/983/73 219/47/73 +f 221/534/12 232/984/74 220/45/74 +f 222/42/67 233/985/12 221/43/12 +f 223/533/68 234/986/67 222/39/67 +f 224/532/3 235/987/68 223/37/68 +f 225/531/69 236/988/3 224/35/3 +f 226/530/70 237/989/69 225/33/69 +f 215/529/6 238/990/70 226/31/70 +f 253/991/68 242/992/3 241/993/68 +f 260/994/2 249/995/73 248/996/2 +f 257/997/6 246/998/71 245/999/6 +f 254/1000/3 243/1001/69 242/992/3 +f 261/1002/73 250/1003/74 249/995/73 +f 251/1004/12 240/1005/67 239/1006/12 +f 258/1007/71 247/1008/72 246/998/71 +f 255/1009/69 244/1010/70 243/1001/69 +f 262/1011/74 239/1006/12 250/1003/74 +f 252/1012/67 241/993/68 240/1005/67 +f 259/1013/72 248/996/2 247/1008/72 +f 256/1014/70 245/1015/6 244/1010/70 +f 297/1016/2 290/1017/43 289/1018/2 +f 295/1019/6 288/1020/41 287/1021/6 +f 293/1022/3 286/1023/42 285/1024/3 +f 291/1025/12 284/1026/44 283/1027/12 +f 298/1028/43 283/1027/12 290/1017/43 +f 296/1029/41 289/1018/2 288/1020/41 +f 294/1030/42 287/1031/6 286/1023/42 +f 292/1032/44 285/1024/3 284/1026/44 +f 352/1033/12 353/1034/47 351/1035/12 +f 354/1036/47 355/1037/43 353/1034/47 +f 356/1038/43 357/1039/45 355/1037/43 +f 358/1040/45 359/1041/2 357/1039/45 +f 360/1042/2 361/1043/51 359/1041/2 +f 362/1044/51 363/1045/41 361/1043/51 +f 364/1046/41 365/1047/49 363/1045/41 +f 366/1048/49 367/1049/6 365/1047/49 +f 368/1050/6 369/1051/46 367/1052/6 +f 370/1053/46 371/1054/42 369/1051/46 +f 372/1055/42 373/1056/52 371/1054/42 +f 374/1057/52 375/1058/3 373/1056/52 +f 376/1059/3 377/1060/50 375/1058/3 +f 378/1061/50 379/1062/44 377/1060/50 +f 380/1063/44 381/1064/48 379/1062/44 +f 382/1065/48 351/1035/12 381/1064/48 +f 384/1066/12 385/1067/47 383/1068/12 +f 386/1069/47 387/1070/43 385/1067/47 +f 388/1071/43 389/1072/45 387/1070/43 +f 390/1073/45 391/1074/2 389/1072/45 +f 392/1075/2 393/1076/51 391/1074/2 +f 394/1077/51 395/1078/41 393/1076/51 +f 396/1079/41 397/1080/49 395/1078/41 +f 398/1081/49 399/1082/6 397/1080/49 +f 400/1083/6 401/1084/46 399/1085/6 +f 402/1086/46 403/1087/42 401/1084/46 +f 403/1087/42 406/1088/52 405/1089/52 +f 406/1088/52 407/1090/3 405/1089/52 +f 408/1091/3 409/1092/50 407/1090/3 +f 410/1093/50 411/1094/44 409/1092/50 +f 412/1095/44 413/1096/48 411/1094/44 +f 414/1097/48 383/1068/12 413/1096/48 +f 423/1098/1 438/1099/14 430/1100/14 +f 429/1101/6 436/1102/99 428/1103/99 +f 427/1104/9 434/1105/21 426/1106/21 +f 425/1107/12 432/1108/10 424/1109/10 +f 430/1100/14 437/1110/6 429/1111/6 +f 428/1103/99 435/1112/9 427/1104/9 +f 426/1106/21 433/1113/12 425/1107/12 +f 424/1109/10 431/1114/1 423/1098/1 +f 555/1115/72 566/1116/71 554/1117/71 +f 554/1117/71 565/1118/6 553/1119/6 +f 530/1120/100 531/1121/51 529/1122/100 +f 532/1123/51 533/1124/41 531/1121/51 +f 534/1125/41 535/1126/49 533/1124/41 +f 536/1127/49 537/1128/6 535/1126/49 +f 538/1129/6 539/1130/46 537/1128/6 +f 540/1131/46 541/1132/42 539/1130/46 +f 542/1133/42 543/1134/52 541/1132/42 +f 544/1135/52 545/1136/101 543/1134/52 +f 556/1137/2 567/1138/72 555/1115/72 +f 557/1139/73 568/1140/2 556/1137/2 +f 558/1141/74 569/1142/73 557/1139/73 +f 559/1143/12 570/1144/74 558/1141/74 +f 560/1145/67 571/1146/12 559/1147/12 +f 561/1148/68 572/1149/67 560/1145/67 +f 562/1150/3 573/1151/68 561/1148/68 +f 563/1152/69 574/1153/3 562/1150/3 +f 564/1154/70 575/1155/69 563/1152/69 +f 553/1119/6 576/1156/70 564/1154/70 +f 568/1140/81 579/1157/82 567/1138/82 +f 567/1138/82 578/1158/83 566/1116/83 +f 566/1116/83 577/1159/84 565/1118/84 +f 576/1156/85 577/1159/84 588/1160/85 +f 575/1155/86 588/1160/85 587/1161/86 +f 574/1153/75 587/1161/86 586/1162/75 +f 574/1153/75 585/1163/76 573/1151/76 +f 572/1149/77 585/1163/76 584/1164/77 +f 571/1146/78 584/1164/77 583/1165/78 +f 571/1166/78 582/1167/79 570/1144/79 +f 569/1142/80 582/1167/79 581/1168/80 +f 569/1142/80 580/1169/81 568/1140/81 +f 578/1158/71 589/1170/6 577/1159/6 +f 579/1157/72 590/1171/71 578/1158/71 +f 580/1169/2 591/1172/72 579/1157/72 +f 581/1168/73 592/1173/2 580/1169/2 +f 582/1167/74 593/1174/73 581/1168/73 +f 583/1175/12 594/1176/74 582/1167/74 +f 584/1164/67 595/1177/12 583/1165/12 +f 585/1163/68 596/1178/67 584/1164/67 +f 586/1162/3 597/1179/68 585/1163/68 +f 587/1161/69 598/1180/3 586/1162/3 +f 588/1160/70 599/1181/69 587/1161/69 +f 577/1159/6 600/1182/70 588/1160/70 +f 589/1170/94 602/1183/93 601/1184/94 +f 589/1170/94 612/1185/95 600/1182/95 +f 600/1182/95 611/1186/96 599/1181/96 +f 599/1181/96 610/1187/97 598/1180/97 +f 598/1180/97 609/1188/98 597/1179/98 +f 597/1179/98 608/1189/88 596/1178/88 +f 596/1178/88 607/1190/87 595/1177/87 +f 594/1176/89 607/1191/87 606/1192/89 +f 594/1176/89 605/1193/90 593/1174/90 +f 592/1173/91 605/1193/90 604/1194/91 +f 591/1172/92 604/1194/91 603/1195/92 +f 590/1171/93 603/1195/92 602/1183/93 +f 602/1183/71 613/1196/6 601/1184/6 +f 603/1195/72 614/1197/71 602/1183/71 +f 604/1194/2 615/1198/72 603/1195/72 +f 605/1193/73 616/1199/2 604/1194/2 +f 606/1192/74 617/1200/73 605/1193/73 +f 607/1191/12 618/1201/74 606/1192/74 +f 608/1189/67 619/1202/12 607/1190/12 +f 609/1188/68 620/1203/67 608/1189/67 +f 610/1187/3 621/1204/68 609/1188/68 +f 611/1186/69 622/1205/3 610/1187/3 +f 612/1185/70 623/1206/69 611/1186/69 +f 601/1184/6 624/1207/70 612/1185/70 +f 622/1205/75 635/1208/86 634/1209/75 +f 623/1206/86 636/1210/85 635/1208/86 +f 624/1207/85 625/1211/84 636/1210/85 +f 613/1196/84 626/1212/83 625/1211/84 +f 614/1197/83 627/1213/82 626/1212/83 +f 616/1199/81 627/1213/82 615/1198/82 +f 617/1200/80 628/1214/81 616/1199/81 +f 618/1201/79 629/1215/80 617/1200/80 +f 619/1216/78 630/1217/79 618/1201/79 +f 620/1203/77 631/1218/78 619/1202/78 +f 620/1203/77 633/1219/76 632/1220/77 +f 621/1204/76 634/1209/75 633/1219/76 +f 626/1212/71 637/1221/6 625/1211/6 +f 627/1213/72 638/1222/71 626/1212/71 +f 628/1214/2 639/1223/72 627/1213/72 +f 629/1215/73 640/1224/2 628/1214/2 +f 630/1217/74 641/1225/73 629/1215/73 +f 631/1226/12 642/1227/74 630/1217/74 +f 632/1220/67 643/1228/12 631/1218/12 +f 633/1219/68 644/1229/67 632/1220/67 +f 634/1209/3 645/1230/68 633/1219/68 +f 635/1208/69 646/1231/3 634/1209/3 +f 636/1210/70 647/1232/69 635/1208/69 +f 625/1211/6 648/1233/70 636/1210/70 +f 648/1233/95 649/1234/94 660/1235/95 +f 638/1222/93 649/1234/94 637/1221/94 +f 639/1223/92 650/1236/93 638/1222/93 +f 639/1223/92 652/1237/91 651/1238/92 +f 641/1225/90 652/1237/91 640/1224/91 +f 641/1225/90 654/1239/89 653/1240/90 +f 643/1241/87 654/1239/89 642/1227/89 +f 644/1229/88 655/1242/87 643/1228/87 +f 645/1230/98 656/1243/88 644/1229/88 +f 646/1231/97 657/1244/98 645/1230/98 +f 647/1232/96 658/1245/97 646/1231/97 +f 648/1233/95 659/1246/96 647/1232/96 +f 650/1236/71 661/342/6 649/1234/6 +f 651/1238/72 662/365/71 650/1236/71 +f 652/1237/2 663/364/72 651/1238/72 +f 653/1240/73 664/362/2 652/1237/2 +f 654/1239/74 665/360/73 653/1240/73 +f 655/1247/12 666/358/74 654/1239/74 +f 656/1243/67 667/353/12 655/1242/12 +f 657/1244/68 668/352/67 656/1243/67 +f 658/1245/3 669/350/68 657/1244/68 +f 659/1246/69 670/348/3 658/1245/3 +f 660/1235/70 671/346/69 659/1246/69 +f 649/1234/6 672/344/70 660/1235/70 +f 674/368/67 685/1248/12 673/369/12 +f 675/366/68 686/1249/67 674/367/67 +f 676/684/3 687/1250/68 675/363/68 +f 677/683/69 688/1251/3 676/361/3 +f 678/682/70 689/1252/69 677/359/69 +f 679/681/6 690/1253/70 678/357/70 +f 680/354/71 691/1254/6 679/355/6 +f 681/680/72 692/1255/71 680/351/71 +f 682/679/2 693/1256/72 681/349/72 +f 683/678/73 694/1257/2 682/347/2 +f 684/677/74 695/1258/73 683/345/73 +f 673/676/12 696/1259/74 684/343/74 +f 698/1260/74 709/1261/73 697/1262/73 +f 699/1263/12 710/1264/74 698/1260/74 +f 700/1265/67 711/1266/12 699/1263/12 +f 701/1267/68 712/1268/67 700/1265/67 +f 702/1269/3 713/1270/68 701/1267/68 +f 703/1271/69 714/1272/3 702/1269/3 +f 704/1273/70 715/1274/69 703/1275/69 +f 705/1276/6 716/1277/70 704/1273/70 +f 706/1278/71 717/1279/6 705/1276/6 +f 707/1280/72 718/1281/71 706/1278/71 +f 708/1282/2 719/1283/72 707/1280/72 +f 697/1262/73 720/1284/2 708/1282/2 +f 712/1268/77 723/1285/78 711/1266/78 +f 711/1266/78 722/1286/79 710/1264/79 +f 710/1264/79 721/1287/80 709/1261/80 +f 720/1284/81 721/1287/80 732/1288/81 +f 719/1283/82 732/1288/81 731/1289/82 +f 718/1281/83 731/1289/82 730/1290/83 +f 717/1279/84 730/1290/83 729/1291/84 +f 716/1277/85 729/1291/84 728/1292/85 +f 715/1274/86 728/1292/85 727/1293/86 +f 715/1294/86 726/1295/75 714/1272/75 +f 714/1272/75 725/1296/76 713/1270/76 +f 713/1270/76 724/1297/77 712/1268/77 +f 722/1286/74 733/1298/73 721/1287/73 +f 723/1285/12 734/1299/74 722/1286/74 +f 724/1297/67 735/1300/12 723/1285/12 +f 725/1296/68 736/1301/67 724/1297/67 +f 726/1295/3 737/1302/68 725/1296/68 +f 727/1303/69 738/1304/3 726/1295/3 +f 728/1292/70 739/1305/69 727/1293/69 +f 729/1291/6 740/1306/70 728/1292/70 +f 730/1290/71 741/1307/6 729/1291/6 +f 731/1289/72 742/1308/71 730/1290/71 +f 732/1288/2 743/1309/72 731/1289/72 +f 721/1287/73 744/1310/2 732/1288/2 +f 733/1298/90 746/1311/89 745/1312/90 +f 733/1298/90 756/1313/91 744/1310/91 +f 744/1310/91 755/1314/92 743/1309/92 +f 743/1309/92 754/1315/93 742/1308/93 +f 742/1308/93 753/1316/94 741/1307/94 +f 741/1307/94 752/1317/95 740/1306/95 +f 740/1306/95 751/1318/96 739/1305/96 +f 738/1304/97 751/1319/96 750/1320/97 +f 738/1304/97 749/1321/98 737/1302/98 +f 736/1301/88 749/1321/98 748/1322/88 +f 735/1300/87 748/1322/88 747/1323/87 +f 734/1299/89 747/1323/87 746/1311/89 +f 746/1311/74 757/1324/73 745/1312/73 +f 747/1323/12 758/1325/74 746/1311/74 +f 748/1322/67 759/1326/12 747/1323/12 +f 749/1321/68 760/1327/67 748/1322/67 +f 750/1320/3 761/1328/68 749/1321/68 +f 751/1319/69 762/1329/3 750/1320/3 +f 752/1317/70 763/1330/69 751/1318/69 +f 753/1316/6 764/1331/70 752/1317/70 +f 754/1315/71 765/1332/6 753/1316/6 +f 755/1314/72 766/1333/71 754/1315/71 +f 756/1313/2 767/1334/72 755/1314/72 +f 745/1312/73 768/1335/2 756/1313/2 +f 767/1334/82 778/1336/83 766/1333/83 +f 767/1334/82 780/1337/81 779/1338/82 +f 757/1324/80 780/1337/81 768/1335/81 +f 758/1325/79 769/1339/80 757/1324/80 +f 759/1326/78 770/1340/79 758/1325/79 +f 760/1327/77 771/1341/78 759/1326/78 +f 761/1328/76 772/1342/77 760/1327/77 +f 761/1328/76 774/1343/75 773/1344/76 +f 763/1345/86 774/1343/75 762/1329/75 +f 764/1331/85 775/1346/86 763/1330/86 +f 764/1331/85 777/1347/84 776/1348/85 +f 766/1333/83 777/1347/84 765/1332/84 +f 770/1340/74 781/1349/73 769/1339/73 +f 771/1341/12 782/1350/74 770/1340/74 +f 772/1342/67 783/1351/12 771/1341/12 +f 773/1344/68 784/1352/67 772/1342/67 +f 774/1343/3 785/1353/68 773/1344/68 +f 775/1354/69 786/1355/3 774/1343/3 +f 776/1348/70 787/1356/69 775/1346/69 +f 777/1347/6 788/1357/70 776/1348/70 +f 778/1336/71 789/1358/6 777/1347/6 +f 779/1338/72 790/1359/71 778/1336/71 +f 780/1337/2 791/1360/72 779/1338/72 +f 769/1339/73 792/1361/2 780/1337/2 +f 792/1361/91 793/1362/90 804/1363/91 +f 782/1350/89 793/1362/90 781/1349/90 +f 782/1350/89 795/1364/87 794/1365/89 +f 784/1352/88 795/1364/87 783/1351/87 +f 784/1352/88 797/1366/98 796/1367/88 +f 786/1355/97 797/1366/98 785/1353/98 +f 786/1355/97 799/1368/96 798/1369/97 +f 787/1356/96 800/1370/95 799/1371/96 +f 789/1358/94 800/1370/95 788/1357/95 +f 789/1358/94 802/1372/93 801/1373/94 +f 790/1359/93 803/1374/92 802/1372/93 +f 792/1361/91 803/1374/92 791/1360/92 +f 794/1365/74 805/373/73 793/1362/73 +f 795/1364/12 806/398/74 794/1365/74 +f 796/1367/67 807/396/12 795/1364/12 +f 797/1366/68 808/394/67 796/1367/67 +f 798/1369/3 809/392/68 797/1366/68 +f 799/1368/69 810/390/3 798/1369/3 +f 800/1370/70 811/385/69 799/1371/69 +f 801/1373/6 812/382/70 800/1370/70 +f 802/1372/71 813/381/6 801/1373/6 +f 803/1374/72 814/379/71 802/1372/71 +f 804/1363/2 815/377/72 803/1374/72 +f 793/1362/73 816/375/2 804/1363/2 +f 818/399/70 829/1375/69 817/400/69 +f 819/702/6 830/1376/70 818/397/70 +f 820/701/71 831/1377/6 819/395/6 +f 821/700/72 832/1378/71 820/393/71 +f 822/699/2 833/1379/72 821/391/72 +f 823/698/73 834/1380/2 822/389/2 +f 824/386/74 835/1381/73 823/387/73 +f 825/383/12 836/1382/74 824/384/74 +f 826/697/67 837/1383/12 825/380/12 +f 827/696/68 838/1384/67 826/378/67 +f 828/695/3 839/1385/68 827/376/68 +f 817/694/69 840/1386/3 828/374/3 +f 843/1387/6 854/1388/70 842/1389/70 +f 842/1389/70 853/1390/69 841/1391/69 +f 844/1392/71 855/1393/6 843/1387/6 +f 845/1394/72 856/1395/71 844/1392/71 +f 846/1396/2 857/1397/72 845/1394/72 +f 847/1398/73 858/1399/2 846/1396/2 +f 848/1400/74 859/1401/73 847/1402/73 +f 849/1403/12 860/1404/74 848/1400/74 +f 850/1405/67 861/1406/12 849/1403/12 +f 851/1407/68 862/1408/67 850/1405/67 +f 852/1409/3 863/1410/68 851/1407/68 +f 841/1391/69 864/1411/3 852/1409/3 +f 856/1395/83 867/1412/84 855/1393/84 +f 855/1393/84 866/1413/85 854/1388/85 +f 854/1388/85 865/1414/86 853/1390/86 +f 853/1390/86 876/1415/75 864/1411/75 +f 863/1410/76 876/1415/75 875/1416/76 +f 863/1410/76 874/1417/77 862/1408/77 +f 862/1408/77 873/1418/78 861/1406/78 +f 860/1404/79 873/1418/78 872/1419/79 +f 860/1404/79 871/1420/80 859/1401/80 +f 859/1421/80 870/1422/81 858/1399/81 +f 857/1397/82 870/1422/81 869/1423/82 +f 857/1397/82 868/1424/83 856/1395/83 +f 866/1413/70 877/1425/69 865/1414/69 +f 867/1412/6 878/1426/70 866/1413/70 +f 868/1424/71 879/1427/6 867/1412/6 +f 869/1423/72 880/1428/71 868/1424/71 +f 870/1422/2 881/1429/72 869/1423/72 +f 871/1430/73 882/1431/2 870/1422/2 +f 872/1419/74 883/1432/73 871/1420/73 +f 873/1418/12 884/1433/74 872/1419/74 +f 874/1417/67 885/1434/12 873/1418/12 +f 875/1416/68 886/1435/67 874/1417/67 +f 876/1415/3 887/1436/68 875/1416/68 +f 865/1414/69 888/1437/3 876/1415/3 +f 877/1425/96 890/1438/95 889/1439/96 +f 877/1425/96 900/1440/97 888/1437/97 +f 888/1437/97 899/1441/98 887/1436/98 +f 887/1436/98 898/1442/88 886/1435/88 +f 886/1435/88 897/1443/87 885/1434/87 +f 885/1434/87 896/1444/89 884/1433/89 +f 884/1433/89 895/1445/90 883/1432/90 +f 883/1446/90 894/1447/91 882/1431/91 +f 882/1431/91 893/1448/92 881/1429/92 +f 880/1428/93 893/1448/92 892/1449/93 +f 879/1427/94 892/1449/93 891/1450/94 +f 878/1426/95 891/1450/94 890/1438/95 +f 890/1438/70 901/1451/69 889/1439/69 +f 891/1450/6 902/1452/70 890/1438/70 +f 892/1449/71 903/1453/6 891/1450/6 +f 893/1448/72 904/1454/71 892/1449/71 +f 894/1447/2 905/1455/72 893/1448/72 +f 895/1456/73 906/1457/2 894/1447/2 +f 896/1444/74 907/1458/73 895/1445/73 +f 897/1443/12 908/1459/74 896/1444/74 +f 898/1442/67 909/1460/12 897/1443/12 +f 899/1441/68 910/1461/67 898/1442/67 +f 900/1440/3 911/1462/68 899/1441/68 +f 889/1439/69 912/1463/3 900/1440/3 +f 911/1462/76 922/1464/77 910/1461/77 +f 911/1462/76 924/1465/75 923/1466/76 +f 901/1451/86 924/1465/75 912/1463/75 +f 902/1452/85 913/1467/86 901/1451/86 +f 903/1453/84 914/1468/85 902/1452/85 +f 903/1453/84 916/1469/83 915/1470/84 +f 905/1455/82 916/1469/83 904/1454/83 +f 905/1455/82 918/1471/81 917/1472/82 +f 907/1473/80 918/1471/81 906/1457/81 +f 908/1459/79 919/1474/80 907/1458/80 +f 908/1459/79 921/1475/78 920/1476/79 +f 910/1461/77 921/1475/78 909/1460/78 +f 914/1468/70 925/1477/69 913/1467/69 +f 915/1470/6 926/1478/70 914/1468/70 +f 916/1469/71 927/1479/6 915/1470/6 +f 917/1472/72 928/1480/71 916/1469/71 +f 918/1471/2 929/1481/72 917/1472/72 +f 919/1482/73 930/1483/2 918/1471/2 +f 920/1476/74 931/1484/73 919/1474/73 +f 921/1475/12 932/1485/74 920/1476/74 +f 922/1464/67 933/1486/12 921/1475/12 +f 923/1466/68 934/1487/67 922/1464/67 +f 924/1465/3 935/1488/68 923/1466/68 +f 913/1467/69 936/1489/3 924/1465/3 +f 936/1489/97 937/1490/96 948/1491/97 +f 925/1477/96 938/1492/95 937/1490/96 +f 926/1478/95 939/1493/94 938/1492/95 +f 928/1480/93 939/1493/94 927/1479/94 +f 928/1480/93 941/1494/92 940/1495/93 +f 930/1483/91 941/1494/92 929/1481/92 +f 930/1483/91 943/1496/90 942/1497/91 +f 931/1484/90 944/1498/89 943/1499/90 +f 933/1486/87 944/1498/89 932/1485/89 +f 933/1486/87 946/1500/88 945/1501/87 +f 935/1488/98 946/1500/88 934/1487/88 +f 936/1489/97 947/1502/98 935/1488/98 +f 938/1492/70 949/404/69 937/1490/69 +f 939/1493/6 950/428/70 938/1492/70 +f 940/1495/71 951/427/6 939/1493/6 +f 941/1494/72 952/425/71 940/1495/71 +f 942/1497/2 953/423/72 941/1494/72 +f 943/1496/73 954/421/2 942/1497/2 +f 944/1498/74 955/416/73 943/1499/73 +f 945/1501/12 956/415/74 944/1498/74 +f 946/1500/67 957/411/12 945/1501/12 +f 947/1502/68 958/410/67 946/1500/67 +f 948/1491/3 959/408/68 947/1502/68 +f 937/1490/69 960/406/3 948/1491/3 +f 962/431/74 973/1503/73 961/432/73 +f 963/429/12 974/1504/74 962/430/74 +f 964/719/67 975/1505/12 963/426/12 +f 965/718/68 976/1506/67 964/424/67 +f 966/717/3 977/1507/68 965/422/68 +f 967/716/69 978/1508/3 966/420/3 +f 968/417/70 979/1509/69 967/418/69 +f 969/715/6 980/1510/70 968/414/70 +f 970/412/71 981/1511/6 969/413/6 +f 971/714/72 982/1512/71 970/409/71 +f 972/713/2 983/1513/72 971/407/72 +f 961/712/73 984/1514/2 972/405/2 +f 986/1515/2 997/1516/72 985/1517/72 +f 987/1518/73 998/1519/2 986/1515/2 +f 988/1520/74 999/1521/73 987/1518/73 +f 989/1522/12 1000/1523/74 988/1520/74 +f 990/1524/67 1001/1525/12 989/1522/12 +f 991/1526/68 1002/1527/67 990/1524/67 +f 992/1528/3 1003/1529/68 991/1530/68 +f 993/1531/69 1004/1532/3 992/1528/3 +f 994/1533/70 1005/1534/69 993/1531/69 +f 995/1535/6 1006/1536/70 994/1533/70 +f 996/1537/71 1007/1538/6 995/1535/6 +f 985/1517/72 1008/1539/71 996/1537/71 +f 1000/1523/79 1011/1540/80 999/1521/80 +f 999/1521/80 1010/1541/81 998/1519/81 +f 997/1516/82 1010/1541/81 1009/1542/82 +f 997/1516/82 1020/1543/83 1008/1539/83 +f 1007/1538/84 1020/1543/83 1019/1544/84 +f 1007/1538/84 1018/1545/85 1006/1536/85 +f 1006/1536/85 1017/1546/86 1005/1534/86 +f 1004/1532/75 1017/1546/86 1016/1547/75 +f 1003/1529/76 1016/1547/75 1015/1548/76 +f 1002/1527/77 1015/1549/76 1014/1550/77 +f 1002/1527/77 1013/1551/78 1001/1525/78 +f 1001/1525/78 1012/1552/79 1000/1523/79 +f 1010/1541/2 1021/1553/72 1009/1542/72 +f 1011/1540/73 1022/1554/2 1010/1541/2 +f 1012/1552/74 1023/1555/73 1011/1540/73 +f 1013/1551/12 1024/1556/74 1012/1552/74 +f 1014/1550/67 1025/1557/12 1013/1551/12 +f 1015/1549/68 1026/1558/67 1014/1550/67 +f 1016/1547/3 1027/1559/68 1015/1548/68 +f 1017/1546/69 1028/1560/3 1016/1547/3 +f 1018/1545/70 1029/1561/69 1017/1546/69 +f 1019/1544/6 1030/1562/70 1018/1545/70 +f 1020/1543/71 1031/1563/6 1019/1544/6 +f 1009/1542/72 1032/1564/71 1020/1543/71 +f 1022/1554/91 1033/1565/92 1021/1553/92 +f 1021/1553/92 1044/1566/93 1032/1564/93 +f 1032/1564/93 1043/1567/94 1031/1563/94 +f 1031/1563/94 1042/1568/95 1030/1562/95 +f 1030/1562/95 1041/1569/96 1029/1561/96 +f 1029/1561/96 1040/1570/97 1028/1560/97 +f 1028/1560/97 1039/1571/98 1027/1559/98 +f 1027/1572/98 1038/1573/88 1026/1558/88 +f 1025/1557/87 1038/1573/88 1037/1574/87 +f 1024/1556/89 1037/1574/87 1036/1575/89 +f 1023/1555/90 1036/1575/89 1035/1576/90 +f 1022/1554/91 1035/1576/90 1034/1577/91 +f 1034/1577/2 1045/1578/72 1033/1565/72 +f 1035/1576/73 1046/1579/2 1034/1577/2 +f 1036/1575/74 1047/1580/73 1035/1576/73 +f 1037/1574/12 1048/1581/74 1036/1575/74 +f 1038/1573/67 1049/1582/12 1037/1574/12 +f 1039/1583/68 1050/1584/67 1038/1573/67 +f 1040/1570/3 1051/1585/68 1039/1571/68 +f 1041/1569/69 1052/1586/3 1040/1570/3 +f 1042/1568/70 1053/1587/69 1041/1569/69 +f 1043/1567/6 1054/1588/70 1042/1568/70 +f 1044/1566/71 1055/1589/6 1043/1567/6 +f 1033/1565/72 1056/1590/71 1044/1566/71 +f 1054/1588/85 1067/1591/84 1066/1592/85 +f 1055/1589/84 1068/1593/83 1067/1591/84 +f 1045/1578/82 1068/1593/83 1056/1590/83 +f 1046/1579/81 1057/1594/82 1045/1578/82 +f 1047/1580/80 1058/1595/81 1046/1579/81 +f 1048/1581/79 1059/1596/80 1047/1580/80 +f 1049/1582/78 1060/1597/79 1048/1581/79 +f 1049/1582/78 1062/1598/77 1061/1599/78 +f 1051/1600/76 1062/1598/77 1050/1584/77 +f 1052/1586/75 1063/1601/76 1051/1585/76 +f 1052/1586/75 1065/1602/86 1064/1603/75 +f 1054/1588/85 1065/1602/86 1053/1587/86 +f 1058/1595/2 1069/1604/72 1057/1594/72 +f 1059/1596/73 1070/1605/2 1058/1595/2 +f 1060/1597/74 1071/1606/73 1059/1596/73 +f 1061/1599/12 1072/1607/74 1060/1597/74 +f 1062/1598/67 1073/1608/12 1061/1599/12 +f 1063/1609/68 1074/1610/67 1062/1598/67 +f 1064/1603/3 1075/1611/68 1063/1601/68 +f 1065/1602/69 1076/1612/3 1064/1603/3 +f 1066/1592/70 1077/1613/69 1065/1602/69 +f 1067/1591/6 1078/1614/70 1066/1592/70 +f 1068/1593/71 1079/1615/6 1067/1591/6 +f 1057/1594/72 1080/1616/71 1068/1593/71 +f 1080/1616/93 1081/1617/92 1092/1618/93 +f 1069/1604/92 1082/1619/91 1081/1617/92 +f 1070/1605/91 1083/1620/90 1082/1619/91 +f 1072/1607/89 1083/1620/90 1071/1606/90 +f 1073/1608/87 1084/1621/89 1072/1607/89 +f 1073/1608/87 1086/1622/88 1085/1623/87 +f 1074/1610/88 1087/1624/98 1086/1622/88 +f 1076/1612/97 1087/1625/98 1075/1611/98 +f 1077/1613/96 1088/1626/97 1076/1612/97 +f 1078/1614/95 1089/1627/96 1077/1613/96 +f 1079/1615/94 1090/1628/95 1078/1614/95 +f 1080/1616/93 1091/1629/94 1079/1615/94 +f 1082/1619/2 1093/436/72 1081/1617/72 +f 1083/1620/73 1094/462/2 1082/1619/2 +f 1084/1621/74 1095/460/73 1083/1620/73 +f 1085/1623/12 1096/458/74 1084/1621/74 +f 1086/1622/67 1097/456/12 1085/1623/12 +f 1087/1624/68 1098/454/67 1086/1622/67 +f 1088/1626/3 1099/449/68 1087/1625/68 +f 1089/1627/69 1100/446/3 1088/1626/3 +f 1090/1628/70 1101/443/69 1089/1627/69 +f 1091/1629/6 1102/442/70 1090/1628/70 +f 1092/1618/71 1103/440/6 1091/1629/6 +f 1081/1617/72 1104/438/71 1092/1618/71 +f 1106/463/3 1117/1630/68 1105/464/68 +f 1107/736/69 1118/1631/3 1106/461/3 +f 1108/735/70 1119/1632/69 1107/459/69 +f 1109/734/6 1120/1633/70 1108/457/70 +f 1110/733/71 1121/1634/6 1109/455/6 +f 1111/732/72 1122/1635/71 1110/453/71 +f 1112/450/2 1123/1636/72 1111/451/72 +f 1113/447/73 1124/1637/2 1112/448/2 +f 1114/444/74 1125/1638/73 1113/445/73 +f 1115/731/12 1126/1639/74 1114/441/74 +f 1116/730/67 1127/1640/12 1115/439/12 +f 1105/729/68 1128/1641/67 1116/437/67 +f 1131/1642/69 1142/1643/3 1130/1644/3 +f 1130/1644/3 1141/1645/68 1129/1646/68 +f 1132/1647/70 1143/1648/69 1131/1642/69 +f 1133/1649/6 1144/1650/70 1132/1647/70 +f 1134/1651/71 1145/1652/6 1133/1649/6 +f 1135/1653/72 1146/1654/71 1134/1651/71 +f 1136/1655/2 1147/1656/72 1135/1657/72 +f 1137/1658/73 1148/1659/2 1136/1655/2 +f 1138/1660/74 1149/1661/73 1137/1658/73 +f 1139/1662/12 1150/1663/74 1138/1660/74 +f 1140/1664/67 1151/1665/12 1139/1662/12 +f 1129/1646/68 1152/1666/67 1140/1664/67 +f 1144/1650/85 1155/1667/86 1143/1648/86 +f 1143/1648/86 1154/1668/75 1142/1643/75 +f 1142/1643/75 1153/1669/76 1141/1645/76 +f 1152/1666/77 1153/1669/76 1164/1670/77 +f 1151/1665/78 1164/1670/77 1163/1671/78 +f 1151/1665/78 1162/1672/79 1150/1663/79 +f 1150/1663/79 1161/1673/80 1149/1661/80 +f 1148/1659/81 1161/1673/80 1160/1674/81 +f 1147/1656/82 1160/1674/81 1159/1675/82 +f 1147/1676/82 1158/1677/83 1146/1654/83 +f 1145/1652/84 1158/1677/83 1157/1678/84 +f 1145/1652/84 1156/1679/85 1144/1650/85 +f 1154/1668/3 1165/1680/68 1153/1669/68 +f 1155/1667/69 1166/1681/3 1154/1668/3 +f 1156/1679/70 1167/1682/69 1155/1667/69 +f 1157/1678/6 1168/1683/70 1156/1679/70 +f 1158/1677/71 1169/1684/6 1157/1678/6 +f 1159/1685/72 1170/1686/71 1158/1677/71 +f 1160/1674/2 1171/1687/72 1159/1675/72 +f 1161/1673/73 1172/1688/2 1160/1674/2 +f 1162/1672/74 1173/1689/73 1161/1673/73 +f 1163/1671/12 1174/1690/74 1162/1672/74 +f 1164/1670/67 1175/1691/12 1163/1671/12 +f 1153/1669/68 1176/1692/67 1164/1670/67 +f 1165/1680/98 1178/1693/97 1177/1694/98 +f 1165/1680/98 1188/1695/88 1176/1692/88 +f 1176/1692/88 1187/1696/87 1175/1691/87 +f 1175/1691/87 1186/1697/89 1174/1690/89 +f 1174/1690/89 1185/1698/90 1173/1689/90 +f 1173/1689/90 1184/1699/91 1172/1688/91 +f 1172/1688/91 1183/1700/92 1171/1687/92 +f 1171/1701/92 1182/1702/93 1170/1686/93 +f 1169/1684/94 1182/1702/93 1181/1703/94 +f 1168/1683/95 1181/1703/94 1180/1704/95 +f 1167/1682/96 1180/1704/95 1179/1705/96 +f 1166/1681/97 1179/1705/96 1178/1693/97 +f 1178/1693/3 1189/1706/68 1177/1694/68 +f 1179/1705/69 1190/1707/3 1178/1693/3 +f 1180/1704/70 1191/1708/69 1179/1705/69 +f 1181/1703/6 1192/1709/70 1180/1704/70 +f 1182/1702/71 1193/1710/6 1181/1703/6 +f 1183/1711/72 1194/1712/71 1182/1702/71 +f 1184/1699/2 1195/1713/72 1183/1700/72 +f 1185/1698/73 1196/1714/2 1184/1699/2 +f 1186/1697/74 1197/1715/73 1185/1698/73 +f 1187/1696/12 1198/1716/74 1186/1697/74 +f 1188/1695/67 1199/1717/12 1187/1696/12 +f 1177/1694/68 1200/1718/67 1188/1695/67 +f 1198/1716/79 1211/1719/78 1210/1720/79 +f 1199/1717/78 1212/1721/77 1211/1719/78 +f 1189/1706/76 1212/1721/77 1200/1718/77 +f 1190/1707/75 1201/1722/76 1189/1706/76 +f 1191/1708/86 1202/1723/75 1190/1707/75 +f 1192/1709/85 1203/1724/86 1191/1708/86 +f 1193/1710/84 1204/1725/85 1192/1709/85 +f 1194/1712/83 1205/1726/84 1193/1710/84 +f 1195/1727/82 1206/1728/83 1194/1712/83 +f 1196/1714/81 1207/1729/82 1195/1713/82 +f 1196/1714/81 1209/1730/80 1208/1731/81 +f 1198/1716/79 1209/1730/80 1197/1715/80 +f 1202/1723/3 1213/1732/68 1201/1722/68 +f 1203/1724/69 1214/1733/3 1202/1723/3 +f 1204/1725/70 1215/1734/69 1203/1724/69 +f 1205/1726/6 1216/1735/70 1204/1725/70 +f 1206/1728/71 1217/1736/6 1205/1726/6 +f 1207/1737/72 1218/1738/71 1206/1728/71 +f 1208/1731/2 1219/1739/72 1207/1729/72 +f 1209/1730/73 1220/1740/2 1208/1731/2 +f 1210/1720/74 1221/1741/73 1209/1730/73 +f 1211/1719/12 1222/1742/74 1210/1720/74 +f 1212/1721/67 1223/1743/12 1211/1719/12 +f 1201/1722/68 1224/1744/67 1212/1721/67 +f 1224/1744/88 1225/1745/98 1236/1746/88 +f 1213/1732/98 1226/1747/97 1225/1745/98 +f 1214/1733/97 1227/1748/96 1226/1747/97 +f 1215/1734/96 1228/1749/95 1227/1748/96 +f 1216/1735/95 1229/1750/94 1228/1749/95 +f 1218/1738/93 1229/1750/94 1217/1736/94 +f 1219/1751/92 1230/1752/93 1218/1738/93 +f 1220/1740/91 1231/1753/92 1219/1739/92 +f 1221/1741/90 1232/1754/91 1220/1740/91 +f 1221/1741/90 1234/1755/89 1233/1756/90 +f 1223/1743/87 1234/1755/89 1222/1742/89 +f 1223/1743/87 1236/1746/88 1235/1757/87 +f 1226/1747/3 1237/468/68 1225/1745/68 +f 1227/1748/69 1238/492/3 1226/1747/3 +f 1228/1749/70 1239/491/69 1227/1748/69 +f 1229/1750/6 1240/489/70 1228/1749/70 +f 1230/1752/71 1241/487/6 1229/1750/6 +f 1231/1758/72 1242/485/71 1230/1752/71 +f 1232/1754/2 1243/480/72 1231/1753/72 +f 1233/1756/73 1244/479/2 1232/1754/2 +f 1234/1755/74 1245/475/73 1233/1756/73 +f 1235/1757/12 1246/474/74 1234/1755/74 +f 1236/1746/67 1247/472/12 1235/1757/12 +f 1225/1745/68 1248/470/67 1236/1746/67 +f 1250/754/2 1261/1759/72 1249/495/72 +f 1251/493/73 1262/1760/2 1250/494/2 +f 1252/753/74 1263/1761/73 1251/490/73 +f 1253/752/12 1264/1762/74 1252/488/74 +f 1254/751/67 1265/1763/12 1253/486/12 +f 1255/750/68 1266/1764/67 1254/484/67 +f 1256/481/3 1267/1765/68 1255/482/68 +f 1257/749/69 1268/1766/3 1256/478/3 +f 1258/476/70 1269/1767/69 1257/477/69 +f 1259/748/6 1270/1768/70 1258/473/70 +f 1260/747/71 1271/1769/6 1259/471/6 +f 1249/746/72 1272/1770/71 1260/469/71 +f 30/764/45 31/770/43 15/765/43 +f 23/767/42 24/772/46 8/768/46 +f 31/770/43 32/777/47 16/771/47 +f 24/772/46 25/807/6 9/773/6 +f 17/774/12 18/781/48 2/775/48 +f 32/777/47 17/774/12 1/776/12 +f 25/778/6 26/783/49 10/779/49 +f 18/781/48 19/785/44 3/782/44 +f 26/783/49 27/787/41 11/784/41 +f 19/785/44 20/789/50 4/786/50 +f 27/787/41 28/791/51 12/788/51 +f 20/789/50 21/793/3 5/790/3 +f 28/791/51 29/795/2 13/792/2 +f 21/793/3 22/796/52 6/794/52 +f 29/795/2 30/764/45 14/766/45 +f 22/796/52 23/767/42 7/769/42 +f 47/797/53 48/1771/54 32/777/54 +f 48/798/54 33/1772/55 17/774/55 +f 33/799/55 34/1773/56 18/781/56 +f 34/800/56 35/1774/57 19/785/57 +f 35/801/57 36/1775/58 20/789/58 +f 20/789/58 36/1776/58 37/802/37 +f 37/803/37 38/1777/59 22/796/59 +f 22/796/59 38/1778/59 39/804/60 +f 39/805/60 40/1779/61 24/772/61 +f 40/806/61 41/1780/62 25/807/62 +f 41/808/62 42/843/63 26/783/63 +f 26/783/63 42/1781/63 43/809/64 +f 27/787/64 43/1782/64 44/810/65 +f 44/811/65 45/1783/31 29/795/31 +f 45/812/31 46/1784/66 30/764/66 +f 46/813/66 47/1785/53 31/770/53 +f 35/814/44 51/844/44 52/815/50 +f 43/817/41 59/845/41 60/818/51 +f 36/816/50 52/815/50 53/820/3 +f 44/819/51 60/818/51 61/822/2 +f 37/821/3 53/820/3 54/824/52 +f 45/823/2 61/822/2 62/826/45 +f 38/825/52 54/824/52 55/828/42 +f 46/827/45 62/826/45 63/830/43 +f 39/829/42 55/828/42 56/832/46 +f 47/831/43 63/830/43 64/834/47 +f 40/833/46 56/832/46 57/836/6 +f 33/838/12 49/841/12 50/839/48 +f 48/835/47 64/834/47 49/841/12 +f 41/808/6 57/857/6 58/842/49 +f 34/840/48 50/839/48 51/844/44 +f 42/843/49 58/842/49 59/845/41 +f 62/826/66 78/1786/66 79/846/53 +f 79/847/53 80/1787/54 64/834/54 +f 80/848/54 65/1788/55 49/841/55 +f 65/849/55 66/1789/56 50/839/56 +f 66/850/56 67/1790/57 51/844/57 +f 51/844/57 67/1791/57 68/851/58 +f 52/815/58 68/1792/58 69/852/37 +f 69/853/37 70/1793/59 54/824/59 +f 70/854/59 71/1794/60 55/828/60 +f 55/828/60 71/1795/60 72/855/61 +f 56/832/61 72/1796/61 73/856/62 +f 57/857/62 73/1797/62 74/858/63 +f 58/842/63 74/1798/63 75/859/64 +f 75/860/64 76/1799/65 60/818/65 +f 60/818/65 76/1800/65 77/861/31 +f 77/862/31 78/1801/66 62/826/66 +f 96/863/67 108/867/67 107/864/12 +f 97/866/68 109/869/68 108/867/67 +f 98/868/3 110/871/3 109/869/68 +f 99/870/69 111/873/69 110/871/3 +f 100/872/70 112/875/70 111/873/69 +f 101/874/6 113/897/6 112/875/70 +f 102/876/71 114/880/71 113/877/6 +f 103/879/72 115/882/72 114/880/71 +f 104/881/2 116/884/2 115/882/72 +f 105/883/73 117/886/73 116/884/2 +f 106/885/74 118/887/74 117/886/73 +f 95/865/12 107/864/12 118/887/74 +f 110/871/75 122/900/75 121/888/76 +f 109/869/76 121/888/76 120/889/77 +f 108/867/77 120/889/77 119/890/78 +f 118/887/79 107/864/78 119/890/78 +f 117/886/80 118/887/79 130/891/79 +f 116/884/81 117/886/80 129/892/80 +f 115/882/82 116/884/81 128/893/81 +f 114/880/83 115/882/82 127/894/82 +f 113/877/84 114/880/83 126/895/83 +f 113/897/84 125/906/84 124/898/85 +f 111/873/86 112/875/85 124/898/85 +f 111/873/86 123/899/86 122/900/75 +f 120/889/67 132/902/67 131/901/12 +f 121/888/68 133/903/68 132/902/67 +f 122/900/3 134/904/3 133/903/68 +f 123/899/69 135/905/69 134/904/3 +f 124/898/70 136/907/70 135/905/69 +f 125/906/6 137/1802/6 136/907/70 +f 126/895/71 138/909/71 137/908/6 +f 127/894/72 139/910/72 138/909/71 +f 128/893/2 140/911/2 139/910/72 +f 129/892/73 141/912/73 140/911/2 +f 130/891/74 142/913/74 141/912/73 +f 119/890/12 131/901/12 142/913/74 +f 131/901/87 132/902/88 144/914/88 +f 131/901/87 143/915/87 154/916/89 +f 142/913/89 154/916/89 153/917/90 +f 141/912/90 153/917/90 152/918/91 +f 140/911/91 152/918/91 151/919/92 +f 139/910/92 151/919/92 150/920/93 +f 138/909/93 150/920/93 149/921/94 +f 136/907/95 137/1802/94 149/922/94 +f 136/907/95 148/923/95 147/924/96 +f 134/904/97 135/905/96 147/924/96 +f 133/903/98 134/904/97 146/925/97 +f 132/902/88 133/903/98 145/926/98 +f 144/914/67 156/928/67 155/927/12 +f 145/926/68 157/929/68 156/928/67 +f 146/925/3 158/930/3 157/929/68 +f 147/924/69 159/931/69 158/930/3 +f 148/923/70 160/932/70 159/931/69 +f 149/922/6 161/947/6 160/932/70 +f 150/920/71 162/934/71 161/933/6 +f 151/919/72 163/935/72 162/934/71 +f 152/918/2 164/936/2 163/935/72 +f 153/917/73 165/937/73 164/936/2 +f 154/916/74 166/938/74 165/937/73 +f 143/915/12 155/927/12 166/938/74 +f 164/936/81 165/937/80 177/939/80 +f 165/937/80 166/938/79 178/941/79 +f 155/927/78 167/942/78 178/941/79 +f 156/928/77 168/943/77 167/942/78 +f 157/929/76 169/944/76 168/943/77 +f 158/930/75 170/946/75 169/944/76 +f 158/930/75 159/931/86 171/945/86 +f 160/932/85 172/948/85 171/945/86 +f 161/947/84 173/957/84 172/948/85 +f 162/934/83 174/951/83 173/949/84 +f 162/934/83 163/935/82 175/950/82 +f 163/935/82 164/936/81 176/940/81 +f 168/943/67 180/953/67 179/952/12 +f 169/944/68 181/954/68 180/953/67 +f 170/946/3 182/955/3 181/954/68 +f 171/945/69 183/956/69 182/955/3 +f 172/948/70 184/958/70 183/956/69 +f 173/957/6 185/972/6 184/958/70 +f 174/951/71 186/960/71 185/959/6 +f 175/950/72 187/961/72 186/960/71 +f 176/940/2 188/962/2 187/961/72 +f 177/939/73 189/963/73 188/962/2 +f 178/941/74 190/964/74 189/963/73 +f 167/942/12 179/952/12 190/964/74 +f 190/964/89 179/952/87 191/965/87 +f 180/953/88 192/967/88 191/965/87 +f 181/954/98 193/969/98 192/967/88 +f 181/954/98 182/955/97 194/968/97 +f 183/956/96 195/971/96 194/968/97 +f 183/956/96 184/958/95 196/970/95 +f 185/972/94 197/978/94 196/970/95 +f 185/959/94 186/960/93 198/973/93 +f 187/961/92 199/975/92 198/973/93 +f 188/962/91 200/976/91 199/975/92 +f 189/963/90 201/977/90 200/976/91 +f 189/963/90 190/964/89 202/966/89 +f 192/967/67 204/53/67 203/30/12 +f 193/969/68 205/52/68 204/53/67 +f 194/968/3 206/50/3 205/52/68 +f 195/971/69 207/48/69 206/50/3 +f 196/970/70 208/46/70 207/48/69 +f 197/978/6 209/44/6 208/46/70 +f 198/973/71 210/40/71 209/41/6 +f 199/975/72 211/38/72 210/40/71 +f 200/976/2 212/36/2 211/38/72 +f 201/977/73 213/34/73 212/36/2 +f 202/966/74 214/32/74 213/34/73 +f 191/965/12 203/30/12 214/32/74 +f 216/56/71 228/1803/71 227/979/6 +f 217/54/72 229/1804/72 228/980/71 +f 218/537/2 230/1805/2 229/981/72 +f 219/536/73 231/1806/73 230/982/2 +f 220/535/74 232/1807/74 231/983/73 +f 221/534/12 233/1808/12 232/984/74 +f 222/42/67 234/1809/67 233/985/12 +f 223/533/68 235/1810/68 234/986/67 +f 224/532/3 236/1811/3 235/987/68 +f 225/531/69 237/1812/69 236/988/3 +f 226/530/70 238/1813/70 237/989/69 +f 215/529/6 227/1814/6 238/990/70 +f 253/991/68 254/1000/3 242/992/3 +f 260/994/2 261/1002/73 249/995/73 +f 257/997/6 258/1007/71 246/998/71 +f 254/1000/3 255/1009/69 243/1001/69 +f 261/1002/73 262/1011/74 250/1003/74 +f 251/1004/12 252/1012/67 240/1005/67 +f 258/1007/71 259/1013/72 247/1008/72 +f 255/1009/69 256/1014/70 244/1010/70 +f 262/1011/74 251/1004/12 239/1006/12 +f 252/1012/67 253/991/68 241/993/68 +f 259/1013/72 260/994/2 248/996/2 +f 256/1014/70 257/1815/6 245/1015/6 +f 297/1016/2 298/1028/43 290/1017/43 +f 295/1019/6 296/1029/41 288/1020/41 +f 293/1022/3 294/1030/42 286/1023/42 +f 291/1025/12 292/1032/44 284/1026/44 +f 298/1028/43 291/1025/12 283/1027/12 +f 296/1029/41 297/1016/2 289/1018/2 +f 294/1030/42 295/1816/6 287/1031/6 +f 292/1032/44 293/1022/3 285/1024/3 +f 352/1033/12 354/1036/47 353/1034/47 +f 354/1036/47 356/1038/43 355/1037/43 +f 356/1038/43 358/1040/45 357/1039/45 +f 358/1040/45 360/1042/2 359/1041/2 +f 360/1042/2 362/1044/51 361/1043/51 +f 362/1044/51 364/1046/41 363/1045/41 +f 364/1046/41 366/1048/49 365/1047/49 +f 366/1048/49 368/1817/6 367/1049/6 +f 368/1050/6 370/1053/46 369/1051/46 +f 370/1053/46 372/1055/42 371/1054/42 +f 372/1055/42 374/1057/52 373/1056/52 +f 374/1057/52 376/1059/3 375/1058/3 +f 376/1059/3 378/1061/50 377/1060/50 +f 378/1061/50 380/1063/44 379/1062/44 +f 380/1063/44 382/1065/48 381/1064/48 +f 382/1065/48 352/1033/12 351/1035/12 +f 384/1066/12 386/1069/47 385/1067/47 +f 386/1069/47 388/1071/43 387/1070/43 +f 388/1071/43 390/1073/45 389/1072/45 +f 390/1073/45 392/1075/2 391/1074/2 +f 392/1075/2 394/1077/51 393/1076/51 +f 394/1077/51 396/1079/41 395/1078/41 +f 396/1079/41 398/1081/49 397/1080/49 +f 398/1081/49 400/1818/6 399/1082/6 +f 400/1083/6 402/1086/46 401/1084/46 +f 402/1086/46 404/1819/42 403/1087/42 +f 403/1087/42 404/1819/42 406/1088/52 +f 406/1088/52 408/1091/3 407/1090/3 +f 408/1091/3 410/1093/50 409/1092/50 +f 410/1093/50 412/1095/44 411/1094/44 +f 412/1095/44 414/1097/48 413/1096/48 +f 414/1097/48 384/1066/12 383/1068/12 +f 423/1098/1 431/1114/1 438/1099/14 +f 429/1101/6 437/1820/6 436/1102/99 +f 427/1104/9 435/1112/9 434/1105/21 +f 425/1107/12 433/1113/12 432/1108/10 +f 430/1100/14 438/1099/14 437/1110/6 +f 428/1103/99 436/1102/99 435/1112/9 +f 426/1106/21 434/1105/21 433/1113/12 +f 424/1109/10 432/1108/10 431/1114/1 +f 555/1115/72 567/1138/72 566/1116/71 +f 554/1117/71 566/1116/71 565/1118/6 +f 530/1120/100 532/1123/51 531/1121/51 +f 532/1123/51 534/1125/41 533/1124/41 +f 534/1125/41 536/1127/49 535/1126/49 +f 536/1127/49 538/1129/6 537/1128/6 +f 538/1129/6 540/1131/46 539/1130/46 +f 540/1131/46 542/1133/42 541/1132/42 +f 542/1133/42 544/1135/52 543/1134/52 +f 544/1135/52 546/1821/101 545/1136/101 +f 556/1137/2 568/1140/2 567/1138/72 +f 557/1139/73 569/1142/73 568/1140/2 +f 558/1141/74 570/1144/74 569/1142/73 +f 559/1143/12 571/1166/12 570/1144/74 +f 560/1145/67 572/1149/67 571/1146/12 +f 561/1148/68 573/1151/68 572/1149/67 +f 562/1150/3 574/1153/3 573/1151/68 +f 563/1152/69 575/1155/69 574/1153/3 +f 564/1154/70 576/1156/70 575/1155/69 +f 553/1119/6 565/1118/6 576/1156/70 +f 568/1140/81 580/1169/81 579/1157/82 +f 567/1138/82 579/1157/82 578/1158/83 +f 566/1116/83 578/1158/83 577/1159/84 +f 576/1156/85 565/1118/84 577/1159/84 +f 575/1155/86 576/1156/85 588/1160/85 +f 574/1153/75 575/1155/86 587/1161/86 +f 574/1153/75 586/1162/75 585/1163/76 +f 572/1149/77 573/1151/76 585/1163/76 +f 571/1146/78 572/1149/77 584/1164/77 +f 571/1166/78 583/1175/78 582/1167/79 +f 569/1142/80 570/1144/79 582/1167/79 +f 569/1142/80 581/1168/80 580/1169/81 +f 578/1158/71 590/1171/71 589/1170/6 +f 579/1157/72 591/1172/72 590/1171/71 +f 580/1169/2 592/1173/2 591/1172/72 +f 581/1168/73 593/1174/73 592/1173/2 +f 582/1167/74 594/1176/74 593/1174/73 +f 583/1175/12 595/1822/12 594/1176/74 +f 584/1164/67 596/1178/67 595/1177/12 +f 585/1163/68 597/1179/68 596/1178/67 +f 586/1162/3 598/1180/3 597/1179/68 +f 587/1161/69 599/1181/69 598/1180/3 +f 588/1160/70 600/1182/70 599/1181/69 +f 577/1159/6 589/1170/6 600/1182/70 +f 589/1170/94 590/1171/93 602/1183/93 +f 589/1170/94 601/1184/94 612/1185/95 +f 600/1182/95 612/1185/95 611/1186/96 +f 599/1181/96 611/1186/96 610/1187/97 +f 598/1180/97 610/1187/97 609/1188/98 +f 597/1179/98 609/1188/98 608/1189/88 +f 596/1178/88 608/1189/88 607/1190/87 +f 594/1176/89 595/1822/87 607/1191/87 +f 594/1176/89 606/1192/89 605/1193/90 +f 592/1173/91 593/1174/90 605/1193/90 +f 591/1172/92 592/1173/91 604/1194/91 +f 590/1171/93 591/1172/92 603/1195/92 +f 602/1183/71 614/1197/71 613/1196/6 +f 603/1195/72 615/1198/72 614/1197/71 +f 604/1194/2 616/1199/2 615/1198/72 +f 605/1193/73 617/1200/73 616/1199/2 +f 606/1192/74 618/1201/74 617/1200/73 +f 607/1191/12 619/1216/12 618/1201/74 +f 608/1189/67 620/1203/67 619/1202/12 +f 609/1188/68 621/1204/68 620/1203/67 +f 610/1187/3 622/1205/3 621/1204/68 +f 611/1186/69 623/1206/69 622/1205/3 +f 612/1185/70 624/1207/70 623/1206/69 +f 601/1184/6 613/1196/6 624/1207/70 +f 622/1205/75 623/1206/86 635/1208/86 +f 623/1206/86 624/1207/85 636/1210/85 +f 624/1207/85 613/1196/84 625/1211/84 +f 613/1196/84 614/1197/83 626/1212/83 +f 614/1197/83 615/1198/82 627/1213/82 +f 616/1199/81 628/1214/81 627/1213/82 +f 617/1200/80 629/1215/80 628/1214/81 +f 618/1201/79 630/1217/79 629/1215/80 +f 619/1216/78 631/1226/78 630/1217/79 +f 620/1203/77 632/1220/77 631/1218/78 +f 620/1203/77 621/1204/76 633/1219/76 +f 621/1204/76 622/1205/75 634/1209/75 +f 626/1212/71 638/1222/71 637/1221/6 +f 627/1213/72 639/1223/72 638/1222/71 +f 628/1214/2 640/1224/2 639/1223/72 +f 629/1215/73 641/1225/73 640/1224/2 +f 630/1217/74 642/1227/74 641/1225/73 +f 631/1226/12 643/1241/12 642/1227/74 +f 632/1220/67 644/1229/67 643/1228/12 +f 633/1219/68 645/1230/68 644/1229/67 +f 634/1209/3 646/1231/3 645/1230/68 +f 635/1208/69 647/1232/69 646/1231/3 +f 636/1210/70 648/1233/70 647/1232/69 +f 625/1211/6 637/1221/6 648/1233/70 +f 648/1233/95 637/1221/94 649/1234/94 +f 638/1222/93 650/1236/93 649/1234/94 +f 639/1223/92 651/1238/92 650/1236/93 +f 639/1223/92 640/1224/91 652/1237/91 +f 641/1225/90 653/1240/90 652/1237/91 +f 641/1225/90 642/1227/89 654/1239/89 +f 643/1241/87 655/1247/87 654/1239/89 +f 644/1229/88 656/1243/88 655/1242/87 +f 645/1230/98 657/1244/98 656/1243/88 +f 646/1231/97 658/1245/97 657/1244/98 +f 647/1232/96 659/1246/96 658/1245/97 +f 648/1233/95 660/1235/95 659/1246/96 +f 650/1236/71 662/365/71 661/342/6 +f 651/1238/72 663/364/72 662/365/71 +f 652/1237/2 664/362/2 663/364/72 +f 653/1240/73 665/360/73 664/362/2 +f 654/1239/74 666/358/74 665/360/73 +f 655/1247/12 667/356/12 666/358/74 +f 656/1243/67 668/352/67 667/353/12 +f 657/1244/68 669/350/68 668/352/67 +f 658/1245/3 670/348/3 669/350/68 +f 659/1246/69 671/346/69 670/348/3 +f 660/1235/70 672/344/70 671/346/69 +f 649/1234/6 661/342/6 672/344/70 +f 674/368/67 686/1823/67 685/1248/12 +f 675/366/68 687/1824/68 686/1249/67 +f 676/684/3 688/1825/3 687/1250/68 +f 677/683/69 689/1826/69 688/1251/3 +f 678/682/70 690/1827/70 689/1252/69 +f 679/681/6 691/1828/6 690/1253/70 +f 680/354/71 692/1829/71 691/1254/6 +f 681/680/72 693/1830/72 692/1255/71 +f 682/679/2 694/1831/2 693/1256/72 +f 683/678/73 695/1832/73 694/1257/2 +f 684/677/74 696/1833/74 695/1258/73 +f 673/676/12 685/1834/12 696/1259/74 +f 698/1260/74 710/1264/74 709/1261/73 +f 699/1263/12 711/1266/12 710/1264/74 +f 700/1265/67 712/1268/67 711/1266/12 +f 701/1267/68 713/1270/68 712/1268/67 +f 702/1269/3 714/1272/3 713/1270/68 +f 703/1271/69 715/1294/69 714/1272/3 +f 704/1273/70 716/1277/70 715/1274/69 +f 705/1276/6 717/1279/6 716/1277/70 +f 706/1278/71 718/1281/71 717/1279/6 +f 707/1280/72 719/1283/72 718/1281/71 +f 708/1282/2 720/1284/2 719/1283/72 +f 697/1262/73 709/1261/73 720/1284/2 +f 712/1268/77 724/1297/77 723/1285/78 +f 711/1266/78 723/1285/78 722/1286/79 +f 710/1264/79 722/1286/79 721/1287/80 +f 720/1284/81 709/1261/80 721/1287/80 +f 719/1283/82 720/1284/81 732/1288/81 +f 718/1281/83 719/1283/82 731/1289/82 +f 717/1279/84 718/1281/83 730/1290/83 +f 716/1277/85 717/1279/84 729/1291/84 +f 715/1274/86 716/1277/85 728/1292/85 +f 715/1294/86 727/1303/86 726/1295/75 +f 714/1272/75 726/1295/75 725/1296/76 +f 713/1270/76 725/1296/76 724/1297/77 +f 722/1286/74 734/1299/74 733/1298/73 +f 723/1285/12 735/1300/12 734/1299/74 +f 724/1297/67 736/1301/67 735/1300/12 +f 725/1296/68 737/1302/68 736/1301/67 +f 726/1295/3 738/1304/3 737/1302/68 +f 727/1303/69 739/1835/69 738/1304/3 +f 728/1292/70 740/1306/70 739/1305/69 +f 729/1291/6 741/1307/6 740/1306/70 +f 730/1290/71 742/1308/71 741/1307/6 +f 731/1289/72 743/1309/72 742/1308/71 +f 732/1288/2 744/1310/2 743/1309/72 +f 721/1287/73 733/1298/73 744/1310/2 +f 733/1298/90 734/1299/89 746/1311/89 +f 733/1298/90 745/1312/90 756/1313/91 +f 744/1310/91 756/1313/91 755/1314/92 +f 743/1309/92 755/1314/92 754/1315/93 +f 742/1308/93 754/1315/93 753/1316/94 +f 741/1307/94 753/1316/94 752/1317/95 +f 740/1306/95 752/1317/95 751/1318/96 +f 738/1304/97 739/1835/96 751/1319/96 +f 738/1304/97 750/1320/97 749/1321/98 +f 736/1301/88 737/1302/98 749/1321/98 +f 735/1300/87 736/1301/88 748/1322/88 +f 734/1299/89 735/1300/87 747/1323/87 +f 746/1311/74 758/1325/74 757/1324/73 +f 747/1323/12 759/1326/12 758/1325/74 +f 748/1322/67 760/1327/67 759/1326/12 +f 749/1321/68 761/1328/68 760/1327/67 +f 750/1320/3 762/1329/3 761/1328/68 +f 751/1319/69 763/1345/69 762/1329/3 +f 752/1317/70 764/1331/70 763/1330/69 +f 753/1316/6 765/1332/6 764/1331/70 +f 754/1315/71 766/1333/71 765/1332/6 +f 755/1314/72 767/1334/72 766/1333/71 +f 756/1313/2 768/1335/2 767/1334/72 +f 745/1312/73 757/1324/73 768/1335/2 +f 767/1334/82 779/1338/82 778/1336/83 +f 767/1334/82 768/1335/81 780/1337/81 +f 757/1324/80 769/1339/80 780/1337/81 +f 758/1325/79 770/1340/79 769/1339/80 +f 759/1326/78 771/1341/78 770/1340/79 +f 760/1327/77 772/1342/77 771/1341/78 +f 761/1328/76 773/1344/76 772/1342/77 +f 761/1328/76 762/1329/75 774/1343/75 +f 763/1345/86 775/1354/86 774/1343/75 +f 764/1331/85 776/1348/85 775/1346/86 +f 764/1331/85 765/1332/84 777/1347/84 +f 766/1333/83 778/1336/83 777/1347/84 +f 770/1340/74 782/1350/74 781/1349/73 +f 771/1341/12 783/1351/12 782/1350/74 +f 772/1342/67 784/1352/67 783/1351/12 +f 773/1344/68 785/1353/68 784/1352/67 +f 774/1343/3 786/1355/3 785/1353/68 +f 775/1354/69 787/1836/69 786/1355/3 +f 776/1348/70 788/1357/70 787/1356/69 +f 777/1347/6 789/1358/6 788/1357/70 +f 778/1336/71 790/1359/71 789/1358/6 +f 779/1338/72 791/1360/72 790/1359/71 +f 780/1337/2 792/1361/2 791/1360/72 +f 769/1339/73 781/1349/73 792/1361/2 +f 792/1361/91 781/1349/90 793/1362/90 +f 782/1350/89 794/1365/89 793/1362/90 +f 782/1350/89 783/1351/87 795/1364/87 +f 784/1352/88 796/1367/88 795/1364/87 +f 784/1352/88 785/1353/98 797/1366/98 +f 786/1355/97 798/1369/97 797/1366/98 +f 786/1355/97 787/1836/96 799/1368/96 +f 787/1356/96 788/1357/95 800/1370/95 +f 789/1358/94 801/1373/94 800/1370/95 +f 789/1358/94 790/1359/93 802/1372/93 +f 790/1359/93 791/1360/92 803/1374/92 +f 792/1361/91 804/1363/91 803/1374/92 +f 794/1365/74 806/398/74 805/373/73 +f 795/1364/12 807/396/12 806/398/74 +f 796/1367/67 808/394/67 807/396/12 +f 797/1366/68 809/392/68 808/394/67 +f 798/1369/3 810/390/3 809/392/68 +f 799/1368/69 811/388/69 810/390/3 +f 800/1370/70 812/382/70 811/385/69 +f 801/1373/6 813/381/6 812/382/70 +f 802/1372/71 814/379/71 813/381/6 +f 803/1374/72 815/377/72 814/379/71 +f 804/1363/2 816/375/2 815/377/72 +f 793/1362/73 805/373/73 816/375/2 +f 818/399/70 830/1837/70 829/1375/69 +f 819/702/6 831/1838/6 830/1376/70 +f 820/701/71 832/1839/71 831/1377/6 +f 821/700/72 833/1840/72 832/1378/71 +f 822/699/2 834/1841/2 833/1379/72 +f 823/698/73 835/1842/73 834/1380/2 +f 824/386/74 836/1843/74 835/1381/73 +f 825/383/12 837/1844/12 836/1382/74 +f 826/697/67 838/1845/67 837/1383/12 +f 827/696/68 839/1846/68 838/1384/67 +f 828/695/3 840/1847/3 839/1385/68 +f 817/694/69 829/1848/69 840/1386/3 +f 843/1387/6 855/1393/6 854/1388/70 +f 842/1389/70 854/1388/70 853/1390/69 +f 844/1392/71 856/1395/71 855/1393/6 +f 845/1394/72 857/1397/72 856/1395/71 +f 846/1396/2 858/1399/2 857/1397/72 +f 847/1398/73 859/1421/73 858/1399/2 +f 848/1400/74 860/1404/74 859/1401/73 +f 849/1403/12 861/1406/12 860/1404/74 +f 850/1405/67 862/1408/67 861/1406/12 +f 851/1407/68 863/1410/68 862/1408/67 +f 852/1409/3 864/1411/3 863/1410/68 +f 841/1391/69 853/1390/69 864/1411/3 +f 856/1395/83 868/1424/83 867/1412/84 +f 855/1393/84 867/1412/84 866/1413/85 +f 854/1388/85 866/1413/85 865/1414/86 +f 853/1390/86 865/1414/86 876/1415/75 +f 863/1410/76 864/1411/75 876/1415/75 +f 863/1410/76 875/1416/76 874/1417/77 +f 862/1408/77 874/1417/77 873/1418/78 +f 860/1404/79 861/1406/78 873/1418/78 +f 860/1404/79 872/1419/79 871/1420/80 +f 859/1421/80 871/1430/80 870/1422/81 +f 857/1397/82 858/1399/81 870/1422/81 +f 857/1397/82 869/1423/82 868/1424/83 +f 866/1413/70 878/1426/70 877/1425/69 +f 867/1412/6 879/1427/6 878/1426/70 +f 868/1424/71 880/1428/71 879/1427/6 +f 869/1423/72 881/1429/72 880/1428/71 +f 870/1422/2 882/1431/2 881/1429/72 +f 871/1430/73 883/1446/73 882/1431/2 +f 872/1419/74 884/1433/74 883/1432/73 +f 873/1418/12 885/1434/12 884/1433/74 +f 874/1417/67 886/1435/67 885/1434/12 +f 875/1416/68 887/1436/68 886/1435/67 +f 876/1415/3 888/1437/3 887/1436/68 +f 865/1414/69 877/1425/69 888/1437/3 +f 877/1425/96 878/1426/95 890/1438/95 +f 877/1425/96 889/1439/96 900/1440/97 +f 888/1437/97 900/1440/97 899/1441/98 +f 887/1436/98 899/1441/98 898/1442/88 +f 886/1435/88 898/1442/88 897/1443/87 +f 885/1434/87 897/1443/87 896/1444/89 +f 884/1433/89 896/1444/89 895/1445/90 +f 883/1446/90 895/1456/90 894/1447/91 +f 882/1431/91 894/1447/91 893/1448/92 +f 880/1428/93 881/1429/92 893/1448/92 +f 879/1427/94 880/1428/93 892/1449/93 +f 878/1426/95 879/1427/94 891/1450/94 +f 890/1438/70 902/1452/70 901/1451/69 +f 891/1450/6 903/1453/6 902/1452/70 +f 892/1449/71 904/1454/71 903/1453/6 +f 893/1448/72 905/1455/72 904/1454/71 +f 894/1447/2 906/1457/2 905/1455/72 +f 895/1456/73 907/1473/73 906/1457/2 +f 896/1444/74 908/1459/74 907/1458/73 +f 897/1443/12 909/1460/12 908/1459/74 +f 898/1442/67 910/1461/67 909/1460/12 +f 899/1441/68 911/1462/68 910/1461/67 +f 900/1440/3 912/1463/3 911/1462/68 +f 889/1439/69 901/1451/69 912/1463/3 +f 911/1462/76 923/1466/76 922/1464/77 +f 911/1462/76 912/1463/75 924/1465/75 +f 901/1451/86 913/1467/86 924/1465/75 +f 902/1452/85 914/1468/85 913/1467/86 +f 903/1453/84 915/1470/84 914/1468/85 +f 903/1453/84 904/1454/83 916/1469/83 +f 905/1455/82 917/1472/82 916/1469/83 +f 905/1455/82 906/1457/81 918/1471/81 +f 907/1473/80 919/1482/80 918/1471/81 +f 908/1459/79 920/1476/79 919/1474/80 +f 908/1459/79 909/1460/78 921/1475/78 +f 910/1461/77 922/1464/77 921/1475/78 +f 914/1468/70 926/1478/70 925/1477/69 +f 915/1470/6 927/1479/6 926/1478/70 +f 916/1469/71 928/1480/71 927/1479/6 +f 917/1472/72 929/1481/72 928/1480/71 +f 918/1471/2 930/1483/2 929/1481/72 +f 919/1482/73 931/1849/73 930/1483/2 +f 920/1476/74 932/1485/74 931/1484/73 +f 921/1475/12 933/1486/12 932/1485/74 +f 922/1464/67 934/1487/67 933/1486/12 +f 923/1466/68 935/1488/68 934/1487/67 +f 924/1465/3 936/1489/3 935/1488/68 +f 913/1467/69 925/1477/69 936/1489/3 +f 936/1489/97 925/1477/96 937/1490/96 +f 925/1477/96 926/1478/95 938/1492/95 +f 926/1478/95 927/1479/94 939/1493/94 +f 928/1480/93 940/1495/93 939/1493/94 +f 928/1480/93 929/1481/92 941/1494/92 +f 930/1483/91 942/1497/91 941/1494/92 +f 930/1483/91 931/1849/90 943/1496/90 +f 931/1484/90 932/1485/89 944/1498/89 +f 933/1486/87 945/1501/87 944/1498/89 +f 933/1486/87 934/1487/88 946/1500/88 +f 935/1488/98 947/1502/98 946/1500/88 +f 936/1489/97 948/1491/97 947/1502/98 +f 938/1492/70 950/428/70 949/404/69 +f 939/1493/6 951/427/6 950/428/70 +f 940/1495/71 952/425/71 951/427/6 +f 941/1494/72 953/423/72 952/425/71 +f 942/1497/2 954/421/2 953/423/72 +f 943/1496/73 955/419/73 954/421/2 +f 944/1498/74 956/415/74 955/416/73 +f 945/1501/12 957/411/12 956/415/74 +f 946/1500/67 958/410/67 957/411/12 +f 947/1502/68 959/408/68 958/410/67 +f 948/1491/3 960/406/3 959/408/68 +f 937/1490/69 949/404/69 960/406/3 +f 962/431/74 974/1850/74 973/1503/73 +f 963/429/12 975/1851/12 974/1504/74 +f 964/719/67 976/1852/67 975/1505/12 +f 965/718/68 977/1853/68 976/1506/67 +f 966/717/3 978/1854/3 977/1507/68 +f 967/716/69 979/1855/69 978/1508/3 +f 968/417/70 980/1856/70 979/1509/69 +f 969/715/6 981/1857/6 980/1510/70 +f 970/412/71 982/1858/71 981/1511/6 +f 971/714/72 983/1859/72 982/1512/71 +f 972/713/2 984/1860/2 983/1513/72 +f 961/712/73 973/1861/73 984/1514/2 +f 986/1515/2 998/1519/2 997/1516/72 +f 987/1518/73 999/1521/73 998/1519/2 +f 988/1520/74 1000/1523/74 999/1521/73 +f 989/1522/12 1001/1525/12 1000/1523/74 +f 990/1524/67 1002/1527/67 1001/1525/12 +f 991/1526/68 1003/1862/68 1002/1527/67 +f 992/1528/3 1004/1532/3 1003/1529/68 +f 993/1531/69 1005/1534/69 1004/1532/3 +f 994/1533/70 1006/1536/70 1005/1534/69 +f 995/1535/6 1007/1538/6 1006/1536/70 +f 996/1537/71 1008/1539/71 1007/1538/6 +f 985/1517/72 997/1516/72 1008/1539/71 +f 1000/1523/79 1012/1552/79 1011/1540/80 +f 999/1521/80 1011/1540/80 1010/1541/81 +f 997/1516/82 998/1519/81 1010/1541/81 +f 997/1516/82 1009/1542/82 1020/1543/83 +f 1007/1538/84 1008/1539/83 1020/1543/83 +f 1007/1538/84 1019/1544/84 1018/1545/85 +f 1006/1536/85 1018/1545/85 1017/1546/86 +f 1004/1532/75 1005/1534/86 1017/1546/86 +f 1003/1529/76 1004/1532/75 1016/1547/75 +f 1002/1527/77 1003/1862/76 1015/1549/76 +f 1002/1527/77 1014/1550/77 1013/1551/78 +f 1001/1525/78 1013/1551/78 1012/1552/79 +f 1010/1541/2 1022/1554/2 1021/1553/72 +f 1011/1540/73 1023/1555/73 1022/1554/2 +f 1012/1552/74 1024/1556/74 1023/1555/73 +f 1013/1551/12 1025/1557/12 1024/1556/74 +f 1014/1550/67 1026/1558/67 1025/1557/12 +f 1015/1549/68 1027/1572/68 1026/1558/67 +f 1016/1547/3 1028/1560/3 1027/1559/68 +f 1017/1546/69 1029/1561/69 1028/1560/3 +f 1018/1545/70 1030/1562/70 1029/1561/69 +f 1019/1544/6 1031/1563/6 1030/1562/70 +f 1020/1543/71 1032/1564/71 1031/1563/6 +f 1009/1542/72 1021/1553/72 1032/1564/71 +f 1022/1554/91 1034/1577/91 1033/1565/92 +f 1021/1553/92 1033/1565/92 1044/1566/93 +f 1032/1564/93 1044/1566/93 1043/1567/94 +f 1031/1563/94 1043/1567/94 1042/1568/95 +f 1030/1562/95 1042/1568/95 1041/1569/96 +f 1029/1561/96 1041/1569/96 1040/1570/97 +f 1028/1560/97 1040/1570/97 1039/1571/98 +f 1027/1572/98 1039/1583/98 1038/1573/88 +f 1025/1557/87 1026/1558/88 1038/1573/88 +f 1024/1556/89 1025/1557/87 1037/1574/87 +f 1023/1555/90 1024/1556/89 1036/1575/89 +f 1022/1554/91 1023/1555/90 1035/1576/90 +f 1034/1577/2 1046/1579/2 1045/1578/72 +f 1035/1576/73 1047/1580/73 1046/1579/2 +f 1036/1575/74 1048/1581/74 1047/1580/73 +f 1037/1574/12 1049/1582/12 1048/1581/74 +f 1038/1573/67 1050/1584/67 1049/1582/12 +f 1039/1583/68 1051/1600/68 1050/1584/67 +f 1040/1570/3 1052/1586/3 1051/1585/68 +f 1041/1569/69 1053/1587/69 1052/1586/3 +f 1042/1568/70 1054/1588/70 1053/1587/69 +f 1043/1567/6 1055/1589/6 1054/1588/70 +f 1044/1566/71 1056/1590/71 1055/1589/6 +f 1033/1565/72 1045/1578/72 1056/1590/71 +f 1054/1588/85 1055/1589/84 1067/1591/84 +f 1055/1589/84 1056/1590/83 1068/1593/83 +f 1045/1578/82 1057/1594/82 1068/1593/83 +f 1046/1579/81 1058/1595/81 1057/1594/82 +f 1047/1580/80 1059/1596/80 1058/1595/81 +f 1048/1581/79 1060/1597/79 1059/1596/80 +f 1049/1582/78 1061/1599/78 1060/1597/79 +f 1049/1582/78 1050/1584/77 1062/1598/77 +f 1051/1600/76 1063/1609/76 1062/1598/77 +f 1052/1586/75 1064/1603/75 1063/1601/76 +f 1052/1586/75 1053/1587/86 1065/1602/86 +f 1054/1588/85 1066/1592/85 1065/1602/86 +f 1058/1595/2 1070/1605/2 1069/1604/72 +f 1059/1596/73 1071/1606/73 1070/1605/2 +f 1060/1597/74 1072/1607/74 1071/1606/73 +f 1061/1599/12 1073/1608/12 1072/1607/74 +f 1062/1598/67 1074/1610/67 1073/1608/12 +f 1063/1609/68 1075/1863/68 1074/1610/67 +f 1064/1603/3 1076/1612/3 1075/1611/68 +f 1065/1602/69 1077/1613/69 1076/1612/3 +f 1066/1592/70 1078/1614/70 1077/1613/69 +f 1067/1591/6 1079/1615/6 1078/1614/70 +f 1068/1593/71 1080/1616/71 1079/1615/6 +f 1057/1594/72 1069/1604/72 1080/1616/71 +f 1080/1616/93 1069/1604/92 1081/1617/92 +f 1069/1604/92 1070/1605/91 1082/1619/91 +f 1070/1605/91 1071/1606/90 1083/1620/90 +f 1072/1607/89 1084/1621/89 1083/1620/90 +f 1073/1608/87 1085/1623/87 1084/1621/89 +f 1073/1608/87 1074/1610/88 1086/1622/88 +f 1074/1610/88 1075/1863/98 1087/1624/98 +f 1076/1612/97 1088/1626/97 1087/1625/98 +f 1077/1613/96 1089/1627/96 1088/1626/97 +f 1078/1614/95 1090/1628/95 1089/1627/96 +f 1079/1615/94 1091/1629/94 1090/1628/95 +f 1080/1616/93 1092/1618/93 1091/1629/94 +f 1082/1619/2 1094/462/2 1093/436/72 +f 1083/1620/73 1095/460/73 1094/462/2 +f 1084/1621/74 1096/458/74 1095/460/73 +f 1085/1623/12 1097/456/12 1096/458/74 +f 1086/1622/67 1098/454/67 1097/456/12 +f 1087/1624/68 1099/452/68 1098/454/67 +f 1088/1626/3 1100/446/3 1099/449/68 +f 1089/1627/69 1101/443/69 1100/446/3 +f 1090/1628/70 1102/442/70 1101/443/69 +f 1091/1629/6 1103/440/6 1102/442/70 +f 1092/1618/71 1104/438/71 1103/440/6 +f 1081/1617/72 1093/436/72 1104/438/71 +f 1106/463/3 1118/1864/3 1117/1630/68 +f 1107/736/69 1119/1865/69 1118/1631/3 +f 1108/735/70 1120/1866/70 1119/1632/69 +f 1109/734/6 1121/1867/6 1120/1633/70 +f 1110/733/71 1122/1868/71 1121/1634/6 +f 1111/732/72 1123/1869/72 1122/1635/71 +f 1112/450/2 1124/1870/2 1123/1636/72 +f 1113/447/73 1125/1871/73 1124/1637/2 +f 1114/444/74 1126/1872/74 1125/1638/73 +f 1115/731/12 1127/1873/12 1126/1639/74 +f 1116/730/67 1128/1874/67 1127/1640/12 +f 1105/729/68 1117/1875/68 1128/1641/67 +f 1131/1642/69 1143/1648/69 1142/1643/3 +f 1130/1644/3 1142/1643/3 1141/1645/68 +f 1132/1647/70 1144/1650/70 1143/1648/69 +f 1133/1649/6 1145/1652/6 1144/1650/70 +f 1134/1651/71 1146/1654/71 1145/1652/6 +f 1135/1653/72 1147/1676/72 1146/1654/71 +f 1136/1655/2 1148/1659/2 1147/1656/72 +f 1137/1658/73 1149/1661/73 1148/1659/2 +f 1138/1660/74 1150/1663/74 1149/1661/73 +f 1139/1662/12 1151/1665/12 1150/1663/74 +f 1140/1664/67 1152/1666/67 1151/1665/12 +f 1129/1646/68 1141/1645/68 1152/1666/67 +f 1144/1650/85 1156/1679/85 1155/1667/86 +f 1143/1648/86 1155/1667/86 1154/1668/75 +f 1142/1643/75 1154/1668/75 1153/1669/76 +f 1152/1666/77 1141/1645/76 1153/1669/76 +f 1151/1665/78 1152/1666/77 1164/1670/77 +f 1151/1665/78 1163/1671/78 1162/1672/79 +f 1150/1663/79 1162/1672/79 1161/1673/80 +f 1148/1659/81 1149/1661/80 1161/1673/80 +f 1147/1656/82 1148/1659/81 1160/1674/81 +f 1147/1676/82 1159/1685/82 1158/1677/83 +f 1145/1652/84 1146/1654/83 1158/1677/83 +f 1145/1652/84 1157/1678/84 1156/1679/85 +f 1154/1668/3 1166/1681/3 1165/1680/68 +f 1155/1667/69 1167/1682/69 1166/1681/3 +f 1156/1679/70 1168/1683/70 1167/1682/69 +f 1157/1678/6 1169/1684/6 1168/1683/70 +f 1158/1677/71 1170/1686/71 1169/1684/6 +f 1159/1685/72 1171/1701/72 1170/1686/71 +f 1160/1674/2 1172/1688/2 1171/1687/72 +f 1161/1673/73 1173/1689/73 1172/1688/2 +f 1162/1672/74 1174/1690/74 1173/1689/73 +f 1163/1671/12 1175/1691/12 1174/1690/74 +f 1164/1670/67 1176/1692/67 1175/1691/12 +f 1153/1669/68 1165/1680/68 1176/1692/67 +f 1165/1680/98 1166/1681/97 1178/1693/97 +f 1165/1680/98 1177/1694/98 1188/1695/88 +f 1176/1692/88 1188/1695/88 1187/1696/87 +f 1175/1691/87 1187/1696/87 1186/1697/89 +f 1174/1690/89 1186/1697/89 1185/1698/90 +f 1173/1689/90 1185/1698/90 1184/1699/91 +f 1172/1688/91 1184/1699/91 1183/1700/92 +f 1171/1701/92 1183/1711/92 1182/1702/93 +f 1169/1684/94 1170/1686/93 1182/1702/93 +f 1168/1683/95 1169/1684/94 1181/1703/94 +f 1167/1682/96 1168/1683/95 1180/1704/95 +f 1166/1681/97 1167/1682/96 1179/1705/96 +f 1178/1693/3 1190/1707/3 1189/1706/68 +f 1179/1705/69 1191/1708/69 1190/1707/3 +f 1180/1704/70 1192/1709/70 1191/1708/69 +f 1181/1703/6 1193/1710/6 1192/1709/70 +f 1182/1702/71 1194/1712/71 1193/1710/6 +f 1183/1711/72 1195/1727/72 1194/1712/71 +f 1184/1699/2 1196/1714/2 1195/1713/72 +f 1185/1698/73 1197/1715/73 1196/1714/2 +f 1186/1697/74 1198/1716/74 1197/1715/73 +f 1187/1696/12 1199/1717/12 1198/1716/74 +f 1188/1695/67 1200/1718/67 1199/1717/12 +f 1177/1694/68 1189/1706/68 1200/1718/67 +f 1198/1716/79 1199/1717/78 1211/1719/78 +f 1199/1717/78 1200/1718/77 1212/1721/77 +f 1189/1706/76 1201/1722/76 1212/1721/77 +f 1190/1707/75 1202/1723/75 1201/1722/76 +f 1191/1708/86 1203/1724/86 1202/1723/75 +f 1192/1709/85 1204/1725/85 1203/1724/86 +f 1193/1710/84 1205/1726/84 1204/1725/85 +f 1194/1712/83 1206/1728/83 1205/1726/84 +f 1195/1727/82 1207/1737/82 1206/1728/83 +f 1196/1714/81 1208/1731/81 1207/1729/82 +f 1196/1714/81 1197/1715/80 1209/1730/80 +f 1198/1716/79 1210/1720/79 1209/1730/80 +f 1202/1723/3 1214/1733/3 1213/1732/68 +f 1203/1724/69 1215/1734/69 1214/1733/3 +f 1204/1725/70 1216/1735/70 1215/1734/69 +f 1205/1726/6 1217/1736/6 1216/1735/70 +f 1206/1728/71 1218/1738/71 1217/1736/6 +f 1207/1737/72 1219/1751/72 1218/1738/71 +f 1208/1731/2 1220/1740/2 1219/1739/72 +f 1209/1730/73 1221/1741/73 1220/1740/2 +f 1210/1720/74 1222/1742/74 1221/1741/73 +f 1211/1719/12 1223/1743/12 1222/1742/74 +f 1212/1721/67 1224/1744/67 1223/1743/12 +f 1201/1722/68 1213/1732/68 1224/1744/67 +f 1224/1744/88 1213/1732/98 1225/1745/98 +f 1213/1732/98 1214/1733/97 1226/1747/97 +f 1214/1733/97 1215/1734/96 1227/1748/96 +f 1215/1734/96 1216/1735/95 1228/1749/95 +f 1216/1735/95 1217/1736/94 1229/1750/94 +f 1218/1738/93 1230/1752/93 1229/1750/94 +f 1219/1751/92 1231/1758/92 1230/1752/93 +f 1220/1740/91 1232/1754/91 1231/1753/92 +f 1221/1741/90 1233/1756/90 1232/1754/91 +f 1221/1741/90 1222/1742/89 1234/1755/89 +f 1223/1743/87 1235/1757/87 1234/1755/89 +f 1223/1743/87 1224/1744/88 1236/1746/88 +f 1226/1747/3 1238/492/3 1237/468/68 +f 1227/1748/69 1239/491/69 1238/492/3 +f 1228/1749/70 1240/489/70 1239/491/69 +f 1229/1750/6 1241/487/6 1240/489/70 +f 1230/1752/71 1242/485/71 1241/487/6 +f 1231/1758/72 1243/483/72 1242/485/71 +f 1232/1754/2 1244/479/2 1243/480/72 +f 1233/1756/73 1245/475/73 1244/479/2 +f 1234/1755/74 1246/474/74 1245/475/73 +f 1235/1757/12 1247/472/12 1246/474/74 +f 1236/1746/67 1248/470/67 1247/472/12 +f 1225/1745/68 1237/468/68 1248/470/67 +f 1250/754/2 1262/1876/2 1261/1759/72 +f 1251/493/73 1263/1877/73 1262/1760/2 +f 1252/753/74 1264/1878/74 1263/1761/73 +f 1253/752/12 1265/1879/12 1264/1762/74 +f 1254/751/67 1266/1880/67 1265/1763/12 +f 1255/750/68 1267/1881/68 1266/1764/67 +f 1256/481/3 1268/1882/3 1267/1765/68 +f 1257/749/69 1269/1883/69 1268/1766/3 +f 1258/476/70 1270/1884/70 1269/1767/69 +f 1259/748/6 1271/1885/6 1270/1768/70 +f 1260/747/71 1272/1886/71 1271/1769/6 +f 1249/746/72 1261/1887/72 1272/1770/71 diff --git a/src/main/resources/assets/hbm/textures/armor/test_1.png b/src/main/resources/assets/hbm/textures/armor/test_1.png deleted file mode 100644 index a6760ae39..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/test_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/armor/test_2.png b/src/main/resources/assets/hbm/textures/armor/test_2.png deleted file mode 100644 index e3774a662..000000000 Binary files a/src/main/resources/assets/hbm/textures/armor/test_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png deleted file mode 100644 index a6b18a234..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png deleted file mode 100644 index 7a5f29680..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_circle.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png deleted file mode 100644 index 646165eb1..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_flat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png b/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png deleted file mode 100644 index 484111395..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/brick_dungeon_tile.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png b/src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png deleted file mode 100644 index 9c428a3b7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/cheater_virus_seed_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_energy.png b/src/main/resources/assets/hbm/textures/blocks/crystal_energy.png deleted file mode 100644 index bff0743b9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_energy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_power.png b/src/main/resources/assets/hbm/textures/blocks/crystal_power.png deleted file mode 100644 index b9ff5beb0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_power.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_robust.png b/src/main/resources/assets/hbm/textures/blocks/crystal_robust.png deleted file mode 100644 index 77eb74348..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_robust.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png b/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png deleted file mode 100644 index 30fddb0b3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/crystal_trixite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png deleted file mode 100644 index 937b41603..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/deco_steel_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png deleted file mode 100644 index 2adcbba63..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/deco_titanium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png b/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png deleted file mode 100644 index b99a7abb9..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/deco_tungsten_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png deleted file mode 100644 index 1a00908d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_computer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png deleted file mode 100644 index 822c86ba4..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_conductor_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png deleted file mode 100644 index a4346b0df..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png deleted file mode 100644 index c4eb67842..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_cooler_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_core.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_core.png deleted file mode 100644 index b7deb184e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_core.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png deleted file mode 100644 index e40535680..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_hatch.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png deleted file mode 100644 index 536f3cfef..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta deleted file mode 100644 index 55438bf34..000000000 --- a/src/main/resources/assets/hbm/textures/blocks/fwatz_plasma.png.mcmeta +++ /dev/null @@ -1,45 +0,0 @@ -{ - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 18, - 17, - 16, - 15, - 14, - 13, - 12, - 11, - 10, - 9, - 8, - 7, - 6, - 5, - 4, - 3, - 2, - 1 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png deleted file mode 100644 index 7064b031b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_scaffold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png b/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png deleted file mode 100644 index 248ae197d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fwatz_tank.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hazmat.png b/src/main/resources/assets/hbm/textures/blocks/hazmat.png deleted file mode 100644 index 92997dc0b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/hazmat.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png b/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png deleted file mode 100644 index 049f1bae8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/hazmat_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png b/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png index c3535d9f6..f510f724a 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png and b/src/main/resources/assets/hbm/textures/blocks/machine_converter_he_rf.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png b/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png index 21e102708..9a865bd8f 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png and b/src/main/resources/assets/hbm/textures/blocks/machine_converter_rf_he.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png deleted file mode 100644 index 6763f77a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_fron_on.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png deleted file mode 100644 index 18dcd258c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_front_off.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png deleted file mode 100644 index 92fb934f8..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_off.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png deleted file mode 100644 index 2addbfbe7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_on.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png deleted file mode 100644 index 4ce572787..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png deleted file mode 100644 index aa6472535..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_gas_furnace_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_generator.png b/src/main/resources/assets/hbm/textures/blocks/machine_generator.png deleted file mode 100644 index 4a3bcf52e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_generator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png deleted file mode 100644 index 0026c42aa..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_generator_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png deleted file mode 100644 index 23b4fbeab..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_side_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png deleted file mode 100644 index 6f02e9b08..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_keyforge_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png deleted file mode 100644 index fdd31750a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png deleted file mode 100644 index b6d0a8511..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_minirtg_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_selenium.png b/src/main/resources/assets/hbm/textures/blocks/machine_selenium.png deleted file mode 100644 index 05523101a..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_selenium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png deleted file mode 100644 index 2333c9bb3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png deleted file mode 100644 index 99a32b91f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_telelinker_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/muffler.png b/src/main/resources/assets/hbm/textures/blocks/muffler.png deleted file mode 100644 index 57e0f1c03..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/muffler.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png b/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png deleted file mode 100644 index b47cd705e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_cheapo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_cwis.png b/src/main/resources/assets/hbm/textures/blocks/turret_cwis.png deleted file mode 100644 index 14cd0660e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_cwis.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png b/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png deleted file mode 100644 index 471bf68f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_flamer.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png b/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png deleted file mode 100644 index 7922fff7b..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_heavy.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_light.png b/src/main/resources/assets/hbm/textures/blocks/turret_light.png deleted file mode 100644 index cefc65660..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_light.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png b/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png deleted file mode 100644 index 0a5a4c414..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_rocket.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/turret_tau.png b/src/main/resources/assets/hbm/textures/blocks/turret_tau.png deleted file mode 100644 index 19be1105c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/turret_tau.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png index 2834d3569..b1c313de4 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png index 75f2072e8..6dbf4ffb1 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel.png deleted file mode 100644 index da38dd7e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png deleted file mode 100644 index 875ea1fba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png deleted file mode 100644 index 28d9805e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png deleted file mode 100644 index 54a3215ee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png deleted file mode 100644 index 019d2287b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png deleted file mode 100644 index 7c97d5410..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png deleted file mode 100644 index 54b05ecbb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png deleted file mode 100644 index 5d278eded..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/arc_electrode_burnt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png b/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png deleted file mode 100644 index 007f2a98e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/arc_electrode_desh.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery.png b/src/main/resources/assets/hbm/textures/items/armor_battery.png new file mode 100644 index 000000000..86a0cb9a1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_base.png b/src/main/resources/assets/hbm/textures/items/armor_battery_base.png new file mode 100644 index 000000000..ad4e8b8af Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png b/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png new file mode 100644 index 000000000..699a5b4e2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery_mk2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png b/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png new file mode 100644 index 000000000..96cc82109 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/armor_battery_mk3.png differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam.png b/src/main/resources/assets/hbm/textures/items/battery_steam.png deleted file mode 100644 index 880f1e21e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_steam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam_large.png b/src/main/resources/assets/hbm/textures/items/battery_steam_large.png deleted file mode 100644 index c275da4ef..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_steam_large.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_su.png b/src/main/resources/assets/hbm/textures/items/battery_su.png deleted file mode 100644 index 82440d819..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_su.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_su_l.png b/src/main/resources/assets/hbm/textures/items/battery_su_l.png deleted file mode 100644 index e78387cf0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_su_l.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png new file mode 100644 index 000000000..5449f0a71 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.png b/src/main/resources/assets/hbm/textures/items/circuit.png index a62713b28..abf761193 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit.png and b/src/main/resources/assets/hbm/textures/items/circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png deleted file mode 100644 index 9579bd9dd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png deleted file mode 100644 index 142a7f4a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png deleted file mode 100644 index 55b308cf7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png deleted file mode 100644 index 0af4c7d3c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png deleted file mode 100644 index 07a458215..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_copper.png deleted file mode 100644 index 67442c881..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_copper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_gold.png b/src/main/resources/assets/hbm/textures/items/circuit_gold.png deleted file mode 100644 index 1ea35bc0d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_raw.png deleted file mode 100644 index 88234e2e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png deleted file mode 100644 index 8a892099c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_reix.png b/src/main/resources/assets/hbm/textures/items/circuit_reix.png deleted file mode 100644 index 43f778ad5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_reix.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png deleted file mode 100644 index 27c3cbcf9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png deleted file mode 100644 index 799f5d83d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/clay_ball.png b/src/main/resources/assets/hbm/textures/items/clay_ball.png deleted file mode 100644 index 5103d6cc4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/clay_ball.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke1.png b/src/main/resources/assets/hbm/textures/items/d_smoke1.png deleted file mode 100644 index e7f3601e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke2.png b/src/main/resources/assets/hbm/textures/items/d_smoke2.png deleted file mode 100644 index 7e01c301d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke3.png b/src/main/resources/assets/hbm/textures/items/d_smoke3.png deleted file mode 100644 index 7c36fd965..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke4.png b/src/main/resources/assets/hbm/textures/items/d_smoke4.png deleted file mode 100644 index bc74f9813..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke5.png b/src/main/resources/assets/hbm/textures/items/d_smoke5.png deleted file mode 100644 index cf71763f9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke6.png b/src/main/resources/assets/hbm/textures/items/d_smoke6.png deleted file mode 100644 index 78d1a84b1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke7.png b/src/main/resources/assets/hbm/textures/items/d_smoke7.png deleted file mode 100644 index 6f0f6274a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke8.png b/src/main/resources/assets/hbm/textures/items/d_smoke8.png deleted file mode 100644 index cd253ab4d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/designator_range.png b/src/main/resources/assets/hbm/textures/items/designator_range.png deleted file mode 100644 index 8521a8347..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/designator_range.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png b/src/main/resources/assets/hbm/textures/items/discharge.png deleted file mode 100644 index 0a222d2ec..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/discharge.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta b/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta deleted file mode 100644 index dd1bedb12..000000000 --- a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation": {} -} diff --git a/src/main/resources/assets/hbm/textures/items/empblast.png b/src/main/resources/assets/hbm/textures/items/empblast.png deleted file mode 100644 index 7db45b035..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/empblast.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/essence_unstable.png b/src/main/resources/assets/hbm/textures/items/essence_unstable.png deleted file mode 100644 index 5adb5f7f6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/essence_unstable.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/essence_uv.png b/src/main/resources/assets/hbm/textures/items/essence_uv.png deleted file mode 100644 index 145752b3a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/essence_uv.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png b/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png deleted file mode 100644 index e50299a3e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png b/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png deleted file mode 100644 index 0ae9ed3eb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png b/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png deleted file mode 100644 index 40b868a01..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_cats.png b/src/main/resources/assets/hbm/textures/items/grenade_cats.png deleted file mode 100644 index e800e9e77..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/grenade_cats.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png b/src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png new file mode 100644 index 000000000..e2072d2c1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_beskar_double.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png b/src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png new file mode 100644 index 000000000..94127d22b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_beskar_single.png differ diff --git a/src/main/resources/assets/hbm/textures/items/lithium6.png b/src/main/resources/assets/hbm/textures/items/lithium6.png deleted file mode 100644 index cdc066bba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/lithium6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png b/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png deleted file mode 100644 index edca5bc1e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png b/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png deleted file mode 100644 index 1e0c7e19a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png b/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png deleted file mode 100644 index 0fc31ee9a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png b/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png deleted file mode 100644 index 373912caf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png b/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png deleted file mode 100644 index b83791df5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png b/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png deleted file mode 100644 index 0b10d49d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png b/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png deleted file mode 100644 index 8e5fc15c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png deleted file mode 100644 index 86bb04eee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png deleted file mode 100644 index eede778a5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png b/src/main/resources/assets/hbm/textures/items/pellet_advanced.png deleted file mode 100644 index b73babcbf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png b/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png deleted file mode 100644 index a5e2f78a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_coal.png b/src/main/resources/assets/hbm/textures/items/pellet_coal.png deleted file mode 100644 index 0672275f8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_coal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_hes.png b/src/main/resources/assets/hbm/textures/items/pellet_hes.png deleted file mode 100644 index 02f8ba8bc..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_hes.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_lead.png b/src/main/resources/assets/hbm/textures/items/pellet_lead.png deleted file mode 100644 index 1a647b6a3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_lead.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_les.png b/src/main/resources/assets/hbm/textures/items/pellet_les.png deleted file mode 100644 index a7cec73fd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_les.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_mes.png b/src/main/resources/assets/hbm/textures/items/pellet_mes.png deleted file mode 100644 index fae0a33ed..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_mes.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png b/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png deleted file mode 100644 index 9b5ac03ce..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png b/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png deleted file mode 100644 index 511125d6d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellets_mercury.png b/src/main/resources/assets/hbm/textures/items/pellets_mercury.png deleted file mode 100644 index 939fcec48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellets_mercury.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png b/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png deleted file mode 100644 index 99931efa5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png b/src/main/resources/assets/hbm/textures/items/redstone_depleted.png deleted file mode 100644 index 1cc99895c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_australium.png b/src/main/resources/assets/hbm/textures/items/rod_australium.png deleted file mode 100644 index 34e5dc5a5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_australium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_coolant.png deleted file mode 100644 index aa4ae7e48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png b/src/main/resources/assets/hbm/textures/items/rod_daffergon.png deleted file mode 100644 index 80e538b63..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png deleted file mode 100644 index 9f5b38305..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png b/src/main/resources/assets/hbm/textures/items/rod_dual_water.png deleted file mode 100644 index e29b72035..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png deleted file mode 100644 index e5ca3d6f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png b/src/main/resources/assets/hbm/textures/items/rod_quad_water.png deleted file mode 100644 index 10b021ebb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_reiium.png b/src/main/resources/assets/hbm/textures/items/rod_reiium.png deleted file mode 100644 index a7a347814..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_reiium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png b/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png deleted file mode 100644 index 1afe4b705..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_verticium.png b/src/main/resources/assets/hbm/textures/items/rod_verticium.png deleted file mode 100644 index a44e58b90..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_verticium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_water.png b/src/main/resources/assets/hbm/textures/items/rod_water.png deleted file mode 100644 index ebb15628a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png b/src/main/resources/assets/hbm/textures/items/rod_weidanium.png deleted file mode 100644 index c691f25f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke1.png b/src/main/resources/assets/hbm/textures/items/smoke1.png deleted file mode 100644 index 880c3cd75..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke2.png b/src/main/resources/assets/hbm/textures/items/smoke2.png deleted file mode 100644 index 013941568..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke3.png b/src/main/resources/assets/hbm/textures/items/smoke3.png deleted file mode 100644 index 44045bc03..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke4.png b/src/main/resources/assets/hbm/textures/items/smoke4.png deleted file mode 100644 index 32b25061a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke5.png b/src/main/resources/assets/hbm/textures/items/smoke5.png deleted file mode 100644 index c50e2955e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke6.png b/src/main/resources/assets/hbm/textures/items/smoke6.png deleted file mode 100644 index eed05375c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke7.png b/src/main/resources/assets/hbm/textures/items/smoke7.png deleted file mode 100644 index ffaa1c538..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke8.png b/src/main/resources/assets/hbm/textures/items/smoke8.png deleted file mode 100644 index 95239d7d7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_boots.png b/src/main/resources/assets/hbm/textures/items/test_boots.png deleted file mode 100644 index 8f068b965..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_boots.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_chestplate.png b/src/main/resources/assets/hbm/textures/items/test_chestplate.png deleted file mode 100644 index 8c391c10b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_chestplate.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_helmet.png b/src/main/resources/assets/hbm/textures/items/test_helmet.png deleted file mode 100644 index 3b2e2a4ac..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_helmet.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/test_leggings.png b/src/main/resources/assets/hbm/textures/items/test_leggings.png deleted file mode 100644 index e3587c5d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/test_leggings.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png b/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png deleted file mode 100644 index 7521f2a9b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/void.png b/src/main/resources/assets/hbm/textures/items/void.png deleted file mode 100644 index ea2166761..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/void.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/void_anim.png b/src/main/resources/assets/hbm/textures/items/void_anim.png deleted file mode 100644 index da3efcedd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/void_anim.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png b/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png deleted file mode 100644 index 48f8dfd97..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png b/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png deleted file mode 100644 index 3d2417498..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_copper_new.png deleted file mode 100644 index 33dd16888..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png b/src/main/resources/assets/hbm/textures/items/wire_gold_new.png deleted file mode 100644 index de76cb172..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png b/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png deleted file mode 100644 index 0b8c87d4e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png deleted file mode 100644 index 19eecd75e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png b/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png deleted file mode 100644 index 15558c3c8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png b/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png deleted file mode 100644 index 2c21fc45c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/xanax.png b/src/main/resources/assets/hbm/textures/items/xanax.png deleted file mode 100644 index 4c3759188..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/xanax.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/derrick.png b/src/main/resources/assets/hbm/textures/models/machines/derrick.png index c962d2c70..e71af257a 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/derrick.png and b/src/main/resources/assets/hbm/textures/models/machines/derrick.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png b/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png deleted file mode 100644 index 73af545d4..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/zpe.png b/src/main/resources/assets/hbm/textures/models/machines/zpe.png deleted file mode 100644 index f11bb8995..000000000 Binary files a/src/main/resources/assets/hbm/textures/models/machines/zpe.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png b/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png new file mode 100644 index 000000000..3f40b1154 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/_blacksand.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/minigun.png b/src/main/resources/assets/hbm/textures/models/weapons/minigun.png new file mode 100644 index 000000000..efc513e4b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/minigun.png differ