the allmighty flare stack

This commit is contained in:
Bob 2022-05-15 00:10:01 +02:00
parent 47eb08dcd7
commit 8779cb3032
37 changed files with 16085 additions and 3546 deletions

View File

@ -5,7 +5,7 @@ import java.util.Random;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade;
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityMachineDiesel;

View File

@ -1,176 +1,63 @@
package com.hbm.blocks.machine;
import java.util.Random;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks;
import com.hbm.handler.MultiblockHandler;
import com.hbm.interfaces.IMultiblock;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineGasFlare extends BlockContainer implements IMultiblock {
public class MachineGasFlare extends BlockDummyable implements ITooltipProvider {
private final Random field_149933_a = new Random();
private Random rand;
private static boolean keepInventory;
public MachineGasFlare(Material p_i45386_1_) {
super(p_i45386_1_);
rand = new Random();
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
return Item.getItemFromBlock(ModBlocks.machine_flare);
}
@Override
public int getRenderType() {
return -1;
public MachineGasFlare(Material mat) {
super(mat);
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityMachineGasFlare();
if(meta >= 6) return new TileEntityProxyCombo(false, true, true);
return null;
}
@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())
{
TileEntityMachineGasFlare entity = (TileEntityMachineGasFlare) world.getTileEntity(x, y, z);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_flare, world, x, y, z);
}
return true;
} else {
return false;
}
return this.standardOpenBehavior(world, x, y, z, player, ModBlocks.guiID_machine_flare);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineGasFlare();
public int[] getDimensions() {
return new int[] {11, 0, 1, 1, 1, 1};
}
@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)
{
TileEntityMachineGasFlare tileentityfurnace = (TileEntityMachineGasFlare)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) {
public int getOffset() {
return 1;
}
if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.flareDimension)) {
MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.flareDimension, ModBlocks.dummy_block_flare);
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o);
this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o);
this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1);
this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1);
}
DummyBlockFlare.safeBreak = true;
world.setBlock(x, y, z + 1, ModBlocks.dummy_port_flare);
TileEntity te = world.getTileEntity(x, y, z + 1);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x, y, z - 1, ModBlocks.dummy_port_flare);
TileEntity te2 = world.getTileEntity(x, y, z - 1);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 1, y, z, ModBlocks.dummy_port_flare);
TileEntity te3 = world.getTileEntity(x + 1, y, z);
if(te3 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te3;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 1, y, z, ModBlocks.dummy_port_flare);
TileEntity te4 = world.getTileEntity(x - 1, y, z);
if(te4 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te4;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
DummyBlockFlare.safeBreak = false;
} else
world.func_147480_a(x, y, z, true);
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:");
list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: 50%");
}
}

View File

@ -5,7 +5,7 @@ import java.util.Random;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade;
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine;

View File

@ -7,7 +7,7 @@ import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks;
import com.hbm.handler.MultiblockHandler;
import com.hbm.interfaces.IMultiblock;
import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade;
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityDummy;

View File

@ -35,7 +35,7 @@ public class EntityGasFlameFX extends EntityModFX
this.smokeParticleScale = this.particleScale;
//this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D));
//this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_);
this.noClip = false;
this.noClip = true;
}
/**
@ -71,9 +71,7 @@ public class EntityGasFlameFX extends EntityModFX
this.motionZ *= 0.699999988079071D;
}
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.moveEntity(motionX, motionY, motionZ);
}
@Override

View File

@ -1,8 +1,10 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput;
import com.hbm.items.machine.IItemFluidIdentifier;
import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare;
import api.hbm.energy.IBatteryItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
@ -18,18 +20,25 @@ public class ContainerMachineGasFlare extends Container {
testNuke = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 44, 53));
this.addSlotToContainer(new Slot(tedf, 1, 134, 17));
this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 134, 53));
//Battery
this.addSlotToContainer(new Slot(tedf, 0, 143, 71));
//Fluid in
this.addSlotToContainer(new Slot(tedf, 1, 17, 17));
//Fluid out
this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 17, 53));
//Fluid ID
this.addSlotToContainer(new Slot(tedf, 3, 35, 71));
int offset = 37;
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));
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + offset));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + offset));
}
}
@ -47,12 +56,25 @@ public class ContainerMachineGasFlare extends Container {
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(par2 <= 1) {
if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
if(par2 <= 3) {
if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) {
return null;
}
} else if(!this.mergeItemStack(var5, 0, 2, false)) {
return null;
} else {
if(var3.getItem() instanceof IItemFluidIdentifier) {
if(!this.mergeItemStack(var5, 3, 4, true)) {
return null;
}
} else if(var3.getItem() instanceof IBatteryItem) {
if(!this.mergeItemStack(var5, 0, 1, true)) {
return null;
}
} else {
if(!this.mergeItemStack(var5, 1, 2, true)) {
return null;
}
}
}
if(var5.stackSize == 0) {

View File

@ -173,9 +173,22 @@ public class FluidType {
if(traits.contains(FluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank");
if(traits.contains(FluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");
info.add("");
info.add(EnumChatFormatting.RED + "[DEBUG]");
for(FluidTrait trait : traits) {
info.add(EnumChatFormatting.RED + "-" + trait.name());
}
}
/**
* Metadata for describing how the fluid acts, like being corrosive, not having fluid IDs or being only stored in certain containers.
*/
public static enum FluidTrait {
LIQUID,
GASEOUS,
PETROCHEMICAL,
AMAT,
CORROSIVE,
CORROSIVE_2,

View File

@ -6,7 +6,8 @@ import java.util.List;
import com.hbm.inventory.fluid.FluidType.ExtContainer;
import com.hbm.inventory.fluid.FluidType.FluidTrait;
import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade;
import com.hbm.inventory.fluid.types.*;
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
import com.hbm.render.util.EnumSymbol;
public class Fluids {
@ -112,83 +113,83 @@ public class Fluids {
NONE = new FluidType( "NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE);
WATER = new FluidType( "WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE);
STEAM = new FluidType( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D);
HOTSTEAM = new FluidType( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D);
SUPERHOTSTEAM = new FluidType( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D);
ULTRAHOTSTEAM = new FluidType( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D);
STEAM = new Gas( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D);
HOTSTEAM = new Gas( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D);
SUPERHOTSTEAM = new Gas( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D);
ULTRAHOTSTEAM = new Gas( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D);
COOLANT = new FluidType( "COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).setHeatCap(0.25D);
LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200);
DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER);
HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350);
HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER);
BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER);
SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER);
HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth
RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER);
PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER);
LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER);
NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER);
DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER);
LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER);
KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER);
GAS = new FluidTypeFlammable( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE);
PETROLEUM = new FluidTypeFlammable( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE);
LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000);
BIOGAS = new FluidTypeFlammable( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE);
BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER);
NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER);
UF6 = new FluidType( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
PUF6 = new FluidType( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
DEUTERIUM = new CombustibleGas( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
TRITIUM = new CombustibleGas( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
OIL = new Oil( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER);
HOTOIL = new Oil( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350);
HEAVYOIL = new Oil( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER);
BITUMEN = new Petrochemical( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER);
SMEAR = new Oil( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER);
HEATINGOIL = new Fuel( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER);
RECLAIMED = new Fuel( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER);
PETROIL = new Fuel( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER);
LUBRICANT = new Petrochemical( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER);
NAPHTHA = new Oil( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER);
DIESEL = new Fuel( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER);
LIGHTOIL = new Oil( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER);
KEROSENE = new Fuel( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER);
GAS = new FlammableOilGas( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(10_000);
PETROLEUM = new FlammableOilGas( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000);
LPG = new Fuel( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000);
BIOGAS = new FlammableOilGas( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE);
BIOFUEL = new Fuel( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER);
NITAN = new Fuel( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER);
UF6 = new RadioactiveGas( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
PUF6 = new RadioactiveGas( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE);
SCHRABIDIC = new FluidType( "SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2);
AMAT = new FluidType( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT);
ASCHRAB = new FluidType( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT);
AMAT = new Antimatter( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER);
ASCHRAB = new Antimatter( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER);
ACID = new FluidType( "ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(FluidTrait.CORROSIVE);
WATZ = new FluidType( "WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2);
CRYOGEL = new FluidType( "CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170);
HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000);
HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000).addTraits(FluidTrait.LIQUID);
OXYGEN = new FluidType( "OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC);
XENON = new FluidType( "XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT);
BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE);
MERCURY = new FluidType( "MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE);
PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE);
WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER);
WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER);
GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER);
COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000);
SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D);
FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER);
WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER);
WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER);
GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER);
COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000);
SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D);
FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER);
PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
PLASMA_HD = new FluidType( "PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
PLASMA_HT = new FluidType( "PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
PLASMA_XM = new FluidType( "PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
PLASMA_BF = new FluidType( "PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
CARBONDIOXIDE = new FluidType( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT);
CARBONDIOXIDE = new Gas( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT);
PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
HELIUM3 = new FluidType( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT);
HELIUM3 = new Gas( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT);
DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER);
ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER);
ETHANOL = new Fuel( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER);
HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE);
CRACKOIL = new FluidTypeFlammable( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE);
COALOIL = new FluidTypeFlammable( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE);
HOTCRACKOIL = new FluidTypeFlammable( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350);
NAPHTHA_CRACK = new FluidTypeFlammable( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE);
LIGHTOIL_CRACK = new FluidTypeFlammable( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE);
DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000);
AROMATICS = new FluidTypeFlammable( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE);
UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE);
SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE);
CRACKOIL = new Oil( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE);
COALOIL = new Oil( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE);
HOTCRACKOIL = new Oil( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350);
NAPHTHA_CRACK = new Oil( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE);
LIGHTOIL_CRACK = new Oil( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE);
DIESEL_CRACK = new Fuel( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000);
AROMATICS = new Oil( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE);
UNSATURATEDS = new Oil( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE);
SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE);
XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE);
ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE);
PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy());
GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy());
COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy());
PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy());
GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy());
COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy());
SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE);
COOLANT_HOT = new FluidType( "COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap);
MUG = new FluidType( "MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).setHeatCap(1D);
MUG_HOT = new FluidType( "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500);
MUG_HOT = new FluidType(78, "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500);
// ^ ^ ^ ^ ^ ^ ^ ^

View File

@ -0,0 +1,12 @@
package com.hbm.inventory.fluid.types;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.render.util.EnumSymbol;
public class Antimatter extends FluidType {
public Antimatter(String name, int color, int p, int f, int r, EnumSymbol symbol) {
super(name, color, p, f, r, symbol);
this.addTraits(FluidTrait.AMAT);
}
}

View File

@ -0,0 +1,11 @@
package com.hbm.inventory.fluid.types;
import com.hbm.render.util.EnumSymbol;
public class CombustibleGas extends FluidTypeCombustible {
public CombustibleGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
super(compat, color, p, f, r, symbol);
this.addTraits(FluidTrait.GASEOUS);
}
}

View File

@ -0,0 +1,11 @@
package com.hbm.inventory.fluid.types;
import com.hbm.render.util.EnumSymbol;
public class FlammableGas extends FluidTypeFlammable {
public FlammableGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
super(compat, color, p, f, r, symbol);
this.addTraits(FluidTrait.GASEOUS);
}
}

View File

@ -0,0 +1,11 @@
package com.hbm.inventory.fluid.types;
import com.hbm.render.util.EnumSymbol;
public class FlammableOilGas extends FlammableGas {
public FlammableOilGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
super(compat, color, p, f, r, symbol);
this.addTraits(FluidTrait.PETROCHEMICAL);
}
}

View File

@ -1,4 +1,4 @@
package com.hbm.inventory.fluid;
package com.hbm.inventory.fluid.types;
import java.util.List;

View File

@ -1,7 +1,8 @@
package com.hbm.inventory.fluid;
package com.hbm.inventory.fluid.types;
import java.util.List;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.render.util.EnumSymbol;
import com.hbm.util.BobMathUtil;

View File

@ -0,0 +1,11 @@
package com.hbm.inventory.fluid.types;
import com.hbm.render.util.EnumSymbol;
public class Fuel extends FluidTypeCombustible {
public Fuel(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
super(compat, color, p, f, r, symbol);
this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL);
}
}

