From 52f55a8df5ab6511ab430138c956669ff199048e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 3 Oct 2021 22:26:30 +0200 Subject: [PATCH] fracking --- src/main/java/com/hbm/blocks/ModBlocks.java | 25 +- .../hbm/blocks/generic/BlockBedrockOre.java | 2 +- .../com/hbm/blocks/generic/BlockCluster.java | 2 +- .../blocks/machine/DummyBlockPumpjack.java | 106 - .../hbm/blocks/machine/DummyBlockWell.java | 105 - .../blocks/machine/MachineFrackingTower.java | 56 +- .../hbm/blocks/machine/MachinePumpjack.java | 343 +- .../java/com/hbm/crafting/MineralRecipes.java | 3 + .../java/com/hbm/crafting/RodRecipes.java | 3 + .../entity/projectile/EntityWaterSplash.java | 24 +- .../java/com/hbm/extprop/HbmLivingProps.java | 4 +- .../java/com/hbm/handler/FuelHandler.java | 4 +- src/main/java/com/hbm/handler/GUIHandler.java | 25 +- .../java/com/hbm/hazard/HazardRegistry.java | 23 +- .../hbm/inventory/FluidContainerRegistry.java | 1 + .../com/hbm/inventory/OreDictManager.java | 16 +- .../container/ContainerMachineOilWell.java | 16 +- .../container/ContainerMachinePumpjack.java | 133 - .../hbm/inventory/gui/GUIMachineOilWell.java | 15 +- .../hbm/inventory/gui/GUIMachinePumpjack.java | 76 - .../hbm/inventory/recipes/SILEXRecipes.java | 40 + src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/armor/ItemModGasmask.java | 12 + .../hbm/items/machine/ItemMachineUpgrade.java | 10 + src/main/java/com/hbm/lib/HbmWorldGen.java | 22 +- .../java/com/hbm/lib/ModDamageSource.java | 1 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/CraftingManager.java | 2 + .../java/com/hbm/main/ModEventHandler.java | 10 + .../java/com/hbm/main/ResourceManager.java | 2 + .../java/com/hbm/packet/PacketDispatcher.java | 2 - .../java/com/hbm/packet/TEPumpjackPacket.java | 69 - .../tileentity/RenderFrackingTower.java | 28 + .../hbm/render/tileentity/RenderPumpjack.java | 22 +- .../java/com/hbm/tileentity/TileMappings.java | 17 +- .../oil/TileEntityMachineFrackingTower.java | 122 +- .../machine/oil/TileEntityMachineOilWell.java | 34 + .../oil/TileEntityMachinePumpjack.java | 625 +--- .../machine/oil/TileEntityOilDrillBase.java | 110 +- src/main/resources/assets/hbm/lang/de_DE.lang | 7 + src/main/resources/assets/hbm/lang/en_US.lang | 7 + .../hbm/models/machines/fracking_tower.obj | 3073 +++++++++++++++++ .../assets/hbm/textures/blocks/dirt_oily.png | Bin 846 -> 924 bytes .../hbm/textures/blocks/dirt_oily_alt.png | Bin 0 -> 846 bytes .../hbm/textures/gui/machine/gui_well.png | Bin 3007 -> 3350 bytes .../hbm/textures/items/canister_fracksol.png | Bin 0 -> 491 bytes .../hbm/textures/items/ingot_cf_test1.png | Bin 0 -> 491 bytes .../hbm/textures/items/ingot_cf_test2.png | Bin 0 -> 386 bytes .../models/machines/fracking_tower.png | Bin 6592 -> 6667 bytes .../hbm/textures/models/machines/pumpjack.png | Bin 2570 -> 5134 bytes src/main/resources/mcmod.info | 2 +- 52 files changed, 3815 insertions(+), 1391 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockPumpjack.java delete mode 100644 src/main/java/com/hbm/blocks/machine/DummyBlockWell.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachinePumpjack.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachinePumpjack.java delete mode 100644 src/main/java/com/hbm/packet/TEPumpjackPacket.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderFrackingTower.java create mode 100644 src/main/resources/assets/hbm/models/machines/fracking_tower.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/dirt_oily_alt.png create mode 100644 src/main/resources/assets/hbm/textures/items/canister_fracksol.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_cf_test1.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_cf_test2.png 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 c5a09ff36207b8e29cb1ed106f52380d1d649c0a..e13b9f7ed646b0d4def54d2f9459876cecf9f137 100644 GIT binary patch delta 885 zcmV-*1B(342Al_wG=Eb`L_t(IjV02}Pn&fB!13?%d!Eu4`a%n(r99BV5OClO5HN;J znA^m7a9PN*9n^T#WQX0n?&Kfg#q$mxG%?XEG0bhou)t=3A)`>BEp6%3_x5R@K5ZWl ze*T7!^wam>Sn;$*r_&{!D*5gS`Bk!X@+dELNbx$P3#ou z>(3UgY`)IaXqe}_hg`iJ;W(wy=~ygGT_RVmbC$^w3iwciezKV~04{$YnL-U^_HvXS zHNdq?f>Ttujxrf)O_OLSK(*1rvMfZW+vW82GhQ8@ zvHbo78!z`+o|^>Vx6K{YP=Ht>%iHq{O2UsKDHN*>cTX#5d6Nm0~T1G2-V^l zAG|xx>cTVt8(aSp3`CiZhWX)_4Z3-YVx`8E8bSJMZOJ+>mKpRq0ST|$Lnz=StCiV1 zNpX8+p2vT@WO%?wyVJ%ny8x^$%>p2O_r;o}>jv?(h8hasuqianHnCKOif-U_IdC~` zNRmXgZhz1=P39-ZI8AG4l^Tj+m_&yM*g8tkzR1&THmT?avJm)s9SB*brW*is+Fc&p zy@f0UTL&l1jH^gDmnJQ@(@xXuGCbhLG+QLKDq)|CYSScnQDSB+%$=1*;%SXo;(}zZ zNMzc>VK7UUy{S%AKdTM0z75?6dVRSpFAwTs- zi+ZDlJQ4~#sv9l*ZYQ~X8Bed1cSeR;zrIMJq?0~9LJ@+UcmknFIPE>?4TEsN&Byas z5T@BCJT&-hS7GAdt2@uQg{oi(6 z4G~Xkm~_ZC+N^&5C86*T<+{$3t$p4k&MB0tcw7$rJ~#P74chP@rk{kAZU~SX00000 LNkvXXu0mjfkKC{n delta 807 zcmV+?1K9kW2hIkNG=Bw2L_t(Ija8CMZyRM4hM$>n5?{uXaU3(XlcBB+p_GyiBtZ&I zB}0h_>?+i*K#ExM4-hQ6VTD-n1K6-fs8Xv4(FS?fR3V0dT7+XKR_bx<_4K)8u3UFRguQwe`Jg7{aZxZ{CGt~0}}xJ zvR_~^8ROu%%<3z~_?qp#15PJzR{`*cbnHqC`JF_Brtvm*$7TJp$#OhQRGmD7Vj4OC z`*sbxH(+WyNPn~IAcQ~$2$ptPxiCx0N|4UvxOU|N5A)CY?#?3s(wQ8YrwwXy2#@5U z+U%nAI$ViqcnYN&dAo{f=wyo(Nsew)pZGCuJq@ zoHG8jlLY}H7^7J|;`$r&q^tzM|Hj`0;M<=cqN#qWjei!Vp(A~H^IfrXc*0AX50F^9 z7(Me+)6n_h!C%bHPU8+;`hyVwH&$MRdrk$NE*DBQOhacUU#8LNqvcPChJy$Mot}$3 z7;tqVN;;DxelGOFfobUcn0|tGT&LITvGwN>iYzl7@FFV;txg|+p*!NMTUWb&|0#Uu;-p3(p7!yi{9Vcx|0~_a7kL{NOE7 zYj%-knMnnl!GMtJ=eS%)4+c1Iy~iaE#$JB?`xu3i$YULQkOv7c24 zhk|@$#YskI&NT4R;Rz!#LY5U=cgS2s-c^hkNvSIv6QnudUc-X zywcV;pNed;0zjcu10ZE3$QCQy%j9Ww`UnB7-hhziXW5(~WhL0&J0N8xP|UD;ds_99 z&g9Tl9{^kX1v2$1o*orYB>4K)8u3UFRguQwe`Jg7{aZxZ{CGt~0}}xJvR_~^8ROu% z%<3z~_?qp#15PJzR{`*cbnHqC`JF_Brtvm*$7TJp$#OhQRGmD7Vj4OC`*sbxH(+Wy zNVDr8gg^!emUdaWFiXlxkj~_|cI5&O^UwM2&LaTQnH-s?4Qg@-kL01+?4tBKT#0FT z3Z)u(yNYS(WQ!F_J(s(`=V-S3B*OvHnH)`N636M%E+4YC`0^MhWhL;OGXAua1py)$ zqgg%T`Wy44tOUUS#@__s+n*nzseY=B7N(&ieR=a;v2%FBOPUXmSi2ZK^HS5$`QgD| z%*{^Y4qf_#5db$gTvzM-K)#Z@tGQ4#r-7{ri}CBSgFF(C#`&AFf^!tzI8PSFxW}2#11vWW`BFXU;V6 z(cuXrF+!FVTzAM^MB}q-uOq#`ydZSVN2S(cHEA$V{7eixQPm9IjS^xk507*qoM6N<$f??u^asU7T literal 0 HcmV?d00001 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 50d496f98409196b7c990e8d9efac2e13d5c4efd..6ceaf8805023f90b9236344d4efdd71c39fecad3 100644 GIT binary patch literal 3350 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 OY|q=Dt32!T?cV{m;Ws1z 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 0000000000000000000000000000000000000000..8111eab89d6322eaeab9c900054bbf19436625d0 GIT binary patch literal 491 zcmV=0VyFV9{>@A z@Bthmg3JLa0Y_k+4&lIiEAOr&0^2j)1jd&4%yOc$>7FW8b(dkMhQpx_1_Q?9F?C%t z8jTDWl>J+?u4{^-xCje?+kH$Xlm7w(G$amRJlFYr&TKYARq1xSOs7+3N1s})G!(2> zD?$iZYgsOr#287_6uo~}0m=`b_lO!hFvj4VLqzEHdgOV|x7Tk?nx$9C;u~+~QLI7ZLa>~_%17K~(S_|4dM8ksjeyif;@hMLZZ*b48I9jZ~ zi3sPbp+H1%&JjZ3(amcls&qOX9wZU73GH(E?;YfMPFa@Qo~mxc<(%8Q!hXg#LD_iS h07Srh`0}-Z`3)5Z!{ThFwfO)5002ovPDHLkV1mZ_)a(EN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b76ed22dbc793ec6996842b913bf8e356a530636 GIT binary patch literal 491 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 literal 6592 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 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 cf05c420d5c161e03c16ed63d94b5b817aadcd23..c7d9b02faed506352c679289344eb5e19d311be8 100644 GIT binary patch delta 5130 zcmV+l6!q(h6pkp6Gk+7sNklUx*w>e#gJvGrKG8u6CrAg)JN5O$g^aT9HuX4de1TGBRi$QR)4ut%WfDnhl;0Hr;zQhExx`bfI z=ddytNZuT+E!oIBJ2Shpe>6K?d6=%A>YD25?&<13GyVI(GJiAG)m1e+{q0}gax(^HckN7_S`SLAO@0H$G}V1MQpiD?+H z7(>TSFW6}STP^PL3W|zZ+Ht^4ekdMQUxzZHn%IAo6d$ms`60tn7 zU0(SCU|*;YaNo34aPbl8FmvF5$C1`hZE}OC^+NdgPJc16{$2%oYmH`>jp~vxNe- zIvo)4;B9@nZ0|jct?r_nV4-I*7-Q%N7l(M!GU2W*cFDNKDG2$*u9gUstPblYI`8>s zv0lS40DqxO-sN-Zm&)YAC`fHqwU5`s^YQw{8-^);e_2?n?kUg{5&+jL2`fIlEKqBA zH`aQKKvzinwt)BrXrk9`Vp2Nb?uJ?D-I-PSIv&TvbRYR~K;4~_FK!OEfMT2FG*`D& z@x4utvgEe&|ApmoBOw9h1IJQ17lD0281@CIN`D9XtrG_1vpkLm8t9P9lgqS(G%r!f zZI;u-vQ*#O@F+`eyIePie5QO+1n5VPn;=8#NwtNDAJabz5rrW0Pc%n0UXZ8=LNg>P zg3ydIqCyohA*cIAABgxxOnB8Zs0_cdA-wuUa6mc_=pQfUhP%zDI1O&Xr(3f8<)2@rzd4TTxk*XZAjDj#BE2s0% zy#0n@V8S%}L}f7sQ>aTk5BC4UG>pFQFQ2Qb|6!+tw&gWDM~pj8M8%|O;=tr24o*&@ zXm)#r48VS;gN|jPSSUE@`<8`Hr-MSF0Dsdk(6KBS_C;nGMqg-8dw(AmW0)uwVF1`` zcVnt1CnlV*B)~nf%Hie7b@DkRi!mp?Xqwo!EbI&OL8c%=URH-OSeE4+6Whoqe@(-{ zM6rmDWuaqP-4HI*>`e|c2GcZQF^2t42Sw9_X`0w;x4V<(B&yufvs9*u3BmI4?tcuw zV;e%cX&5jH1sJxVEb$I+U-TTyo>Vpku}u`a)tZthMDfVw$#rs}n}z{qw-K;~V~gLk zzn5iM*cbB)7rj|1bSG==HWmv7>~}g&nq!SE3++w^MLQZ|-?F-s#iog(Ew+v=Xp01u zYn+IRwq;?v-Nx?zzOp;VeFfRK5`XW={34XQXZyA#n`pQDx^{!QZvgtrle?sH_fyrC zRMp|M$+kACHWb=zWtSI#>wNy*8DnVMf+tz!7spcZivb8WARwnX=XE+tF#^Ct^!r^* zI7p??_?6+vi* z_NYMrcNX7!wbLuVST^~p`GoeUNMMf&B45xR74WfCn)aw5@&oNrk~kp_7{dsHO2M+K1&Xpai1tT^_lAo2x8R1kz_Xr787G((~y2+j13{te-HFkG*wf=?0s||!+Xpai19L^~0QBf|JSx^hZEv6TKb35HRA|eR1N5zQmQL(tV z$Ugq~v+&;hQ4?RHMB>?nCww;_Uu_E4_xqp2_ji&j|xTG<@|Cx;c>qBDpIf4wGUFL{zM>Q{T3%zSJSF`>>x`Og6Zk$*vj7C-j1zoB3VdOA()w&iKX0D ztEIKPix)4lQmKRk_S4yA3&<_*?(QxcjRtPqxIw)YjgY895QnIA3yMe|5>*bkc<~}F zNRB|*xJMFI2u9ValuD(vn=lmBYL(5+&7s+BVs5TGInCcUn}1E;ft^-Lb9J$Z>b2Ki zi{;LE>(;GQ`~IUUD(+k5iS50I{+Voai!U}yb?DF`t>tZQZfY%W7-)oUJP9MfAjBrB zI7BeaJdvV|p{?DZb2YVXU>Rx7V~rz!dh=fm0Qeit<;Ef^v6~jPD=3y#tyWo-xuWgu zZB(mOru*XLVte8i4F5z6ie%Ct+y?^$(APeSZXi;6dbcu-;NPN%z zs6&SixvW@NbXqu_!Ww5maUOsCaR9)*d-t5kcOn>xSgI@xhXZU$!Oh(N6)KgFO9h;w@kJ7|g z8G4c8^?&Qvja#>F8GLl^(4j+)MdIo5fJGLNMZm=oWJo*N3Q>m>?2*d za>e!gz4_*w1OK0V4?(dGk(s|$fA{ZJ{?V|{A5?s3ezWpJS391}_;^qtQN_`>CX%Dk zXn&;Lgj_LDROil}V_6VXrBY#hh?fY?l`B`6N>F@du%E>mHRO=Ev{p3)_NmgksIwsI zap2KM9|Zt>^UXIYw`BYYHBb?kZ{vlZFGmnrBo|>y1X-vgAyJJO|NhcTIDY&%jvqe` z0GR&CPw>f^Gwk19e9@I2gy)}szON^6|9}2{+`oSxfB3-%0D$cu|Jap&`WL?d0Q}2m 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