diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 74557c9c8..9fe29b8e3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -435,6 +435,8 @@ public class ModBlocks { public static Block frozen_grass; public static Block frozen_log; public static Block frozen_planks; + public static Block dirt_dead; + public static Block dirt_oily; public static Block fallout; public static Block foam_layer; @@ -853,7 +855,6 @@ public class ModBlocks { public static Block oil_pipe; public static final int guiID_machine_well = 40; public static Block machine_pumpjack; - public static final int guiID_machine_pumpjack = 51; public static Block machine_fracking_tower; public static Block machine_flare; @@ -1587,6 +1588,9 @@ public class ModBlocks { fallout = new BlockFallout(Material.snow).addRadiation(ItemHazard.fo * ItemHazard.powder * 2).toBlock().setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); + + dirt_dead = new BlockGeneric(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); + dirt_oily = new BlockGeneric(Material.ground).setBlockName("dirt_oily").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_oily"); sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield_0 = new BlockHazard(Material.rock).addRadiation(0.5F).toBlock().setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); @@ -1963,9 +1967,9 @@ public class ModBlocks { boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); bomber = new DecoBlock(Material.iron).setBlockName("bomber").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code"); - machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well"); - machine_pumpjack = new MachinePumpjack(Material.iron).setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); - machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + 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"); 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 + ":machine_flare"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); @@ -2094,8 +2098,8 @@ public class ModBlocks { dummy_block_centrifuge = new DummyBlockCentrifuge(Material.iron).setBlockName("dummy_block_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_cyclotron = new DummyBlockCyclotron(Material.iron).setBlockName("dummy_block_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); dummy_port_cyclotron = new DummyBlockCyclotron(Material.iron).setBlockName("dummy_port_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); - dummy_block_well = new DummyBlockWell(Material.iron).setBlockName("dummy_block_well").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_well = new DummyBlockWell(Material.iron).setBlockName("dummy_port_well").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_block_well = new BlockGeneric(Material.iron).setBlockName("dummy_block_well").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_port_well = new BlockGeneric(Material.iron).setBlockName("dummy_port_well").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_flare = new DummyBlockFlare(Material.iron).setBlockName("dummy_block_flare").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); dummy_port_flare = new DummyBlockFlare(Material.iron).setBlockName("dummy_port_flare").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); dummy_block_drill = new DummyBlockDrill(Material.iron).setBlockName("dummy_block_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); @@ -2108,8 +2112,8 @@ public class ModBlocks { dummy_port_fluidtank = new DummyBlockFluidTank(Material.iron).setBlockName("dummy_port_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_refinery = new DummyBlockRefinery(Material.iron).setBlockName("dummy_block_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); dummy_port_refinery = new DummyBlockRefinery(Material.iron).setBlockName("dummy_port_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); - dummy_block_pumpjack = new DummyBlockPumpjack(Material.iron).setBlockName("dummy_block_pumpjack").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); - dummy_port_pumpjack = new DummyBlockPumpjack(Material.iron).setBlockName("dummy_port_pumpjack").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); + dummy_block_pumpjack = new BlockGeneric(Material.iron).setBlockName("dummy_block_pumpjack").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); + dummy_port_pumpjack = new BlockGeneric(Material.iron).setBlockName("dummy_port_pumpjack").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); dummy_block_turbofan = new DummyBlockTurbofan(Material.iron).setBlockName("dummy_block_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_port_turbofan = new DummyBlockTurbofan(Material.iron).setBlockName("dummy_port_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); @@ -2531,7 +2535,7 @@ public class ModBlocks { GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); - //Nuclear Waste + //Waste GameRegistry.registerBlock(waste_earth, waste_earth.getUnlocalizedName()); GameRegistry.registerBlock(waste_mycelium, waste_mycelium.getUnlocalizedName()); GameRegistry.registerBlock(waste_trinitite, waste_trinitite.getUnlocalizedName()); @@ -2542,6 +2546,8 @@ public class ModBlocks { GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); + GameRegistry.registerBlock(dirt_dead, dirt_dead.getUnlocalizedName()); + GameRegistry.registerBlock(dirt_oily, dirt_oily.getUnlocalizedName()); GameRegistry.registerBlock(fallout, ItemBlockHazard.class, fallout.getUnlocalizedName()); GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); @@ -2856,6 +2862,7 @@ public class ModBlocks { //GameRegistry.registerBlock(machine_deuterium, machine_deuterium.getUnlocalizedName()); GameRegistry.registerBlock(machine_well, machine_well.getUnlocalizedName()); GameRegistry.registerBlock(machine_pumpjack, machine_pumpjack.getUnlocalizedName()); + GameRegistry.registerBlock(machine_fracking_tower, machine_fracking_tower.getUnlocalizedName()); GameRegistry.registerBlock(machine_flare, machine_flare.getUnlocalizedName()); GameRegistry.registerBlock(machine_refinery, machine_refinery.getUnlocalizedName()); GameRegistry.registerBlock(machine_fraction_tower, machine_fraction_tower.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java index 898f4d317..766f3df31 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java @@ -19,7 +19,7 @@ public class BlockBedrockOre extends Block implements IDrillInteraction { @Override public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return false; + return drill.getDrillRating() > 70; } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockCluster.java b/src/main/java/com/hbm/blocks/generic/BlockCluster.java index 018fa4180..c12f2d6e6 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCluster.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCluster.java @@ -68,7 +68,7 @@ public class BlockCluster extends Block implements IDrillInteraction { @Override public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return drill.getDrillRating() <= 70 && world.rand.nextFloat() < 0.05; + return drill.getDrillRating() > 70 || world.rand.nextFloat() < 0.05; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockPumpjack.java b/src/main/java/com/hbm/blocks/machine/DummyBlockPumpjack.java deleted file mode 100644 index 983d13b24..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockPumpjack.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; - -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.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockPumpjack extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockPumpjack(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.machine_pumpjack); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityMachinePumpjack entity = (TileEntityMachinePumpjack) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_pumpjack, world, a, b, c); - } - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockWell.java b/src/main/java/com/hbm/blocks/machine/DummyBlockWell.java deleted file mode 100644 index f37114891..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockWell.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; - -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.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockWell extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockWell(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.machine_well); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityMachineOilWell entity = (TileEntityMachineOilWell) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_well, world, a, b, c); - } - } - return true; - } else { - return false; - } - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java index 1ab84b139..557721670 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java @@ -1,11 +1,18 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFrackingTower; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineFrackingTower extends BlockDummyable { @@ -14,17 +21,60 @@ public class MachineFrackingTower extends BlockDummyable { } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineFrackingTower(); + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityMachineFrackingTower(); + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + return null; } @Override public int[] getDimensions() { - return new int[] {1, 0, 0, 0, 0, 0}; + return new int[] {3, 0, 0, 0, 0, 0}; } @Override public int getOffset() { return 0; } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return super.checkRequirement(world, x, y, z, dir, o); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + MultiblockHandlerXR.fillSpace(world, x, y, z, getDimensions(), this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {1, 0, 3, 3, 3, 3}, this, dir); + + MultiblockHandlerXR.fillSpace(world, x - 2, y + 2, z - 2, new int[] {-1, 2, 0, 1, 0, 1}, this, ForgeDirection.NORTH); + MultiblockHandlerXR.fillSpace(world, x - 2, y + 2, z + 3, new int[] {-1, 2, 0, 1, 0, 1}, this, ForgeDirection.NORTH); + MultiblockHandlerXR.fillSpace(world, x + 3, y + 2, z - 2, new int[] {-1, 2, 0, 1, 0, 1}, this, ForgeDirection.NORTH); + MultiblockHandlerXR.fillSpace(world, x + 3, y + 2, z + 3, new int[] {-1, 2, 0, 1, 0, 1}, this, ForgeDirection.NORTH); + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {10, -4, 2, 2, 2, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {24, -9, 1, 1, 1, 1}, this, dir); + + MultiblockHandlerXR.fillSpace(world, x, y + 15, z, new int[] {1, 0, 1, 1, -2, 3}, this, ForgeDirection.WEST); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_well, world, pos[0], pos[1], pos[2]); + return true; + } else { + return true; + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java index 8ba1c3923..6fd762136 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java @@ -1,297 +1,80 @@ package com.hbm.blocks.machine; -import java.util.Random; - +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachinePumpjack extends BlockContainer implements IMultiblock { +public class MachinePumpjack extends BlockDummyable { - private final Random field_149933_a = new Random(); - private Random rand; - private static boolean keepInventory; + public MachinePumpjack() { + super(Material.iron); + } - public MachinePumpjack(Material p_i45386_1_) { - super(p_i45386_1_); + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityMachinePumpjack(); + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {3, 0, 0, 0, 0, 6}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return super.checkRequirement(world, x, y, z, dir, o) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -2, 4}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 5}, 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); + + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 3, y, z + rot.offsetZ * 3, new int[] {0, 0, -1, 1, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 3, y, z + rot.offsetZ * 3, new int[] {0, 0, 1, -1, 2, 2}, this, dir); + + this.makeExtra(world, x + rot.offsetX * 3 + 1, y, z + rot.offsetZ * 3 + 1); + this.makeExtra(world, x + rot.offsetX * 3 + 1, y, z + rot.offsetZ * 3 - 1); + this.makeExtra(world, x + rot.offsetX * 3 - 1, y, z + rot.offsetZ * 3 + 1); + this.makeExtra(world, x + rot.offsetX * 3 - 1, y, z + rot.offsetZ * 3 - 1); } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_pumpjack); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachinePumpjack(); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @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) - { - TileEntityMachinePumpjack tileentityfurnace = (TileEntityMachinePumpjack)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 void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.pumpjackDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.pumpjackDimensionEast, ModBlocks.dummy_block_pumpjack); - - // - DummyBlockPumpjack.safeBreak = true; - world.setBlock(x - 2, y, z + 1, ModBlocks.dummy_port_pumpjack); - TileEntity te = world.getTileEntity(x - 2, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z - 1, ModBlocks.dummy_port_pumpjack); - TileEntity te2 = world.getTileEntity(x - 2, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 3, y, z + 1, ModBlocks.dummy_port_pumpjack); - TileEntity te3 = world.getTileEntity(x - 3, y, z + 1); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 3, y, z - 1, ModBlocks.dummy_port_pumpjack); - TileEntity te4 = world.getTileEntity(x - 3, y, z - 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockPumpjack.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.pumpjackDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.pumpjackDimensionSouth, ModBlocks.dummy_block_pumpjack); - - // - DummyBlockPumpjack.safeBreak = true; - world.setBlock(x + 1, y, z - 2, ModBlocks.dummy_port_pumpjack); - TileEntity te = world.getTileEntity(x + 1, y, z - 2); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 2, ModBlocks.dummy_port_pumpjack); - TileEntity te2 = world.getTileEntity(x - 1, y, z - 2); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 3, ModBlocks.dummy_port_pumpjack); - TileEntity te3 = world.getTileEntity(x + 1, y, z - 3); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 3, ModBlocks.dummy_port_pumpjack); - TileEntity te4 = world.getTileEntity(x - 1, y, z - 3); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockPumpjack.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.pumpjackDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.pumpjackDimensionWest, ModBlocks.dummy_block_pumpjack); - - // - DummyBlockPumpjack.safeBreak = true; - world.setBlock(x + 2, y, z + 1, ModBlocks.dummy_port_pumpjack); - TileEntity te = world.getTileEntity(x + 2, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z - 1, ModBlocks.dummy_port_pumpjack); - TileEntity te2 = world.getTileEntity(x + 2, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 3, y, z + 1, ModBlocks.dummy_port_pumpjack); - TileEntity te3 = world.getTileEntity(x + 3, y, z + 1); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 3, y, z - 1, ModBlocks.dummy_port_pumpjack); - TileEntity te4 = world.getTileEntity(x + 3, y, z - 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockPumpjack.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.pumpjackDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.pumpjackDimensionNorth, ModBlocks.dummy_block_pumpjack); - - // - DummyBlockPumpjack.safeBreak = true; - world.setBlock(x + 1, y, z + 2, ModBlocks.dummy_port_pumpjack); - TileEntity te = world.getTileEntity(x + 1, y, z + 2); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 2, ModBlocks.dummy_port_pumpjack); - TileEntity te2 = world.getTileEntity(x - 1, y, z + 2); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z + 3, ModBlocks.dummy_port_pumpjack); - TileEntity te3 = world.getTileEntity(x + 1, y, z + 3); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 3, ModBlocks.dummy_port_pumpjack); - TileEntity te4 = world.getTileEntity(x - 1, y, z + 3); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockPumpjack.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_well, world, pos[0], pos[1], pos[2]); + return true; + } else { + return true; } } - } diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 3c049f8c4..492812a06 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -139,6 +139,9 @@ public class MineralRecipes { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_pu238be, 1), new Object[] { "nuggetPlutonium238", "nuggetPlutonium238", "nuggetPlutonium238", ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_ra226be, 1), new Object[] { "nuggetRadium226", "nuggetRadium226", "nuggetRadium226", ModItems.nugget_beryllium, ModItems.nugget_beryllium, ModItems.nugget_beryllium })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_bismuth, 1), new Object[] { "nuggetZirconium", "nuggetZirconium", "nuggetZirconium", "nuggetUranium", "nuggetPlutonium241", ModItems.nugget_bismuth })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_pu241, 1), new Object[] { "nuggetZirconium", "nuggetZirconium", "nuggetZirconium", "nuggetUranium235", "nuggetPlutonium240", "nuggetPlutonium241" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_am_mix, 1), new Object[] { "nuggetZirconium", "nuggetZirconium", "nuggetZirconium", "nuggetPlutonium241", "nuggetPlutonium241", "nuggetAmericiumRG" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_uranium, 9), new Object[] { ModItems.billet_u235, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238 }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium, 1), new Object[] { "nuggetUranium235", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index c5ef12c93..15102744a 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -189,6 +189,9 @@ public class RodRecipes { addRBMKRod(ModItems.billet_schrabidium_fuel, ModItems.rbmk_fuel_mes); addRBMKRod(ModItems.billet_hes, ModItems.rbmk_fuel_hes); addRBMKRod(ModItems.billet_balefire_gold, ModItems.rbmk_fuel_balefire_gold); + addRBMKRod(ModItems.billet_zfb_bismuth, ModItems.rbmk_fuel_zfb_bismuth); + addRBMKRod(ModItems.billet_zfb_pu241, ModItems.rbmk_fuel_zfb_pu241); + addRBMKRod(ModItems.billet_zfb_am_mix, ModItems.rbmk_fuel_zfb_am_mix); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rbmk_fuel_drx, 1), new Object[] { ModItems.rbmk_fuel_balefire, ModItems.particle_digamma }); //Water rods diff --git a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java index 6da66ae18..252587aa5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java +++ b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java @@ -7,6 +7,7 @@ import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; 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; @@ -46,12 +47,19 @@ public class EntityWaterSplash extends EntityThrowable { } } - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) - { - if(this.ticksExisted > 5) { - worldObj.spawnParticle("splash", posX, posY, posZ, 0.0D, 0.0D, 0.0D); - this.setDead(); - } - } + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) { + if(this.ticksExisted > 5) { + worldObj.spawnParticle("splash", posX, posY, posZ, 0.0D, 0.0D, 0.0D); + this.setDead(); + } + } + + public boolean writeToNBTOptional(NBTTagCompound nbt) { + return false; + } + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.setDead(); + } } diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index 8a65319ac..19c906904 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -197,8 +197,8 @@ public class HbmLivingProps implements IExtendedEntityProperties { getData(entity).blacklung = blacklung; if(blacklung >= maxBlacklung) { - getData(entity).asbestos = 0; - entity.attackEntityFrom(ModDamageSource.asbestos, 1000); + getData(entity).blacklung = 0; + entity.attackEntityFrom(ModDamageSource.blacklung, 1000); } } diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index b1ce5e381..f6e551575 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -14,8 +14,10 @@ public class FuelHandler implements IFuelHandler { if(fuel.getItem().equals(ModItems.solid_fuel)) return 3200; - if(fuel.getItem().equals(ModItems.biomass_compressed)) + if(fuel.getItem().equals(ModItems.biomass)) return 800; + if(fuel.getItem().equals(ModItems.biomass_compressed)) + return 2400; if(fuel.getItem().equals(ModItems.powder_coal)) return 1600; if(fuel.getItem().equals(ModItems.scrap)) diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index b921018a4..0c588a9a3 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -10,9 +10,8 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; -import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; +import com.hbm.tileentity.machine.oil.TileEntityOilDrillBase; import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.turret.*; @@ -309,8 +308,8 @@ public class GUIHandler implements IGuiHandler { } case ModBlocks.guiID_machine_well: { - if(entity instanceof TileEntityMachineOilWell) { - return new ContainerMachineOilWell(player.inventory, (TileEntityMachineOilWell) entity); + if(entity instanceof TileEntityOilDrillBase) { + return new ContainerMachineOilWell(player.inventory, (TileEntityOilDrillBase) entity); } return null; } @@ -357,13 +356,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_machine_pumpjack: { - if(entity instanceof TileEntityMachinePumpjack) { - return new ContainerMachinePumpjack(player.inventory, (TileEntityMachinePumpjack) entity); - } - return null; - } - case ModBlocks.guiID_machine_turbofan: { if(entity instanceof TileEntityMachineTurbofan) { return new ContainerMachineTurbofan(player.inventory, (TileEntityMachineTurbofan) entity); @@ -1151,8 +1143,8 @@ public class GUIHandler implements IGuiHandler { } case ModBlocks.guiID_machine_well: { - if(entity instanceof TileEntityMachineOilWell) { - return new GUIMachineOilWell(player.inventory, (TileEntityMachineOilWell) entity); + if(entity instanceof TileEntityOilDrillBase) { + return new GUIMachineOilWell(player.inventory, (TileEntityOilDrillBase) entity); } return null; } @@ -1199,13 +1191,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_machine_pumpjack: { - if(entity instanceof TileEntityMachinePumpjack) { - return new GUIMachinePumpjack(player.inventory, (TileEntityMachinePumpjack) entity); - } - return null; - } - case ModBlocks.guiID_machine_turbofan: { if(entity instanceof TileEntityMachineTurbofan) { return new GUIMachineTurbofan(player.inventory, (TileEntityMachineTurbofan) entity); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 31b71a097..c59fd7a25 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -234,6 +234,21 @@ public class HazardRegistry { registerRBMKRod(rbmk_fuel_meu, uf * rod_rbmk, uf * rod_rbmk * 100); registerRBMKRod(rbmk_fuel_heu233, u233 * rod_rbmk, u233 * rod_rbmk * 100); registerRBMKRod(rbmk_fuel_heu235, u235 * rod_rbmk, u235 * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_thmeu, thf * rod_rbmk, u233 * rod_rbmk * 10); + registerRBMKRod(rbmk_fuel_lep, puf * rod_rbmk, puf * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_mep, purg * rod_rbmk, purg * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_hep239, pu239 * rod_rbmk, pu239 * rod_rbmk * 100); + registerRBMKRod(rbmk_fuel_hep241, pu241 * rod_rbmk, pu241 * rod_rbmk * 100); + + registerRBMKPellet(rbmk_pellet_ueu, u * billet, u * billet * 100); + registerRBMKPellet(rbmk_pellet_meu, uf * billet, uf * billet * 100); + registerRBMKPellet(rbmk_pellet_heu233, u233 * billet, u233 * billet * 100); + registerRBMKPellet(rbmk_pellet_heu235, u235 * billet, u235 * billet * 100); + registerRBMKPellet(rbmk_pellet_thmeu, thf * billet, u233 * billet * 10); + registerRBMKPellet(rbmk_pellet_lep, puf * billet, puf * billet * 100); + registerRBMKPellet(rbmk_pellet_mep, purg * billet, purg * billet * 100); + registerRBMKPellet(rbmk_pellet_hep239, pu239 * billet, pu239 * billet * 100); + registerRBMKPellet(rbmk_pellet_hep241, pu241 * billet, pu241 * billet * 100); //TODO } @@ -259,9 +274,13 @@ public class HazardRegistry { HazardSystem.register(quad, new HazardData().addEntry(RADIATION, base * rod_quad).addEntry(extra, base2 * rod_quad)); } - private static void registerRBMKPellet(Item rod, float base, float dep) { registerRBMKPellet(rod, base, dep, 0F); } - private static void registerRBMKPellet(Item rod, float base, float dep, float blinding) { + private static void registerRBMKPellet(Item pellet, float base, float dep) { registerRBMKPellet(pellet, base, dep, 0F); } + private static void registerRBMKPellet(Item pellet, float base, float dep, float blinding) { + HazardData data = new HazardData(); + data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRBMKRadiation(dep))); + if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding)); + HazardSystem.register(pellet, data); } private static void registerRBMKRod(Item rod, float base, float dep) { registerRBMK(rod, base, dep, true, 0F); } diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index a4ba3a4ad..bf8714f80 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -43,6 +43,7 @@ public class FluidContainerRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_kerosene), new ItemStack(ModItems.canister_empty), FluidType.KEROSENE, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_biofuel), new ItemStack(ModItems.canister_empty), FluidType.BIOFUEL, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_gasoline), new ItemStack(ModItems.canister_empty), FluidType.GASOLINE, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_fracksol), new ItemStack(ModItems.canister_empty), FluidType.FRACKSOL, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_NITAN), new ItemStack(ModItems.canister_empty), FluidType.NITAN, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full), new ItemStack(ModItems.gas_empty), FluidType.GAS, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_petroleum), new ItemStack(ModItems.gas_empty), FluidType.PETROLEUM, 1000)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index f876e1947..8132b130f 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -169,21 +169,21 @@ public class OreDictManager { OreDictionary.registerOre("stairWoodPink", pink_stairs); OreDictionary.registerOre("dyeRed", cinnebar); - OreDictionary.registerOre("dye", cinnebar); + //OreDictionary.registerOre("dye", cinnebar); OreDictionary.registerOre("dyeYellow", sulfur); - OreDictionary.registerOre("dye", sulfur); + //OreDictionary.registerOre("dye", sulfur); OreDictionary.registerOre("dyeBlack", powder_coal); - OreDictionary.registerOre("dye", powder_coal); + //OreDictionary.registerOre("dye", powder_coal); OreDictionary.registerOre("dyeBrown", powder_lignite); - OreDictionary.registerOre("dye", powder_lignite); + //OreDictionary.registerOre("dye", powder_lignite); OreDictionary.registerOre("dyeLightGray", powder_titanium); - OreDictionary.registerOre("dye", powder_titanium); + //OreDictionary.registerOre("dye", powder_titanium); OreDictionary.registerOre("dyeWhite", fluorite); - OreDictionary.registerOre("dye", fluorite); + //OreDictionary.registerOre("dye", fluorite); OreDictionary.registerOre("dyeBlue", powder_lapis); - OreDictionary.registerOre("dye", powder_lapis); + //OreDictionary.registerOre("dye", powder_lapis); OreDictionary.registerOre("dyeBlack", oil_tar); - OreDictionary.registerOre("dye", oil_tar); + //OreDictionary.registerOre("dye", oil_tar); OreDictionary.registerOre("blockGlass", glass_boron); OreDictionary.registerOre("blockGlass", glass_lead); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineOilWell.java b/src/main/java/com/hbm/inventory/container/ContainerMachineOilWell.java index 529459001..de6d70b11 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineOilWell.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineOilWell.java @@ -1,6 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.oil.TileEntityOilDrillBase; import net.minecraft.entity.player.EntityPlayer; @@ -24,9 +25,13 @@ public class ContainerMachineOilWell extends Container { // Canister Output this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 80, 53)); // Gas Input - this.addSlotToContainer(new Slot(tedf, 3, 134, 17)); + this.addSlotToContainer(new Slot(tedf, 3, 125, 17)); // Gas Output - this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 134, 53)); + this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 125, 53)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 5, 152, 17)); + this.addSlotToContainer(new Slot(tedf, 6, 152, 35)); + this.addSlotToContainer(new Slot(tedf, 7, 152, 53)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -53,9 +58,12 @@ public class ContainerMachineOilWell extends Container { return null; } } else if(!this.mergeItemStack(var5, 0, 2, false)) { - if(!this.mergeItemStack(var5, 3, 4, false)) - if(!this.mergeItemStack(var5, 5, 6, false)) + + if(var5.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 5, 8, true)) { return null; + } + } } if(var5.stackSize == 0) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachinePumpjack.java b/src/main/java/com/hbm/inventory/container/ContainerMachinePumpjack.java deleted file mode 100644 index b5409c913..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachinePumpjack.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotMachineOutput; -import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; - -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 ContainerMachinePumpjack extends Container { - - private TileEntityMachinePumpjack testNuke; - private int warning; - private int warning2; - - public ContainerMachinePumpjack(InventoryPlayer invPlayer, TileEntityMachinePumpjack tedf) { - warning = 0; - warning2 = 0; - - testNuke = tedf; - - //Battery - this.addSlotToContainer(new Slot(tedf, 0, 44, 54)); - //Canister Input - this.addSlotToContainer(new Slot(tedf, 1, 134, 18)); - //Canister Output - this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 134, 54)); - //Gas Input - this.addSlotToContainer(new Slot(tedf, 3, 134, 72)); - //Gas Output - this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 134, 108)); - //Chip - this.addSlotToContainer(new Slot(tedf, 5, 8, 90)); - - 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)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 1, this.testNuke.warning); - crafting.sendProgressBarUpdate(this, 2, this.testNuke.warning2); - } - - @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 <= 5) { - if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 2, false)) - { - if (!this.mergeItemStack(var5, 3, 4, false)) - if (!this.mergeItemStack(var5, 5, 6, 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); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - if(this.warning != this.testNuke.warning) - { - par1.sendProgressBarUpdate(this, 1, this.testNuke.warning); - } - if(this.warning2 != this.testNuke.warning2) - { - par1.sendProgressBarUpdate(this, 2, this.testNuke.warning2); - } - } - - this.warning = this.testNuke.warning; - this.warning2 = this.testNuke.warning2; - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - testNuke.warning = j; - } - if(i == 2) - { - testNuke.warning2 = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java b/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java index c1cdaaf05..3bd9568df 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java @@ -5,7 +5,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; import com.hbm.tileentity.machine.oil.TileEntityOilDrillBase; import net.minecraft.client.Minecraft; @@ -31,7 +30,12 @@ public class GUIMachineOilWell extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); derrick.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 16, 52); - derrick.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 69 - 52, 16, 52); + derrick.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 69 - 52, 16, 52); + + if(derrick.tanks.length >= 3) { + derrick.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 40, guiTop + 37, 6, 32); + } + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 17, 16, 34, derrick.power, derrick.getMaxPower()); } @@ -65,6 +69,11 @@ public class GUIMachineOilWell extends GuiInfoContainer { derrick.tanks[0].renderTank(this, guiLeft + 62, guiTop + 69, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); Minecraft.getMinecraft().getTextureManager().bindTexture(derrick.tanks[1].getSheet()); - derrick.tanks[1].renderTank(this, guiLeft + 116, guiTop + 69, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + derrick.tanks[1].renderTank(this, guiLeft + 107, guiTop + 69, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + + if(derrick.tanks.length > 2) { + Minecraft.getMinecraft().getTextureManager().bindTexture(derrick.tanks[2].getSheet()); + derrick.tanks[2].renderTank(this, guiLeft + 40, guiTop + 69, derrick.tanks[2].getTankType().textureX() * FluidTank.x, derrick.tanks[2].getTankType().textureY() * FluidTank.y, 6, 32); + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePumpjack.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePumpjack.java deleted file mode 100644 index a9245f64b..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePumpjack.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.FluidTank; -import com.hbm.inventory.container.ContainerMachinePumpjack; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachinePumpjack extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_well_large.png"); - private TileEntityMachinePumpjack derrick; - - public GUIMachinePumpjack(InventoryPlayer invPlayer, TileEntityMachinePumpjack tedf) { - super(new ContainerMachinePumpjack(invPlayer, tedf)); - derrick = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - derrick.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 70 - 52, 34, 52); - derrick.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 124 - 52, 34, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 70 - 52, 16, 52, derrick.power, derrick.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.derrick.hasCustomInventoryName() ? this.derrick.getInventoryName() : I18n.format(this.derrick.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); - - int i = (int)derrick.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 70 - i, 176, 52 - i, 16, i); - - int k = derrick.warning; - if(k == 2) - drawTexturedModalRect(guiLeft + 44, guiTop + 18, 176, 52, 16, 16); - if(k == 1) - drawTexturedModalRect(guiLeft + 44, guiTop + 18, 192, 52, 16, 16); - - int l = derrick.warning2; - if(l == 1) - drawTexturedModalRect(guiLeft + 44, guiTop + 90, 208, 52, 16, 16); - if(l == 2) - drawTexturedModalRect(guiLeft + 44, guiTop + 90, 224, 52, 16, 16); - - Minecraft.getMinecraft().getTextureManager().bindTexture(derrick.tanks[0].getSheet()); - derrick.tanks[0].renderTank(this, guiLeft + 80, guiTop + 70, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); - derrick.tanks[0].renderTank(this, guiLeft + 96, guiTop + 70, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); - derrick.tanks[0].renderTank(this, guiLeft + 112, guiTop + 70, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 2, 52); - - Minecraft.getMinecraft().getTextureManager().bindTexture(derrick.tanks[1].getSheet()); - derrick.tanks[1].renderTank(this, guiLeft + 80, guiTop + 124, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); - derrick.tanks[1].renderTank(this, guiLeft + 96, guiTop + 124, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); - derrick.tanks[1].renderTank(this, guiLeft + 112, guiTop + 124, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 2, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 49fc42716..e1f0797a2 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -314,6 +314,46 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.undefined), 1)) ); + + // ZFB BI // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); + + // ZFB PU-241 // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); + + // ZFB RG-AM // + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 150)) ); + + recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i + 5), new SILEXRecipe(600, 100) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 3)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_zirconium), 147)) ); } recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), new SILEXRecipe(900, 100) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8015ae73b..98d038fad 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -786,6 +786,7 @@ public class ModItems { public static Item canister_napalm; public static Item canister_gasoline; public static Item canister_NITAN; + public static Item canister_fracksol; public static Item canister_heavyoil; public static Item canister_bitumen; @@ -3148,6 +3149,7 @@ public class ModItems { canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_petroil"); canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_gasoline"); + canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_fracksol"); canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel"); canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heavyoil"); canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_bitumen"); @@ -6079,6 +6081,7 @@ public class ModItems { GameRegistry.registerItem(canister_biofuel, canister_biofuel.getUnlocalizedName()); GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); GameRegistry.registerItem(canister_gasoline, canister_gasoline.getUnlocalizedName()); + GameRegistry.registerItem(canister_fracksol, canister_fracksol.getUnlocalizedName()); GameRegistry.registerItem(canister_NITAN, canister_NITAN.getUnlocalizedName()); //Gas Tanks diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 732a637c8..749b6f686 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import com.hbm.render.model.ModelM65; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; @@ -59,7 +60,18 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { + + int i = 0; + + ItemStack filter = ArmorUtil.getGasMaskFilter(stack); + + if(filter != null) { + i = filter.getItemDamage() / filter.getMaxDamage(); + } + list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)"); + + ArmorUtil.addGasMaskTooltip(stack, MainRegistry.proxy.me(), list, false); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 572fd78ec..eed058317 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -41,6 +41,8 @@ public class ItemMachineUpgrade extends Item { list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Chemical Plant:"); list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (25 * this.tier) + "%"); list.add(EnumChatFormatting.RED + "Crystallizer:"); list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Cyclotron:"); @@ -67,6 +69,8 @@ public class ItemMachineUpgrade extends Item { list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); list.add(EnumChatFormatting.RED + "Chemical Plant:"); list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Consumption -" + (25 * this.tier) + "% / Delay +" + (10 * this.tier) + "%"); list.add(EnumChatFormatting.RED + "Cyclotron:"); list.add("Consumption -" + (100 * this.tier) + "kHE/t"); list.add(EnumChatFormatting.RED + "Maxwell:"); @@ -94,6 +98,8 @@ public class ItemMachineUpgrade extends Item { list.add("Production x2 / Consumption x2.5"); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Afterburn +3s"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Burn 10mB of gas for 50HE/t"); } if(this == ModItems.upgrade_afterburn_2) { @@ -101,6 +107,8 @@ public class ItemMachineUpgrade extends Item { list.add("Production x3 / Consumption x5"); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Afterburn +6s"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Burn 20mB of gas for 100HE/t"); } if(this == ModItems.upgrade_afterburn_3) { @@ -108,6 +116,8 @@ public class ItemMachineUpgrade extends Item { list.add("Production x4 / Consumption x7.5"); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Afterburn +9s"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Burn 30mB of gas for 150HE/t"); } if(this == ModItems.upgrade_radius) { diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index dd1af087b..a5f03d3f5 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -34,6 +34,7 @@ import com.hbm.world.feature.Sellafield; import com.hbm.world.generator.CellularDungeonFactory; import com.hbm.world.generator.DungeonToolbox; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; @@ -531,7 +532,7 @@ public class HbmWorldGen implements IWorldGenerator { } } - if (rand.nextInt(25) == 0) { + if(rand.nextInt(25) == 0) { int randPosX = i + rand.nextInt(16); int randPosY = rand.nextInt(25); int randPosZ = j + rand.nextInt(16); @@ -539,6 +540,25 @@ public class HbmWorldGen implements IWorldGenerator { OilBubble.spawnOil(world, randPosX, randPosY, randPosZ, 7 + rand.nextInt(9)); } + if(rand.nextInt(50) == 0) { + int randPosX = i + rand.nextInt(16); + int randPosZ = j + rand.nextInt(16); + + for(int x = -4; x <= 4; x++) { + for(int y = 0; y <= 4; y++) { + for(int z = -4; z <= 4; z++) { + + if(Math.abs(x) + Math.abs(y) + Math.abs(z) <= 6) { + Block b = world.getBlock(randPosX + x, y, randPosZ + z); + if(b.isReplaceableOreGen(world, randPosX + x, y, randPosZ + z, Blocks.stone) || b.isReplaceableOreGen(world, randPosX + x, y, randPosZ + z, Blocks.bedrock)) { + world.setBlock(randPosX + x, y, randPosZ + z, ModBlocks.ore_bedrock_oil); + } + } + } + } + } + } + if (GeneralConfig.enableNITAN) { if (i <= 10000 && i + 16 >= 10000 && j <= 10000 && j + 16 >= 10000) { diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index a448b955f..3b08eb0f0 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -48,6 +48,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource lunar = (new DamageSource("lunar")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource monoxide = (new DamageSource("monoxide")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource asbestos = (new DamageSource("asbestos")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource blacklung = (new DamageSource("blacklung")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource mku = (new DamageSource("mku")).setDamageIsAbsolute().setDamageBypassesArmor(); public static final String s_bullet = "revolverBullet"; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 4cbaba602..772e6394f 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 (4000)"; + public static final String VERSION = "1.0.27 BETA (4011)"; //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 e62f586b1..91328ecd6 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -72,6 +72,7 @@ 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.TileEntityMachineFrackingTower; import com.hbm.tileentity.machine.oil.TileEntityMachineFractionTower; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; @@ -173,6 +174,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFractionTower.class, new RenderFractionTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySpacer.class, new RenderSpacer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpjack.class, new RenderPumpjack()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFrackingTower.class, new RenderFrackingTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index fe85c184f..be9efe67b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -813,6 +813,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.rag, 4), new Object[] { "SW", "WS", 'S', Items.string, 'W', Blocks.wool }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', "ingotSteel", 'I', "plateIron", 'C', ModItems.board_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_fracking_tower), new Object[] { "NDN", "PRP", "CRC", 'N', "ingotNiobium", 'D', ModBlocks.machine_well, 'P', ModItems.plate_desh, 'R', ModItems.pipes_steel, 'C', ModBlocks.concrete_smooth })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.canister_fracksol, 4), new Object[] { "dustSulfur", "dustSulfur", "dustSulfur", "dustSulfur", ModItems.gas_petroleum, ModItems.canister_empty, ModItems.canister_empty, ModItems.canister_empty, ModItems.canister_empty })); if(GeneralConfig.enableBabyMode) { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 7aead8abd..6e3941ab6 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1164,6 +1164,16 @@ public class ModEventHandler { @SubscribeEvent public void chatEvent(ServerChatEvent event) { + World world = event.player.worldObj; + + for(Object e : world.loadedEntityList) { + + long time = System.currentTimeMillis(); + Entity entity = (Entity)e; + entity.onUpdate(); + System.out.println("Took " + (System.currentTimeMillis() - time) + "ms to tick " + entity); + } + EntityPlayerMP player = event.player; String message = event.message; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7eaaa493c..d6ddaa1b2 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -61,6 +61,7 @@ public class ResourceManager { //Oil Pumps public static final IModelCustom derrick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/derrick.obj")); public static final IModelCustom pumpjack = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pumpjack.obj")); + public static final IModelCustom fracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fracking_tower.obj")); //Refinery public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")); @@ -322,6 +323,7 @@ public class ResourceManager { //Oil Pumps public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/derrick.png"); public static final ResourceLocation pumpjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pumpjack.png"); + public static final ResourceLocation fracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fracking_tower.png"); //Refinery public static final ResourceLocation refinery_tex = new ResourceLocation(RefStrings.MODID, "textures/models/refinery.png"); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index f3699218b..517c5f675 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -41,8 +41,6 @@ public class PacketDispatcher { wrapper.registerMessage(TETurretPacket.Handler.class, TETurretPacket.class, i++, Side.CLIENT); //Signals server to consume items and create template wrapper.registerMessage(ItemFolderPacket.Handler.class, ItemFolderPacket.class, i++, Side.SERVER); - //Pumpjack rotation for animation rendering - wrapper.registerMessage(TEPumpjackPacket.Handler.class, TEPumpjackPacket.class, i++, Side.CLIENT); //Turbofan spin for rendering wrapper.registerMessage(TETurbofanPacket.Handler.class, TETurbofanPacket.class, i++, Side.CLIENT); //Press item for rendering diff --git a/src/main/java/com/hbm/packet/TEPumpjackPacket.java b/src/main/java/com/hbm/packet/TEPumpjackPacket.java deleted file mode 100644 index a14b1aed8..000000000 --- a/src/main/java/com/hbm/packet/TEPumpjackPacket.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; - -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; - -public class TEPumpjackPacket implements IMessage { - - int x; - int y; - int z; - int spin; - boolean progress; - - public TEPumpjackPacket() - { - - } - - public TEPumpjackPacket(int x, int y, int z, int spin, boolean bool) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - this.progress = bool; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readInt(); - progress = buf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(spin); - buf.writeBoolean(progress); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEPumpjackPacket m, MessageContext ctx) { - try { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachinePumpjack) { - - TileEntityMachinePumpjack gen = (TileEntityMachinePumpjack) te; - gen.rotation = m.spin; - gen.isProgressing = m.progress; - } - } catch(Exception x) { } - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFrackingTower.java b/src/main/java/com/hbm/render/tileentity/RenderFrackingTower.java new file mode 100644 index 000000000..ec595c04a --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFrackingTower.java @@ -0,0 +1,28 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderFrackingTower extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fracking_tower_tex); + ResourceManager.fracking_tower.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPumpjack.java b/src/main/java/com/hbm/render/tileentity/RenderPumpjack.java index 1efa6faf5..ef2f4f77e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPumpjack.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPumpjack.java @@ -2,6 +2,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; @@ -12,8 +13,6 @@ import net.minecraft.util.Vec3; public class RenderPumpjack extends TileEntitySpecialRenderer { - int i; - @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -21,17 +20,16 @@ public class RenderPumpjack extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); - switch(tileEntity.getBlockMetadata()) { - case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; - case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + 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; } - - if(tileEntity instanceof TileEntityMachinePumpjack) - i = ((TileEntityMachinePumpjack) tileEntity).rotation; - float rotation = (System.currentTimeMillis() % 3600) / 10F; + TileEntityMachinePumpjack pj = (TileEntityMachinePumpjack) tileEntity; + + float rotation = pj.prevRot + (pj.rot - pj.prevRot) * f; GL11.glShadeModel(GL11.GL_SMOOTH); @@ -126,8 +124,8 @@ public class RenderPumpjack extends TileEntitySpecialRenderer { tess.addVertex((width + pd) * i, 3.5 + sumY, -3.5 + sumZ); tess.addVertex((width - pd) * i, 3.5 + sumY, -3.5 + sumZ); - tess.addVertex((width + pd) * i, 2 + height, 0); tess.addVertex((width - pd) * i, 2 + height, 0); + tess.addVertex((width + pd) * i, 2 + height, 0); } double p = 0.03125D; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index a8a3f5c6f..3e3f5491c 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -6,12 +6,7 @@ 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.TileEntityMachineFractionTower; -import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; -import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; -import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; -import com.hbm.tileentity.machine.oil.TileEntitySpacer; +import com.hbm.tileentity.machine.oil.*; import com.hbm.tileentity.machine.pile.*; import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.network.*; @@ -73,9 +68,6 @@ public class TileMappings { map.put(TileEntityMachineIGenerator.class, "tileentity_igenerator"); map.put(TileEntityDummy.class, "tileentity_dummy"); map.put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); - map.put(TileEntityMachineOilWell.class, "tileentity_derrick"); - map.put(TileEntityMachineGasFlare.class, "tileentity_gasflare"); - map.put(TileEntityMachineRefinery.class, "tileentity_refinery"); map.put(TileEntityOilDuct.class, "tileentity_oil_duct"); map.put(TileEntityOilDuctSolid.class, "tileentity_oil_duct_solid"); map.put(TileEntityGasDuct.class, "tileentity_gas_duct"); @@ -93,7 +85,6 @@ public class TileMappings { map.put(TileEntityTurretLight.class, "tileentity_turret_light"); map.put(TileEntityTurretFlamer.class, "tileentity_turret_flamer"); map.put(TileEntityTurretTau.class, "tileentity_turret_tau"); - map.put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); map.put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); map.put(TileEntityCrateIron.class, "tileentity_crate_iron"); map.put(TileEntityCrateSteel.class, "tileentity_crate_steel"); @@ -238,6 +229,12 @@ public class TileMappings { map.put(TileEntityCondenser.class, "tileentity_condenser"); map.put(TileEntityTowerSmall.class, "tileentity_cooling_tower_small"); map.put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large"); + + map.put(TileEntityMachineOilWell.class, "tileentity_derrick"); + map.put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); + map.put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower"); + map.put(TileEntityMachineGasFlare.class, "tileentity_gasflare"); + map.put(TileEntityMachineRefinery.class, "tileentity_refinery"); } private static void putPile() { 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 47ecf5824..aa889fcc6 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -1,7 +1,125 @@ package com.hbm.tileentity.machine.oil; -import net.minecraft.tileentity.TileEntity; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.inventory.FluidTank; -public class TileEntityMachineFrackingTower extends TileEntity { +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; + +public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { + + public TileEntityMachineFrackingTower() { + super(); + tanks = new FluidTank[3]; + tanks[0] = new FluidTank(FluidType.OIL, 64_000, 0); + tanks[1] = new FluidTank(FluidType.GAS, 64_000, 1); + tanks[2] = new FluidTank(FluidType.FRACKSOL, 64_000, 2); + } + + @Override + public String getName() { + return "container.frackingTower"; + } + + @Override + public long getMaxPower() { + return 5_000_000; + } + + @Override + public int getPowerReq() { + return 5000; + } + + @Override + public int getDelay() { + return 20; + } + + @Override + public int getDrillDepth() { + return 0; + } + + @Override + public boolean canPump() { + boolean b = this.tanks[2].getFill() >= 10; + + if(!b) { + this.indicator = 3; + } + + return b; + } + + @Override + public boolean canSuckBlock(Block b) { + return super.canSuckBlock(b) || b == ModBlocks.ore_bedrock_oil; + } + + @Override + public void doSuck(int x, int y, int z) { + super.doSuck(x, y, z); + + if(worldObj.getBlock(x, y, z) == ModBlocks.ore_bedrock_oil) { + onSuck(x, y, z); + } + } + + @Override + public void onSuck(int x, int y, int z) { + + Block b = worldObj.getBlock(x, y, z); + + int oil = 0; + int gas = 0; + + if(b == ModBlocks.ore_oil) { + oil = 1000; + gas = 100 + worldObj.rand.nextInt(401); + } + if(b == ModBlocks.ore_bedrock_oil) { + oil = 100; + gas = 10 + worldObj.rand.nextInt(41); + } + + this.tanks[0].setFill(this.tanks[0].getFill() + oil); + if(this.tanks[0].getFill() > this.tanks[0].getMaxFill()) this.tanks[0].setFill(tanks[0].getMaxFill()); + this.tanks[1].setFill(this.tanks[1].getFill() + gas); + if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) this.tanks[1].setFill(tanks[1].getMaxFill()); + + this.tanks[2].setFill(tanks[2].getFill() - 10); + + for(int i = 0; i < 10; i++) { + int rX = xCoord + (int)(worldObj.rand.nextGaussian() * 75); + int rZ = zCoord + (int)(worldObj.rand.nextGaussian() * 75); + int rY = worldObj.getHeightValue(rX, rZ) - 1; + + Block ground = worldObj.getBlock(rX, rY, rZ); + + if(ground == Blocks.grass || ground == Blocks.dirt) { + worldObj.setBlock(rX, rY, rZ, worldObj.rand.nextInt(10) == 0 ? ModBlocks.dirt_oily : ModBlocks.dirt_dead); + + } else if(ground.getMaterial() == Material.leaves) { + worldObj.setBlockToAir(rX, rY, rZ); + } + } + } + + @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; + } } 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 f37159015..209c2ad08 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -1,9 +1,13 @@ package com.hbm.tileentity.machine.oil; +import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.handler.FluidTypeHandler.FluidType; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.oredict.OreDictionary; public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @@ -27,6 +31,36 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { return 50; } + @Override + public void onDrill(int y) { + Block b = worldObj.getBlock(xCoord, y, zCoord); + ItemStack stack = new ItemStack(b); + int[] ids = OreDictionary.getOreIDs(stack); + for(Integer i : ids) { + String name = OreDictionary.getOreName(i); + + 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("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); + } + } + } + } + } + } + @Override public void onSuck(int x, int y, int 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 a3c71776e..06d141ea9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -1,538 +1,149 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.particle.EntityGasFX; import com.hbm.handler.FluidTypeHandler.FluidType; -import com.hbm.interfaces.IConsumer; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.FluidTank; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEPumpjackPacket; -import api.hbm.energy.IBatteryItem; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -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; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.oredict.OreDictionary; -public class TileEntityMachinePumpjack extends TileEntity implements ISidedInventory, IConsumer, IFluidContainer, IFluidSource { - - private ItemStack slots[]; - - public long power; - public int warning; - public int warning2; - public static final long maxPower = 100000; - public int age = 0; - public int age2 = 0; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public FluidTank[] tanks; - public boolean isProgressing; - public int rotation; +public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; - private static final int[] slots_side = new int[] {0}; - Random rand = new Random(); - - private String customName; - - public TileEntityMachinePumpjack() { - slots = new ItemStack[6]; - tanks = new FluidTank[2]; - tanks[0] = new FluidTank(FluidType.OIL, 128000, 0); - tanks[1] = new FluidTank(FluidType.GAS, 128000, 1); - } + public float rot = 0; + public float prevRot = 0; + public float speed = 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.pumpjack"; - } - - @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) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - 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); - - this.power = nbt.getLong("powerTime"); - this.age = nbt.getInteger("age"); - this.rotation = nbt.getInteger("rotation"); - - this.tanks[0].readFromNBT(nbt, "oil"); - this.tanks[1].readFromNBT(nbt, "gas"); - - slots = new ItemStack[getSizeInventory()]; - - 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); - nbt.setLong("powerTime", power); - nbt.setInteger("age", age); - nbt.setInteger("rotation", rotation); - - this.tanks[0].writeToNBT(nbt, "oil"); - this.tanks[1].writeToNBT(nbt, "gas"); - - NBTTagList list = new NBTTagList(); - - 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 false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void updateEntity() { - - int timer = 20; - - age++; - age2++; - if(age >= timer) - age -= timer; - if(age2 >= 20) - age2 -= 20; - if(age2 == 9 || age2 == 19) { - fillFluidInit(tanks[0].getTankType()); - fillFluidInit(tanks[1].getTankType()); - } - - if(!worldObj.isRemote) { - this.tanks[0].unloadTank(1, 2, slots); - this.tanks[1].unloadTank(3, 4, slots); - - for(int i = 0; i < 2; i++) { - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(power >= 200) { - - //operation start - - if(age == timer - 1) { - warning = 0; - - //warning 0, green: derrick is operational - //warning 1, red: derrick is full, has no power or the drill is jammed - //warning 2, yellow: drill has reached max depth - - for(int i = this.yCoord - 1; i > this.yCoord - 1 - 100; i--) { - - if(i <= 5) { - //Code 2: The drilling ended - warning = 2; - break; - } - - Block b = worldObj.getBlock(this.xCoord, i, this.zCoord); - if(b == ModBlocks.oil_pipe) - continue; - - if((b.isReplaceable(worldObj, xCoord, i, zCoord) || b.getExplosionResistance(null) < 100) && !(b == ModBlocks.ore_oil || b == ModBlocks.ore_oil_empty)) { - worldObj.setBlock(xCoord, i, zCoord, ModBlocks.oil_pipe); - - //Code 2: The drilling ended - if(i == this.yCoord - 100) - warning = 2; - break; - - } else if(this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { - if(succ(this.xCoord, i, this.zCoord)) { - - this.tanks[0].setFill(this.tanks[0].getFill() + 650); - if(this.tanks[0].getFill() > this.tanks[0].getMaxFill()) - this.tanks[0].setFill(tanks[0].getMaxFill()); - - - this.tanks[1].setFill(this.tanks[1].getFill() + (100 + rand.nextInt(301))); - if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) - this.tanks[1].setFill(tanks[1].getMaxFill()); - - break; - } else { - worldObj.setBlock(xCoord, i, zCoord, ModBlocks.oil_pipe); - break; - } - - } else { - //Code 1: Drill jammed - warning = 1; - break; - } - } - } - - //operation end - - power -= 200; - } else { - warning = 1; - } - - warning2 = 0; - if(tanks[1].getFill() > 0) { - if(slots[5] != null && (slots[5].getItem() == ModItems.fuse || slots[5].getItem() == ModItems.screwdriver)) { - warning2 = 2; - tanks[1].setFill(tanks[1].getFill() - 50); - if(tanks[1].getFill() <= 0) - tanks[1].setFill(0); - worldObj.spawnEntityInWorld(new EntityGasFX(worldObj, this.xCoord + 0.5F, this.yCoord + 0.5F, this.zCoord + 0.5F, 0.0, 0.0, 0.0)); - } else { - warning2 = 1; - } - } - - isProgressing = warning == 0; - rotation += (warning == 0 ? 5 : 0); - rotation = rotation % 360; - - PacketDispatcher.wrapper.sendToAllAround(new TEPumpjackPacket(xCoord, yCoord, zCoord, rotation, isProgressing), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - - } - - public boolean succ(int x, int y, int z) { - - list.clear(); - - succ1(x, y, z); - succ2(x, y, z); - - if(!list.isEmpty()) { - - int i = rand.nextInt(list.size()); - int a = list.get(i)[0]; - int b = list.get(i)[1]; - int c = list.get(i)[2]; - - if(worldObj.getBlock(a, b, c) == ModBlocks.ore_oil) { - - worldObj.setBlock(a, b, c, ModBlocks.ore_oil_empty); - return true; - } - } - - return false; - } - - public void succInit1(int x, int y, int z) { - succ1(x + 1, y, z); - succ1(x - 1, y, z); - succ1(x, y + 1, z); - succ1(x, y - 1, z); - succ1(x, y, z + 1); - succ1(x, y, z - 1); - } - - public void succInit2(int x, int y, int z) { - succ2(x + 1, y, z); - succ2(x - 1, y, z); - succ2(x, y + 1, z); - succ2(x, y - 1, z); - succ2(x, y, z + 1); - succ2(x, y, z - 1); - } - - List list = new ArrayList(); - - public void succ1(int x, int y, int z) { - if(worldObj.getBlock(x, y, z) == ModBlocks.ore_oil_empty && - worldObj.getBlockMetadata(x, y, z) == 0) { - worldObj.setBlockMetadataWithNotify(x, y, z, 1, 2); - succInit1(x, y, z); - } - } - - public void succ2(int x, int y, int z) { - if(worldObj.getBlock(x, y, z) == ModBlocks.ore_oil_empty && - worldObj.getBlockMetadata(x, y, z) == 1) { - worldObj.setBlockMetadataWithNotify(x, y, z, 0, 2); - succInit2(x, y, z); - } else if(worldObj.getBlock(x, y, z) == ModBlocks.ore_oil) { - list.add(new int[] { x, y, z }); - } - } - - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - + public String getName() { + return "container.pumpjack"; } @Override public long getMaxPower() { - return maxPower; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; + return 250_000; } @Override - public boolean getTact() { - if (age2 >= 0 && age2 < 10) { - return true; + public int getPowerReq() { + return 200; + } + + @Override + public int getDelay() { + return 25; + } + + @Override + public void onDrill(int y) { + Block b = worldObj.getBlock(xCoord, y, zCoord); + ItemStack stack = new ItemStack(b); + int[] ids = OreDictionary.getOreIDs(stack); + for(Integer i : ids) { + String name = OreDictionary.getOreName(i); + + if("oreUranium".equals(name)) { + for(int j = 2; j < 6; j++) { + ForgeDirection dir = ForgeDirection.getOrientation(j); + if(worldObj.getBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ).isReplaceable(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ)) { + worldObj.setBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, ModBlocks.gas_radon_dense); + } + } + } + + if("oreAsbestos".equals(name)) { + for(int j = 2; j < 6; j++) { + ForgeDirection dir = ForgeDirection.getOrientation(j); + if(worldObj.getBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ).isReplaceable(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ)) { + worldObj.setBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, ModBlocks.gas_asbestos); + } + } + } } + } - return false; + @Override + public void updateEntity() { + super.updateEntity(); + + if(worldObj.isRemote) { + + this.prevRot = rot; + + if(this.indicator == 0) { + this.rot += speed; + } + + if(this.rot >= 360) { + this.prevRot -= 360; + this.rot -= 360; + } + } + } + + @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); + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.indicator = nbt.getInteger("indicator"); + this.speed = nbt.getFloat("speed"); + } + + @Override + public void onSuck(int x, int y, int z) { + + this.tanks[0].setFill(this.tanks[0].getFill() + 750); + if(this.tanks[0].getFill() > this.tanks[0].getMaxFill()) this.tanks[0].setFill(tanks[0].getMaxFill()); + this.tanks[1].setFill(this.tanks[1].getFill() + (50 + worldObj.rand.nextInt(201))); + if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) this.tanks[1].setFill(tanks[1].getMaxFill()); } @Override public void fillFluidInit(FluidType type) { - int i = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - if(i == 5) { - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 2, getTact(), type); - } - if(i == 3) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 3, getTact(), type); - } - if(i == 4) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord - 2, getTact(), type); - } - if(i == 2) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 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 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 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 List getFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return this.list1; - if(type.name().equals(tanks[1].getTankType().name())) - return this.list2; - 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(); - } - - @Override - public void setFillstate(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setType(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getTanks() { - List list = new ArrayList(); - list.add(tanks[0]); - list.add(tanks[1]); + 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; - return list; + 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 + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 7, + yCoord, + zCoord - 7, + xCoord + 8, + yCoord + 6, + zCoord + 8 + ); + } + + return bb; } } 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 8e3ceb63e..23cf4ee2a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -10,6 +10,9 @@ import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; @@ -21,7 +24,6 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; 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.minecraftforge.common.util.ForgeDirection; @@ -37,7 +39,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple public FluidTank[] tanks; public TileEntityOilDrillBase() { - super(5); + super(8); tanks = new FluidTank[2]; tanks[0] = new FluidTank(FluidType.OIL, 64_000, 0); tanks[1] = new FluidTank(FluidType.GAS, 64_000, 1); @@ -59,6 +61,10 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.tanks[i].writeToNBT(nbt, "t" + i); } + public int speedLevel; + public int energyLevel; + public int overLevel; + @Override public void updateEntity() { @@ -67,17 +73,38 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.tanks[0].unloadTank(1, 2, slots); this.tanks[1].unloadTank(3, 4, slots); - for(int i = 0; i < 2; i++) { + UpgradeManager.eval(slots, 5, 7); + this.speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + this.energyLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + 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); } - power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); + int toBurn = Math.min(tanks[1].getFill(), abLevel * 10); - if(this.power >= this.getPowerReq() && this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { + if(toBurn > 0) { + tanks[1].setFill(tanks[1].getFill() - toBurn); + this.power += toBurn * 5; - this.power -= this.getPowerReq(); + if(this.power > this.getMaxPower()) + this.power = this.getMaxPower(); + } + + 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()); + + if(this.power >= this.getPowerReqEff() && this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { - if(worldObj.getTotalWorldTime() % getDelay() == 0) { + this.power -= this.getPowerReqEff(); + + if(worldObj.getTotalWorldTime() % getDelayEff() == 0) { this.indicator = 0; for(int y = yCoord - 1; y >= getDrillDepth(); y--) { @@ -101,18 +128,44 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.indicator = 2; } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("indicator", this.indicator); - this.networkPack(data, 25); + this.sendUpdate(); } } + public void sendUpdate() { + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("indicator", this.indicator); + this.networkPack(data, 25); + } + public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); this.indicator = nbt.getInteger("indicator"); } + public boolean canPump() { + return true; + } + + @Override + public void setInventorySlotContents(int i, ItemStack stack) { + super.setInventorySlotContents(i, stack); + + if(stack != null && i >= 5 && i <= 7 && stack.getItem() instanceof ItemMachineUpgrade) + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + } + + public int getPowerReqEff() { + int req = this.getPowerReq(); + return (req + (req / 4 * this.speedLevel) - (req / 4 * this.energyLevel)) * this.overLevel; + } + + public int getDelayEff() { + int delay = getDelay(); + return Math.max((delay - (delay / 4 * this.speedLevel) + (delay / 10 * this.energyLevel) / this.overLevel), 1); + } + public abstract int getPowerReq(); public abstract int getDelay(); @@ -120,12 +173,15 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple Block b = worldObj.getBlock(xCoord, y, zCoord); if(b.getExplosionResistance(null) < 1000) { + onDrill(y); worldObj.setBlock(xCoord, y, zCoord, ModBlocks.oil_pipe); } else { this.indicator = 2; } } + public void onDrill(int y) { } + public int getDrillDepth() { return 5; } @@ -137,6 +193,9 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple if(!canSuckBlock(b)) return false; + if(!this.canPump()) + return true; + trace.clear(); return suckRec(xCoord, y, zCoord, 0); @@ -162,7 +221,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple Block b = worldObj.getBlock(x, y, z); - if(b == ModBlocks.ore_oil) { + if(b == ModBlocks.ore_oil || b == ModBlocks.ore_bedrock_oil) { doSuck(x, y, z); return true; } @@ -191,7 +250,7 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @Override public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 2 == 0; + return this.worldObj.getTotalWorldTime() % 20 < 10; } @Override @@ -201,20 +260,23 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @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(); - + for(FluidTank tank : tanks) { + if(type == tank.getTankType()) { + return tank.getFill(); + } + } + 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); + for(FluidTank tank : tanks) { + if(type == tank.getTankType()) { + tank.setFill(i); + return; + } + } } @Override @@ -236,13 +298,13 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @Override public void setFillstate(int fill, int index) { - if(index < 2 && tanks[index] != null) + if(index < tanks.length && tanks[index] != null) tanks[index].setFill(fill); } @Override public void setType(FluidType type, int index) { - if(index < 2 && tanks[index] != null) + if(index < tanks.length && tanks[index] != null) tanks[index].setTankType(type); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d16cc7c23..39057f212 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -206,6 +206,7 @@ container.factoryAdvanced=Fortgeschrittene Fabrik container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank container.forceField=Kraftfeldgenerator +container.frackingTower=Hydraulischer Frackingturm container.fusionMultiblock=Großer Fusionsreaktor container.fusionaryWatzPlant=Fusionares Watzwerk container.gasCentrifuge=Gaszentrifuge @@ -423,6 +424,7 @@ hbmfluid.coolant=Kühlflüssigkeit hbmfluid.cryogel=Kryogel hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel +hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas hbmfluid.gasoline=Bleibenzin hbmfluid.heatingoil=Heizöl @@ -868,6 +870,7 @@ item.canister_biofuel.name=Biodieselkanister item.canister_bitumen.name=Bitumenkanister item.canister_canola.name=Schmiermittelkanister item.canister_empty.name=Leerer Kanister +item.canister_fracksol.name=Frackinglösungskanister item.canister_fuel.name=Dieselkanister item.canister_gasoline.name=Bleibenzinkanister item.canister_gasoline.desc=blei ist freund$lasse deinen freund in deinen blutstrom$*lädt waffe* jetzt sofort @@ -2886,6 +2889,8 @@ tile.dfc_emitter.name=DFC-Emitter tile.dfc_injector.name=DFC-Brennstoffinjektor tile.dfc_receiver.name=DFC-Receiver tile.dfc_stabilizer.name=DFC-Stabilisator +tile.dirt_dead.name=Tote Erde +tile.dirt_oily.name=Ölige Erde tile.drill_pipe.name=Bohrgestänge tile.ducrete.name=Ducrete-Fliese tile.ducrete_smooth.name=Ducrete @@ -3039,6 +3044,7 @@ tile.machine_fensu.name=FEnSU tile.machine_flare.name=Abfackelturm tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Kraftfeldgenerator +tile.machine_fracking_tower.name=Hydraulischer Frackingturm tile.machine_fraction_tower.name=Fraktionierungsturm tile.machine_gascent.name=Gaszentrifuge tile.machine_generator.name=Atomreaktor (Alt) @@ -3135,6 +3141,7 @@ tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz tile.ore_bedrock_coltan.name=Bedrock-Coltanerz +tile.ore_bedrock_oil.name=Bedrock-Ölvorkommen tile.ore_beryllium.name=Berylliumerz tile.ore_cinnebar.name=Zinnobererz tile.ore_coal_oil.name=Öliges Kohleerz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 705fe6cd2..76c7e0093 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -274,6 +274,7 @@ container.factoryAdvanced=Advanced Factory container.factoryTitanium=Basic Factory container.fluidtank=Tank container.forceField=Forcefield Emitter +container.frackingTower=Hydraulic Fracking Tower container.fusionMultiblock=Big Fusion Reactor container.fusionaryWatzPlant=Fusionary Watz Plant container.gasCentrifuge=Gas Centrifuge @@ -491,6 +492,7 @@ hbmfluid.coolant=Coolant hbmfluid.cryogel=Cryogel hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel +hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas hbmfluid.gasoline=Leaded Gasoline hbmfluid.heatingoil=Heating Oil @@ -936,6 +938,7 @@ item.canister_biofuel.name=Biofuel Canister item.canister_bitumen.name=Bitumen Canister item.canister_canola.name=Engine Lubricant item.canister_empty.name=Empty Canister +item.canister_fracksol.name=Fracking Solution Canister item.canister_fuel.name=Diesel Canister item.canister_gasoline.name=Leaded Gasoline Canister item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. @@ -2953,6 +2956,8 @@ tile.dfc_emitter.name=DFC Emitter tile.dfc_injector.name=DFC Fuel Injector tile.dfc_receiver.name=DFC Receiver tile.dfc_stabilizer.name=DFC Stabilizer +tile.dirt_dead.name=Dead Dirt +tile.dirt_oily.name=Oily Dirt tile.drill_pipe.name=Drill Pipe tile.ducrete.name=Ducrete Tile tile.ducrete_smooth.name=Ducrete @@ -3107,6 +3112,7 @@ tile.machine_flare.name=Gas Flare tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower +tile.machine_fracking_tower.name=Hydraulic Fracking Tower tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator @@ -3202,6 +3208,7 @@ tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore tile.ore_bedrock_coltan.name=Bedrock Coltan Ore +tile.ore_bedrock_oil.name=Bedrock Oil Deposit tile.ore_beryllium.name=Beryllium Ore tile.ore_cinnebar.name=Cinnabar Ore tile.ore_coal_oil.name=Oily Coal Ore diff --git a/src/main/resources/assets/hbm/models/machines/fracking_tower.obj b/src/main/resources/assets/hbm/models/machines/fracking_tower.obj new file mode 100644 index 000000000..be4706e82 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/fracking_tower.obj @@ -0,0 +1,3073 @@ +# Blender v2.79 (sub 0) OBJ File: 'fracking_tower.blend' +# www.blender.org +o Cube_Cube.001 +v 1.625000 0.000000 3.375000 +v 1.625000 0.250000 3.375000 +v 1.625000 0.000000 1.625000 +v 1.625000 0.250000 1.625000 +v 3.375000 0.000000 3.375000 +v 3.375000 0.250000 3.375000 +v 3.375000 0.000000 1.625000 +v 3.375000 0.250000 1.625000 +v 1.750000 0.250000 3.250000 +v 1.750000 0.250000 1.750000 +v 3.250000 0.250000 3.250000 +v 3.250000 0.250000 1.750000 +v 1.625000 2.250000 3.375000 +v 1.625000 2.500000 3.375000 +v 1.625000 2.250000 1.625000 +v 1.625000 2.500000 1.625000 +v 3.375000 2.250000 3.375000 +v 3.375000 2.500000 3.375000 +v 3.375000 2.250000 1.625000 +v 3.375000 2.500000 1.625000 +v 1.750000 2.250000 3.250000 +v 1.750000 2.250000 1.750000 +v 3.250000 2.250000 1.750000 +v 3.250000 2.250000 3.250000 +v -3.500000 2.500000 3.500000 +v -3.500000 4.000000 3.500000 +v -3.500000 2.500000 -3.500000 +v -3.500000 4.000000 -3.500000 +v 3.500000 2.500000 3.500000 +v 3.500000 4.000000 3.500000 +v 3.500000 2.500000 -3.500000 +v 3.500000 4.000000 -3.500000 +v -2.500000 4.000000 2.500000 +v 2.500000 4.000000 2.500000 +v -2.500000 4.000000 -2.500000 +v 2.500000 4.000000 -2.500000 +v -2.500000 4.250000 -2.500000 +v -2.500000 4.250000 2.500000 +v 2.500000 4.250000 2.500000 +v 2.500000 4.250000 -2.500000 +v 2.500000 4.250000 -2.250000 +v 2.250000 4.250000 -2.250000 +v 2.500000 4.250000 -2.500000 +v 2.250000 4.250000 -2.500000 +v 1.000000 24.250000 -0.750000 +v 0.750000 24.250000 -0.750000 +v 1.000000 24.250000 -1.000000 +v 0.750000 24.250000 -1.000000 +v 2.500000 4.250000 2.500000 +v 2.250000 4.250000 2.500000 +v 2.500000 4.250000 2.250000 +v 2.250000 4.250000 2.250000 +v 1.000000 24.250000 1.000000 +v 0.750000 24.250000 1.000000 +v 1.000000 24.250000 0.750000 +v 0.750000 24.250000 0.750000 +v -2.250000 4.250000 -2.250000 +v -2.500000 4.250000 -2.250000 +v -2.250000 4.250000 -2.500000 +v -2.500000 4.250000 -2.500000 +v -0.750000 24.250000 -0.750000 +v -1.000000 24.250000 -0.750000 +v -0.750000 24.250000 -1.000000 +v -1.000000 24.250000 -1.000000 +v -2.250000 4.250000 2.500000 +v -2.500000 4.250000 2.500000 +v -2.250000 4.250000 2.250000 +v -2.500000 4.250000 2.250000 +v -0.750000 24.250000 1.000000 +v -1.000000 24.250000 1.000000 +v -0.750000 24.250000 0.750000 +v -1.000000 24.250000 0.750000 +v 1.125000 24.250000 -1.125000 +v 1.125000 24.250000 1.125000 +v -1.125000 24.250000 -1.125000 +v -1.125000 24.250000 1.125000 +v 1.125000 24.500000 -1.125000 +v 1.125000 24.500000 1.125000 +v -1.125000 24.500000 -1.125000 +v -1.125000 24.500000 1.125000 +v 1.837500 12.375000 -1.775000 +v 1.987500 10.375000 -1.924999 +v 2.137500 8.375000 -2.075000 +v 2.287500 6.375000 -2.225000 +v 2.287500 6.125000 -2.225000 +v 2.137500 8.125000 -2.075000 +v 1.987500 10.125000 -1.924999 +v 1.837500 12.125000 -1.775000 +v 1.687500 14.125000 -1.625000 +v 1.537500 16.125000 -1.474999 +v 1.387500 18.125000 -1.325000 +v 1.237500 20.125000 -1.174999 +v 1.087500 22.125000 -1.025000 +v 1.087500 22.125000 1.025000 +v 1.237500 20.125000 1.175000 +v 1.387500 18.125000 1.325001 +v 1.537500 16.125000 1.475000 +v 1.687500 14.125000 1.625000 +v 1.837500 12.125000 1.775000 +v 1.987500 10.125000 1.925000 +v 2.137500 8.125000 2.075000 +v 2.287500 6.125000 2.225000 +v 1.687500 14.375000 -1.625000 +v 1.537500 16.375000 -1.474999 +v 1.387500 18.375000 -1.325000 +v 1.237500 20.375000 -1.174999 +v 1.087500 22.375000 -1.025000 +v 1.087500 22.375000 1.025000 +v 1.237500 20.375000 1.175000 +v 1.387500 18.375000 1.325001 +v 1.537500 16.375000 1.475000 +v 1.687500 14.375000 1.625000 +v 1.837500 12.375000 1.775000 +v 1.987500 10.375000 1.925000 +v 2.137500 8.375000 2.075000 +v 2.287500 6.375000 2.225000 +v 1.262500 18.375000 -1.325000 +v 1.262500 18.125000 -1.325000 +v 1.712500 12.125000 1.775000 +v 1.712500 12.375000 1.775000 +v 1.712500 12.375000 -1.775000 +v 1.712500 12.125000 -1.775000 +v 2.162500 6.125000 2.225000 +v 2.162500 6.375000 2.225000 +v 2.162500 6.375000 -2.225000 +v 2.162500 6.125000 -2.225000 +v 1.112500 20.125000 1.175000 +v 1.112500 20.375000 1.175000 +v 1.112500 20.375000 -1.174999 +v 1.112500 20.125000 -1.174999 +v 1.562500 14.125000 1.625000 +v 1.562500 14.375000 1.625000 +v 1.562500 14.375000 -1.625000 +v 1.562500 14.125000 -1.625000 +v 2.012500 8.125000 2.075000 +v 2.012500 8.375000 2.075000 +v 2.012500 8.375000 -2.075000 +v 2.012500 8.125000 -2.075000 +v 0.962500 22.125000 1.025000 +v 0.962500 22.375000 1.025000 +v 0.962500 22.375000 -1.025000 +v 0.962500 22.125000 -1.025000 +v 1.862500 10.375000 1.925000 +v 1.862500 10.375000 -1.924999 +v 1.412500 16.375000 1.475000 +v 1.412500 16.375000 -1.474999 +v 1.262500 18.375000 1.325001 +v 1.262500 18.125000 1.325001 +v 1.412500 16.125000 1.475000 +v 1.412500 16.125000 -1.474999 +v 1.862500 10.125000 1.925000 +v 1.862500 10.125000 -1.924999 +v 0.937500 24.124001 -0.875000 +v 0.937500 24.124001 0.875000 +v 0.937500 24.249001 -0.875000 +v 0.937500 24.249001 0.875000 +v 0.812500 24.124001 -0.875000 +v 0.812500 24.124001 0.875000 +v 0.812500 24.249001 -0.875000 +v 0.812500 24.249001 0.875000 +v 2.312500 4.250000 -2.375000 +v 2.312500 4.250000 2.375000 +v 2.437500 4.250000 -2.375000 +v 2.437500 4.250000 2.375000 +v 2.312500 4.375000 -2.375000 +v 2.312500 4.375000 2.375000 +v 2.437500 4.375000 -2.375000 +v 2.437500 4.375000 2.375000 +v 0.875000 24.374001 0.875000 +v 0.875000 24.124001 0.875000 +v 1.775000 12.375000 -1.775000 +v 1.775000 12.125000 -1.775000 +v 1.475000 16.125000 1.475000 +v 1.475000 16.375000 1.475000 +v 1.175000 20.375000 -1.174999 +v 1.175000 20.125000 -1.174999 +v 2.075000 8.375000 2.075000 +v 2.075000 8.125000 2.075000 +v 2.075000 8.375000 -2.075000 +v 2.075000 8.125000 -2.075000 +v 1.175000 20.375000 1.175000 +v 1.175000 20.125000 1.175000 +v 1.775000 12.375000 1.775000 +v 1.475000 16.375000 -1.474999 +v 1.475000 16.125000 -1.474999 +v 1.775000 12.125000 1.775000 +v 0.875000 24.124001 -0.875000 +v 0.875000 24.374001 -0.875000 +v 1.775000 12.125000 1.775000 +v 1.775000 12.375000 1.775000 +v 2.375000 4.375000 -2.375000 +v 2.375000 4.125000 -2.375000 +v 1.175000 20.125000 1.175000 +v 1.175000 20.375000 1.175000 +v 1.475000 16.125000 -1.474999 +v 1.475000 16.375000 -1.474999 +v 2.075000 8.125000 2.075000 +v 2.075000 8.375000 2.075000 +v 2.075000 8.125000 -2.075000 +v 2.075000 8.375000 -2.075000 +v 1.175000 20.125000 -1.174999 +v 1.475000 16.375000 1.475000 +v 1.175000 20.375000 -1.174999 +v 1.775000 12.125000 -1.775000 +v 1.475000 16.125000 1.475000 +v 1.775000 12.375000 -1.775000 +v 2.375000 4.125000 2.375000 +v 2.375000 4.375000 2.375000 +v -1.112500 20.374996 1.174999 +v -1.112500 20.124996 1.174999 +v -1.562500 14.124998 -1.625000 +v -1.562500 14.374998 -1.625000 +v -1.562500 14.374998 1.625000 +v -1.562500 14.124998 1.625000 +v -2.012500 8.124998 -2.075000 +v -2.012500 8.374998 -2.075000 +v -2.012500 8.374998 2.075000 +v -2.012500 8.124998 2.075000 +v -0.962500 22.124996 -1.025000 +v -0.962500 22.374996 -1.025000 +v -0.962500 22.374996 1.025000 +v -0.962500 22.124996 1.025000 +v -1.862500 10.374998 -1.925000 +v -1.862500 10.374998 1.924999 +v -1.412500 16.374996 -1.475000 +v -1.412500 16.374996 1.475000 +v -1.262500 18.374996 -1.325001 +v -1.262500 18.124996 -1.325001 +v -1.412500 16.124996 -1.475000 +v -1.412500 16.124996 1.475000 +v -1.862500 10.124998 -1.925000 +v -1.862500 10.124998 1.924999 +v -0.937500 24.123997 0.875000 +v -0.937500 24.123997 -0.875000 +v -0.937500 24.248997 0.875000 +v -0.937500 24.248997 -0.875000 +v -0.812500 24.123997 0.875000 +v -0.812500 24.123997 -0.875000 +v -0.812500 24.248997 0.875000 +v -0.812500 24.248997 -0.875000 +v -2.312500 4.249999 2.375000 +v -2.312500 4.249999 -2.375000 +v -2.437500 4.249999 2.375000 +v -2.437500 4.249999 -2.375000 +v -2.312500 4.374999 2.375000 +v -2.312500 4.374999 -2.375000 +v -2.437500 4.374999 2.375000 +v -2.437500 4.374999 -2.375000 +v 2.375000 4.375000 -2.437500 +v -2.375000 4.375000 -2.437500 +v 2.375000 4.375000 -2.312500 +v -2.375000 4.375000 -2.312500 +v 2.375000 4.250000 -2.437500 +v -2.375000 4.250000 -2.437500 +v 2.375000 4.250000 -2.312500 +v -2.375000 4.250000 -2.312500 +v 0.875000 24.248999 -0.812500 +v -0.875000 24.248999 -0.812500 +v 0.875000 24.123999 -0.812500 +v -0.875000 24.123999 -0.812500 +v 0.875000 24.248999 -0.937500 +v -0.875000 24.248999 -0.937500 +v 0.875000 24.123999 -0.937500 +v -0.875000 24.123999 -0.937500 +v -1.924999 10.124999 -1.862500 +v 1.925000 10.124999 -1.862500 +v -1.474999 16.124998 -1.412500 +v 1.475000 16.124998 -1.412500 +v 1.325001 18.124998 -1.262500 +v 1.325001 18.374998 -1.262500 +v -1.474999 16.374998 -1.412500 +v 1.475000 16.374998 -1.412500 +v -1.924999 10.374999 -1.862500 +v 1.925000 10.374999 -1.862500 +v -1.025000 22.124998 -0.962500 +v -1.025000 22.374998 -0.962500 +v 1.025000 22.374998 -0.962500 +v 1.025000 22.124998 -0.962500 +v -2.075000 8.124999 -2.012500 +v -2.075000 8.374999 -2.012500 +v 2.075000 8.374999 -2.012500 +v 2.075000 8.124999 -2.012500 +v -1.625000 14.124999 -1.562500 +v -1.625000 14.374999 -1.562500 +v 1.625000 14.374999 -1.562500 +v 1.625000 14.124999 -1.562500 +v -1.174999 20.124998 -1.112500 +v -1.174999 20.374998 -1.112500 +v 1.175000 20.374998 -1.112500 +v 1.175000 20.124998 -1.112500 +v -2.225000 6.125000 -2.162500 +v -2.225000 6.375000 -2.162500 +v 2.225000 6.375000 -2.162500 +v 2.225000 6.125000 -2.162500 +v -1.775000 12.124999 -1.712500 +v -1.775000 12.374999 -1.712500 +v 1.774999 12.374999 -1.712500 +v 1.774999 12.124999 -1.712500 +v -1.325000 18.124998 -1.262500 +v -1.325000 18.374998 -1.262500 +v 2.225000 6.375000 -2.287500 +v 2.075000 8.374999 -2.137500 +v 1.925000 10.374999 -1.987500 +v 1.774999 12.374999 -1.837500 +v 1.625000 14.374999 -1.687500 +v 1.475000 16.374998 -1.537500 +v 1.325001 18.374998 -1.387500 +v 1.175000 20.374998 -1.237500 +v 1.025000 22.374998 -1.087500 +v -1.025000 22.374998 -1.087500 +v -1.174999 20.374998 -1.237500 +v -1.325000 18.374998 -1.387500 +v -1.474999 16.374998 -1.537500 +v -1.625000 14.374999 -1.687500 +v 2.225000 6.125000 -2.287500 +v 2.075000 8.124999 -2.137500 +v 1.925000 10.124999 -1.987500 +v 1.774999 12.124999 -1.837500 +v 1.625000 14.124999 -1.687500 +v 1.475000 16.124998 -1.537500 +v 1.325001 18.124998 -1.387500 +v 1.175000 20.124998 -1.237500 +v 1.025000 22.124998 -1.087500 +v -1.025000 22.124998 -1.087500 +v -1.174999 20.124998 -1.237500 +v -1.325000 18.124998 -1.387500 +v -1.474999 16.124998 -1.537500 +v -1.625000 14.124999 -1.687500 +v -1.775000 12.124999 -1.837500 +v -1.924999 10.124999 -1.987500 +v -2.075000 8.124999 -2.137500 +v -2.225000 6.125000 -2.287500 +v -2.225000 6.375000 -2.287500 +v -2.075000 8.374999 -2.137500 +v -1.924999 10.374999 -1.987500 +v -1.775000 12.374999 -1.837500 +v -1.325001 18.249998 1.575000 +v 1.625000 14.249999 1.875000 +v -1.625000 14.249999 1.875000 +v 1.325000 18.249998 1.575000 +v 1.325000 18.249998 1.450000 +v -1.625000 14.249999 1.750000 +v 1.625000 14.249999 1.750000 +v -1.325001 18.249998 1.450000 +v -1.450000 18.250000 -1.325001 +v -1.750000 14.250000 1.625000 +v -1.750000 14.250000 -1.625000 +v -1.450000 18.250000 1.325000 +v -1.575000 18.250000 1.325000 +v -1.875000 14.250000 -1.625000 +v -1.875000 14.250000 1.625000 +v -1.575000 18.250000 -1.325001 +v 1.575000 18.250000 1.325001 +v 1.875000 14.250000 -1.625000 +v 1.875000 14.250000 1.625000 +v 1.575000 18.250000 -1.325000 +v 1.450000 18.250000 -1.325000 +v 1.750000 14.250000 1.625000 +v 1.750000 14.250000 -1.625000 +v 1.450000 18.250000 1.325001 +v 1.550000 15.249999 -1.675000 +v 1.400001 17.250000 -1.525000 +v -1.400000 17.250000 -1.525000 +v -1.549999 15.250000 -1.675000 +v 1.550000 15.249999 -3.175000 +v -1.549999 15.250000 -3.175000 +v 1.400000 17.250000 -3.175000 +v -1.399999 17.250000 -3.175000 +v -0.500000 16.001408 -3.423592 +v -0.500000 16.250000 -3.526562 +v -0.500000 16.250000 -3.487500 +v 0.500000 16.250000 -3.487500 +v -0.500000 16.029030 -3.395971 +v 0.500000 16.029030 -3.395971 +v -0.500000 15.937500 -3.175000 +v 0.500000 15.937500 -3.175000 +v -0.500000 16.562500 -3.175000 +v 0.500000 16.562500 -3.175000 +v -0.500000 16.470970 -3.395971 +v 0.500000 16.470970 -3.395971 +v -0.500000 15.898438 -3.175000 +v -0.125000 13.750000 -3.550000 +v 0.125000 13.750000 -3.550000 +v 0.125000 13.750000 -3.300000 +v -0.500000 16.601562 -3.175000 +v -0.500000 16.498592 -3.423592 +v -0.562500 16.498592 -3.423592 +v -0.562500 16.250000 -3.526562 +v -0.562500 16.601562 -3.175000 +v -0.125000 13.750000 -3.300000 +v 0.062500 16.250000 -3.362500 +v -0.062500 16.250000 -3.362500 +v -0.562500 15.898438 -3.175000 +v -0.562500 16.001408 -3.423592 +v 0.562500 16.001408 -3.423592 +v 0.562500 16.250000 -3.526562 +v 0.562500 15.898438 -3.175000 +v -0.062500 13.750000 -3.362500 +v 0.062500 13.750000 -3.362500 +v 0.062500 13.750000 -3.487500 +v 0.562500 16.601562 -3.175000 +v 0.562500 16.498592 -3.423592 +v 0.500000 16.498592 -3.423592 +v 0.500000 16.250000 -3.526562 +v 0.500000 16.601562 -3.175000 +v -0.062500 13.750000 -3.487500 +v -0.062500 16.250000 -3.487500 +v 0.062500 16.250000 -3.487500 +v 0.500000 15.898438 -3.175000 +v 0.500000 16.001408 -3.423592 +v -0.125000 13.687500 -3.550000 +v 0.125000 13.687500 -3.550000 +v 0.125000 13.687500 -3.300000 +v -0.125000 13.687500 -3.300000 +v -0.031250 13.687500 -3.425000 +v 0.031250 13.687500 -3.425000 +v 0.031250 13.687500 -3.550000 +v -0.031250 13.687500 -3.550000 +v 0.031250 13.437500 -3.425000 +v 0.031250 13.437500 -3.550000 +v -0.031250 13.437500 -3.550000 +v -0.031250 13.437500 -3.425000 +v 0.031250 13.375000 -3.425000 +v -0.031250 13.500000 -3.237500 +v 0.031250 13.500000 -3.237500 +v -0.031250 13.375000 -3.425000 +v 0.031250 13.437500 -3.300000 +v -0.031250 13.437500 -3.300000 +v 0.031250 13.375000 -3.300000 +v -0.031250 13.375000 -3.300000 +v 0.031250 13.437500 -3.237500 +v -0.031250 13.437500 -3.237500 +v -0.031250 13.500000 -3.300000 +v 0.031250 13.500000 -3.300000 +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.500000 0.125000 -0.500000 +v -0.500000 0.125000 0.500000 +v 0.500000 0.125000 0.500000 +v 0.500000 0.125000 -0.500000 +v -0.000000 0.125000 -0.375000 +v -0.143506 0.125000 -0.346455 +v -0.265165 0.125000 -0.265165 +v -0.346455 0.125000 -0.143506 +v -0.375000 0.125000 0.000000 +v -0.346455 0.125000 0.143506 +v -0.265165 0.125000 0.265165 +v -0.143506 0.125000 0.346455 +v -0.000000 0.125000 0.375000 +v 0.143506 0.125000 0.346455 +v 0.265165 0.125000 0.265165 +v 0.346455 0.125000 0.143506 +v 0.375000 0.125000 -0.000000 +v 0.346455 0.125000 -0.143506 +v 0.265165 0.125000 -0.265165 +v 0.143506 0.125000 -0.346455 +v -0.000000 2.500000 -0.375000 +v -0.143506 2.500000 -0.346455 +v -0.265165 2.500000 -0.265165 +v -0.346455 2.500000 -0.143506 +v -0.375000 2.500000 0.000000 +v -0.346455 2.500000 0.143506 +v -0.265165 2.500000 0.265165 +v -0.143506 2.500000 0.346455 +v -0.000000 2.500000 0.375000 +v 0.143506 2.500000 0.346455 +v 0.265165 2.500000 0.265165 +v 0.346455 2.500000 0.143506 +v 0.375000 2.500000 -0.000000 +v 0.346455 2.500000 -0.143506 +v 0.265165 2.500000 -0.265165 +v 0.143506 2.500000 -0.346455 +v -0.000000 4.250000 -0.375000 +v -0.143506 4.250000 -0.346455 +v -0.265165 4.250000 -0.265165 +v -0.346455 4.250000 -0.143506 +v -0.375000 4.250000 0.000000 +v -0.346455 4.250000 0.143506 +v -0.265165 4.250000 0.265165 +v -0.143506 4.250000 0.346455 +v -0.000000 4.250000 0.375000 +v 0.143506 4.250000 0.346455 +v 0.265165 4.250000 0.265165 +v 0.346455 4.250000 0.143506 +v 0.375000 4.250000 -0.000000 +v 0.346455 4.250000 -0.143506 +v 0.265165 4.250000 -0.265165 +v 0.143506 4.250000 -0.346455 +v -0.000000 19.250000 -0.375000 +v -0.143506 19.250000 -0.346455 +v -0.265165 19.250000 -0.265165 +v -0.346455 19.250000 -0.143506 +v -0.375000 19.250000 0.000000 +v -0.346455 19.250000 0.143506 +v -0.265165 19.250000 0.265165 +v -0.143506 19.250000 0.346455 +v -0.000000 19.250000 0.375000 +v 0.143506 19.250000 0.346455 +v 0.265165 19.250000 0.265165 +v 0.346455 19.250000 0.143506 +v 0.375000 19.250000 -0.000000 +v 0.346455 19.250000 -0.143506 +v 0.265165 19.250000 -0.265165 +v 0.143506 19.250000 -0.346455 +v 1.475000 16.000000 1.475000 +v 1.475000 16.500000 1.475000 +v 2.075000 8.500000 2.075000 +v 2.075000 8.000000 2.075000 +v 2.075000 8.500000 -2.075000 +v 2.075000 8.000000 -2.075000 +v 1.475000 16.500000 -1.474999 +v 1.475000 16.000000 -1.474999 +v 1.775000 12.000000 1.775000 +v 1.775000 12.500000 1.775000 +v 1.775000 12.000000 -1.775000 +v 1.775000 12.500000 -1.775000 +v -1.475000 16.000000 -1.475000 +v -1.475000 16.500000 -1.475000 +v -2.075000 8.500000 -2.075000 +v -2.075000 8.000000 -2.075000 +v -2.075000 8.500000 2.075000 +v -2.075000 8.000000 2.075000 +v -1.475000 16.500000 1.474999 +v -1.475000 16.000000 1.474999 +v -1.775000 12.000000 -1.775000 +v -1.775000 12.499996 -1.775000 +v -1.775000 12.000000 1.775000 +v -1.775000 12.499996 1.775000 +v -3.500000 4.000000 3.500000 +v -3.500000 4.000000 -3.500000 +v 3.500000 4.000000 3.500000 +v 3.500000 4.000000 -3.500000 +v -3.500000 5.000000 3.500000 +v -3.500000 5.000000 -3.500000 +v 3.500000 5.000000 3.500000 +v 3.500000 5.000000 -3.500000 +v 1.625000 0.000000 -1.625000 +v 1.625000 0.250000 -1.625000 +v 1.625000 0.000000 -3.375000 +v 1.625000 0.250000 -3.375000 +v 3.375000 0.000000 -1.625000 +v 3.375000 0.250000 -1.625000 +v 3.375000 0.000000 -3.375000 +v 3.375000 0.250000 -3.375000 +v 1.750000 0.250000 -1.750000 +v 1.750000 0.250000 -3.250000 +v 3.250000 0.250000 -1.750000 +v 3.250000 0.250000 -3.250000 +v 1.625000 2.250000 -1.625000 +v 1.625000 2.500000 -1.625000 +v 1.625000 2.250000 -3.375000 +v 1.625000 2.500000 -3.375000 +v 3.375000 2.250000 -1.625000 +v 3.375000 2.500000 -1.625000 +v 3.375000 2.250000 -3.375000 +v 3.375000 2.500000 -3.375000 +v 1.750000 2.250000 -1.750000 +v 1.750000 2.250000 -3.250000 +v 3.250000 2.250000 -3.250000 +v 3.250000 2.250000 -1.750000 +v -3.375000 0.000000 3.375000 +v -3.375000 0.250000 3.375000 +v -3.375000 0.000000 1.625000 +v -3.375000 0.250000 1.625000 +v -1.625000 0.000000 3.375000 +v -1.625000 0.250000 3.375000 +v -1.625000 0.000000 1.625000 +v -1.625000 0.250000 1.625000 +v -3.250000 0.250000 3.250000 +v -3.250000 0.250000 1.750000 +v -1.750000 0.250000 3.250000 +v -1.750000 0.250000 1.750000 +v -3.375000 2.250000 3.375000 +v -3.375000 2.500000 3.375000 +v -3.375000 2.250000 1.625000 +v -3.375000 2.500000 1.625000 +v -1.625000 2.250000 3.375000 +v -1.625000 2.500000 3.375000 +v -1.625000 2.250000 1.625000 +v -1.625000 2.500000 1.625000 +v -3.250000 2.250000 3.250000 +v -3.250000 2.250000 1.750000 +v -1.750000 2.250000 1.750000 +v -1.750000 2.250000 3.250000 +v -3.375000 0.000000 -1.625000 +v -3.375000 0.250000 -1.625000 +v -3.375000 0.000000 -3.375000 +v -3.375000 0.250000 -3.375000 +v -1.625000 0.000000 -1.625000 +v -1.625000 0.250000 -1.625000 +v -1.625000 0.000000 -3.375000 +v -1.625000 0.250000 -3.375000 +v -3.250000 0.250000 -1.750000 +v -3.250000 0.250000 -3.250000 +v -1.750000 0.250000 -1.750000 +v -1.750000 0.250000 -3.250000 +v -3.375000 2.250000 -1.625000 +v -3.375000 2.500000 -1.625000 +v -3.375000 2.250000 -3.375000 +v -3.375000 2.500000 -3.375000 +v -1.625000 2.250000 -1.625000 +v -1.625000 2.500000 -1.625000 +v -1.625000 2.250000 -3.375000 +v -1.625000 2.500000 -3.375000 +v -3.250000 2.250000 -1.750000 +v -3.250000 2.250000 -3.250000 +v -1.750000 2.250000 -3.250000 +v -1.750000 2.250000 -1.750000 +v -1.112500 20.374996 -1.175000 +v -1.112500 20.124996 -1.175000 +v -2.162500 6.124999 2.225000 +v -2.162500 6.374999 2.225000 +v -2.162500 6.374999 -2.225000 +v -2.162500 6.124999 -2.225000 +v -1.712500 12.124998 1.775000 +v -1.712500 12.374998 1.775000 +v -1.712500 12.374998 -1.774999 +v -1.712500 12.124998 -1.774999 +v -1.262500 18.124996 1.325000 +v -1.262500 18.374996 1.325000 +v -2.287500 6.374999 -2.225000 +v -2.137500 8.374998 -2.075000 +v -1.987500 10.374998 -1.925000 +v -1.837500 12.374998 -1.774999 +v -1.687500 14.374998 -1.625000 +v -1.537500 16.374996 -1.475000 +v -1.387500 18.374996 -1.325001 +v -1.237500 20.374996 -1.175000 +v -1.087500 22.374996 -1.025000 +v -1.087500 22.374996 1.025000 +v -1.237500 20.374996 1.174999 +v -1.387500 18.374996 1.325000 +v -1.537500 16.374996 1.475000 +v -1.687500 14.374998 1.625000 +v -2.287500 6.124999 -2.225000 +v -2.137500 8.124998 -2.075000 +v -1.987500 10.124998 -1.925000 +v -1.837500 12.124998 -1.774999 +v -1.687500 14.124998 -1.625000 +v -1.537500 16.124996 -1.475000 +v -1.387500 18.124996 -1.325001 +v -1.237500 20.124996 -1.175000 +v -1.087500 22.124996 -1.025000 +v -1.087500 22.124996 1.025000 +v -1.237500 20.124996 1.174999 +v -1.387500 18.124996 1.325000 +v -1.537500 16.124996 1.475000 +v -1.687500 14.124998 1.625000 +v -1.837500 12.124998 1.775000 +v -1.987500 10.124998 1.924999 +v -2.137500 8.124998 2.075000 +v -2.287500 6.124999 2.225000 +v -2.287500 6.374999 2.225000 +v -2.137500 8.374998 2.075000 +v -1.987500 10.374998 1.924999 +v -1.837500 12.374998 1.775000 +v 1.174999 20.374994 1.112500 +v 1.174999 20.124994 1.112500 +v -1.625000 14.124997 1.562500 +v -1.625000 14.374997 1.562500 +v 1.625000 14.374997 1.562500 +v 1.625000 14.124997 1.562500 +v -2.075000 8.124997 2.012500 +v -2.075000 8.374997 2.012500 +v 2.075000 8.374997 2.012500 +v 2.075000 8.124997 2.012500 +v -1.025000 22.124994 0.962500 +v -1.025000 22.374994 0.962500 +v 1.025000 22.374994 0.962500 +v 1.025000 22.124994 0.962500 +v -1.925000 10.374997 1.862500 +v 1.925000 10.374997 1.862499 +v -1.475000 16.374994 1.412500 +v 1.475000 16.374994 1.412500 +v -1.325001 18.374994 1.262500 +v -1.325001 18.124994 1.262500 +v -1.475000 16.124994 1.412500 +v 1.475000 16.124994 1.412500 +v -1.925000 10.124997 1.862500 +v 1.925000 10.124997 1.862499 +v 0.875000 24.123995 0.937500 +v -0.875000 24.123995 0.937500 +v 0.875000 24.248995 0.937500 +v -0.875000 24.248995 0.937500 +v 0.875000 24.123995 0.812500 +v -0.875000 24.123995 0.812500 +v 0.875000 24.248995 0.812500 +v -0.875000 24.248995 0.812500 +v 2.375000 4.249999 2.312500 +v -2.375000 4.249999 2.312500 +v 2.375000 4.249999 2.437500 +v -2.375000 4.249999 2.437500 +v 2.375000 4.374999 2.312500 +v -2.375000 4.374999 2.312500 +v 2.375000 4.374999 2.437500 +v -2.375000 4.374999 2.437500 +v -1.175000 20.374994 1.112500 +v -1.175000 20.124994 1.112500 +v 2.225000 6.124999 2.162500 +v 2.225000 6.374999 2.162500 +v -2.225000 6.374999 2.162500 +v -2.225000 6.124999 2.162500 +v 1.775000 12.124997 1.712499 +v 1.775000 12.374997 1.712499 +v -1.774999 12.374997 1.712500 +v -1.774999 12.124997 1.712500 +v 1.325000 18.124994 1.262500 +v 1.325000 18.374994 1.262500 +v -2.225000 6.374999 2.287500 +v -2.075000 8.374997 2.137500 +v -1.925000 10.374997 1.987500 +v -1.774999 12.374997 1.837500 +v -1.625000 14.374997 1.687500 +v -1.475000 16.374994 1.537500 +v -1.325000 18.374994 1.387500 +v -1.175000 20.374994 1.237500 +v -1.025000 22.374994 1.087500 +v 1.025000 22.374994 1.087500 +v 1.174999 20.374994 1.237500 +v 1.325000 18.374994 1.387500 +v 1.475000 16.374994 1.537500 +v 1.625000 14.374997 1.687500 +v -2.225000 6.124999 2.287500 +v -2.075000 8.124997 2.137500 +v -1.925000 10.124997 1.987500 +v -1.774999 12.124997 1.837500 +v -1.625000 14.124997 1.687500 +v -1.475000 16.124994 1.537500 +v -1.325000 18.124994 1.387500 +v -1.175000 20.124994 1.237500 +v -1.025000 22.124994 1.087500 +v 1.025000 22.124994 1.087500 +v 1.174999 20.124994 1.237500 +v 1.325000 18.124994 1.387500 +v 1.475000 16.124994 1.537500 +v 1.625000 14.124997 1.687500 +v 1.775000 12.124997 1.837499 +v 1.925000 10.124997 1.987499 +v 2.075000 8.124997 2.137500 +v 2.225000 6.124999 2.287500 +v 2.225000 6.374999 2.287500 +v 2.075000 8.374997 2.137500 +v 1.925000 10.374997 1.987499 +v 1.775000 12.374997 1.837499 +v -0.500000 16.250000 -3.487500 +v 0.500000 16.250000 -3.487500 +v -0.500000 16.029030 -3.395971 +v 0.500000 16.029030 -3.395971 +v -0.500000 15.937500 -3.175000 +v 0.500000 15.937500 -3.175000 +v -0.500000 16.562500 -3.175000 +v 0.500000 16.562500 -3.175000 +v -0.500000 16.470970 -3.395971 +v 0.500000 16.470970 -3.395971 +v -0.500000 16.001408 -3.423592 +v -0.500000 16.250000 -3.526562 +v -0.500000 15.898438 -3.175000 +v -0.500000 16.601562 -3.175000 +v -0.500000 16.498592 -3.423592 +v -0.562500 16.498592 -3.423592 +v -0.562500 16.250000 -3.526562 +v -0.562500 16.601562 -3.175000 +v -0.562500 15.898438 -3.175000 +v -0.562500 16.001408 -3.423592 +v 0.562500 16.001408 -3.423592 +v 0.562500 16.250000 -3.526562 +v 0.562500 15.898438 -3.175000 +v 0.562500 16.601562 -3.175000 +v 0.562500 16.498592 -3.423592 +v 0.500000 16.498592 -3.423592 +v 0.500000 16.250000 -3.526562 +v 0.500000 16.601562 -3.175000 +v 0.500000 15.898438 -3.175000 +v 0.500000 16.001408 -3.423592 +v -0.000000 19.250000 -0.375000 +v -0.143506 19.250000 -0.346455 +v -0.265165 19.250000 -0.265165 +v -0.346455 19.250000 -0.143506 +v -0.375000 19.250000 0.000000 +v -0.346455 19.250000 0.143506 +v -0.265165 19.250000 0.265165 +v -0.143506 19.250000 0.346455 +v -0.000000 19.250000 0.375000 +v 0.143506 19.250000 0.346455 +v 0.265165 19.250000 0.265165 +v 0.346455 19.250000 0.143506 +v 0.375000 19.250000 -0.000000 +v 0.346455 19.250000 -0.143506 +v 0.265165 19.250000 -0.265165 +v 0.143506 19.250000 -0.346455 +v 0.875000 24.373999 -0.875000 +v 0.875000 24.123999 -0.875000 +v -1.775000 12.374999 -1.775000 +v -1.775000 12.124999 -1.775000 +v 1.475000 16.124998 -1.475000 +v 1.475000 16.374998 -1.475000 +v -1.174999 20.374998 -1.175000 +v -1.174999 20.124998 -1.175000 +v 2.075000 8.374999 -2.075000 +v 2.075000 8.124999 -2.075000 +v -2.075000 8.374999 -2.075000 +v -2.075000 8.124999 -2.075000 +v 1.175000 20.374998 -1.175000 +v 1.175000 20.124998 -1.175000 +v 1.774999 12.374999 -1.775000 +v -1.474999 16.374998 -1.475000 +v -1.474999 16.124998 -1.475000 +v 1.774999 12.124999 -1.775000 +v -0.875000 24.123999 -0.875000 +v -0.875000 24.373999 -0.875000 +v 1.774999 12.124999 -1.775000 +v 1.774999 12.374999 -1.775000 +v -2.375000 4.375000 -2.375000 +v -2.375000 4.125000 -2.375000 +v 1.175000 20.124998 -1.175000 +v 1.175000 20.374998 -1.175000 +v -1.474999 16.124998 -1.475000 +v -1.474999 16.374998 -1.475000 +v 2.075000 8.124999 -2.075000 +v 2.075000 8.374999 -2.075000 +v -2.075000 8.124999 -2.075000 +v -2.075000 8.374999 -2.075000 +v -1.174999 20.124998 -1.175000 +v 1.475000 16.374998 -1.475000 +v -1.174999 20.374998 -1.175000 +v -1.775000 12.124999 -1.775000 +v 1.475000 16.124998 -1.475000 +v -1.775000 12.374999 -1.775000 +v 2.375000 4.125000 -2.375000 +v 2.375000 4.375000 -2.375000 +v -0.875000 24.373997 -0.875000 +v -0.875000 24.123997 -0.875000 +v -1.775000 12.374998 1.775000 +v -1.775000 12.124998 1.775000 +v -1.475000 16.124996 -1.475000 +v -1.475000 16.374996 -1.475000 +v -1.175000 20.374996 1.174999 +v -1.175000 20.124996 1.174999 +v -2.075000 8.374998 -2.075000 +v -2.075000 8.124998 -2.075000 +v -2.075000 8.374998 2.075000 +v -2.075000 8.124998 2.075000 +v -1.175000 20.374996 -1.175000 +v -1.175000 20.124996 -1.175000 +v -1.775000 12.374998 -1.774999 +v -1.475000 16.374996 1.475000 +v -1.475000 16.124996 1.475000 +v -1.775000 12.124998 -1.774999 +v -0.875000 24.123997 0.875000 +v -0.875000 24.373997 0.875000 +v -1.775000 12.124998 -1.774999 +v -1.775000 12.374998 -1.774999 +v -2.375000 4.374999 2.375000 +v -2.375000 4.124999 2.375000 +v -1.175000 20.124996 -1.175000 +v -1.175000 20.374996 -1.175000 +v -1.475000 16.124996 1.475000 +v -1.475000 16.374996 1.475000 +v -2.075000 8.124998 -2.075000 +v -2.075000 8.374998 -2.075000 +v -2.075000 8.124998 2.075000 +v -2.075000 8.374998 2.075000 +v -1.175000 20.124996 1.174999 +v -1.475000 16.374996 -1.475000 +v -1.175000 20.374996 1.174999 +v -1.775000 12.124998 1.775000 +v -1.475000 16.124996 -1.475000 +v -1.775000 12.374998 1.775000 +v -2.375000 4.124999 -2.375000 +v -2.375000 4.374999 -2.375000 +v -0.875000 24.373995 0.875000 +v -0.875000 24.123995 0.875000 +v 1.775000 12.374997 1.774999 +v 1.775000 12.124997 1.774999 +v -1.475000 16.124994 1.475000 +v -1.475000 16.374994 1.475000 +v 1.174999 20.374994 1.175000 +v 1.174999 20.124994 1.175000 +v -2.075000 8.374997 2.075000 +v -2.075000 8.124997 2.075000 +v 2.075000 8.374997 2.075000 +v 2.075000 8.124997 2.075000 +v -1.175000 20.374994 1.175000 +v -1.175000 20.124994 1.175000 +v -1.774999 12.374997 1.775000 +v 1.475000 16.374994 1.475000 +v 1.475000 16.124994 1.475000 +v -1.774999 12.124997 1.775000 +v 0.875000 24.123995 0.875000 +v 0.875000 24.373995 0.875000 +v -1.774999 12.124997 1.775000 +v -1.774999 12.374997 1.775000 +v 2.375000 4.374999 2.375000 +v 2.375000 4.124999 2.375000 +v -1.175000 20.124994 1.175000 +v -1.175000 20.374994 1.175000 +v 1.475000 16.124994 1.475000 +v 1.475000 16.374994 1.475000 +v -2.075000 8.124997 2.075000 +v -2.075000 8.374997 2.075000 +v 2.075000 8.124997 2.075000 +v 2.075000 8.374997 2.075000 +v 1.174999 20.124994 1.175000 +v -1.475000 16.374994 1.475000 +v 1.174999 20.374994 1.175000 +v 1.775000 12.124997 1.774999 +v -1.475000 16.124994 1.475000 +v 1.775000 12.374997 1.774999 +v -2.375000 4.124999 2.375000 +v -2.375000 4.374999 2.375000 +vt 0.693548 0.350000 +vt 0.612903 0.337500 +vt 0.693548 0.337500 +vt 0.612903 0.350000 +vt 0.532258 0.337500 +vt 0.532258 0.350000 +vt 0.451613 0.337500 +vt 0.774194 0.350000 +vt 0.774194 0.337500 +vt 0.451613 0.275000 +vt 0.532258 0.275000 +vt 0.540323 0.356250 +vt 0.693548 0.450000 +vt 0.612903 0.437500 +vt 0.693548 0.437500 +vt 0.612903 0.450000 +vt 0.532258 0.437500 +vt 0.532258 0.450000 +vt 0.451613 0.437500 +vt 0.774194 0.450000 +vt 0.774194 0.437500 +vt 0.459677 0.356250 +vt 0.451613 0.350000 +vt 0.524194 0.356250 +vt 0.459677 0.431250 +vt 0.685484 0.356250 +vt 0.620968 0.431250 +vt 0.620968 0.356250 +vt 0.766129 0.356250 +vt 0.701613 0.431250 +vt 0.701613 0.356250 +vt 0.604839 0.356250 +vt 0.540323 0.431250 +vt 0.451613 0.425000 +vt 0.000000 0.350000 +vt 0.451613 0.350000 +vt 0.451613 0.425000 +vt 0.000000 0.350000 +vt 0.451613 0.350000 +vt 0.451613 0.425000 +vt -0.000000 0.350000 +vt 0.451613 0.350000 +vt 0.451613 0.425000 +vt 0.000000 0.350000 +vt 0.451613 0.350000 +vt -0.000000 0.000000 +vt 0.451613 0.000000 +vt 0.064516 0.475000 +vt -0.000000 0.775000 +vt -0.000000 0.425000 +vt 0.387097 0.475000 +vt 0.467742 0.012500 +vt 0.790323 0.262500 +vt 0.467742 0.262500 +vt 0.806452 0.262500 +vt 0.790323 0.012500 +vt 0.806452 0.012500 +vt 0.451613 0.012500 +vt 0.451613 0.262500 +vt 0.790323 0.000000 +vt 0.467742 0.000000 +vt 0.467742 0.275000 +vt 0.790323 0.275000 +vt 0.064516 0.725000 +vt 0.451613 0.775000 +vt 0.387097 0.725000 +vt 0.870968 0.000000 +vt 0.854839 1.000000 +vt 0.854839 -0.000000 +vt 0.806452 0.000000 +vt 0.822581 1.000000 +vt 0.806452 1.000000 +vt 0.822581 -0.000000 +vt 0.838710 1.000000 +vt 0.838710 0.000000 +vt 0.806452 0.000000 +vt 0.822581 1.000000 +vt 0.806452 1.000000 +vt 0.822581 -0.000000 +vt 0.838710 1.000000 +vt 0.854839 -0.000000 +vt 0.838710 0.000000 +vt 0.870968 0.000000 +vt 0.854839 1.000000 +vt 0.854839 -0.000000 +vt 0.838710 1.000000 +vt 0.838710 0.000000 +vt 0.870968 0.000000 +vt 0.854839 1.000000 +vt 0.806452 0.000000 +vt 0.822581 1.000000 +vt 0.806452 1.000000 +vt 0.822581 -0.000000 +vt 0.822581 -0.000000 +vt 0.838710 1.000000 +vt 0.822581 1.000000 +vt 0.854839 -0.000000 +vt 0.838710 0.000000 +vt 0.870968 0.000000 +vt 0.854839 1.000000 +vt 0.806452 0.000000 +vt 0.806452 1.000000 +vt 0.064516 0.487500 +vt 0.209677 0.600000 +vt 0.064516 0.600000 +vt 0.209677 0.612500 +vt 0.064516 0.725000 +vt 0.064516 0.612500 +vt 0.209677 0.600000 +vt 0.064516 0.612500 +vt 0.064516 0.600000 +vt 0.064516 0.612500 +vt 0.209677 0.600000 +vt 0.209677 0.612500 +vt 0.064516 0.612500 +vt 0.209677 0.600000 +vt 0.209677 0.612500 +vt 0.250000 0.856250 +vt 0.056452 0.850000 +vt 0.250000 0.850000 +vt 0.056452 0.865625 +vt 0.250000 0.859375 +vt 0.250000 0.865625 +vt 0.217742 0.856250 +vt 0.088710 0.850000 +vt 0.217742 0.850000 +vt 0.286290 0.856250 +vt 0.020161 0.850000 +vt 0.286290 0.850000 +vt 0.258065 0.856250 +vt 0.048387 0.850000 +vt 0.258065 0.850000 +vt 0.229839 0.856250 +vt 0.076613 0.850000 +vt 0.229839 0.850000 +vt 0.298387 0.856250 +vt 0.008065 0.850000 +vt 0.298387 0.850000 +vt 0.266129 0.856250 +vt 0.040323 0.850000 +vt 0.266129 0.850000 +vt 0.237903 0.856250 +vt 0.068548 0.850000 +vt 0.237903 0.850000 +vt 0.278226 0.856250 +vt 0.028226 0.850000 +vt 0.278226 0.850000 +vt 0.088710 0.865625 +vt 0.217742 0.859375 +vt 0.217742 0.865625 +vt 0.020161 0.865625 +vt 0.286290 0.859375 +vt 0.286290 0.865625 +vt 0.048387 0.865625 +vt 0.258065 0.859375 +vt 0.258065 0.865625 +vt 0.076613 0.865625 +vt 0.229839 0.859375 +vt 0.229839 0.865625 +vt 0.008065 0.865625 +vt 0.298387 0.859375 +vt 0.298387 0.865625 +vt 0.040323 0.865625 +vt 0.266129 0.859375 +vt 0.266129 0.865625 +vt 0.068548 0.865625 +vt 0.237903 0.859375 +vt 0.237903 0.865625 +vt 0.028226 0.865625 +vt 0.278226 0.859375 +vt 0.278226 0.865625 +vt 0.068548 0.868750 +vt 0.237903 0.868750 +vt 0.056452 0.868750 +vt 0.250000 0.868750 +vt 0.048387 0.868750 +vt 0.258065 0.868750 +vt 0.008065 0.859375 +vt 0.008065 0.856250 +vt 0.040323 0.868750 +vt 0.266129 0.868750 +vt 0.020161 0.859375 +vt 0.020161 0.856250 +vt 0.028226 0.868750 +vt 0.278226 0.868750 +vt 0.028226 0.859375 +vt 0.028226 0.856250 +vt 0.020161 0.868750 +vt 0.286290 0.868750 +vt 0.040323 0.859375 +vt 0.040323 0.856250 +vt 0.008065 0.868750 +vt 0.298387 0.868750 +vt 0.048387 0.859375 +vt 0.048387 0.856250 +vt 0.056452 0.859375 +vt 0.056452 0.856250 +vt 0.068548 0.859375 +vt 0.068548 0.856250 +vt 0.076613 0.859375 +vt 0.076613 0.856250 +vt 0.088710 0.859375 +vt 0.088710 0.856250 +vt 0.088710 0.868750 +vt 0.217742 0.868750 +vt 0.076613 0.868750 +vt 0.229839 0.868750 +vt 0.209677 0.862500 +vt 0.096774 0.859375 +vt 0.209677 0.859375 +vt 0.096774 0.856250 +vt 0.209677 0.853125 +vt 0.209677 0.856250 +vt -0.000000 0.859375 +vt 0.306452 0.856250 +vt 0.306452 0.859375 +vt -0.000000 0.862500 +vt 0.306452 0.862500 +vt 0.306452 0.853125 +vt -0.000000 0.856250 +vt -0.000000 0.853125 +vt 0.774194 0.450000 +vt 0.451613 0.462500 +vt 0.451613 0.450000 +vt 0.729839 0.450000 +vt 0.495968 0.462500 +vt 0.495968 0.450000 +vt 0.689516 0.450000 +vt 0.536290 0.462500 +vt 0.536290 0.450000 +vt 0.516129 0.462500 +vt 0.709677 0.450000 +vt 0.709677 0.462500 +vt 0.471774 0.462500 +vt 0.750000 0.450000 +vt 0.750000 0.462500 +vt 0.774194 0.462500 +vt 0.451613 0.450000 +vt 0.774194 0.450000 +vt 0.729839 0.462500 +vt 0.495968 0.450000 +vt 0.729839 0.450000 +vt 0.689516 0.462500 +vt 0.536290 0.450000 +vt 0.689516 0.450000 +vt 0.516129 0.450000 +vt 0.709677 0.462500 +vt 0.516129 0.462500 +vt 0.471774 0.450000 +vt 0.750000 0.462500 +vt 0.471774 0.462500 +vt 0.229839 0.856250 +vt 0.076613 0.859375 +vt 0.076613 0.856250 +vt 0.217742 0.856250 +vt 0.088710 0.859375 +vt 0.088710 0.856250 +vt 0.088710 0.868750 +vt 0.217742 0.865625 +vt 0.217742 0.868750 +vt 0.076613 0.868750 +vt 0.229839 0.865625 +vt 0.229839 0.868750 +vt 0.209677 0.862500 +vt 0.096774 0.859375 +vt 0.209677 0.859375 +vt 0.096774 0.856250 +vt 0.209677 0.853125 +vt 0.209677 0.856250 +vt -0.000000 0.859375 +vt 0.306452 0.856250 +vt 0.306452 0.859375 +vt -0.000000 0.862500 +vt 0.306452 0.862500 +vt 0.306452 0.853125 +vt -0.000000 0.856250 +vt -0.000000 0.853125 +vt 0.306452 0.853125 +vt -0.000000 0.856250 +vt -0.000000 0.853125 +vt -0.000000 0.862500 +vt 0.306452 0.859375 +vt 0.306452 0.862500 +vt -0.000000 0.859375 +vt 0.306452 0.856250 +vt 0.096774 0.859375 +vt 0.209677 0.856250 +vt 0.209677 0.859375 +vt 0.096774 0.856250 +vt 0.209677 0.853125 +vt 0.209677 0.862500 +vt 0.076613 0.868750 +vt 0.229839 0.865625 +vt 0.229839 0.868750 +vt 0.088710 0.868750 +vt 0.217742 0.865625 +vt 0.217742 0.868750 +vt 0.217742 0.856250 +vt 0.088710 0.859375 +vt 0.088710 0.856250 +vt 0.229839 0.856250 +vt 0.076613 0.859375 +vt 0.076613 0.856250 +vt 0.068548 0.856250 +vt 0.237903 0.859375 +vt 0.068548 0.859375 +vt 0.250000 0.856250 +vt 0.056452 0.859375 +vt 0.056452 0.856250 +vt 0.258065 0.856250 +vt 0.048387 0.859375 +vt 0.048387 0.856250 +vt 0.008065 0.868750 +vt 0.298387 0.865625 +vt 0.298387 0.868750 +vt 0.266129 0.856250 +vt 0.040323 0.859375 +vt 0.040323 0.856250 +vt 0.020161 0.868750 +vt 0.286290 0.865625 +vt 0.286290 0.868750 +vt 0.278226 0.856250 +vt 0.028226 0.859375 +vt 0.028226 0.856250 +vt 0.028226 0.868750 +vt 0.278226 0.865625 +vt 0.278226 0.868750 +vt 0.286290 0.856250 +vt 0.020161 0.859375 +vt 0.020161 0.856250 +vt 0.040323 0.868750 +vt 0.266129 0.865625 +vt 0.266129 0.868750 +vt 0.298387 0.856250 +vt 0.008065 0.859375 +vt 0.008065 0.856250 +vt 0.048387 0.868750 +vt 0.258065 0.865625 +vt 0.258065 0.868750 +vt 0.056452 0.868750 +vt 0.250000 0.865625 +vt 0.250000 0.868750 +vt 0.068548 0.868750 +vt 0.237903 0.865625 +vt 0.237903 0.868750 +vt 0.028226 0.865625 +vt 0.278226 0.859375 +vt 0.068548 0.865625 +vt 0.040323 0.865625 +vt 0.266129 0.859375 +vt 0.008065 0.865625 +vt 0.298387 0.859375 +vt 0.076613 0.865625 +vt 0.229839 0.859375 +vt 0.048387 0.865625 +vt 0.258065 0.859375 +vt 0.020161 0.865625 +vt 0.286290 0.859375 +vt 0.088710 0.865625 +vt 0.217742 0.859375 +vt 0.028226 0.850000 +vt 0.278226 0.850000 +vt 0.237903 0.856250 +vt 0.068548 0.850000 +vt 0.237903 0.850000 +vt 0.040323 0.850000 +vt 0.266129 0.850000 +vt 0.008065 0.850000 +vt 0.298387 0.850000 +vt 0.076613 0.850000 +vt 0.229839 0.850000 +vt 0.048387 0.850000 +vt 0.258065 0.850000 +vt 0.020161 0.850000 +vt 0.286290 0.850000 +vt 0.088710 0.850000 +vt 0.217742 0.850000 +vt 0.056452 0.865625 +vt 0.250000 0.859375 +vt 0.056452 0.850000 +vt 0.250000 0.850000 +vt 0.471774 0.675000 +vt 0.637097 0.668750 +vt 0.637097 0.675000 +vt 0.669355 0.468750 +vt 0.661290 0.668750 +vt 0.661290 0.468750 +vt 0.471774 0.675000 +vt 0.637097 0.668750 +vt 0.637097 0.675000 +vt 0.669355 0.468750 +vt 0.661290 0.668750 +vt 0.661290 0.468750 +vt 0.661290 0.462500 +vt 0.451613 0.468750 +vt 0.451613 0.462500 +vt 0.661290 0.468750 +vt 0.669355 0.668750 +vt 0.661290 0.668750 +vt 0.471774 0.668750 +vt 0.451613 0.468750 +vt 0.661290 0.462500 +vt 0.451613 0.468750 +vt 0.451613 0.462500 +vt 0.661290 0.468750 +vt 0.669355 0.668750 +vt 0.661290 0.668750 +vt 0.471774 0.668750 +vt 0.451613 0.468750 +vt 0.661290 0.468750 +vt 0.471774 0.668750 +vt 0.451613 0.468750 +vt 0.637097 0.668750 +vt 0.451613 0.468750 +vt 0.661290 0.468750 +vt 0.669355 0.668750 +vt 0.661290 0.668750 +vt 0.661290 0.462500 +vt 0.451613 0.462500 +vt 0.669355 0.468750 +vt 0.661290 0.668750 +vt 0.471774 0.675000 +vt 0.637097 0.675000 +vt 0.641129 0.850000 +vt 0.451613 0.750000 +vt 0.649194 0.750000 +vt 0.451613 0.675000 +vt 0.649194 0.750000 +vt 0.451613 0.750000 +vt 0.641129 0.850000 +vt 0.459677 0.850000 +vt 0.770161 0.925000 +vt 0.641129 0.931250 +vt 0.459677 0.931250 +vt 0.330645 0.925000 +vt 0.774194 0.462500 +vt 0.782258 0.587500 +vt 0.774194 0.587500 +vt 0.750000 0.587500 +vt 0.758065 0.462500 +vt 0.758065 0.587500 +vt 0.766129 0.462500 +vt 0.766129 0.587500 +vt 0.733004 0.518281 +vt 0.749716 0.512917 +vt 0.749716 0.549549 +vt 0.741935 0.462500 +vt 0.745968 0.475000 +vt 0.741935 0.475000 +vt 0.745968 0.487500 +vt 0.741935 0.487500 +vt 0.741935 0.500000 +vt 0.745968 0.500000 +vt 0.741935 0.512500 +vt 0.689516 0.540625 +vt 0.673387 0.528125 +vt 0.689516 0.528125 +vt 0.677419 0.462500 +vt 0.673387 0.475000 +vt 0.673387 0.462500 +vt 0.677419 0.475000 +vt 0.673387 0.487500 +vt 0.677419 0.500000 +vt 0.677419 0.487500 +vt 0.955069 0.905455 +vt 0.936510 0.883929 +vt 0.964286 0.869545 +vt 0.677419 0.512500 +vt 0.673387 0.500000 +vt 0.749716 0.512917 +vt 0.733004 0.544184 +vt 0.726082 0.531233 +vt 0.673387 0.525000 +vt 0.689516 0.512500 +vt 0.689516 0.525000 +vt 0.673387 0.540625 +vt 0.669355 0.528125 +vt 0.673387 0.543750 +vt 0.693548 0.540625 +vt 0.701613 0.518750 +vt 0.705645 0.515625 +vt 0.705645 0.518750 +vt 0.709677 0.512500 +vt 0.709677 0.515625 +vt 0.701613 0.543750 +vt 0.705645 0.531250 +vt 0.705645 0.543750 +vt 0.713710 0.531250 +vt 0.713710 0.543750 +vt 0.717742 0.531250 +vt 0.717742 0.543750 +vt 0.693548 0.543750 +vt 0.701613 0.531250 +vt 0.709677 0.525000 +vt 0.709677 0.531250 +vt 0.705645 0.525000 +vt 0.709677 0.518750 +vt 0.697581 0.531250 +vt 0.697581 0.525000 +vt 0.701613 0.525000 +vt 0.697581 0.518750 +vt 0.697581 0.515625 +vt 0.701613 0.515625 +vt 0.717742 0.525000 +vt 0.713710 0.521875 +vt 0.717742 0.518750 +vt 0.717742 0.521875 +vt 0.705645 0.512500 +vt 0.709677 0.518750 +vt 0.701613 0.512500 +vt 0.713710 0.525000 +vt 0.935484 0.868750 +vt 0.870968 0.918750 +vt 0.870968 0.868750 +vt 0.870968 0.925000 +vt 0.935484 0.975000 +vt 0.870968 0.975000 +vt 0.935484 0.918750 +vt 0.870968 0.925000 +vt 0.935484 0.918750 +vt 0.935484 0.925000 +vt 0.870968 0.925000 +vt 0.935484 0.918750 +vt 0.935484 0.925000 +vt 0.935484 0.918750 +vt 0.870968 0.925000 +vt 0.870968 0.918750 +vt 0.379032 0.825000 +vt -0.000000 0.850000 +vt -0.000000 0.825000 +vt -0.000000 0.850000 +vt 0.379032 0.825000 +vt 0.379032 0.850000 +vt 0.056452 0.850000 +vt 0.322581 0.825000 +vt 0.322581 0.850000 +vt 0.056452 0.850000 +vt 0.322581 0.825000 +vt 0.322581 0.850000 +vt 0.350806 0.825000 +vt 0.028226 0.850000 +vt 0.028226 0.825000 +vt 0.028226 0.850000 +vt 0.350806 0.825000 +vt 0.350806 0.850000 +vt 0.451613 0.775000 +vt 0.000000 0.825000 +vt 0.000000 0.775000 +vt 0.451613 0.775000 +vt 0.000000 0.825000 +vt 0.000000 0.775000 +vt 0.451613 0.775000 +vt 0.000000 0.825000 +vt 0.000000 0.775000 +vt 0.451613 0.775000 +vt 0.000000 0.825000 +vt 0.000000 0.775000 +vt 0.693548 0.350000 +vt 0.612903 0.337500 +vt 0.693548 0.337500 +vt 0.612903 0.350000 +vt 0.532258 0.337500 +vt 0.532258 0.350000 +vt 0.451613 0.337500 +vt 0.774194 0.350000 +vt 0.774194 0.337500 +vt 0.451613 0.275000 +vt 0.532258 0.275000 +vt 0.540323 0.356250 +vt 0.693548 0.450000 +vt 0.612903 0.437500 +vt 0.693548 0.437500 +vt 0.612903 0.450000 +vt 0.532258 0.437500 +vt 0.532258 0.450000 +vt 0.451613 0.437500 +vt 0.774194 0.450000 +vt 0.774194 0.437500 +vt 0.459677 0.356250 +vt 0.451613 0.350000 +vt 0.524194 0.356250 +vt 0.459677 0.431250 +vt 0.685484 0.356250 +vt 0.620968 0.431250 +vt 0.620968 0.356250 +vt 0.766129 0.356250 +vt 0.701613 0.431250 +vt 0.701613 0.356250 +vt 0.604839 0.356250 +vt 0.540323 0.431250 +vt 0.693548 0.350000 +vt 0.612903 0.337500 +vt 0.693548 0.337500 +vt 0.612903 0.350000 +vt 0.532258 0.337500 +vt 0.532258 0.350000 +vt 0.451613 0.337500 +vt 0.774194 0.350000 +vt 0.774194 0.337500 +vt 0.451613 0.275000 +vt 0.532258 0.275000 +vt 0.540323 0.356250 +vt 0.693548 0.450000 +vt 0.612903 0.437500 +vt 0.693548 0.437500 +vt 0.612903 0.450000 +vt 0.532258 0.437500 +vt 0.532258 0.450000 +vt 0.451613 0.437500 +vt 0.774194 0.450000 +vt 0.774194 0.437500 +vt 0.459677 0.356250 +vt 0.451613 0.350000 +vt 0.524194 0.356250 +vt 0.459677 0.431250 +vt 0.685484 0.356250 +vt 0.620968 0.431250 +vt 0.620968 0.356250 +vt 0.766129 0.356250 +vt 0.701613 0.431250 +vt 0.701613 0.356250 +vt 0.604839 0.356250 +vt 0.540323 0.431250 +vt 0.693548 0.350000 +vt 0.612903 0.337500 +vt 0.693548 0.337500 +vt 0.612903 0.350000 +vt 0.532258 0.337500 +vt 0.532258 0.350000 +vt 0.451613 0.337500 +vt 0.774194 0.350000 +vt 0.774194 0.337500 +vt 0.451613 0.275000 +vt 0.532258 0.275000 +vt 0.540323 0.356250 +vt 0.693548 0.450000 +vt 0.612903 0.437500 +vt 0.693548 0.437500 +vt 0.612903 0.450000 +vt 0.532258 0.437500 +vt 0.532258 0.450000 +vt 0.451613 0.437500 +vt 0.774194 0.450000 +vt 0.774194 0.437500 +vt 0.459677 0.356250 +vt 0.451613 0.350000 +vt 0.524194 0.356250 +vt 0.459677 0.431250 +vt 0.685484 0.356250 +vt 0.620968 0.431250 +vt 0.620968 0.356250 +vt 0.766129 0.356250 +vt 0.701613 0.431250 +vt 0.701613 0.356250 +vt 0.604839 0.356250 +vt 0.540323 0.431250 +vt 0.068548 0.856250 +vt 0.237903 0.859375 +vt 0.068548 0.859375 +vt 0.250000 0.856250 +vt 0.056452 0.859375 +vt 0.056452 0.856250 +vt 0.258065 0.856250 +vt 0.048387 0.859375 +vt 0.048387 0.856250 +vt 0.008065 0.868750 +vt 0.298387 0.865625 +vt 0.298387 0.868750 +vt 0.266129 0.856250 +vt 0.040323 0.859375 +vt 0.040323 0.856250 +vt 0.020161 0.868750 +vt 0.286290 0.865625 +vt 0.286290 0.868750 +vt 0.278226 0.856250 +vt 0.028226 0.859375 +vt 0.028226 0.856250 +vt 0.028226 0.868750 +vt 0.278226 0.865625 +vt 0.278226 0.868750 +vt 0.286290 0.856250 +vt 0.020161 0.859375 +vt 0.020161 0.856250 +vt 0.040323 0.868750 +vt 0.266129 0.865625 +vt 0.266129 0.868750 +vt 0.298387 0.856250 +vt 0.008065 0.859375 +vt 0.008065 0.856250 +vt 0.048387 0.868750 +vt 0.258065 0.865625 +vt 0.258065 0.868750 +vt 0.056452 0.868750 +vt 0.250000 0.865625 +vt 0.250000 0.868750 +vt 0.068548 0.868750 +vt 0.237903 0.865625 +vt 0.237903 0.868750 +vt 0.028226 0.865625 +vt 0.278226 0.859375 +vt 0.068548 0.865625 +vt 0.040323 0.865625 +vt 0.266129 0.859375 +vt 0.008065 0.865625 +vt 0.298387 0.859375 +vt 0.076613 0.865625 +vt 0.229839 0.859375 +vt 0.048387 0.865625 +vt 0.258065 0.859375 +vt 0.020161 0.865625 +vt 0.286290 0.859375 +vt 0.088710 0.865625 +vt 0.217742 0.859375 +vt 0.028226 0.850000 +vt 0.278226 0.850000 +vt 0.237903 0.856250 +vt 0.068548 0.850000 +vt 0.237903 0.850000 +vt 0.040323 0.850000 +vt 0.266129 0.850000 +vt 0.008065 0.850000 +vt 0.298387 0.850000 +vt 0.076613 0.850000 +vt 0.229839 0.850000 +vt 0.048387 0.850000 +vt 0.258065 0.850000 +vt 0.020161 0.850000 +vt 0.286290 0.850000 +vt 0.088710 0.850000 +vt 0.217742 0.850000 +vt 0.056452 0.865625 +vt 0.250000 0.859375 +vt 0.056452 0.850000 +vt 0.250000 0.850000 +vt 0.229839 0.856250 +vt 0.076613 0.859375 +vt 0.076613 0.856250 +vt 0.217742 0.856250 +vt 0.088710 0.859375 +vt 0.088710 0.856250 +vt 0.088710 0.868750 +vt 0.217742 0.865625 +vt 0.217742 0.868750 +vt 0.076613 0.868750 +vt 0.229839 0.865625 +vt 0.229839 0.868750 +vt 0.209677 0.862500 +vt 0.096774 0.859375 +vt 0.209677 0.859375 +vt 0.096774 0.856250 +vt 0.209677 0.853125 +vt 0.209677 0.856250 +vt -0.000000 0.859375 +vt 0.306452 0.856250 +vt 0.306452 0.859375 +vt -0.000000 0.862500 +vt 0.306452 0.862500 +vt 0.306452 0.853125 +vt -0.000000 0.856250 +vt -0.000000 0.853125 +vt 0.068548 0.856250 +vt 0.237903 0.859375 +vt 0.068548 0.859375 +vt 0.250000 0.856250 +vt 0.056452 0.859375 +vt 0.056452 0.856250 +vt 0.258065 0.856250 +vt 0.048387 0.859375 +vt 0.048387 0.856250 +vt 0.008065 0.868750 +vt 0.298387 0.865625 +vt 0.298387 0.868750 +vt 0.266129 0.856250 +vt 0.040323 0.859375 +vt 0.040323 0.856250 +vt 0.020161 0.868750 +vt 0.286290 0.865625 +vt 0.286290 0.868750 +vt 0.278226 0.856250 +vt 0.028226 0.859375 +vt 0.028226 0.856250 +vt 0.028226 0.868750 +vt 0.278226 0.865625 +vt 0.278226 0.868750 +vt 0.286290 0.856250 +vt 0.020161 0.859375 +vt 0.020161 0.856250 +vt 0.040323 0.868750 +vt 0.266129 0.865625 +vt 0.266129 0.868750 +vt 0.298387 0.856250 +vt 0.008065 0.859375 +vt 0.008065 0.856250 +vt 0.048387 0.868750 +vt 0.258065 0.865625 +vt 0.258065 0.868750 +vt 0.056452 0.868750 +vt 0.250000 0.865625 +vt 0.250000 0.868750 +vt 0.068548 0.868750 +vt 0.237903 0.865625 +vt 0.237903 0.868750 +vt 0.028226 0.865625 +vt 0.278226 0.859375 +vt 0.068548 0.865625 +vt 0.040323 0.865625 +vt 0.266129 0.859375 +vt 0.008065 0.865625 +vt 0.298387 0.859375 +vt 0.076613 0.865625 +vt 0.229839 0.859375 +vt 0.048387 0.865625 +vt 0.258065 0.859375 +vt 0.020161 0.865625 +vt 0.286290 0.859375 +vt 0.088710 0.865625 +vt 0.217742 0.859375 +vt 0.028226 0.850000 +vt 0.278226 0.850000 +vt 0.237903 0.856250 +vt 0.068548 0.850000 +vt 0.237903 0.850000 +vt 0.040323 0.850000 +vt 0.266129 0.850000 +vt 0.008065 0.850000 +vt 0.298387 0.850000 +vt 0.076613 0.850000 +vt 0.229839 0.850000 +vt 0.048387 0.850000 +vt 0.258065 0.850000 +vt 0.020161 0.850000 +vt 0.286290 0.850000 +vt 0.088710 0.850000 +vt 0.217742 0.850000 +vt 0.056452 0.865625 +vt 0.250000 0.859375 +vt 0.056452 0.850000 +vt 0.250000 0.850000 +vt 0.774194 0.450000 +vt 0.451613 0.462500 +vt 0.451613 0.450000 +vt 0.729839 0.450000 +vt 0.495968 0.462500 +vt 0.495968 0.450000 +vt 0.689516 0.450000 +vt 0.536290 0.462500 +vt 0.536290 0.450000 +vt 0.516129 0.462500 +vt 0.709677 0.450000 +vt 0.709677 0.462500 +vt 0.471774 0.462500 +vt 0.750000 0.450000 +vt 0.750000 0.462500 +vt 0.774194 0.462500 +vt 0.451613 0.450000 +vt 0.774194 0.450000 +vt 0.729839 0.462500 +vt 0.495968 0.450000 +vt 0.729839 0.450000 +vt 0.689516 0.462500 +vt 0.536290 0.450000 +vt 0.689516 0.450000 +vt 0.516129 0.450000 +vt 0.709677 0.462500 +vt 0.516129 0.462500 +vt 0.471774 0.450000 +vt 0.750000 0.462500 +vt 0.471774 0.462500 +vt 0.774194 0.450000 +vt 0.451613 0.462500 +vt 0.451613 0.450000 +vt 0.729839 0.450000 +vt 0.495968 0.462500 +vt 0.495968 0.450000 +vt 0.689516 0.450000 +vt 0.536290 0.462500 +vt 0.536290 0.450000 +vt 0.516129 0.462500 +vt 0.709677 0.450000 +vt 0.709677 0.462500 +vt 0.471774 0.462500 +vt 0.750000 0.450000 +vt 0.750000 0.462500 +vt 0.774194 0.462500 +vt 0.451613 0.450000 +vt 0.774194 0.450000 +vt 0.729839 0.462500 +vt 0.495968 0.450000 +vt 0.729839 0.450000 +vt 0.689516 0.462500 +vt 0.536290 0.450000 +vt 0.689516 0.450000 +vt 0.516129 0.450000 +vt 0.709677 0.462500 +vt 0.516129 0.462500 +vt 0.471774 0.450000 +vt 0.750000 0.462500 +vt 0.471774 0.462500 +vt 0.774194 0.450000 +vt 0.451613 0.462500 +vt 0.451613 0.450000 +vt 0.729839 0.450000 +vt 0.495968 0.462500 +vt 0.495968 0.450000 +vt 0.689516 0.450000 +vt 0.536290 0.462500 +vt 0.536290 0.450000 +vt 0.516129 0.462500 +vt 0.709677 0.450000 +vt 0.709677 0.462500 +vt 0.471774 0.462500 +vt 0.750000 0.450000 +vt 0.750000 0.462500 +vt 0.774194 0.462500 +vt 0.451613 0.450000 +vt 0.774194 0.450000 +vt 0.729839 0.462500 +vt 0.495968 0.450000 +vt 0.729839 0.450000 +vt 0.689516 0.462500 +vt 0.536290 0.450000 +vt 0.689516 0.450000 +vt 0.516129 0.450000 +vt 0.709677 0.462500 +vt 0.516129 0.462500 +vt 0.471774 0.450000 +vt 0.750000 0.462500 +vt 0.471774 0.462500 +vt 0.451613 0.450000 +vt 0.524194 0.431250 +vt 0.685484 0.431250 +vt 0.766129 0.431250 +vt 0.604839 0.431250 +vt 0.000000 0.425000 +vt 0.000000 0.425000 +vt 0.000000 0.425000 +vt 0.870968 1.000000 +vt 0.870968 1.000000 +vt 0.870968 1.000000 +vt 0.870968 1.000000 +vt 0.209677 0.487500 +vt 0.209677 0.725000 +vt 0.209677 0.612500 +vt 0.064516 0.600000 +vt 0.064516 0.600000 +vt 0.096774 0.862500 +vt 0.096774 0.853125 +vt 0.774194 0.462500 +vt 0.729839 0.462500 +vt 0.689516 0.462500 +vt 0.516129 0.450000 +vt 0.471774 0.450000 +vt 0.451613 0.462500 +vt 0.495968 0.462500 +vt 0.536290 0.462500 +vt 0.709677 0.450000 +vt 0.750000 0.450000 +vt 0.096774 0.862500 +vt 0.096774 0.853125 +vt 0.096774 0.853125 +vt 0.096774 0.862500 +vt 0.471774 0.668750 +vt 0.669355 0.668750 +vt 0.471774 0.668750 +vt 0.669355 0.668750 +vt 0.669355 0.468750 +vt 0.637097 0.668750 +vt 0.669355 0.468750 +vt 0.637097 0.668750 +vt 0.637097 0.668750 +vt 0.471774 0.668750 +vt 0.669355 0.468750 +vt 0.669355 0.668750 +vt 0.459677 0.850000 +vt 0.649194 0.675000 +vt 0.770161 0.850000 +vt 0.330645 0.850000 +vt 0.782258 0.462500 +vt 0.750000 0.462500 +vt 0.733004 0.544184 +vt 0.726082 0.531233 +vt 0.745968 0.462500 +vt 0.745968 0.512500 +vt 0.946554 0.902721 +vt 0.940037 0.897670 +vt 0.936510 0.891071 +vt 0.940037 0.877329 +vt 0.946554 0.872279 +vt 0.955069 0.869545 +vt 0.972801 0.872279 +vt 0.979318 0.877329 +vt 0.982845 0.883929 +vt 0.982845 0.891071 +vt 0.979318 0.897670 +vt 0.972801 0.902721 +vt 0.964286 0.905455 +vt 0.673387 0.512500 +vt 0.733004 0.518281 +vt 0.749716 0.549549 +vt 0.673387 0.512500 +vt 0.669355 0.540625 +vt 0.689516 0.543750 +vt 0.693548 0.528125 +vt 0.693548 0.531250 +vt 0.697581 0.518750 +vt 0.713710 0.518750 +vt 0.697581 0.512500 +vt 0.935484 0.925000 +vt 0.870968 0.918750 +vt 0.870968 0.918750 +vt 0.935484 0.925000 +vt 0.379032 0.850000 +vt -0.000000 0.825000 +vt 0.056452 0.825000 +vt 0.056452 0.825000 +vt 0.350806 0.850000 +vt 0.028226 0.825000 +vt 0.451613 0.825000 +vt 0.451613 0.825000 +vt 0.451613 0.825000 +vt 0.451613 0.825000 +vt 0.451613 0.450000 +vt 0.524194 0.431250 +vt 0.685484 0.431250 +vt 0.766129 0.431250 +vt 0.604839 0.431250 +vt 0.451613 0.450000 +vt 0.524194 0.431250 +vt 0.685484 0.431250 +vt 0.766129 0.431250 +vt 0.604839 0.431250 +vt 0.451613 0.450000 +vt 0.524194 0.431250 +vt 0.685484 0.431250 +vt 0.766129 0.431250 +vt 0.604839 0.431250 +vt 0.096774 0.862500 +vt 0.096774 0.853125 +vt 0.774194 0.462500 +vt 0.729839 0.462500 +vt 0.689516 0.462500 +vt 0.516129 0.450000 +vt 0.471774 0.450000 +vt 0.451613 0.462500 +vt 0.495968 0.462500 +vt 0.536290 0.462500 +vt 0.709677 0.450000 +vt 0.750000 0.450000 +vt 0.774194 0.462500 +vt 0.729839 0.462500 +vt 0.689516 0.462500 +vt 0.516129 0.450000 +vt 0.471774 0.450000 +vt 0.451613 0.462500 +vt 0.495968 0.462500 +vt 0.536290 0.462500 +vt 0.709677 0.450000 +vt 0.750000 0.450000 +vt 0.774194 0.462500 +vt 0.729839 0.462500 +vt 0.689516 0.462500 +vt 0.516129 0.450000 +vt 0.471774 0.450000 +vt 0.451613 0.462500 +vt 0.495968 0.462500 +vt 0.536290 0.462500 +vt 0.709677 0.450000 +vt 0.750000 0.450000 +vt 0.887097 0.750000 +vt 0.879032 0.868750 +vt 0.879032 0.750000 +vt 0.951613 0.750000 +vt 0.943548 0.868750 +vt 0.943548 0.750000 +vt 0.895161 0.750000 +vt 0.887097 0.868750 +vt 0.959677 0.750000 +vt 0.951613 0.868750 +vt 0.903226 0.750000 +vt 0.895161 0.868750 +vt 0.975806 0.750000 +vt 0.967742 0.868750 +vt 0.967742 0.750000 +vt 0.959677 0.868750 +vt 0.911290 0.750000 +vt 0.903226 0.868750 +vt 0.983871 0.750000 +vt 0.975806 0.868750 +vt 0.919355 0.750000 +vt 0.911290 0.868750 +vt 0.991935 0.750000 +vt 0.983871 0.868750 +vt 0.927419 0.750000 +vt 0.919355 0.868750 +vt 1.000000 0.750000 +vt 0.991935 0.868750 +vt 0.935484 0.750000 +vt 0.927419 0.868750 +vt 0.870968 0.868750 +vt 0.870968 0.750000 +vt 0.935484 0.868750 +vt 0.919355 0.000000 +vt 0.911290 0.750000 +vt 0.911290 0.000000 +vt 0.991935 0.000000 +vt 0.983871 0.750000 +vt 0.983871 0.000000 +vt 0.927419 0.000000 +vt 0.919355 0.750000 +vt 1.000000 0.000000 +vt 0.991935 0.750000 +vt 0.935484 0.000000 +vt 0.927419 0.750000 +vt 0.879032 -0.000000 +vt 0.870968 0.750000 +vt 0.870968 -0.000000 +vt 0.943548 0.000000 +vt 0.935484 0.750000 +vt 0.887097 -0.000000 +vt 0.879032 0.750000 +vt 0.951613 0.000000 +vt 0.943548 0.750000 +vt 0.895161 -0.000000 +vt 0.887097 0.750000 +vt 0.959677 0.000000 +vt 0.951613 0.750000 +vt 0.903226 0.000000 +vt 0.895161 0.750000 +vt 0.975806 0.000000 +vt 0.967742 0.750000 +vt 0.967742 0.000000 +vt 0.959677 0.750000 +vt 0.903226 0.750000 +vt 0.975806 0.750000 +vt 0.677419 0.487500 +vt 0.741935 0.475000 +vt 0.741935 0.487500 +vt 0.677419 0.475000 +vt 0.741935 0.462500 +vt 0.677419 0.512500 +vt 0.741935 0.500000 +vt 0.741935 0.512500 +vt 0.677419 0.500000 +vt 0.669355 0.487500 +vt 0.673387 0.500000 +vt 0.669355 0.500000 +vt 0.745968 0.500000 +vt 0.750000 0.512500 +vt 0.745968 0.512500 +vt 0.745968 0.462500 +vt 0.750000 0.475000 +vt 0.745968 0.475000 +vt 0.669355 0.462500 +vt 0.673387 0.475000 +vt 0.669355 0.475000 +vt 0.673387 0.512500 +vt 0.669355 0.512500 +vt 0.745968 0.487500 +vt 0.750000 0.500000 +vt 0.750000 0.487500 +vt 0.673387 0.487500 +vt 1.000000 0.868750 +vt 1.000000 0.750000 +vt 0.677419 0.462500 +vt 0.750000 0.462500 +vt 0.673387 0.462500 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9972 -0.0748 0.0000 +vn 0.0000 -0.0748 0.9972 +vn 0.9972 0.0748 0.0000 +vn 0.0000 0.0748 -0.9972 +vn 0.0000 0.0748 0.9972 +vn 0.0000 -0.0748 -0.9972 +vn -0.9972 0.0748 0.0000 +vn 0.9972 -0.0748 0.0000 +vn 0.9977 0.0000 -0.0673 +vn 0.9958 0.0000 -0.0919 +vn 0.9895 0.0000 -0.1448 +vn 0.9937 0.0000 -0.1125 +vn 0.9970 0.0000 -0.0777 +vn 0.9977 0.0000 0.0673 +vn 0.9958 0.0000 0.0919 +vn 0.9895 0.0000 0.1448 +vn 0.9937 0.0000 0.1125 +vn 0.9970 0.0000 0.0777 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.8944 -0.4472 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0673 0.0000 -0.9977 +vn -0.0919 0.0000 -0.9958 +vn -0.1448 0.0000 -0.9895 +vn -0.1125 0.0000 -0.9937 +vn -0.0777 0.0000 -0.9970 +vn 0.0673 0.0000 -0.9977 +vn 0.0919 0.0000 -0.9958 +vn 0.1448 0.0000 -0.9895 +vn 0.1125 0.0000 -0.9937 +vn 0.0777 0.0000 -0.9970 +vn -0.9977 0.0000 0.0673 +vn -0.9958 0.0000 0.0919 +vn -0.9895 0.0000 0.1448 +vn -0.9937 0.0000 0.1125 +vn -0.9970 0.0000 0.0777 +vn -0.9977 0.0000 -0.0673 +vn -0.9958 0.0000 -0.0919 +vn -0.9895 0.0000 -0.1448 +vn -0.9937 0.0000 -0.1125 +vn -0.9970 0.0000 -0.0777 +vn 0.0673 0.0000 0.9977 +vn 0.0919 0.0000 0.9958 +vn 0.1448 0.0000 0.9895 +vn 0.1125 0.0000 0.9937 +vn 0.0777 0.0000 0.9970 +vn -0.0673 0.0000 0.9977 +vn -0.0919 0.0000 0.9958 +vn -0.1448 0.0000 0.9895 +vn -0.1125 0.0000 0.9937 +vn -0.0777 0.0000 0.9970 +vn 0.0000 1.0000 -0.0001 +vn 0.0000 1.0000 0.0001 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.7071 -0.7071 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/2/2 +f 8/6/3 5/7/3 7/5/3 +f 6/8/4 1/3/4 5/9/4 +f 7/5/5 1/10/5 3/11/5 +f 4/4/6 12/12/6 8/6/6 +f 14/13/1 15/14/1 13/15/1 +f 16/16/2 19/17/2 15/14/2 +f 20/18/3 17/19/3 19/17/3 +f 18/20/4 13/15/4 17/21/4 +f 8/6/6 11/22/6 6/23/6 +f 12/24/3 24/25/3 11/22/3 +f 9/26/1 22/27/1 10/28/1 +f 11/29/4 21/30/4 9/31/4 +f 10/32/2 23/33/2 12/12/2 +f 21/30/5 17/21/5 13/15/5 +f 22/27/5 13/15/5 15/14/5 +f 23/33/5 15/14/5 19/17/5 +f 24/25/5 19/17/5 17/19/5 +f 6/8/6 9/31/6 2/1/6 +f 2/1/6 10/28/6 4/4/6 +f 26/34/1 27/35/1 25/36/1 +f 28/37/2 31/38/2 27/39/2 +f 32/40/3 29/41/3 31/42/3 +f 30/43/4 25/44/4 29/45/4 +f 31/42/5 25/46/5 27/47/5 +f 34/48/6 26/49/6 30/50/6 +f 36/51/6 30/50/6 32/40/6 +f 39/52/6 37/53/6 38/54/6 +f 35/55/2 40/56/2 36/57/2 +f 34/58/4 38/54/4 33/59/4 +f 36/60/3 39/52/3 34/61/3 +f 33/62/1 37/53/1 35/63/1 +f 33/64/6 28/65/6 26/49/6 +f 35/66/6 32/40/6 28/65/6 +f 42/67/7 48/68/7 44/69/7 +f 42/70/8 45/71/8 46/72/8 +f 41/73/9 47/74/9 45/71/9 +f 44/69/10 47/74/10 43/75/10 +f 52/76/7 54/77/7 56/78/7 +f 50/79/11 53/80/11 54/77/11 +f 51/81/9 53/80/9 49/82/9 +f 52/83/12 55/84/12 51/81/12 +f 58/85/13 64/86/13 60/87/13 +f 57/88/8 62/89/8 58/85/8 +f 57/90/14 63/91/14 61/92/14 +f 59/93/10 64/86/10 63/91/10 +f 68/94/13 70/95/13 72/96/13 +f 65/97/11 70/95/11 66/98/11 +f 67/99/14 69/100/14 65/97/14 +f 67/101/12 72/96/12 71/102/12 +f 76/103/5 73/104/5 74/105/5 +f 77/106/6 80/107/6 78/108/6 +f 74/109/4 80/110/4 76/111/4 +f 75/112/2 77/113/2 73/114/2 +f 76/115/1 79/116/1 75/117/1 +f 73/104/3 78/108/3 74/105/3 +f 104/118/3 97/119/3 90/120/3 +f 149/121/1 146/122/1 150/123/1 +f 107/124/3 94/125/3 93/126/3 +f 83/127/3 101/128/3 86/129/3 +f 103/130/3 98/131/3 89/132/3 +f 106/133/3 95/134/3 92/135/3 +f 84/136/3 102/137/3 85/138/3 +f 81/139/3 99/140/3 88/141/3 +f 105/142/3 96/143/3 91/144/3 +f 82/145/3 100/146/3 87/147/3 +f 139/148/1 141/149/1 142/150/1 +f 135/151/1 137/152/1 138/153/1 +f 131/154/1 133/155/1 134/156/1 +f 127/157/1 129/158/1 130/159/1 +f 123/160/1 125/161/1 126/162/1 +f 119/163/1 121/164/1 122/165/1 +f 148/166/1 117/167/1 118/168/1 +f 151/169/1 144/170/1 152/171/1 +f 96/172/5 118/168/5 91/173/5 +f 97/174/5 150/123/5 90/175/5 +f 98/176/5 134/156/5 89/177/5 +f 84/136/6 124/178/6 116/179/6 +f 99/180/5 122/165/5 88/181/5 +f 83/127/6 136/182/6 115/183/6 +f 100/184/5 152/171/5 87/185/5 +f 82/145/6 143/186/6 114/187/6 +f 101/188/5 138/153/5 86/189/5 +f 81/139/6 120/190/6 113/191/6 +f 102/192/5 126/162/5 85/193/5 +f 103/130/6 132/194/6 112/195/6 +f 104/118/6 145/196/6 111/197/6 +f 105/142/6 147/198/6 110/199/6 +f 106/133/6 128/200/6 109/201/6 +f 107/124/6 140/202/6 108/203/6 +f 94/204/5 142/150/5 93/205/5 +f 95/206/5 130/159/5 92/207/5 +f 155/208/3 154/209/3 153/210/3 +f 158/211/1 159/212/1 157/213/1 +f 154/209/5 157/213/5 153/210/5 +f 166/214/6 167/215/6 165/216/6 +f 162/217/1 165/216/1 161/218/1 +f 163/219/3 168/220/3 164/221/3 +f 180/222/15 208/223/15 207/224/15 +f 185/225/16 190/226/16 189/227/16 +f 187/228/17 194/229/17 193/230/17 +f 202/231/18 176/232/18 175/233/18 +f 198/234/19 172/235/19 171/236/19 +f 191/237/20 178/238/20 192/239/20 +f 206/240/21 173/241/21 204/242/21 +f 203/243/22 170/244/22 201/245/22 +f 182/246/23 196/247/23 181/248/23 +f 186/249/24 200/250/24 183/251/24 +f 633/252/6 611/253/6 630/254/6 +f 632/255/6 220/256/6 631/257/6 +f 645/258/5 222/259/5 646/260/5 +f 644/261/5 210/262/5 647/263/5 +f 235/264/1 234/265/1 233/266/1 +f 238/267/3 239/268/3 237/269/3 +f 234/265/5 237/269/5 233/266/5 +f 246/270/6 247/271/6 245/272/6 +f 242/273/3 245/272/3 241/274/3 +f 243/275/1 248/276/1 244/277/1 +f 254/278/2 249/279/2 253/280/2 +f 255/281/4 252/282/4 256/283/4 +f 251/284/6 250/285/6 252/282/6 +f 263/286/5 260/287/5 264/288/5 +f 259/289/4 258/290/4 260/287/4 +f 262/291/2 263/286/2 264/288/2 +f 322/292/5 287/293/5 325/294/5 +f 323/295/5 275/296/5 324/297/5 +f 310/298/6 277/299/6 309/300/6 +f 311/301/6 289/302/6 308/303/6 +f 307/304/6 300/305/6 270/306/6 +f 313/307/6 272/308/6 306/309/6 +f 314/310/6 285/311/6 305/312/6 +f 315/313/5 291/314/5 332/315/5 +f 336/316/6 297/317/6 304/318/6 +f 316/319/5 279/320/5 331/321/5 +f 335/322/6 274/323/6 303/324/6 +f 317/325/5 265/326/5 330/327/5 +f 334/328/6 281/329/6 302/330/6 +f 318/331/5 295/332/5 329/333/5 +f 333/334/6 293/335/6 301/336/6 +f 319/337/5 283/338/5 328/339/5 +f 320/340/5 267/341/5 327/342/5 +f 321/343/5 299/344/5 326/345/5 +f 266/346/4 273/347/4 265/326/4 +f 269/348/4 300/305/4 299/344/4 +f 298/349/4 296/350/4 295/332/4 +f 294/351/4 292/352/4 291/314/4 +f 290/353/4 288/354/4 287/293/4 +f 286/355/4 284/356/4 283/338/4 +f 282/357/4 280/358/4 279/320/4 +f 278/359/4 276/360/4 275/296/4 +f 335/322/2 317/361/2 330/362/2 +f 312/363/2 321/364/2 326/365/2 +f 336/316/2 318/366/2 329/367/2 +f 333/334/2 315/368/2 332/369/2 +f 311/301/2 322/370/2 325/371/2 +f 314/310/2 319/372/2 328/373/2 +f 334/328/2 316/374/2 331/375/2 +f 310/298/2 323/376/2 324/377/2 +f 268/378/4 271/379/4 267/341/4 +f 313/307/2 320/380/2 327/381/2 +f 344/382/6 340/383/6 341/384/6 +f 343/385/9 340/386/9 338/387/9 +f 360/388/6 356/389/6 357/390/6 +f 359/391/10 356/392/10 354/393/10 +f 359/394/5 355/395/5 358/396/5 +f 358/397/11 353/398/11 360/399/11 +f 356/389/9 355/395/9 354/393/9 +f 358/397/7 357/400/7 359/401/7 +f 343/402/5 339/403/5 342/404/5 +f 342/405/13 337/406/13 344/407/13 +f 340/383/11 339/403/11 338/387/11 +f 342/405/12 341/408/12 343/409/12 +f 347/410/14 348/411/14 346/412/14 +f 349/413/13 350/414/13 351/415/13 +f 347/410/10 352/416/10 345/417/10 +f 346/418/5 350/414/5 347/419/5 +f 346/420/11 349/421/11 351/415/11 +f 345/422/6 349/413/6 348/423/6 +f 362/424/8 364/425/8 361/426/8 +f 361/427/5 366/428/5 365/429/5 +f 365/429/2 368/430/2 367/431/2 +f 368/430/13 364/432/13 363/433/13 +f 367/431/6 363/433/6 362/434/6 +f 361/435/9 367/431/9 362/434/9 +f 406/436/1 392/437/1 407/438/1 +f 392/439/4 399/440/4 391/441/4 +f 400/442/2 407/438/2 408/443/2 +f 394/444/1 393/445/1 389/446/1 +f 375/447/3 369/448/3 373/449/3 +f 373/449/3 370/450/3 371/451/3 +f 370/450/3 379/452/3 371/451/3 +f 386/453/3 377/454/3 379/452/3 +f 382/455/6 384/456/6 383/457/6 +f 376/458/1 410/459/1 409/460/1 +f 374/461/1 404/462/1 410/459/1 +f 408/443/3 399/440/3 400/442/3 +f 380/463/1 404/462/1 372/464/1 +f 777/465/6 781/466/6 785/467/6 +f 378/468/1 403/469/1 380/463/1 +f 401/470/3 395/471/3 396/472/3 +f 413/473/5 411/474/5 412/475/5 +f 384/456/3 412/475/3 383/457/3 +f 390/476/4 413/477/4 384/456/4 +f 382/455/1 414/478/1 390/476/1 +f 383/457/2 411/479/2 382/455/2 +f 429/480/25 432/481/25 430/482/25 +f 432/481/1 433/483/1 428/484/1 +f 417/485/2 421/486/2 418/487/2 +f 418/487/1 422/488/1 415/489/1 +f 415/489/4 419/490/4 416/491/4 +f 416/492/3 420/493/3 417/485/3 +f 422/494/1 421/495/1 426/496/1 +f 426/496/1 428/497/1 422/494/1 +f 420/498/3 419/499/3 423/500/3 +f 429/501/3 427/502/3 431/503/3 +f 423/500/5 430/482/5 426/496/5 +f 419/499/3 429/480/3 423/500/3 +f 422/488/6 427/504/6 419/490/6 +f 433/505/6 425/506/6 434/507/6 +f 431/503/4 424/508/4 432/481/4 +f 428/484/1 430/509/1 432/481/1 +f 427/502/3 425/510/3 431/503/3 +f 420/493/26 426/496/26 421/486/26 +f 428/511/2 434/507/2 427/504/2 +f 437/512/5 436/513/5 435/514/5 +f 441/515/6 439/516/6 440/517/6 +f 438/518/3 441/515/3 436/513/3 +f 435/519/1 439/520/1 437/521/1 +f 437/522/2 442/523/2 438/524/2 +f 436/525/4 440/526/4 435/527/4 +f 521/528/27 510/529/27 509/530/27 +f 524/531/28 511/532/28 512/533/28 +f 520/534/27 507/535/27 508/536/27 +f 526/537/28 513/538/28 514/539/28 +f 528/540/27 515/541/27 516/542/27 +f 529/543/28 518/544/28 517/545/28 +f 533/546/4 535/547/4 531/548/4 +f 532/549/2 538/550/2 534/551/2 +f 534/552/3 537/553/3 533/554/3 +f 531/555/1 536/556/1 532/557/1 +f 540/558/1 541/559/1 539/560/1 +f 542/561/2 545/562/2 541/559/2 +f 546/563/3 543/564/3 545/562/3 +f 544/565/4 539/560/4 543/566/4 +f 545/562/5 539/567/5 541/568/5 +f 542/561/6 550/569/6 546/563/6 +f 552/570/1 553/571/1 551/572/1 +f 554/573/2 557/574/2 553/571/2 +f 558/575/3 555/576/3 557/574/3 +f 556/577/4 551/572/4 555/578/4 +f 546/563/6 549/579/6 544/580/6 +f 550/581/3 562/582/3 549/579/3 +f 547/583/1 560/584/1 548/585/1 +f 549/586/4 559/587/4 547/588/4 +f 548/589/2 561/590/2 550/569/2 +f 559/587/5 555/578/5 551/572/5 +f 560/584/5 551/572/5 553/571/5 +f 561/590/5 553/571/5 557/574/5 +f 562/582/5 557/574/5 555/576/5 +f 544/565/6 547/588/6 540/558/6 +f 540/558/6 548/585/6 542/561/6 +f 564/591/1 565/592/1 563/593/1 +f 566/594/2 569/595/2 565/592/2 +f 570/596/3 567/597/3 569/595/3 +f 568/598/4 563/593/4 567/599/4 +f 569/595/5 563/600/5 565/601/5 +f 566/594/6 574/602/6 570/596/6 +f 576/603/1 577/604/1 575/605/1 +f 578/606/2 581/607/2 577/604/2 +f 582/608/3 579/609/3 581/607/3 +f 580/610/4 575/605/4 579/611/4 +f 570/596/6 573/612/6 568/613/6 +f 574/614/3 586/615/3 573/612/3 +f 571/616/1 584/617/1 572/618/1 +f 573/619/4 583/620/4 571/621/4 +f 572/622/2 585/623/2 574/602/2 +f 583/620/5 579/611/5 575/605/5 +f 584/617/5 575/605/5 577/604/5 +f 585/623/5 577/604/5 581/607/5 +f 586/615/5 581/607/5 579/609/5 +f 568/598/6 571/621/6 564/591/6 +f 564/591/6 572/618/6 566/594/6 +f 588/624/1 589/625/1 587/626/1 +f 590/627/2 593/628/2 589/625/2 +f 594/629/3 591/630/3 593/628/3 +f 592/631/4 587/626/4 591/632/4 +f 593/628/5 587/633/5 589/634/5 +f 590/627/6 598/635/6 594/629/6 +f 600/636/1 601/637/1 599/638/1 +f 602/639/2 605/640/2 601/637/2 +f 606/641/3 603/642/3 605/640/3 +f 604/643/4 599/638/4 603/644/4 +f 594/629/6 597/645/6 592/646/6 +f 598/647/3 610/648/3 597/645/3 +f 595/649/1 608/650/1 596/651/1 +f 597/652/4 607/653/4 595/654/4 +f 596/655/2 609/656/2 598/635/2 +f 607/653/5 603/644/5 599/638/5 +f 608/650/5 599/638/5 601/637/5 +f 609/656/5 601/637/5 605/640/5 +f 610/648/5 605/640/5 603/642/5 +f 592/631/6 595/654/6 588/624/6 +f 588/624/6 596/651/6 590/627/6 +f 629/657/6 622/658/6 227/659/6 +f 635/660/6 225/661/6 628/662/6 +f 636/663/6 212/664/6 627/665/6 +f 637/666/5 613/667/5 654/668/5 +f 658/669/6 619/670/6 626/671/6 +f 638/672/5 218/673/5 653/674/5 +f 657/675/6 223/676/6 625/677/6 +f 639/678/5 232/679/5 652/680/5 +f 656/681/6 216/682/6 624/683/6 +f 640/684/5 617/685/5 651/686/5 +f 655/687/6 615/688/6 623/689/6 +f 641/690/5 214/691/5 650/692/5 +f 642/693/5 230/694/5 649/695/5 +f 643/696/5 621/697/5 648/698/5 +f 231/699/3 224/700/3 232/679/3 +f 228/701/3 622/658/3 621/697/3 +f 620/702/3 618/703/3 617/685/3 +f 616/704/3 614/705/3 613/667/3 +f 612/706/3 209/707/3 210/262/3 +f 211/708/3 213/709/3 214/691/3 +f 215/710/3 217/711/3 218/673/3 +f 219/712/3 221/713/3 222/259/3 +f 657/675/1 639/714/1 652/715/1 +f 634/716/1 643/717/1 648/718/1 +f 658/669/1 640/719/1 651/720/1 +f 655/687/1 637/721/1 654/722/1 +f 633/252/1 644/723/1 647/724/1 +f 636/663/1 641/725/1 650/726/1 +f 656/681/1 638/727/1 653/728/1 +f 632/255/1 645/729/1 646/730/1 +f 229/731/3 226/732/3 230/694/3 +f 635/660/1 642/733/1 649/734/1 +f 721/735/6 699/736/6 718/737/6 +f 720/738/6 670/739/6 719/740/6 +f 733/741/5 672/742/5 734/743/5 +f 732/744/5 660/745/5 735/746/5 +f 685/747/4 684/748/4 683/749/4 +f 688/750/2 689/751/2 687/752/2 +f 684/748/5 687/752/5 683/749/5 +f 696/753/6 697/754/6 695/755/6 +f 692/756/2 695/755/2 691/757/2 +f 693/758/4 698/759/4 694/760/4 +f 717/761/6 710/762/6 677/763/6 +f 723/764/6 675/765/6 716/766/6 +f 724/767/6 662/768/6 715/769/6 +f 725/770/5 701/771/5 742/772/5 +f 746/773/6 707/774/6 714/775/6 +f 726/776/5 668/777/5 741/778/5 +f 745/779/6 673/780/6 713/781/6 +f 727/782/5 682/783/5 740/784/5 +f 744/785/6 666/786/6 712/787/6 +f 728/788/5 705/789/5 739/790/5 +f 743/791/6 703/792/6 711/793/6 +f 729/794/5 664/795/5 738/796/5 +f 730/797/5 680/798/5 737/799/5 +f 731/800/5 709/801/5 736/802/5 +f 681/803/2 674/804/2 682/783/2 +f 678/805/2 710/762/2 709/801/2 +f 708/806/2 706/807/2 705/789/2 +f 704/808/2 702/809/2 701/771/2 +f 700/810/2 659/811/2 660/745/2 +f 661/812/2 663/813/2 664/795/2 +f 665/814/2 667/815/2 668/777/2 +f 669/816/2 671/817/2 672/742/2 +f 745/779/4 727/818/4 740/819/4 +f 722/820/4 731/821/4 736/822/4 +f 746/773/4 728/823/4 739/824/4 +f 743/791/4 725/825/4 742/826/4 +f 721/735/4 732/827/4 735/828/4 +f 724/767/4 729/829/4 738/830/4 +f 744/785/4 726/831/4 741/832/4 +f 720/738/4 733/833/4 734/834/4 +f 679/835/2 676/836/2 680/798/2 +f 723/764/4 730/837/4 737/838/4 +f 804/839/29 832/840/29 831/841/29 +f 809/842/30 814/843/30 813/844/30 +f 811/845/31 818/846/31 817/847/31 +f 826/848/32 800/849/32 799/850/32 +f 822/851/33 796/852/33 795/853/33 +f 815/854/34 802/855/34 816/856/34 +f 830/857/35 797/858/35 828/859/35 +f 827/860/36 794/861/36 825/862/36 +f 806/863/37 820/864/37 805/865/37 +f 810/866/38 824/867/38 807/868/38 +f 844/869/39 872/870/39 871/871/39 +f 849/872/40 854/873/40 853/874/40 +f 851/875/41 858/876/41 857/877/41 +f 866/878/42 840/879/42 839/880/42 +f 862/881/43 836/882/43 835/883/43 +f 855/884/44 842/885/44 856/886/44 +f 870/887/45 837/888/45 868/889/45 +f 867/890/46 834/891/46 865/892/46 +f 846/893/47 860/894/47 845/895/47 +f 850/896/48 864/897/48 847/898/48 +f 884/899/49 912/900/49 911/901/49 +f 889/902/50 894/903/50 893/904/50 +f 891/905/51 898/906/51 897/907/51 +f 906/908/52 880/909/52 879/910/52 +f 902/911/53 876/912/53 875/913/53 +f 895/914/54 882/915/54 896/916/54 +f 910/917/55 877/918/55 908/919/55 +f 907/920/56 874/921/56 905/922/56 +f 886/923/57 900/924/57 885/925/57 +f 890/926/58 904/927/58 887/928/58 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/6/2 7/5/2 +f 8/6/3 6/23/3 5/7/3 +f 6/8/4 2/1/4 1/3/4 +f 7/5/5 5/7/5 1/10/5 +f 4/4/6 10/32/6 12/12/6 +f 14/13/1 16/16/1 15/14/1 +f 16/16/2 20/18/2 19/17/2 +f 20/18/3 18/929/3 17/19/3 +f 18/20/4 14/13/4 13/15/4 +f 8/6/6 12/24/6 11/22/6 +f 12/24/3 23/930/3 24/25/3 +f 9/26/1 21/931/1 22/27/1 +f 11/29/4 24/932/4 21/30/4 +f 10/32/2 22/933/2 23/33/2 +f 21/30/5 24/932/5 17/21/5 +f 22/27/5 21/931/5 13/15/5 +f 23/33/5 22/933/5 15/14/5 +f 24/25/5 23/930/5 19/17/5 +f 6/8/6 11/29/6 9/31/6 +f 2/1/6 9/26/6 10/28/6 +f 26/34/1 28/934/1 27/35/1 +f 28/37/2 32/935/2 31/38/2 +f 32/40/3 30/50/3 29/41/3 +f 30/43/4 26/936/4 25/44/4 +f 31/42/5 29/41/5 25/46/5 +f 34/48/6 33/64/6 26/49/6 +f 36/51/6 34/48/6 30/50/6 +f 39/52/6 40/56/6 37/53/6 +f 35/55/2 37/53/2 40/56/2 +f 34/58/4 39/52/4 38/54/4 +f 36/60/3 40/56/3 39/52/3 +f 33/62/1 38/54/1 37/53/1 +f 33/64/6 35/66/6 28/65/6 +f 35/66/6 36/51/6 32/40/6 +f 42/67/7 46/937/7 48/68/7 +f 42/70/8 41/73/8 45/71/8 +f 41/73/9 43/75/9 47/74/9 +f 44/69/10 48/68/10 47/74/10 +f 52/76/7 50/79/7 54/77/7 +f 50/79/11 49/82/11 53/80/11 +f 51/81/9 55/84/9 53/80/9 +f 52/83/12 56/938/12 55/84/12 +f 58/85/13 62/89/13 64/86/13 +f 57/88/8 61/939/8 62/89/8 +f 57/90/14 59/93/14 63/91/14 +f 59/93/10 60/87/10 64/86/10 +f 68/94/13 66/98/13 70/95/13 +f 65/97/11 69/100/11 70/95/11 +f 67/99/14 71/940/14 69/100/14 +f 67/101/12 68/94/12 72/96/12 +f 76/103/5 75/941/5 73/104/5 +f 77/106/6 79/942/6 80/107/6 +f 74/109/4 78/943/4 80/110/4 +f 75/112/2 79/944/2 77/113/2 +f 76/115/1 80/945/1 79/116/1 +f 73/104/3 77/106/3 78/108/3 +f 104/118/3 111/197/3 97/119/3 +f 149/121/1 145/196/1 146/122/1 +f 107/124/3 108/203/3 94/125/3 +f 83/127/3 115/183/3 101/128/3 +f 103/130/3 112/195/3 98/131/3 +f 106/133/3 109/201/3 95/134/3 +f 84/136/3 116/179/3 102/137/3 +f 81/139/3 113/191/3 99/140/3 +f 105/142/3 110/199/3 96/143/3 +f 82/145/3 114/187/3 100/146/3 +f 139/148/1 140/202/1 141/149/1 +f 135/151/1 136/182/1 137/152/1 +f 131/154/1 132/194/1 133/155/1 +f 127/157/1 128/200/1 129/158/1 +f 123/160/1 124/178/1 125/161/1 +f 119/163/1 120/190/1 121/164/1 +f 148/166/1 147/198/1 117/167/1 +f 151/169/1 143/186/1 144/170/1 +f 96/172/5 148/166/5 118/168/5 +f 97/174/5 149/121/5 150/123/5 +f 98/176/5 131/154/5 134/156/5 +f 84/136/6 125/161/6 124/178/6 +f 99/180/5 119/163/5 122/165/5 +f 83/127/6 137/152/6 136/182/6 +f 100/184/5 151/169/5 152/171/5 +f 82/145/6 144/170/6 143/186/6 +f 101/188/5 135/151/5 138/153/5 +f 81/139/6 121/164/6 120/190/6 +f 102/192/5 123/160/5 126/162/5 +f 103/130/6 133/155/6 132/194/6 +f 104/118/6 146/122/6 145/196/6 +f 105/142/6 117/167/6 147/198/6 +f 106/133/6 129/158/6 128/200/6 +f 107/124/6 141/149/6 140/202/6 +f 94/204/5 139/148/5 142/150/5 +f 95/206/5 127/157/5 130/159/5 +f 155/208/3 156/946/3 154/209/3 +f 158/211/1 160/947/1 159/212/1 +f 154/209/5 158/211/5 157/213/5 +f 166/214/6 168/220/6 167/215/6 +f 162/217/1 166/214/1 165/216/1 +f 163/219/3 167/215/3 168/220/3 +f 180/222/15 179/948/15 208/223/15 +f 185/225/16 184/949/16 190/226/16 +f 187/228/17 188/950/17 194/229/17 +f 202/231/18 205/951/18 176/232/18 +f 198/234/19 197/952/19 172/235/19 +f 191/237/20 177/953/20 178/238/20 +f 206/240/21 174/954/21 173/241/21 +f 203/243/22 169/955/22 170/244/22 +f 182/246/23 195/956/23 196/247/23 +f 186/249/24 199/957/24 200/250/24 +f 633/252/6 209/707/6 611/253/6 +f 632/255/6 221/713/6 220/256/6 +f 645/258/5 219/712/5 222/259/5 +f 644/261/5 612/706/5 210/262/5 +f 235/264/1 236/958/1 234/265/1 +f 238/267/3 240/959/3 239/268/3 +f 234/265/5 238/267/5 237/269/5 +f 246/270/6 248/276/6 247/271/6 +f 242/273/3 246/270/3 245/272/3 +f 243/275/1 247/271/1 248/276/1 +f 254/278/2 250/285/2 249/279/2 +f 255/281/4 251/284/4 252/282/4 +f 251/284/6 249/279/6 250/285/6 +f 263/286/5 259/289/5 260/287/5 +f 259/289/4 257/960/4 258/290/4 +f 262/291/2 261/961/2 263/286/2 +f 322/292/5 290/353/5 287/293/5 +f 323/295/5 278/359/5 275/296/5 +f 310/298/6 276/360/6 277/299/6 +f 311/301/6 288/354/6 289/302/6 +f 307/304/6 312/363/6 300/305/6 +f 313/307/6 271/379/6 272/308/6 +f 314/310/6 284/356/6 285/311/6 +f 315/313/5 294/351/5 291/314/5 +f 336/316/6 296/350/6 297/317/6 +f 316/319/5 282/357/5 279/320/5 +f 335/322/6 273/347/6 274/323/6 +f 317/325/5 266/346/5 265/326/5 +f 334/328/6 280/358/6 281/329/6 +f 318/331/5 298/349/5 295/332/5 +f 333/334/6 292/352/6 293/335/6 +f 319/337/5 286/355/5 283/338/5 +f 320/340/5 268/378/5 267/341/5 +f 321/343/5 269/348/5 299/344/5 +f 266/346/4 274/323/4 273/347/4 +f 269/348/4 270/306/4 300/305/4 +f 298/349/4 297/317/4 296/350/4 +f 294/351/4 293/335/4 292/352/4 +f 290/353/4 289/302/4 288/354/4 +f 286/355/4 285/311/4 284/356/4 +f 282/357/4 281/329/4 280/358/4 +f 278/359/4 277/299/4 276/360/4 +f 335/322/2 303/324/2 317/361/2 +f 312/363/2 307/304/2 321/364/2 +f 336/316/2 304/318/2 318/366/2 +f 333/334/2 301/336/2 315/368/2 +f 311/301/2 308/303/2 322/370/2 +f 314/310/2 305/312/2 319/372/2 +f 334/328/2 302/330/2 316/374/2 +f 310/298/2 309/300/2 323/376/2 +f 268/378/4 272/308/4 271/379/4 +f 313/307/2 306/309/2 320/380/2 +f 344/382/6 337/962/6 340/383/6 +f 343/385/9 341/963/9 340/386/9 +f 360/388/6 353/964/6 356/389/6 +f 359/391/10 357/965/10 356/392/10 +f 359/394/5 354/393/5 355/395/5 +f 358/397/11 355/966/11 353/398/11 +f 356/389/9 353/964/9 355/395/9 +f 358/397/7 360/967/7 357/400/7 +f 343/402/5 338/387/5 339/403/5 +f 342/405/13 339/968/13 337/406/13 +f 340/383/11 337/962/11 339/403/11 +f 342/405/12 344/969/12 341/408/12 +f 347/410/14 345/970/14 348/411/14 +f 349/413/13 352/971/13 350/414/13 +f 347/410/10 350/972/10 352/416/10 +f 346/418/5 351/415/5 350/414/5 +f 346/420/11 348/973/11 349/421/11 +f 345/422/6 352/971/6 349/413/6 +f 362/424/8 363/974/8 364/425/8 +f 361/427/5 364/975/5 366/428/5 +f 365/429/2 366/428/2 368/430/2 +f 368/430/13 366/976/13 364/432/13 +f 367/431/6 368/430/6 363/433/6 +f 361/435/9 365/977/9 367/431/9 +f 406/436/1 398/978/1 392/437/1 +f 392/439/4 398/979/4 399/440/4 +f 400/442/2 406/436/2 407/438/2 +f 387/980/1 388/981/1 389/446/1 +f 388/981/1 394/444/1 389/446/1 +f 375/447/3 381/982/3 369/448/3 +f 373/449/3 369/448/3 370/450/3 +f 370/450/3 386/453/3 379/452/3 +f 386/453/3 385/983/3 377/454/3 +f 382/455/6 390/476/6 384/456/6 +f 376/458/1 374/461/1 410/459/1 +f 374/461/1 372/464/1 404/462/1 +f 408/443/3 391/441/3 399/440/3 +f 380/463/1 403/469/1 404/462/1 +f 777/465/59 778/984/59 779/985/59 +f 779/985/6 780/986/6 781/466/6 +f 781/466/6 782/987/6 783/988/6 +f 783/988/6 784/989/6 781/466/6 +f 784/989/6 785/467/6 781/466/6 +f 785/467/6 786/990/6 787/991/6 +f 787/991/6 788/992/6 785/467/6 +f 788/992/6 789/993/6 785/467/6 +f 789/993/6 790/994/6 791/995/6 +f 791/995/60 792/996/60 777/465/60 +f 777/465/6 779/985/6 781/466/6 +f 789/993/6 791/995/6 785/467/6 +f 791/995/6 777/465/6 785/467/6 +f 378/468/1 405/997/1 403/469/1 +f 396/472/3 402/998/3 401/470/3 +f 401/470/3 397/999/3 395/471/3 +f 413/473/5 414/1000/5 411/474/5 +f 384/456/3 413/473/3 412/475/3 +f 390/476/4 414/1001/4 413/477/4 +f 382/455/1 411/1002/1 414/478/1 +f 383/457/2 412/1003/2 411/479/2 +f 429/480/25 431/503/25 432/481/25 +f 432/481/1 424/508/1 433/483/1 +f 417/485/2 420/493/2 421/486/2 +f 418/487/1 421/486/1 422/488/1 +f 415/489/4 422/488/4 419/490/4 +f 416/492/3 419/1004/3 420/493/3 +f 426/496/1 430/482/1 428/497/1 +f 423/500/5 429/480/5 430/482/5 +f 419/499/3 427/1005/3 429/480/3 +f 422/488/6 428/511/6 427/504/6 +f 433/505/6 424/1006/6 425/506/6 +f 431/503/4 425/510/4 424/508/4 +f 427/502/3 434/1007/3 425/510/3 +f 420/493/26 423/500/26 426/496/26 +f 428/511/2 433/505/2 434/507/2 +f 437/512/5 438/518/5 436/513/5 +f 441/515/6 442/1008/6 439/516/6 +f 438/518/3 442/1008/3 441/515/3 +f 435/519/1 440/1009/1 439/520/1 +f 437/522/2 439/1010/2 442/523/2 +f 436/525/4 441/1011/4 440/526/4 +f 521/528/27 522/1012/27 510/529/27 +f 524/531/28 523/1013/28 511/532/28 +f 520/534/27 519/1014/27 507/535/27 +f 526/537/28 525/1015/28 513/538/28 +f 528/540/27 527/1016/27 515/541/27 +f 529/543/28 530/1017/28 518/544/28 +f 533/546/4 537/1018/4 535/547/4 +f 532/549/2 536/1019/2 538/550/2 +f 534/552/3 538/1020/3 537/553/3 +f 531/555/1 535/1021/1 536/556/1 +f 540/558/1 542/561/1 541/559/1 +f 542/561/2 546/563/2 545/562/2 +f 546/563/3 544/580/3 543/564/3 +f 544/565/4 540/558/4 539/560/4 +f 545/562/5 543/564/5 539/567/5 +f 542/561/6 548/589/6 550/569/6 +f 552/570/1 554/573/1 553/571/1 +f 554/573/2 558/575/2 557/574/2 +f 558/575/3 556/1022/3 555/576/3 +f 556/577/4 552/570/4 551/572/4 +f 546/563/6 550/581/6 549/579/6 +f 550/581/3 561/1023/3 562/582/3 +f 547/583/1 559/1024/1 560/584/1 +f 549/586/4 562/1025/4 559/587/4 +f 548/589/2 560/1026/2 561/590/2 +f 559/587/5 562/1025/5 555/578/5 +f 560/584/5 559/1024/5 551/572/5 +f 561/590/5 560/1026/5 553/571/5 +f 562/582/5 561/1023/5 557/574/5 +f 544/565/6 549/586/6 547/588/6 +f 540/558/6 547/583/6 548/585/6 +f 564/591/1 566/594/1 565/592/1 +f 566/594/2 570/596/2 569/595/2 +f 570/596/3 568/613/3 567/597/3 +f 568/598/4 564/591/4 563/593/4 +f 569/595/5 567/597/5 563/600/5 +f 566/594/6 572/622/6 574/602/6 +f 576/603/1 578/606/1 577/604/1 +f 578/606/2 582/608/2 581/607/2 +f 582/608/3 580/1027/3 579/609/3 +f 580/610/4 576/603/4 575/605/4 +f 570/596/6 574/614/6 573/612/6 +f 574/614/3 585/1028/3 586/615/3 +f 571/616/1 583/1029/1 584/617/1 +f 573/619/4 586/1030/4 583/620/4 +f 572/622/2 584/1031/2 585/623/2 +f 583/620/5 586/1030/5 579/611/5 +f 584/617/5 583/1029/5 575/605/5 +f 585/623/5 584/1031/5 577/604/5 +f 586/615/5 585/1028/5 581/607/5 +f 568/598/6 573/619/6 571/621/6 +f 564/591/6 571/616/6 572/618/6 +f 588/624/1 590/627/1 589/625/1 +f 590/627/2 594/629/2 593/628/2 +f 594/629/3 592/646/3 591/630/3 +f 592/631/4 588/624/4 587/626/4 +f 593/628/5 591/630/5 587/633/5 +f 590/627/6 596/655/6 598/635/6 +f 600/636/1 602/639/1 601/637/1 +f 602/639/2 606/641/2 605/640/2 +f 606/641/3 604/1032/3 603/642/3 +f 604/643/4 600/636/4 599/638/4 +f 594/629/6 598/647/6 597/645/6 +f 598/647/3 609/1033/3 610/648/3 +f 595/649/1 607/1034/1 608/650/1 +f 597/652/4 610/1035/4 607/653/4 +f 596/655/2 608/1036/2 609/656/2 +f 607/653/5 610/1035/5 603/644/5 +f 608/650/5 607/1034/5 599/638/5 +f 609/656/5 608/1036/5 601/637/5 +f 610/648/5 609/1033/5 605/640/5 +f 592/631/6 597/652/6 595/654/6 +f 588/624/6 595/649/6 596/651/6 +f 629/657/6 634/716/6 622/658/6 +f 635/660/6 226/732/6 225/661/6 +f 636/663/6 213/709/6 212/664/6 +f 637/666/5 616/704/5 613/667/5 +f 658/669/6 618/703/6 619/670/6 +f 638/672/5 215/710/5 218/673/5 +f 657/675/6 224/700/6 223/676/6 +f 639/678/5 231/699/5 232/679/5 +f 656/681/6 217/711/6 216/682/6 +f 640/684/5 620/702/5 617/685/5 +f 655/687/6 614/705/6 615/688/6 +f 641/690/5 211/708/5 214/691/5 +f 642/693/5 229/731/5 230/694/5 +f 643/696/5 228/701/5 621/697/5 +f 231/699/3 223/676/3 224/700/3 +f 228/701/3 227/659/3 622/658/3 +f 620/702/3 619/670/3 618/703/3 +f 616/704/3 615/688/3 614/705/3 +f 612/706/3 611/253/3 209/707/3 +f 211/708/3 212/664/3 213/709/3 +f 215/710/3 216/682/3 217/711/3 +f 219/712/3 220/256/3 221/713/3 +f 657/675/1 625/677/1 639/714/1 +f 634/716/1 629/657/1 643/717/1 +f 658/669/1 626/671/1 640/719/1 +f 655/687/1 623/689/1 637/721/1 +f 633/252/1 630/254/1 644/723/1 +f 636/663/1 627/665/1 641/725/1 +f 656/681/1 624/683/1 638/727/1 +f 632/255/1 631/257/1 645/729/1 +f 229/731/3 225/661/3 226/732/3 +f 635/660/1 628/662/1 642/733/1 +f 721/735/6 659/811/6 699/736/6 +f 720/738/6 671/817/6 670/739/6 +f 733/741/5 669/816/5 672/742/5 +f 732/744/5 700/810/5 660/745/5 +f 685/747/4 686/1037/4 684/748/4 +f 688/750/2 690/1038/2 689/751/2 +f 684/748/5 688/750/5 687/752/5 +f 696/753/6 698/759/6 697/754/6 +f 692/756/2 696/753/2 695/755/2 +f 693/758/4 697/754/4 698/759/4 +f 717/761/6 722/820/6 710/762/6 +f 723/764/6 676/836/6 675/765/6 +f 724/767/6 663/813/6 662/768/6 +f 725/770/5 704/808/5 701/771/5 +f 746/773/6 706/807/6 707/774/6 +f 726/776/5 665/814/5 668/777/5 +f 745/779/6 674/804/6 673/780/6 +f 727/782/5 681/803/5 682/783/5 +f 744/785/6 667/815/6 666/786/6 +f 728/788/5 708/806/5 705/789/5 +f 743/791/6 702/809/6 703/792/6 +f 729/794/5 661/812/5 664/795/5 +f 730/797/5 679/835/5 680/798/5 +f 731/800/5 678/805/5 709/801/5 +f 681/803/2 673/780/2 674/804/2 +f 678/805/2 677/763/2 710/762/2 +f 708/806/2 707/774/2 706/807/2 +f 704/808/2 703/792/2 702/809/2 +f 700/810/2 699/736/2 659/811/2 +f 661/812/2 662/768/2 663/813/2 +f 665/814/2 666/786/2 667/815/2 +f 669/816/2 670/739/2 671/817/2 +f 745/779/4 713/781/4 727/818/4 +f 722/820/4 717/761/4 731/821/4 +f 746/773/4 714/775/4 728/823/4 +f 743/791/4 711/793/4 725/825/4 +f 721/735/4 718/737/4 732/827/4 +f 724/767/4 715/769/4 729/829/4 +f 744/785/4 712/787/4 726/831/4 +f 720/738/4 719/740/4 733/833/4 +f 679/835/2 675/765/2 676/836/2 +f 723/764/4 716/766/4 730/837/4 +f 804/839/29 803/1039/29 832/840/29 +f 809/842/30 808/1040/30 814/843/30 +f 811/845/31 812/1041/31 818/846/31 +f 826/848/32 829/1042/32 800/849/32 +f 822/851/33 821/1043/33 796/852/33 +f 815/854/34 801/1044/34 802/855/34 +f 830/857/35 798/1045/35 797/858/35 +f 827/860/36 793/1046/36 794/861/36 +f 806/863/37 819/1047/37 820/864/37 +f 810/866/38 823/1048/38 824/867/38 +f 844/869/39 843/1049/39 872/870/39 +f 849/872/40 848/1050/40 854/873/40 +f 851/875/41 852/1051/41 858/876/41 +f 866/878/42 869/1052/42 840/879/42 +f 862/881/43 861/1053/43 836/882/43 +f 855/884/44 841/1054/44 842/885/44 +f 870/887/45 838/1055/45 837/888/45 +f 867/890/46 833/1056/46 834/891/46 +f 846/893/47 859/1057/47 860/894/47 +f 850/896/48 863/1058/48 864/897/48 +f 884/899/49 883/1059/49 912/900/49 +f 889/902/50 888/1060/50 894/903/50 +f 891/905/51 892/1061/51 898/906/51 +f 906/908/52 909/1062/52 880/909/52 +f 902/911/53 901/1063/53 876/912/53 +f 895/914/54 881/1064/54 882/915/54 +f 910/917/55 878/1065/55 877/918/55 +f 907/920/56 873/1066/56 874/921/56 +f 886/923/57 899/1067/57 900/924/57 +f 890/926/58 903/1068/58 904/927/58 +s 1 +f 449/1069/27 464/1070/61 448/1071/61 +f 457/1072/62 472/1073/63 456/1074/63 +f 450/1075/64 465/1076/27 449/1069/27 +f 458/1077/65 473/1078/62 457/1072/62 +f 451/1079/4 466/1080/64 450/1075/64 +f 444/1081/66 459/1082/2 443/1083/2 +f 443/1083/2 474/1084/65 458/1077/65 +f 452/1085/67 467/1086/4 451/1079/4 +f 445/1087/28 460/1088/66 444/1081/66 +f 453/1089/68 468/1090/67 452/1085/67 +f 446/1091/69 461/1092/28 445/1087/28 +f 454/1093/70 469/1094/68 453/1089/68 +f 447/1095/1 462/1096/69 446/1091/69 +f 455/1097/3 470/1098/70 454/1093/70 +f 448/1071/61 463/1099/1 447/1100/1 +f 456/1074/63 471/1101/3 455/1097/3 +f 485/1102/68 500/1103/67 484/1104/67 +f 478/1105/69 493/1106/28 477/1107/28 +f 486/1108/70 501/1109/68 485/1102/68 +f 479/1110/1 494/1111/69 478/1105/69 +f 487/1112/3 502/1113/70 486/1108/70 +f 480/1114/61 495/1115/1 479/1116/1 +f 488/1117/63 503/1118/3 487/1112/3 +f 481/1119/27 496/1120/61 480/1114/61 +f 489/1121/62 504/1122/63 488/1117/63 +f 482/1123/64 497/1124/27 481/1119/27 +f 490/1125/65 505/1126/62 489/1121/62 +f 483/1127/4 498/1128/64 482/1123/64 +f 476/1129/66 491/1130/2 475/1131/2 +f 475/1131/2 506/1132/65 490/1125/65 +f 484/1104/67 499/1133/4 483/1127/4 +f 477/1107/28 492/1134/66 476/1129/66 +f 748/1135/2 749/1136/71 747/1137/2 +f 750/1138/71 751/1139/72 749/1136/71 +f 754/1140/73 755/1141/74 753/1142/73 +f 756/1143/74 747/1137/2 755/1141/74 +f 768/1144/2 772/1145/74 771/1146/74 +f 761/1147/74 764/1148/73 760/1149/73 +f 759/1150/72 766/1151/71 757/1152/71 +f 769/1153/72 776/1154/71 767/1155/71 +f 771/1146/74 774/1156/73 770/1157/73 +f 758/1158/2 762/1159/74 761/1147/74 +f 757/1152/71 763/1160/2 758/1158/2 +f 767/1155/71 773/1161/2 768/1144/2 +f 449/1069/27 465/1076/27 464/1070/61 +f 457/1072/62 473/1078/62 472/1073/63 +f 450/1075/64 466/1080/64 465/1076/27 +f 458/1077/65 474/1084/65 473/1078/62 +f 451/1079/4 467/1086/4 466/1080/64 +f 444/1081/66 460/1088/66 459/1082/2 +f 443/1083/2 459/1082/2 474/1084/65 +f 452/1085/67 468/1090/67 467/1086/4 +f 445/1087/28 461/1092/28 460/1088/66 +f 453/1089/68 469/1094/68 468/1090/67 +f 446/1091/69 462/1096/69 461/1092/28 +f 454/1093/70 470/1098/70 469/1094/68 +f 447/1095/1 463/1162/1 462/1096/69 +f 455/1097/3 471/1101/3 470/1098/70 +f 448/1071/61 464/1070/61 463/1099/1 +f 456/1074/63 472/1073/63 471/1101/3 +f 485/1102/68 501/1109/68 500/1103/67 +f 478/1105/69 494/1111/69 493/1106/28 +f 486/1108/70 502/1113/70 501/1109/68 +f 479/1110/1 495/1163/1 494/1111/69 +f 487/1112/3 503/1118/3 502/1113/70 +f 480/1114/61 496/1120/61 495/1115/1 +f 488/1117/63 504/1122/63 503/1118/3 +f 481/1119/27 497/1124/27 496/1120/61 +f 489/1121/62 505/1126/62 504/1122/63 +f 482/1123/64 498/1128/64 497/1124/27 +f 490/1125/65 506/1132/65 505/1126/62 +f 483/1127/4 499/1133/4 498/1128/64 +f 476/1129/66 492/1134/66 491/1130/2 +f 475/1131/2 491/1130/2 506/1132/65 +f 484/1104/67 500/1103/67 499/1133/4 +f 477/1107/28 493/1106/28 492/1134/66 +f 748/1135/2 750/1138/71 749/1136/71 +f 750/1138/71 752/1164/72 751/1139/72 +f 754/1140/73 756/1143/74 755/1141/74 +f 756/1143/74 748/1135/2 747/1137/2 +f 768/1144/2 773/1161/2 772/1145/74 +f 761/1147/74 762/1159/74 764/1148/73 +f 759/1150/72 765/1165/72 766/1151/71 +f 769/1153/72 775/1166/72 776/1154/71 +f 771/1146/74 772/1145/74 774/1156/73 +f 758/1158/2 763/1160/2 762/1159/74 +f 757/1152/71 766/1151/71 763/1160/2 +f 767/1155/71 776/1154/71 773/1161/2 +l 162 164 +l 163 161 diff --git a/src/main/resources/assets/hbm/textures/blocks/dirt_oily.png b/src/main/resources/assets/hbm/textures/blocks/dirt_oily.png index c5a09ff36..e13b9f7ed 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/dirt_oily.png and b/src/main/resources/assets/hbm/textures/blocks/dirt_oily.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/dirt_oily_alt.png b/src/main/resources/assets/hbm/textures/blocks/dirt_oily_alt.png new file mode 100644 index 000000000..c5a09ff36 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/dirt_oily_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_well.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_well.png index 50d496f98..6ceaf8805 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_well.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_well.png differ diff --git a/src/main/resources/assets/hbm/textures/items/canister_fracksol.png b/src/main/resources/assets/hbm/textures/items/canister_fracksol.png new file mode 100644 index 000000000..8111eab89 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/canister_fracksol.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_cf_test1.png b/src/main/resources/assets/hbm/textures/items/ingot_cf_test1.png new file mode 100644 index 000000000..b76ed22db Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_cf_test1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_cf_test2.png b/src/main/resources/assets/hbm/textures/items/ingot_cf_test2.png new file mode 100644 index 000000000..499accfa4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_cf_test2.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png b/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png index 103e6ce95..2174e46f1 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png and b/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/pumpjack.png b/src/main/resources/assets/hbm/textures/models/machines/pumpjack.png index cf05c420d..c7d9b02fa 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/pumpjack.png and b/src/main/resources/assets/hbm/textures/models/machines/pumpjack.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 75d61042e..9b36a7508 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4000", + "version":"1.0.27_X4011", "mcversion": "1.7.10", "url": "", "updateUrl": "",