View File

@ -0,0 +1,12 @@
package com.hbm.inventory.fluid.types;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.render.util.EnumSymbol;
public class Gas extends FluidType {
public Gas(String name, int color, int p, int f, int r, EnumSymbol symbol) {
super(name, color, p, f, r, symbol);
this.addTraits(FluidTrait.GASEOUS);
}
}

View File

@ -0,0 +1,11 @@
package com.hbm.inventory.fluid.types;
import com.hbm.render.util.EnumSymbol;
public class Oil extends FluidTypeFlammable {
public Oil(String compat, int color, int p, int f, int r, EnumSymbol symbol) {
super(compat, color, p, f, r, symbol);
this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL);
}
}

View File

@ -0,0 +1,12 @@
package com.hbm.inventory.fluid.types;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.render.util.EnumSymbol;
public class Petrochemical extends FluidType {
public Petrochemical(String name, int color, int p, int f, int r, EnumSymbol symbol) {
super(name, color, p, f, r, symbol);
this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL);
}
}

View File

@ -0,0 +1,12 @@
package com.hbm.inventory.fluid.types;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.render.util.EnumSymbol;
public class RadioactiveGas extends FluidType {
public RadioactiveGas(String name, int color, int p, int f, int r, EnumSymbol symbol) {
super(name, color, p, f, r, symbol);
this.addTraits(FluidTrait.GASEOUS);
}
}

View File

@ -0,0 +1,12 @@
package com.hbm.inventory.fluid.types;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.render.util.EnumSymbol;
public class RadioactiveLiquid extends FluidType {
public RadioactiveLiquid(String name, int color, int p, int f, int r, EnumSymbol symbol) {
super(name, color, p, f, r, symbol);
this.addTraits(FluidTrait.LIQUID);
}
}

View File

@ -2,19 +2,25 @@ package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerMachineGasFlare;
import com.hbm.inventory.fluid.FluidType.FluidTrait;
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
import com.hbm.lib.RefStrings;
import com.hbm.packet.NBTControlPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare;
import com.hbm.util.I18nUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
public class GUIMachineGasFlare extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_gasFlare.png");
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_flare_stack.png");
private TileEntityMachineGasFlare flare;
public GUIMachineGasFlare(InventoryPlayer invPlayer, TileEntityMachineGasFlare tedf) {
@ -22,22 +28,43 @@ public class GUIMachineGasFlare extends GuiInfoContainer {
flare = tedf;
this.xSize = 176;
this.ySize = 166;
this.ySize = 203;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 34, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 20, 35, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.valve"));
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 54, 35, 14, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.ignition"));
flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 69 - 52, 16, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower);
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 20 < y && guiTop + 20 + 10 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
NBTTagCompound data = new NBTTagCompound();
data.setBoolean("valve", true);
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord));
} else if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 54 < y && guiTop + 54 + 14 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
NBTTagCompound data = new NBTTagCompound();
data.setBoolean("dial", true);
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord));
}
}
@Override
protected void drawGuiContainerForegroundLayer( int i, int j) {
String name = this.flare.hasCustomInventoryName() ? this.flare.getInventoryName() : I18n.format(this.flare.getInventoryName());
//String name = this.flare.hasCustomInventoryName() ? this.flare.getInventoryName() : I18n.format(this.flare.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
//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);
}
@ -48,8 +75,14 @@ public class GUIMachineGasFlare extends GuiInfoContainer {
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int j = (int)flare.getPowerScaled(52);
drawTexturedModalRect(guiLeft + 8, guiTop + 69 - j, 176, 52 - j, 16, j);
drawTexturedModalRect(guiLeft + 143, guiTop + 69 - j, 176, 94 - j, 16, j);
if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 20, 176, 0, 35, 10);
if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 54, 176, 10, 35, 14);
flare.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 34, 52);
if(flare.isOn && flare.doesBurn && flare.tank.getTankType().traits.contains(FluidTrait.GASEOUS) && flare.tank.getTankType() instanceof FluidTypeFlammable)
drawTexturedModalRect(guiLeft + 88, guiTop + 34, 176, 24, 18, 18);
flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52);
}
}

View File

@ -29,6 +29,7 @@ import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.common.MinecraftForge;
import java.awt.Color;
import java.awt.Desktop;
import java.net.URI;
import java.util.HashMap;
@ -1504,6 +1505,12 @@ public class ClientProxy extends ServerProxy {
fx.setBaseScale(data.getFloat("base"));
fx.setMaxScale(data.getFloat("max"));
fx.setLife(data.getInteger("life") / (particleSetting + 1));
if(data.hasKey("color")) {
Color color = new Color(data.getInteger("color"));
fx.setRBGColorF(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
}
Minecraft.getMinecraft().effectRenderer.addEffect(fx);
}
}

View File

@ -74,7 +74,7 @@ public class ResourceManager {
public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj"));
//Flare Stack
public static final IModelCustom oilflare = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/oilFlare.obj"));
public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj"));
//Tank
public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj"));
@ -369,7 +369,7 @@ public class ResourceManager {
public static final ResourceLocation solidifier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solidifier.png");
//Flare Stack
public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/oilFlareTexture.png");
public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png");
//Tank
public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png");

View File

@ -325,13 +325,15 @@ public class ItemRenderLibrary {
renderers.put(Item.getItemFromBlock(ModBlocks.machine_flare), new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -4, 0);
GL11.glScaled(2.5, 2.5, 2.5);
GL11.glScaled(2.25, 2.25, 2.25);
}
public void renderCommon() {
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.oilflare_tex); ResourceManager.oilflare.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glEnable(GL11.GL_CULL_FACE);
}});
renderers.put(Item.getItemFromBlock(ModBlocks.machine_refinery), new ItemRenderBase() {

View File

@ -2,30 +2,28 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class RenderGasFlare extends TileEntitySpecialRenderer {
@Override
@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.glDisable(GL11.GL_CULL_FACE);
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glRotatef(180, 0F, 1F, 0F);
bindTexture(ResourceManager.oilflare_tex);
ResourceManager.oilflare.renderAll();
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.oilflare_tex);
ResourceManager.oilflare.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopMatrix();
}
GL11.glPopMatrix();
}
}

View File

@ -7,9 +7,9 @@ import com.hbm.interfaces.IFluidContainer;
import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.FluidTypeCombustible;
import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.types.FluidTypeCombustible;
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;

View File

@ -8,8 +8,8 @@ import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.FluidTypeFlammable;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemRTGPellet;
import com.hbm.lib.Library;

View File

@ -7,9 +7,9 @@ import com.hbm.interfaces.IFluidContainer;
import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.FluidTypeCombustible;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade;
import com.hbm.inventory.fluid.types.FluidTypeCombustible;
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.packet.AuxElectricityPacket;

View File

@ -1,216 +1,82 @@
package com.hbm.tileentity.machine.oil;
import java.util.Random;
import java.util.List;
import com.hbm.entity.particle.EntityGasFlameFX;
import com.hbm.explosion.ExplosionThermo;
import com.hbm.interfaces.IControlReceiver;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidContainer;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.FluidType.FluidTrait;
import com.hbm.inventory.fluid.types.FluidTypeFlammable;
import com.hbm.lib.Library;
import com.hbm.packet.AuxElectricityPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IBatteryItem;
import api.hbm.energy.IEnergyGenerator;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
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.minecraft.util.DamageSource;
public class TileEntityMachineGasFlare extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver {
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver {
private ItemStack slots[];
public long power;
public static final long maxPower = 100000;
public FluidTank tank;
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 boolean isOn = false;
public boolean doesBurn = false;
public TileEntityMachineGasFlare() {
slots = new ItemStack[3];
super(4);
tank = new FluidTank(Fluids.GAS, 64000, 0);
}
@Override
public int getSizeInventory() {
return slots.length;
public String getName() {
return "container.gasFlare";
}
@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.gasFlare";
}
@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");
tank.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);
tank.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 boolean hasPermission(EntityPlayer player) {
return player.getDistanceSq(xCoord, yCoord, zCoord) <= 256;
}
@Override
public void receiveControl(NBTTagCompound data) {
if(data.hasKey("valve")) this.isOn = !this.isOn;
if(data.hasKey("dial")) this.doesBurn = !this.doesBurn;
this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this);
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
this.sendPower(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X);
@ -222,40 +88,99 @@ public class TileEntityMachineGasFlare extends TileEntityLoadedBase implements I
this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X);
this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z);
this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z);
tank.setType(3, slots);
tank.loadTank(1, 2, slots);
tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
if(tank.getFill() >= 10) {
tank.setFill(tank.getFill() - 10);
power += 50;
if(isOn && tank.getFill() > 0) {
if(power > maxPower)
power = maxPower;
worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 11F, this.zCoord + 0.5F, 0.0, 0.0, 0.0));
ExplosionThermo.setEntitiesOnFire(worldObj, this.xCoord, this.yCoord + 11, zCoord, 5);
if(worldObj.getTotalWorldTime() % 5 == 0)
this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 1F);
if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) {
if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) {
int eject = Math.min(10, tank.getFill());
tank.setFill(tank.getFill() - eject);
tank.getTankType().onFluidRelease(this, tank, eject);
if(worldObj.getTotalWorldTime() % 7 == 0)
this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", 1.5F, 0.5F);
}
} else {
if(tank.getTankType().traits.contains(FluidTrait.GASEOUS) && tank.getTankType() instanceof FluidTypeFlammable) {
int eject = Math.min(10, tank.getFill());
tank.setFill(tank.getFill() - eject);
power += ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 2_000; // divided by 1000 per mB and 2 for the 50% penalty
if(power > maxPower)
power = maxPower;
worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 11.75F, this.zCoord + 0.5F,
worldObj.rand.nextGaussian() * 0.15, 0.2, worldObj.rand.nextGaussian() * 0.15));
List<Entity> list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord + 12, zCoord - 2, xCoord + 2, yCoord + 17, zCoord + 2));
for(Entity e : list) {
e.setFire(5);
e.attackEntityFrom(DamageSource.onFire, 5F);
}
if(worldObj.getTotalWorldTime() % 3 == 0)
this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F);
}
}
}
power = Library.chargeItemsFromTE(slots, 0, power, maxPower);
PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
power = Library.chargeItemsFromTE(slots, 0, power, maxPower);
NBTTagCompound data = new NBTTagCompound();
data.setLong("power", this.power);
data.setBoolean("isOn", isOn);
data.setBoolean("doesBurn", doesBurn);
this.networkPack(data, 50);
} else {
if(isOn && tank.getFill() > 0) {
if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) {
if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "tower");
data.setFloat("lift", 1F);
data.setFloat("base", 0.25F);
data.setFloat("max", 3F);
data.setInteger("life", 150 + worldObj.rand.nextInt(20));
data.setInteger("color", tank.getTankType().getColor());
data.setDouble("posX", xCoord + 0.5);
data.setDouble("posZ", zCoord + 0.5);
data.setDouble("posY", yCoord + 11);
MainRegistry.proxy.effectNT(data);
}
}
}
}
}
@Override
public void networkUnpack(NBTTagCompound nbt) {
this.power = nbt.getLong("power");
this.isOn = nbt.getBoolean("isOn");
this.doesBurn = nbt.getBoolean("doesBurn");
}
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}

View File

@ -408,6 +408,9 @@ entity.hbm.entity_bullet.name=Patrone
entity.hbm.entity_rocket.name=Rakete
entity.hbm.entity_schrabnel.name=Schrabnel
flare.ignition=Zündung
flare.valve=Flussventil
fluid.acid_fluid=Säure
fluid.corium_fluid=Corium
fluid.mud_fluid=Giftiger Schlamm

View File

@ -606,6 +606,9 @@ entity.hbm.entity_bullet.name=Bullet
entity.hbm.entity_rocket.name=Rocket
entity.hbm.entity_schrabnel.name=Schrabnel
flare.ignition=Ignition
flare.valve=Flow Valve
fluid.acid_fluid=Acid
fluid.corium_fluid=Corium
fluid.mud_fluid=Poisonous Mud

File diff suppressed because it is too large Load Diff

View File

@ -1,895 +0,0 @@
# Blender v2.76 (sub 0) OBJ File: 'oilFlare.blend'
# www.blender.org
o Plane
v -1.000000 10.000000 1.000000
v 1.000000 10.000000 1.000000
v -1.000000 10.000000 -1.000000
v 1.000000 10.000000 -1.000000
v 0.785714 10.000000 0.785714
v 1.000000 10.000000 0.785714
v 0.785714 10.000000 1.000000
v -0.785714 10.000000 0.785714
v -0.785714 10.000000 1.000000
v -1.000000 10.000000 0.785714
v -0.785714 10.000000 -0.785714
v -1.000000 10.000000 -0.785714
v -0.785714 10.000000 -1.000000
v 0.785714 10.000000 -0.785714
v 0.785714 10.000000 -1.000000
v 1.000000 10.000000 -0.785714
v -1.000000 -0.000000 0.785714
v -1.000000 -0.000000 1.000000
v 0.785714 -0.000001 -1.000000
v 0.785714 -0.000001 -0.785714
v 0.785714 -0.000001 0.785714
v 1.000000 -0.000001 0.785714
v -0.785714 -0.000000 -1.000000
v -1.000000 -0.000000 -1.000000
v 1.000000 -0.000001 -1.000000
v 1.000000 -0.000001 -0.785714
v -0.785714 -0.000000 0.785714
v -0.785714 -0.000000 1.000000
v -0.785714 -0.000000 -0.785714
v -1.000000 -0.000000 -0.785714
v 1.000000 -0.000001 1.000000
v 0.785714 -0.000001 1.000000
v 0.785714 2.499999 -0.785714
v 1.000000 2.499999 -0.785714
v 0.785714 2.499999 -1.000000
v 0.785714 5.000000 -0.785714
v 0.785714 5.000000 -1.000000
v 1.000000 5.000000 -0.785714
v 1.000000 2.499999 0.785714
v 0.785714 2.499999 0.785714
v 0.785714 2.499999 1.000000
v 0.785714 7.500000 -1.000000
v 1.000000 7.500000 -0.785714
v 0.785714 7.500000 1.000000
v 0.785714 7.500000 0.785714
v 0.785714 7.500000 -0.785714
v 1.000000 7.500000 0.785714
v 0.785714 5.000000 1.000000
v 1.000000 5.000000 0.785714
v 0.785714 5.000000 0.785714
v -1.000000 5.000000 -0.785714
v -0.785714 5.000000 -0.785714
v -0.785714 5.000000 -1.000000
v -0.785714 7.500000 -0.785714
v -1.000000 7.500000 -0.785714
v -0.785714 7.500000 -1.000000
v -1.000000 2.500000 -0.785714
v -0.785714 2.500000 -1.000000
v -0.785714 2.500000 -0.785714
v -0.785714 5.000000 0.785714
v -1.000000 5.000000 0.785714
v -0.785714 5.000000 1.000000
v -0.785714 2.500000 0.785714
v -0.785714 2.500000 1.000000
v -1.000000 2.500000 0.785714
v -1.000000 2.500000 -1.000000
v -1.000000 5.000000 -1.000000
v -1.000000 7.500000 -1.000000
v -1.000000 7.500000 0.785714
v -0.785714 7.500000 0.785714
v -0.785714 7.500000 1.000000
v 1.000000 7.500000 1.000000
v 1.000000 4.999417 1.000000
v 1.000000 2.500000 1.000000
v -1.000000 2.500000 1.000000
v -1.000000 5.000000 1.000000
v -1.000000 7.500000 1.000000
v 1.000000 2.499999 -1.000000
v 1.000000 4.999416 -1.000000
v 1.000000 7.499999 -1.000000
v 1.500000 5.000000 -1.500000
v 1.500000 5.000000 1.500000
v -1.500000 5.000000 1.500000
v -1.500000 5.000000 -1.500000
v 1.500000 10.000000 -1.500000
v 1.500000 10.000000 1.500000
v -1.500000 10.000000 1.500000
v -1.500000 10.000000 -1.500000
v 0.530330 2.000000 -0.530330
v -0.000000 2.000000 -0.750000
v 0.000000 2.000000 -0.250000
v 0.000000 10.000000 -0.250000
v 0.176777 2.000000 -0.176777
v 0.176777 10.000000 -0.176777
v 0.250000 2.000000 0.000000
v 0.250000 10.000000 0.000000
v 0.176777 2.000000 0.176777
v 0.176777 10.000000 0.176777
v -0.000000 2.000000 0.250000
v -0.000000 10.000000 0.250000
v -0.176777 2.000000 0.176777
v -0.176777 10.000000 0.176777
v -0.250000 2.000000 -0.000000
v -0.250000 10.000000 -0.000000
v -0.176777 2.000000 -0.176777
v -0.176777 10.000000 -0.176777
v 0.750000 2.000000 0.000000
v 0.530330 2.000000 0.530330
v -0.000000 2.000000 0.750000
v -0.530330 2.000000 0.530330
v -0.750000 2.000000 -0.000000
v -0.530330 2.000000 -0.530330
v -0.530330 0.000000 -0.530330
v -0.000000 0.000000 -0.750000
v -0.750000 0.000000 -0.000000
v -0.530330 0.000000 0.530330
v -0.000000 0.000000 0.750000
v 0.530330 0.000000 0.530330
v 0.750000 0.000000 0.000000
v 0.530330 0.000000 -0.530330
v -0.785714 5.000000 -0.000000
v 0.000000 5.000000 -0.785714
v 0.785714 5.000000 -0.000000
v 0.000000 5.000000 0.785714
v 0.000000 5.000000 -0.250000
v 0.176777 5.000000 -0.176777
v 0.250000 5.000000 0.000000
v 0.176777 5.000000 0.176777
v -0.000000 5.000000 0.250000
v -0.176777 5.000000 0.176777
v -0.250000 5.000000 -0.000000
v -0.176777 5.000000 -0.176777
v 0.176776 10.250000 -0.176777
v -0.000000 10.250000 -0.250000
v 0.250000 10.250000 0.000000
v 0.176776 10.250000 0.176777
v -0.000000 10.250000 0.250000
v -0.176777 10.250000 0.176777
v -0.250000 10.250000 -0.000000
v -0.176777 10.250000 -0.176777
v 0.353553 10.250000 -0.353553
v -0.000000 10.250000 -0.500000
v 0.500000 10.250000 0.000000
v 0.353553 10.250000 0.353553
v -0.000000 10.250000 0.500000
v -0.353554 10.250000 0.353553
v -0.500000 10.250000 -0.000000
v -0.353554 10.250000 -0.353553
v 0.353553 11.500000 -0.353553
v -0.000000 11.500000 -0.500000
v 0.500000 11.500000 0.000000
v 0.353553 11.500000 0.353553
v -0.000000 11.500000 0.500000
v -0.353554 11.500000 0.353553
v -0.500000 11.500000 -0.000000
v -0.353554 11.500000 -0.353553
v -0.156250 0.343750 1.500000
v -0.156250 0.656250 1.500000
v -0.156250 0.343750 -1.500000
v -0.156250 0.656250 -1.500000
v 0.156250 0.343750 1.500000
v 0.156250 0.656250 1.500000
v 0.156250 0.343750 -1.500000
v 0.156250 0.656250 -1.500000
v -1.500000 0.343750 0.156250
v -1.500000 0.656250 0.156250
v -1.500000 0.343750 -0.156250
v -1.500000 0.656250 -0.156250
v 1.500000 0.343750 0.156250
v 1.500000 0.656250 0.156250
v 1.500000 0.343750 -0.156250
v 1.500000 0.656250 -0.156250
v 0.353553 10.500002 -0.353553
v -0.000000 10.500002 -0.500000
v 0.500000 10.500002 0.000000
v 0.353553 10.500002 0.353553
v -0.000000 10.500002 0.500000
v -0.353554 10.500002 0.353553
v -0.500000 10.500002 -0.000000
v -0.353554 10.500002 -0.353553
v 0.785714 10.000000 -0.000000
v 0.000000 10.000000 -0.785714
v 0.000000 10.000000 0.785714
v -0.785714 10.000000 -0.000000
vt 0.397379 0.676621
vt 0.397379 0.659785
vt 0.414215 0.659785
vt 0.414215 0.676621
vt 0.508956 0.682773
vt 0.492119 0.682773
vt 0.492119 0.665937
vt 0.259282 0.481688
vt 0.276118 0.481688
vt 0.276118 0.678115
vt 0.159765 0.487474
vt 0.159766 0.683901
vt 0.142929 0.683901
vt 0.176602 0.683901
vt 0.176602 0.487474
vt 0.193439 0.487474
vt 0.126092 0.683901
vt 0.126092 0.487474
vt 0.142929 0.487474
vt 0.951130 0.419382
vt 0.934293 0.419382
vt 0.934293 0.187374
vt 0.951130 0.187374
vt 0.259282 0.678115
vt 0.242445 0.678115
vt 0.193439 0.683924
vt 0.292955 0.481688
vt 0.309792 0.481688
vt 0.309792 0.678115
vt 0.890550 0.895409
vt 0.873714 0.895409
vt 0.873714 0.663401
vt 0.890550 0.663401
vt 0.292955 0.678115
vt 0.242445 0.481688
vt 0.570884 0.348475
vt 0.509150 0.365312
vt 0.447416 0.348475
vt 0.570884 0.427046
vt 0.570884 0.365312
vt 0.587721 0.365312
vt 0.447416 0.505617
vt 0.509150 0.488781
vt 0.570884 0.505617
vt 0.430579 0.365312
vt 0.447416 0.427046
vt 0.430579 0.488781
vt 0.823073 0.955128
vt 0.699604 0.955128
vt 0.699604 0.938291
vt 0.823073 0.938291
vt 0.509151 0.488780
vt 0.627007 0.309189
vt 0.587721 0.488780
vt 0.391293 0.309189
vt 0.391293 0.544904
vt 0.627007 0.544903
vt 0.150959 0.194056
vt 0.135925 0.157761
vt 0.181027 0.157761
vt 0.690955 0.644624
vt 0.705989 0.644624
vt 0.705989 0.880337
vt 0.286264 0.194056
vt 0.271230 0.157761
vt 0.316332 0.157761
vt 0.721023 0.644624
vt 0.721023 0.880337
vt 0.015654 0.194057
vt 0.000620 0.157761
vt 0.045721 0.157761
vt 0.736057 0.644624
vt 0.736057 0.880337
vt 0.196060 0.194056
vt 0.226128 0.157761
vt 0.751091 0.644624
vt 0.751091 0.880337
vt 0.241162 0.194056
vt 0.766125 0.644624
vt 0.766125 0.880337
vt 0.105857 0.194056
vt 0.090823 0.157761
vt 0.316332 0.000619
vt 0.361434 0.000619
vt 0.781159 0.644624
vt 0.781159 0.880337
vt 0.560809 0.260328
vt 0.560809 0.240685
vt 0.575842 0.240685
vt 0.796193 0.644624
vt 0.796193 0.880337
vt 0.811227 0.644624
vt 0.811227 0.880337
vt 0.331366 0.194056
vt 0.361434 0.157761
vt 0.060755 0.194057
vt 0.910214 0.111717
vt 0.833220 0.143609
vt 0.801328 0.066615
vt 0.045721 0.000619
vt 0.090823 0.000619
vt 0.226128 0.000619
vt 0.271230 0.000619
vt 0.135925 0.000619
vt 0.181026 0.000619
vt 0.000619 0.000620
vt 0.790588 0.620702
vt 0.775554 0.620702
vt 0.775553 0.227849
vt 0.760519 0.227849
vt 0.745486 0.227849
vt 0.760520 0.620702
vt 0.730452 0.227849
vt 0.745486 0.620702
vt 0.715418 0.227849
vt 0.730451 0.620702
vt 0.715417 0.620702
vt 0.700383 0.620702
vt 0.700384 0.227849
vt 0.685350 0.620702
vt 0.685350 0.227849
vt 0.805622 0.620702
vt 0.790588 0.227849
vt 0.447416 0.365311
vt 0.495261 0.413156
vt 0.489507 0.427046
vt 0.495261 0.440935
vt 0.447416 0.488781
vt 0.509150 0.446689
vt 0.523040 0.440935
vt 0.528793 0.427046
vt 0.523040 0.413156
vt 0.509150 0.407403
vt 0.645304 0.053326
vt 0.652821 0.071474
vt 0.622753 0.071474
vt 0.515707 0.260328
vt 0.515707 0.240685
vt 0.530741 0.240685
vt 0.575842 0.260328
vt 0.590876 0.240685
vt 0.500673 0.260328
vt 0.500673 0.240685
vt 0.530741 0.260328
vt 0.545775 0.240685
vt 0.470605 0.260328
vt 0.470605 0.240685
vt 0.485639 0.240685
vt 0.545775 0.260328
vt 0.485639 0.260328
vt 0.502482 0.071474
vt 0.502482 0.169687
vt 0.472414 0.169687
vt 0.449863 0.053326
vt 0.464897 0.053326
vt 0.472414 0.071474
vt 0.525033 0.053326
vt 0.532550 0.071474
vt 0.585168 0.053326
vt 0.592685 0.071474
vt 0.562617 0.071474
vt 0.615236 0.053326
vt 0.434829 0.053326
vt 0.442346 0.071474
vt 0.412278 0.071474
vt 0.479931 0.053326
vt 0.494965 0.053326
vt 0.540067 0.053326
vt 0.555101 0.053326
vt 0.570884 0.488781
vt 0.562617 0.169687
vt 0.532550 0.169687
vt 0.652821 0.169687
vt 0.622753 0.169687
vt 0.442346 0.169687
vt 0.592685 0.169687
vt 0.412278 0.169687
vt 0.303414 0.349532
vt 0.303414 0.374085
vt 0.067700 0.374085
vt 0.327967 0.398639
vt 0.303414 0.398639
vt 0.067700 0.324979
vt 0.067700 0.300425
vt 0.303414 0.300425
vt 0.043147 0.374085
vt 0.067700 0.398638
vt 0.303414 0.324978
vt 0.067700 0.349532
vt 0.692864 0.104440
vt 0.714125 0.053111
vt 0.744193 0.125701
vt 0.508956 0.665937
vt 0.587721 0.505616
vt 0.587721 0.348475
vt 0.430579 0.348475
vt 0.430579 0.505618
vt 0.165993 0.194056
vt 0.690955 0.880337
vt 0.301298 0.194056
vt 0.030687 0.194057
vt 0.211094 0.194056
vt 0.256196 0.194056
vt 0.120891 0.194056
vt 0.346400 0.194056
vt 0.075789 0.194057
vt 0.833220 0.034724
vt 0.878322 0.034724
vt 0.910214 0.066615
vt 0.878322 0.143609
vt 0.801328 0.111717
vt 0.805622 0.227849
vt 0.630270 0.053326
vt 0.590877 0.260328
vt 0.509999 0.053326
vt 0.570134 0.053326
vt 0.600202 0.053326
vt 0.419795 0.053326
vt 0.327967 0.374085
vt 0.043147 0.398638
vt 0.765454 0.074372
vt 0.765454 0.104440
vt 0.714125 0.125701
vt 0.692864 0.074372
vt 0.744193 0.053111
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.532200 0.846600
vn 0.000000 0.532200 -0.846600
vn -1.000000 0.000000 0.000000
vn -0.846600 0.532200 0.000000
vn 0.846600 0.532200 0.000000
vn -0.923900 0.000000 0.382700
vn -0.382700 0.000000 0.923900
vn 0.382700 0.000000 0.923900
vn 0.923900 0.000000 0.382700
vn 0.923900 0.000000 -0.382700
vn -0.923900 0.000000 -0.382700
vn 0.382700 0.000000 -0.923900
vn -0.382700 0.000000 -0.923900
vn -0.003900 1.000000 -0.002700
vn -0.003900 1.000000 0.002700
vn 0.002700 1.000000 -0.003900
vn 0.002700 1.000000 0.003900
s off
f 7/1/1 2/2/1 6/3/1
f 1/4/1 9/1/1 8/2/1
f 12/1/1 11/2/1 13/3/1
f 14/4/1 16/1/1 4/2/1
f 25/5/2 26/6/2 20/7/2
f 27/5/2 28/6/2 18/7/2
f 23/5/2 29/6/2 30/7/2
f 22/5/2 31/6/2 32/7/2
f 56/8/3 68/9/3 3/10/3
f 67/11/3 68/12/3 56/13/3
f 57/14/4 30/15/4 29/16/4
f 59/17/5 29/18/5 23/19/5
f 34/20/6 33/21/6 21/22/6
f 26/22/7 20/23/7 40/20/7
f 41/8/8 48/24/8 50/25/8
f 50/18/8 48/19/8 44/13/8
f 50/16/3 45/26/3 47/14/3
f 47/27/3 45/28/3 5/29/3
f 44/8/8 7/24/8 5/25/8
f 38/30/6 36/31/6 40/32/6
f 33/33/7 50/30/7 49/31/7
f 49/23/6 43/20/6 46/21/6
f 47/33/6 16/30/6 14/31/6
f 36/23/7 45/20/7 47/21/7
f 5/30/7 6/31/7 43/32/7
f 54/17/5 52/18/5 53/19/5
f 55/14/4 51/15/4 52/16/4
f 12/34/4 55/27/4 54/28/4
f 11/25/5 54/35/5 56/8/5
f 52/25/5 59/35/5 58/8/5
f 51/34/4 57/27/4 59/28/4
f 66/9/3 67/10/3 53/24/3
f 58/13/3 23/19/3 24/11/3
f 64/14/5 28/15/5 27/16/5
f 63/28/5 60/29/5 62/34/5
f 60/16/5 70/26/5 71/14/5
f 9/34/5 71/27/5 70/28/5
f 10/24/3 8/25/3 70/35/3
f 70/17/3 60/18/3 61/19/3
f 61/24/3 60/25/3 63/35/3
f 27/18/3 17/19/3 65/13/3
f 54/33/9 14/30/9 15/31/9
f 52/23/9 46/20/9 42/21/9
f 58/32/9 59/33/9 36/30/9
f 33/20/9 35/21/9 23/22/9
f 20/22/10 19/23/10 58/20/10
f 52/31/10 33/32/10 35/33/10
f 36/22/10 37/23/10 56/20/10
f 11/30/10 46/33/10 42/32/10
f 7/30/9 5/31/9 70/32/9
f 62/23/9 44/20/9 45/21/9
f 63/32/9 64/33/9 48/30/9
f 40/21/9 27/22/9 28/23/9
f 32/22/10 21/23/10 63/20/10
f 41/32/10 40/33/10 60/30/10
f 71/20/10 48/23/10 50/22/10
f 45/33/10 8/30/10 9/31/10
f 10/30/7 8/31/7 54/32/7
f 70/33/6 11/30/6 12/31/6
f 70/21/7 52/22/7 51/23/7
f 52/30/6 51/31/6 65/32/6
f 65/20/7 63/21/7 29/22/7
f 59/20/6 57/21/6 17/22/6
f 61/30/7 60/31/7 59/32/7
f 60/23/6 54/20/6 55/21/6
f 40/28/3 50/29/3 49/34/3
f 40/17/8 21/18/8 32/19/8
f 21/16/3 40/26/3 39/14/3
f 33/17/4 20/18/4 26/19/4
f 19/15/8 20/16/8 33/26/8
f 38/24/4 36/25/4 33/35/4
f 35/27/8 33/28/8 36/29/8
f 38/19/4 43/13/4 46/17/4
f 37/15/8 36/16/8 46/26/8
f 16/24/4 14/25/4 46/35/4
f 42/27/8 46/28/8 14/29/8
f 7/36/1 183/37/1 9/38/1
f 181/39/1 5/40/1 6/41/1
f 13/42/1 182/43/1 15/44/1
f 10/45/1 184/46/1 12/47/1
f 40/48/1 63/49/1 64/50/1
f 33/48/1 40/49/1 39/50/1
f 59/51/1 57/48/1 65/49/1
f 59/50/1 33/51/1 35/48/1
f 53/42/1 122/52/1 37/44/1
f 48/36/1 50/40/1 124/37/1
f 121/46/1 51/47/1 61/45/1
f 123/39/1 50/40/1 49/41/1
f 70/50/1 54/51/1 55/48/1
f 71/50/1 44/51/1 45/48/1
f 46/51/1 42/48/1 56/49/1
f 47/50/1 43/51/1 46/48/1
f 72/9/4 2/10/4 7/24/4
f 72/9/5 47/27/5 6/34/5
f 41/13/4 32/19/4 31/11/4
f 73/10/4 48/24/4 41/8/4
f 48/19/4 73/11/4 72/12/4
f 31/11/5 22/15/5 39/14/5
f 39/27/5 49/34/5 73/10/5
f 49/15/5 47/14/5 72/12/5
f 68/9/8 55/27/8 12/34/8
f 55/14/8 68/12/8 67/11/8
f 51/34/8 67/10/8 66/9/8
f 30/15/8 57/14/8 66/12/8
f 65/13/8 17/19/8 18/11/8
f 76/10/8 61/24/8 65/8/8
f 69/13/8 61/19/8 76/11/8
f 69/8/8 77/9/8 1/10/8
f 28/15/4 64/14/4 75/12/4
f 62/34/4 76/10/4 75/9/4
f 71/14/4 77/12/4 76/11/4
f 77/9/4 71/27/4 9/34/4
f 4/10/5 16/24/5 43/8/5
f 80/12/5 43/13/5 38/19/5
f 79/10/5 38/24/5 34/8/5
f 26/19/5 25/11/5 78/12/5
f 19/15/3 35/14/3 78/12/3
f 79/10/3 78/9/3 35/27/3
f 80/12/3 79/11/3 37/15/3
f 4/10/3 80/9/3 42/27/3
f 49/41/1 82/53/1 38/54/1
f 48/36/1 83/55/1 82/53/1
f 53/42/1 37/44/1 84/56/1
f 51/47/1 83/55/1 61/45/1
f 88/56/1 87/55/1 10/45/1
f 85/57/1 88/56/1 13/42/1
f 86/53/1 85/57/1 16/54/1
f 87/55/1 86/53/1 7/36/1
f 97/58/1 108/59/1 107/60/1
f 103/61/11 101/62/11 130/63/11
f 91/64/1 90/65/1 112/66/1
f 101/62/12 99/67/12 129/68/12
f 103/69/1 111/70/1 110/71/1
f 97/72/13 128/73/13 129/68/13
f 95/74/1 107/60/1 89/75/1
f 95/76/14 127/77/14 128/73/14
f 93/78/1 89/75/1 90/65/1
f 93/79/15 126/80/15 127/77/15
f 99/81/1 109/82/1 108/59/1
f 112/66/16 113/83/16 115/84/16
f 91/85/17 125/86/17 126/80/17
f 100/87/12 137/88/12 138/89/12
f 91/85/18 105/90/18 132/91/18
f 105/90/16 103/92/16 131/93/16
f 105/94/1 112/66/1 111/95/1
f 101/96/1 110/71/1 109/82/1
f 118/97/2 116/98/2 113/99/2
f 110/71/12 116/100/12 117/101/12
f 89/75/17 120/102/17 114/103/17
f 109/82/13 117/101/13 118/104/13
f 108/59/14 118/104/14 119/105/14
f 90/65/18 114/103/18 113/83/18
f 111/70/11 115/106/11 116/100/11
f 107/60/15 119/105/15 120/102/15
f 106/107/18 92/108/18 125/109/18
f 126/110/17 125/109/17 92/108/17
f 127/111/15 126/110/15 94/112/15
f 128/113/14 127/111/14 96/114/14
f 129/115/13 128/113/13 98/116/13
f 100/117/12 102/118/12 130/119/12
f 102/118/11 104/120/11 131/121/11
f 104/122/16 106/107/16 132/123/16
f 121/46/1 60/124/1 130/125/1
f 121/46/1 131/126/1 132/127/1
f 122/52/1 52/128/1 132/127/1
f 122/52/1 125/129/1 126/130/1
f 126/130/1 127/131/1 123/39/1
f 123/39/1 127/131/1 128/132/1
f 128/132/1 129/133/1 124/37/1
f 124/37/1 129/133/1 130/125/1
f 139/134/2 147/135/2 148/136/2
f 94/137/15 133/138/15 135/139/15
f 102/140/11 138/89/11 139/141/11
f 92/142/17 134/143/17 133/138/17
f 96/144/14 135/139/14 136/145/14
f 104/146/16 139/147/16 140/148/16
f 98/149/13 136/145/13 137/88/13
f 106/150/18 140/148/18 134/143/18
f 144/151/13 152/152/13 153/153/13
f 138/154/2 137/155/2 145/156/2
f 135/157/2 143/158/2 144/151/2
f 134/159/2 142/160/2 141/161/2
f 140/162/2 148/136/2 142/160/2
f 138/163/2 146/164/2 147/165/2
f 137/166/2 136/167/2 144/151/2
f 135/168/2 133/169/2 141/161/2
f 181/39/1 14/170/1 94/130/1
f 141/161/15 149/171/15 151/172/15
f 147/135/16 155/173/16 156/174/16
f 145/156/12 153/153/12 154/175/12
f 143/158/14 151/172/14 152/152/14
f 142/160/17 150/176/17 149/171/17
f 148/136/18 156/174/18 150/176/18
f 146/164/11 154/175/11 155/177/11
f 160/178/8 159/179/8 157/180/8
f 164/181/3 163/182/3 159/179/3
f 162/183/5 161/184/5 163/185/5
f 158/186/4 157/180/4 161/187/4
f 159/179/2 163/182/2 161/187/2
f 164/188/1 160/178/1 158/189/1
f 168/186/8 167/180/8 165/187/8
f 172/178/3 171/179/3 167/180/3
f 170/181/5 169/182/5 171/179/5
f 166/183/4 165/184/4 169/185/4
f 167/180/2 171/179/2 169/182/2
f 172/178/1 168/189/1 166/183/1
f 179/190/1 177/191/1 174/192/1
f 98/132/1 5/40/1 181/39/1
f 183/37/1 5/40/1 98/132/1
f 183/37/1 100/133/1 102/125/1
f 184/46/1 8/124/1 102/125/1
f 184/46/1 104/126/1 106/127/1
f 182/43/1 11/128/1 106/127/1
f 182/43/1 92/129/1 94/130/1
f 5/4/1 7/1/1 6/3/1
f 10/3/1 1/4/1 8/2/1
f 3/4/1 12/1/1 13/3/1
f 15/3/1 14/4/1 4/2/1
f 19/193/2 25/5/2 20/7/2
f 17/193/2 27/5/2 18/7/2
f 24/193/2 23/5/2 30/7/2
f 21/193/2 22/5/2 32/7/2
f 13/24/3 56/8/3 3/10/3
f 53/19/3 67/11/3 56/13/3
f 59/26/4 57/14/4 29/16/4
f 58/13/5 59/17/5 23/19/5
f 22/23/6 34/20/6 21/22/6
f 39/21/7 26/22/7 40/20/7
f 40/35/8 41/8/8 50/25/8
f 45/17/8 50/18/8 44/13/8
f 49/15/3 50/16/3 47/14/3
f 6/34/3 47/27/3 5/29/3
f 45/35/8 44/8/8 5/25/8
f 39/33/6 38/30/6 40/32/6
f 34/32/7 33/33/7 49/31/7
f 50/22/6 49/23/6 46/21/6
f 45/32/6 47/33/6 14/31/6
f 38/22/7 36/23/7 47/21/7
f 46/33/7 5/30/7 43/32/7
f 56/13/5 54/17/5 53/19/5
f 54/26/4 55/14/4 52/16/4
f 11/29/4 12/34/4 54/28/4
f 13/24/5 11/25/5 56/8/5
f 53/24/5 52/25/5 58/8/5
f 52/29/4 51/34/4 59/28/4
f 58/8/3 66/9/3 53/24/3
f 66/12/3 58/13/3 24/11/3
f 63/26/5 64/14/5 27/16/5
f 64/27/5 63/28/5 62/34/5
f 62/15/5 60/16/5 71/14/5
f 8/29/5 9/34/5 70/28/5
f 69/8/3 10/24/3 70/35/3
f 69/13/3 70/17/3 61/19/3
f 65/8/3 61/24/3 63/35/3
f 63/17/3 27/18/3 65/13/3
f 56/32/9 54/33/9 15/31/9
f 53/22/9 52/23/9 42/21/9
f 37/31/9 58/32/9 36/30/9
f 29/23/9 33/20/9 23/22/9
f 59/21/10 20/22/10 58/20/10
f 53/30/10 52/31/10 35/33/10
f 54/21/10 36/22/10 56/20/10
f 13/31/10 11/30/10 42/32/10
f 71/33/9 7/30/9 70/32/9
f 60/22/9 62/23/9 45/21/9
f 50/31/9 63/32/9 48/30/9
f 41/20/9 40/21/9 28/23/9
f 64/21/10 32/22/10 63/20/10
f 62/31/10 41/32/10 60/30/10
f 70/21/10 71/20/10 50/22/10
f 44/32/10 45/33/10 9/31/10
f 55/33/7 10/30/7 54/32/7
f 69/32/6 70/33/6 12/31/6
f 69/20/7 70/21/7 51/23/7
f 63/33/6 52/30/6 65/32/6
f 30/23/7 65/20/7 29/22/7
f 27/23/6 59/20/6 17/22/6
f 57/33/7 61/30/7 59/32/7
f 61/22/6 60/23/6 55/21/6
f 39/27/3 40/28/3 49/34/3
f 41/13/8 40/17/8 32/19/8
f 22/15/3 21/16/3 39/14/3
f 34/13/4 33/17/4 26/19/4
f 35/14/8 19/15/8 33/26/8
f 34/8/4 38/24/4 33/35/4
f 37/34/8 35/27/8 36/29/8
f 36/18/4 38/19/4 46/17/4
f 42/14/8 37/15/8 46/26/8
f 43/8/4 16/24/4 46/35/4
f 15/34/8 42/27/8 14/29/8
f 8/124/1 9/38/1 183/37/1
f 7/36/1 5/40/1 183/37/1
f 6/41/1 16/54/1 181/39/1
f 14/170/1 181/39/1 16/54/1
f 14/170/1 15/44/1 182/43/1
f 13/42/1 11/128/1 182/43/1
f 11/128/1 12/47/1 184/46/1
f 10/45/1 8/124/1 184/46/1
f 41/51/1 40/48/1 64/50/1
f 34/51/1 33/48/1 39/50/1
f 63/50/1 59/51/1 65/49/1
f 58/49/1 59/50/1 35/48/1
f 36/170/1 37/44/1 122/52/1
f 53/42/1 52/128/1 122/52/1
f 124/37/1 60/124/1 62/38/1
f 62/38/1 48/36/1 124/37/1
f 61/45/1 60/124/1 121/46/1
f 121/46/1 52/128/1 51/47/1
f 49/41/1 38/54/1 123/39/1
f 36/170/1 123/39/1 38/54/1
f 69/49/1 70/50/1 55/48/1
f 70/49/1 71/50/1 45/48/1
f 54/50/1 46/51/1 56/49/1
f 45/49/1 47/50/1 46/48/1
f 44/8/4 72/9/4 7/24/4
f 2/10/5 72/9/5 6/34/5
f 74/12/4 41/13/4 31/11/4
f 74/9/4 73/10/4 41/8/4
f 44/13/4 48/19/4 72/12/4
f 74/12/5 31/11/5 39/14/5
f 74/9/5 39/27/5 73/10/5
f 73/11/5 49/15/5 72/12/5
f 3/10/8 68/9/8 12/34/8
f 51/15/8 55/14/8 67/11/8
f 57/27/8 51/34/8 66/9/8
f 24/11/8 30/15/8 66/12/8
f 75/12/8 65/13/8 18/11/8
f 75/9/8 76/10/8 65/8/8
f 77/12/8 69/13/8 76/11/8
f 10/24/8 69/8/8 1/10/8
f 18/11/4 28/15/4 75/12/4
f 64/27/4 62/34/4 75/9/4
f 62/15/4 71/14/4 76/11/4
f 1/10/4 77/9/4 9/34/4
f 80/9/5 4/10/5 43/8/5
f 79/11/5 80/12/5 38/19/5
f 78/9/5 79/10/5 34/8/5
f 34/13/5 26/19/5 78/12/5
f 25/11/3 19/15/3 78/12/3
f 37/34/3 79/10/3 35/27/3
f 42/14/3 80/12/3 37/15/3
f 15/34/3 4/10/3 42/27/3
f 81/57/19 79/194/19 38/54/19
f 49/41/20 73/195/20 82/53/20
f 81/57/1 38/54/1 82/53/1
f 82/53/21 73/195/21 48/36/21
f 48/36/1 62/38/1 83/55/1
f 76/196/1 83/55/1 62/38/1
f 81/57/1 84/56/1 37/44/1
f 67/197/1 53/42/1 84/56/1
f 37/44/22 79/194/22 81/57/22
f 51/47/1 67/197/1 84/56/1
f 76/196/1 61/45/1 83/55/1
f 84/56/1 83/55/1 51/47/1
f 12/47/1 3/197/1 88/56/1
f 87/55/1 1/196/1 10/45/1
f 10/45/1 12/47/1 88/56/1
f 13/42/1 15/44/1 85/57/1
f 4/194/1 85/57/1 15/44/1
f 88/56/1 3/197/1 13/42/1
f 16/54/1 6/41/1 86/53/1
f 2/195/1 86/53/1 6/41/1
f 85/57/1 4/194/1 16/54/1
f 7/36/1 9/38/1 87/55/1
f 1/196/1 87/55/1 9/38/1
f 86/53/1 2/195/1 7/36/1
f 95/198/1 97/58/1 107/60/1
f 131/199/11 103/61/11 130/63/11
f 105/200/1 91/64/1 112/66/1
f 130/63/12 101/62/12 129/68/12
f 101/201/1 103/69/1 110/71/1
f 99/67/13 97/72/13 129/68/13
f 93/202/1 95/74/1 89/75/1
f 97/72/14 95/76/14 128/73/14
f 91/203/1 93/78/1 90/65/1
f 95/76/15 93/79/15 127/77/15
f 97/204/1 99/81/1 108/59/1
f 111/95/16 112/66/16 115/84/16
f 93/79/17 91/85/17 126/80/17
f 102/140/12 100/87/12 138/89/12
f 125/86/18 91/85/18 132/91/18
f 132/91/16 105/90/16 131/93/16
f 103/205/1 105/94/1 111/95/1
f 99/206/1 101/96/1 109/82/1
f 113/99/2 114/207/2 120/208/2
f 120/208/2 119/209/2 118/97/2
f 118/97/2 117/210/2 116/98/2
f 116/98/2 115/211/2 113/99/2
f 113/99/2 120/208/2 118/97/2
f 109/82/12 110/71/12 117/101/12
f 90/65/17 89/75/17 114/103/17
f 108/59/13 109/82/13 118/104/13
f 107/60/14 108/59/14 119/105/14
f 112/66/18 90/65/18 113/83/18
f 110/71/11 111/70/11 116/100/11
f 89/75/15 107/60/15 120/102/15
f 132/123/18 106/107/18 125/109/18
f 94/112/17 126/110/17 92/108/17
f 96/114/15 127/111/15 94/112/15
f 98/116/14 128/113/14 96/114/14
f 100/117/13 129/115/13 98/116/13
f 129/115/12 100/117/12 130/119/12
f 130/119/11 102/118/11 131/121/11
f 131/212/16 104/122/16 132/123/16
f 131/126/1 121/46/1 130/125/1
f 52/128/1 121/46/1 132/127/1
f 125/129/1 122/52/1 132/127/1
f 36/170/1 122/52/1 126/130/1
f 36/170/1 126/130/1 123/39/1
f 50/40/1 123/39/1 128/132/1
f 50/40/1 128/132/1 124/37/1
f 60/124/1 124/37/1 130/125/1
f 140/213/2 139/134/2 148/136/2
f 96/144/15 94/137/15 135/139/15
f 104/214/11 102/140/11 139/141/11
f 94/137/17 92/142/17 133/138/17
f 98/149/14 96/144/14 136/145/14
f 106/150/16 104/146/16 140/148/16
f 100/87/13 98/149/13 137/88/13
f 92/142/18 106/150/18 134/143/18
f 145/156/13 144/151/13 153/153/13
f 146/164/2 138/154/2 145/156/2
f 136/215/2 135/157/2 144/151/2
f 133/216/2 134/159/2 141/161/2
f 134/217/2 140/162/2 142/160/2
f 139/218/2 138/163/2 147/165/2
f 145/156/2 137/166/2 144/151/2
f 143/158/2 135/168/2 141/161/2
f 96/131/1 181/39/1 94/130/1
f 143/158/15 141/161/15 151/172/15
f 148/136/16 147/135/16 156/174/16
f 146/164/12 145/156/12 154/175/12
f 144/151/14 143/158/14 152/152/14
f 141/161/17 142/160/17 149/171/17
f 142/160/18 148/136/18 150/176/18
f 147/165/11 146/164/11 155/177/11
f 158/189/8 160/178/8 157/180/8
f 160/219/3 164/181/3 159/179/3
f 164/188/5 162/183/5 163/185/5
f 162/220/4 158/186/4 161/187/4
f 157/180/2 159/179/2 161/187/2
f 162/183/1 164/188/1 158/189/1
f 166/220/8 168/186/8 165/187/8
f 168/189/3 172/178/3 167/180/3
f 172/219/5 170/181/5 171/179/5
f 170/188/4 166/183/4 169/185/4
f 165/187/2 167/180/2 169/182/2
f 170/188/1 172/178/1 166/183/1
f 175/221/1 173/222/1 174/192/1
f 174/192/1 180/223/1 179/190/1
f 179/190/1 178/224/1 177/191/1
f 177/191/1 176/225/1 175/221/1
f 175/221/1 174/192/1 177/191/1
f 96/131/1 98/132/1 181/39/1
f 100/133/1 183/37/1 98/132/1
f 8/124/1 183/37/1 102/125/1
f 104/126/1 184/46/1 102/125/1
f 11/128/1 184/46/1 106/127/1
f 92/129/1 182/43/1 106/127/1
f 14/170/1 182/43/1 94/130/1

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB