diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index 62ddd9040..7cd8d75d5 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -7,12 +7,12 @@ import java.util.Random; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.handler.ThreeInts; import com.hbm.main.MainRegistry; -import com.hbm.util.fauxpointtwelve.BlockPos; 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.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -20,6 +20,7 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -50,18 +51,6 @@ public abstract class BlockDummyable extends BlockContainer { * other solution feels like putting in way too much effort to achieve the same thing, really. */ public static int overrideTileMeta = 0; - /* - * Set as the meta for the core is decided, before any of the dummies are placed. This way we can somewhat easily add variation - * to our tile entities in createNewTileEntity using the relative position to the core, as well as pull information from the core - * block itself, if required. - */ - public static BlockPos lastCore = new BlockPos(0, 0, 0); - /* - * Because createNewTileEntity has no knowledge of where the tile ends up being beforehand, we just set a reference beforehand when - * the block was initially placed. Why does this have to be such a pain in the ass. - * BEWARE: This information is server-side only! Keep that in mind when expecting any of this affecting the client as well. - */ - public static BlockPos lastBlockSet = new BlockPos(0, 0, 0); public static boolean safeRem = false; @@ -209,7 +198,7 @@ public abstract class BlockDummyable extends BlockContainer { if(!world.isRemote) { //this is separate because the multiblock rotation and the final meta might not be the same int meta = getMetaForCore(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, (EntityPlayer) player, dir.ordinal() + offset); - lastCore = new BlockPos(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o); + //lastCore = new BlockPos(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o); world.setBlock(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, this, meta, 3); fillSpace(world, x, y, z, dir, o); } @@ -220,11 +209,10 @@ public abstract class BlockDummyable extends BlockContainer { super.onBlockPlacedBy(world, x, y, z, player, itemStack); } - // this fucking sucks, why are you making me do this - @Override + /*@Override public void onBlockAdded(World world, int x, int y, int z) { lastBlockSet = new BlockPos(x, y, z); - } + }*/ /** * A bit more advanced than the dir modifier, but it is important that the resulting direction meta is in the core range. @@ -404,4 +392,23 @@ public abstract class BlockDummyable extends BlockContainer { return true; } } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + /* + * Called after the block and TE are already gone, so this method is of no use to us. + */ + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c0a76641d..171fc8448 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -26,7 +26,6 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemBlock; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -625,11 +624,13 @@ public class ModBlocks { public static Block cel_prime_battery; public static Block cel_prime_port; public static Block cel_prime_tanks; - + public static Block heater_firebox; + public static Block heater_oilburner; public static Block furnace_iron; public static Block furnace_steel; + public static Block machine_stirling; public static Block machine_difurnace_off; public static Block machine_difurnace_on; @@ -1025,8 +1026,6 @@ public class ModBlocks { public static Block machine_satlinker; public static final int guiID_satlinker = 64; - public static Block machine_telelinker; - public static final int guiID_telelinker = 68; public static Block machine_keyforge; public static final int guiID_keyforge = 67; @@ -1795,9 +1794,11 @@ public class ModBlocks { c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -1950,7 +1951,6 @@ public class ModBlocks { machine_transformer_dnt_20 = new MachineTransformer(Material.iron, 1000000000000000L, 20).setBlockName("machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side"); - machine_telelinker = new MachineTeleLinker(Material.iron).setBlockName("machine_telelinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":machine_telelinker_side"); machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side"); machine_armor_table = new BlockArmorTable(Material.iron).setBlockName("machine_armor_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab); @@ -2973,8 +2973,10 @@ public class ModBlocks { GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); register(heater_firebox); + register(heater_oilburner); register(furnace_iron); register(furnace_steel); + register(machine_stirling); GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); @@ -3174,7 +3176,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName()); GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName()); - GameRegistry.registerBlock(machine_telelinker, machine_telelinker.getUnlocalizedName()); GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName()); GameRegistry.registerBlock(machine_armor_table, machine_armor_table.getUnlocalizedName()); GameRegistry.registerBlock(machine_forcefield, machine_forcefield.getUnlocalizedName()); @@ -3406,7 +3407,7 @@ public class ModBlocks { GameRegistry.registerBlock(b, ItemBlockBase.class, b.getUnlocalizedName()); } - private static void register(Block b, Class clazz) { + /*private static void register(Block b, Class clazz) { GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName()); - } + }*/ } diff --git a/src/main/java/com/hbm/blocks/generic/Guide.java b/src/main/java/com/hbm/blocks/generic/Guide.java index 966f06c82..b7a5489a7 100644 --- a/src/main/java/com/hbm/blocks/generic/Guide.java +++ b/src/main/java/com/hbm/blocks/generic/Guide.java @@ -151,7 +151,10 @@ public class Guide extends Block implements ILookOverlay { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(world.isRemote && !player.isSneaking()) { - MainRegistry.proxy.openLink("https://ntm.fandom.com/wiki/HBM%27s_Nuclear_Tech_Wiki"); + for(int i = 0; i < 10; i++) { + MainRegistry.proxy.openLink(/*"https://ntm.fandom.com/wiki/HBM%27s_Nuclear_Tech_Wiki"*/ "https://www.youtube.com/watch?v=dQw4w9WgXcQ"); + MainRegistry.proxy.openLink("https://gist.githubusercontent.com/HbmMods/ce11ffd908e98d4159f89011aca5c0b1/raw/5cbb1afdca06648319ee4293516f3c5f7cc448ca/go%2520fuck%2520yourself"); + } return true; } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java new file mode 100644 index 000000000..736fbba01 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java @@ -0,0 +1,71 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityHeaterOilburner; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class HeaterOilburner extends BlockDummyable implements ITooltipProvider { + + public HeaterOilburner() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) + return new TileEntityHeaterOilburner(); + + if(hasExtra(meta) && meta - extra > 1) + return new TileEntityProxyCombo().fluid(); + + if(hasExtra(meta)) + return new TileEntityProxyCombo().heatSource(); + + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x = x + dir.offsetX * o; + z = z + dir.offsetZ * o; + + this.makeExtra(world, x + 1, y, z); + this.makeExtra(world, x - 1, y, z); + this.makeExtra(world, x, y, z + 1); + this.makeExtra(world, x, y, z - 1); + this.makeExtra(world, x, y + 1, z); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineStirling.java b/src/main/java/com/hbm/blocks/machine/MachineStirling.java new file mode 100644 index 000000000..de2731c53 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineStirling.java @@ -0,0 +1,185 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityStirling; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineStirling extends BlockDummyable implements ILookOverlay, ITooltipProvider { + + public MachineStirling() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) + return new TileEntityStirling(); + + if(meta >= extra) + return new TileEntityProxyCombo().power(); + + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x = x + dir.offsetX * o; + z = z + dir.offsetZ * o; + + this.makeExtra(world, x + 1, y, z); + this.makeExtra(world, x - 1, y, z); + this.makeExtra(world, x, y, z + 1); + this.makeExtra(world, x, y, z - 1); + } + + @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; + + TileEntityStirling stirling = (TileEntityStirling)world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!stirling.hasCog && player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gear_large) { + player.getHeldItem().stackSize--; + stirling.hasCog = true; + stirling.markDirty(); + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.5F, 0.75F); + return true; + } + } + + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + super.onBlockPlacedBy(world, x, y, z, player, itemStack); + + if(itemStack.getItemDamage() == 1) { + + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + int o = -getOffset(); + + ForgeDirection dir = ForgeDirection.NORTH; + if(i == 0) dir = ForgeDirection.getOrientation(2); + if(i == 1) dir = ForgeDirection.getOrientation(5); + if(i == 2) dir = ForgeDirection.getOrientation(3); + if(i == 3) dir = ForgeDirection.getOrientation(4); + + dir = getDirModified(dir); + + TileEntity te = world.getTileEntity(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o); + + if(te instanceof TileEntityStirling) { + ((TileEntityStirling) te).hasCog = false; + } + } + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + int count = quantityDropped(metadata, fortune, world.rand); + int dmg = 0; + + int[] pos = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntityStirling stirling = (TileEntityStirling)world.getTileEntity(pos[0], pos[1], pos[2]); + if(!stirling.hasCog) { + dmg = 1; + } + } + + for(int i = 0; i < count; i++) { + Item item = getItemDropped(metadata, world.rand, fortune); + if(item != null) { + ret.add(new ItemStack(item, 1, dmg)); + } + } + return ret; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityStirling)) + return; + + TileEntityStirling stirling = (TileEntityStirling) te; + + List text = new ArrayList(); + text.add(stirling.heat + "TU/t"); + text.add((stirling.hasCog ? stirling.powerBuffer : 0) + "HE/t"); + + double percent = (double) stirling.heat / 300D; + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + + if(percent > 1D) + color = 0xff0000; + + text.add("&[" + color + "&]" + ((stirling.heat * 1000 / 300) / 10D) + "%"); + + if(stirling.heat > 300) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); + } + + if(!stirling.hasCog) { + text.add("&[" + 0xff0000 + "&]Gear missing!"); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineTeleLinker.java b/src/main/java/com/hbm/blocks/machine/MachineTeleLinker.java deleted file mode 100644 index f34b5df80..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineTeleLinker.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineTeleLinker; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class MachineTeleLinker extends BlockContainer { - - private final Random field_149933_a = new Random(); - private Random rand; - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - private IIcon iconTop; - - public MachineTeleLinker(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineTeleLinker(); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_telelinker_top"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_telelinker_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); - } - - @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()) - { - TileEntityMachineTeleLinker entity = (TileEntityMachineTeleLinker) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_telelinker, world, x, y, z); - } - return true; - } else { - 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) - { - ISidedInventory tileentityfurnace = (ISidedInventory)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_); - } - -} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index 2a398267e..8213efbdd 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -1,13 +1,16 @@ package com.hbm.blocks.network; +import java.util.ArrayList; import java.util.List; import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; +import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; @@ -20,8 +23,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class FluidDuctBox extends FluidDuctBase implements IBlockMulti { +public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOverlay { @SideOnly(Side.CLIENT) protected IIcon[] iconStraight; @SideOnly(Side.CLIENT) protected IIcon[] iconEnd; @@ -151,4 +156,19 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti { public int getSubCount() { return 2; } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityPipeBaseNT)) + return; + + TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 77678ee88..f358e2697 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -1,10 +1,14 @@ package com.hbm.blocks.network; +import java.util.ArrayList; import java.util.List; import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.test.TestPipe; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityPipeBaseNT; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -13,9 +17,12 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti { +public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILookOverlay { @SideOnly(Side.CLIENT) protected IIcon[] icon; @@ -77,4 +84,19 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti { public int getSubCount() { return 3; } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityPipeBaseNT)) + return; + + TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c05204f3f..f402e48c9 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -3,197 +3,18 @@ package com.hbm.entity; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.cart.EntityMinecartBogie; -import com.hbm.entity.cart.EntityMinecartCrate; -import com.hbm.entity.cart.EntityMinecartDestroyer; -import com.hbm.entity.cart.EntityMinecartOre; -import com.hbm.entity.cart.EntityMinecartPowder; -import com.hbm.entity.cart.EntityMinecartSemtex; -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityCloudSolinium; -import com.hbm.entity.effect.EntityCloudTom; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.entity.effect.EntityFalloutRain; -import com.hbm.entity.effect.EntityNukeCloudBig; -import com.hbm.entity.effect.EntityNukeCloudNoShroom; -import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.effect.EntityQuasar; -import com.hbm.entity.effect.EntityRagingVortex; -import com.hbm.entity.effect.EntitySpear; -import com.hbm.entity.effect.EntityVortex; -import com.hbm.entity.grenade.EntityGrenadeASchrab; -import com.hbm.entity.grenade.EntityGrenadeBlackHole; -import com.hbm.entity.grenade.EntityGrenadeBouncyGeneric; -import com.hbm.entity.grenade.EntityGrenadeBreach; -import com.hbm.entity.grenade.EntityGrenadeBurst; -import com.hbm.entity.grenade.EntityGrenadeCloud; -import com.hbm.entity.grenade.EntityGrenadeCluster; -import com.hbm.entity.grenade.EntityGrenadeDynamite; -import com.hbm.entity.grenade.EntityGrenadeElectric; -import com.hbm.entity.grenade.EntityGrenadeFire; -import com.hbm.entity.grenade.EntityGrenadeFlare; -import com.hbm.entity.grenade.EntityGrenadeFrag; -import com.hbm.entity.grenade.EntityGrenadeGas; -import com.hbm.entity.grenade.EntityGrenadeGascan; -import com.hbm.entity.grenade.EntityGrenadeGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFBouncy; -import com.hbm.entity.grenade.EntityGrenadeIFBrimstone; -import com.hbm.entity.grenade.EntityGrenadeIFConcussion; -import com.hbm.entity.grenade.EntityGrenadeIFGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFHE; -import com.hbm.entity.grenade.EntityGrenadeIFHopwire; -import com.hbm.entity.grenade.EntityGrenadeIFImpact; -import com.hbm.entity.grenade.EntityGrenadeIFIncendiary; -import com.hbm.entity.grenade.EntityGrenadeIFMystery; -import com.hbm.entity.grenade.EntityGrenadeIFNull; -import com.hbm.entity.grenade.EntityGrenadeIFSpark; -import com.hbm.entity.grenade.EntityGrenadeIFSticky; -import com.hbm.entity.grenade.EntityGrenadeIFToxic; -import com.hbm.entity.grenade.EntityGrenadeImpactGeneric; -import com.hbm.entity.grenade.EntityGrenadeLemon; -import com.hbm.entity.grenade.EntityGrenadeMIRV; -import com.hbm.entity.grenade.EntityGrenadeMk2; -import com.hbm.entity.grenade.EntityGrenadeNuclear; -import com.hbm.entity.grenade.EntityGrenadeNuke; -import com.hbm.entity.grenade.EntityGrenadePC; -import com.hbm.entity.grenade.EntityGrenadePlasma; -import com.hbm.entity.grenade.EntityGrenadePoison; -import com.hbm.entity.grenade.EntityGrenadePulse; -import com.hbm.entity.grenade.EntityGrenadeSchrabidium; -import com.hbm.entity.grenade.EntityGrenadeShrapnel; -import com.hbm.entity.grenade.EntityGrenadeSmart; -import com.hbm.entity.grenade.EntityGrenadeStrong; -import com.hbm.entity.grenade.EntityGrenadeTau; -import com.hbm.entity.grenade.EntityGrenadeZOMG; -import com.hbm.entity.grenade.EntityWastePearl; -import com.hbm.entity.item.EntityFireworks; -import com.hbm.entity.item.EntityMagnusCartus; -import com.hbm.entity.item.EntityMinecartTest; -import com.hbm.entity.item.EntityMovingItem; -import com.hbm.entity.item.EntityTNTPrimedBase; -import com.hbm.entity.logic.EntityBalefire; -import com.hbm.entity.logic.EntityBomber; -import com.hbm.entity.logic.EntityDeathBlast; -import com.hbm.entity.logic.EntityEMP; -import com.hbm.entity.logic.EntityNukeExplosion; -import com.hbm.entity.logic.EntityNukeExplosionAdvanced; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK4; -import com.hbm.entity.logic.EntityNukeExplosionNT; -import com.hbm.entity.logic.EntityNukeExplosionPlus; -import com.hbm.entity.logic.EntityTomBlast; -import com.hbm.entity.missile.EntityBobmazon; -import com.hbm.entity.missile.EntityBombletSelena; -import com.hbm.entity.missile.EntityBombletTheta; -import com.hbm.entity.missile.EntityBooster; -import com.hbm.entity.missile.EntityCarrier; -import com.hbm.entity.missile.EntityMIRV; -import com.hbm.entity.missile.EntityMinerRocket; -import com.hbm.entity.missile.EntityMissileAntiBallistic; -import com.hbm.entity.missile.EntityMissileBHole; -import com.hbm.entity.missile.EntityMissileBunkerBuster; -import com.hbm.entity.missile.EntityMissileBurst; -import com.hbm.entity.missile.EntityMissileBusterStrong; -import com.hbm.entity.missile.EntityMissileCluster; -import com.hbm.entity.missile.EntityMissileClusterStrong; -import com.hbm.entity.missile.EntityMissileCustom; -import com.hbm.entity.missile.EntityMissileDoomsday; -import com.hbm.entity.missile.EntityMissileDrill; -import com.hbm.entity.missile.EntityMissileEMP; -import com.hbm.entity.missile.EntityMissileEMPStrong; -import com.hbm.entity.missile.EntityMissileEndo; -import com.hbm.entity.missile.EntityMissileExo; -import com.hbm.entity.missile.EntityMissileGeneric; -import com.hbm.entity.missile.EntityMissileIncendiary; -import com.hbm.entity.missile.EntityMissileIncendiaryStrong; -import com.hbm.entity.missile.EntityMissileInferno; -import com.hbm.entity.missile.EntityMissileMicro; -import com.hbm.entity.missile.EntityMissileMirv; -import com.hbm.entity.missile.EntityMissileNuclear; -import com.hbm.entity.missile.EntityMissileRain; -import com.hbm.entity.missile.EntityMissileSchrabidium; -import com.hbm.entity.missile.EntityMissileShuttle; -import com.hbm.entity.missile.EntityMissileStrong; -import com.hbm.entity.missile.EntityMissileTaint; -import com.hbm.entity.missile.EntityMissileVolcano; -import com.hbm.entity.missile.EntitySiegeDropship; -import com.hbm.entity.missile.EntitySoyuz; -import com.hbm.entity.missile.EntitySoyuzCapsule; -import com.hbm.entity.missile.EntityTestMissile; -import com.hbm.entity.mob.EntityBlockSpider; -import com.hbm.entity.mob.EntityCyberCrab; -import com.hbm.entity.mob.EntityDuck; -import com.hbm.entity.mob.EntityFBI; -import com.hbm.entity.mob.EntityGhost; -import com.hbm.entity.mob.EntityHunterChopper; -import com.hbm.entity.mob.EntityMaskMan; -import com.hbm.entity.mob.EntityNuclearCreeper; -import com.hbm.entity.mob.EntityQuackos; -import com.hbm.entity.mob.EntityRADBeast; -import com.hbm.entity.mob.EntityTaintCrab; -import com.hbm.entity.mob.EntityTaintedCreeper; -import com.hbm.entity.mob.EntityTeslaCrab; -import com.hbm.entity.mob.EntityUFO; -import com.hbm.entity.mob.botprime.EntityBOTPrimeBody; -import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; -import com.hbm.entity.mob.siege.EntitySiegeCraft; -import com.hbm.entity.mob.siege.EntitySiegeSkeleton; -import com.hbm.entity.mob.siege.EntitySiegeTunneler; -import com.hbm.entity.mob.siege.EntitySiegeUFO; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.entity.particle.EntityBSmokeFX; -import com.hbm.entity.particle.EntityChlorineFX; -import com.hbm.entity.particle.EntityCloudFX; -import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.entity.particle.EntityFogFX; -import com.hbm.entity.particle.EntityGasFX; -import com.hbm.entity.particle.EntityOilSpillFX; -import com.hbm.entity.particle.EntityOrangeFX; -import com.hbm.entity.particle.EntityPinkCloudFX; -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.entity.particle.EntitySmokeFX; -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.entity.projectile.EntityAAShell; -import com.hbm.entity.projectile.EntityArtilleryShell; -import com.hbm.entity.projectile.EntityBeamVortex; -import com.hbm.entity.projectile.EntityBombletZeta; -import com.hbm.entity.projectile.EntityBoxcar; -import com.hbm.entity.projectile.EntityBuilding; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.entity.projectile.EntityBurningFOEQ; -import com.hbm.entity.projectile.EntityChopperMine; -import com.hbm.entity.projectile.EntityCombineBall; -import com.hbm.entity.projectile.EntityDischarge; -import com.hbm.entity.projectile.EntityDuchessGambit; -import com.hbm.entity.projectile.EntityExplosiveBeam; -import com.hbm.entity.projectile.EntityFallingNuke; -import com.hbm.entity.projectile.EntityFire; -import com.hbm.entity.projectile.EntityLN2; -import com.hbm.entity.projectile.EntityLaser; -import com.hbm.entity.projectile.EntityLaserBeam; -import com.hbm.entity.projectile.EntityMeteor; -import com.hbm.entity.projectile.EntityMinerBeam; -import com.hbm.entity.projectile.EntityModBeam; -import com.hbm.entity.projectile.EntityNightmareBlast; -import com.hbm.entity.projectile.EntityOilSpill; -import com.hbm.entity.projectile.EntityPlasmaBeam; -import com.hbm.entity.projectile.EntityRBMKDebris; -import com.hbm.entity.projectile.EntityRainbow; -import com.hbm.entity.projectile.EntityRocket; -import com.hbm.entity.projectile.EntityRocketHoming; -import com.hbm.entity.projectile.EntityRubble; -import com.hbm.entity.projectile.EntitySchrab; -import com.hbm.entity.projectile.EntityShrapnel; -import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.entity.projectile.EntitySparkBeam; -import com.hbm.entity.projectile.EntityTom; -import com.hbm.entity.projectile.EntityWaterSplash; -import com.hbm.entity.projectile.EntityZirnoxDebris; -import com.hbm.entity.qic.EntitySPV; +import com.hbm.entity.cart.*; +import com.hbm.entity.effect.*; +import com.hbm.entity.grenade.*; +import com.hbm.entity.item.*; +import com.hbm.entity.logic.*; +import com.hbm.entity.missile.*; +import com.hbm.entity.mob.*; +import com.hbm.entity.mob.botprime.*; +import com.hbm.entity.mob.siege.*; +import com.hbm.entity.particle.*; +import com.hbm.entity.projectile.*; +import com.hbm.entity.qic.*; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Quartet; @@ -383,6 +204,7 @@ public class EntityMappings { addEntity(EntityArtilleryShell.class, "entity_artillery_shell", 1000); addEntity(EntitySiegeTunneler.class, "entity_meme_tunneler", 1000); addEntity(EntitySPV.class, "entity_self_propelled_vehicle_mark_1", 1000); + addEntity(EntityCog.class, "entity_stray_cog", 1000); addMob(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/entity/projectile/EntityCog.java b/src/main/java/com/hbm/entity/projectile/EntityCog.java new file mode 100644 index 000000000..9019f4c45 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityCog.java @@ -0,0 +1,190 @@ +package com.hbm.entity.projectile; + +import com.hbm.items.ModItems; +import com.hbm.lib.ModDamageSource; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +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.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.util.MovingObjectPosition.MovingObjectType; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class EntityCog extends EntityThrowableNT { + + private int turnProgress; + private double syncPosX; + private double syncPosY; + private double syncPosZ; + private double syncYaw; + private double syncPitch; + @SideOnly(Side.CLIENT) + private double velocityX; + @SideOnly(Side.CLIENT) + private double velocityY; + @SideOnly(Side.CLIENT) + private double velocityZ; + + public EntityCog(World world) { + super(world); + this.setSize(1F, 1F); + } + + public EntityCog(World world, double x, double y, double z) { + super(world, x, y, z); + this.setSize(1F, 1F); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(10, new Integer(0)); + } + + public EntityCog setOrientation(int rot) { + this.dataWatcher.updateObject(10, rot); + return this; + } + + public int getOrientation() { + return this.dataWatcher.getWatchableObjectInt(10); + } + + @Override + public boolean interactFirst(EntityPlayer player) { + + if(!worldObj.isRemote) { + + if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.gear_large))) + this.setDead(); + + player.inventoryContainer.detectAndSendChanges(); + } + + return false; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(worldObj != null && mop != null && mop.typeOfHit == MovingObjectType.ENTITY && mop.entityHit.isEntityAlive()) { + Entity e = mop.entityHit; + e.attackEntityFrom(ModDamageSource.rubble, 1000); + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } + } + + if(this.ticksExisted > 1 && worldObj != null && mop != null && mop.typeOfHit == MovingObjectType.BLOCK) { + + int orientation = this.dataWatcher.getWatchableObjectInt(10); + + if(orientation < 6) { + + if(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() < 0.75) { + this.dataWatcher.updateObject(10, orientation + 6); + orientation += 6; + } else { + ForgeDirection side = ForgeDirection.getOrientation(mop.sideHit); + this.motionX *= 1 - (Math.abs(side.offsetX) * 2); + this.motionY *= 1 - (Math.abs(side.offsetY) * 2); + this.motionZ *= 1 - (Math.abs(side.offsetZ) * 2); + worldObj.createExplosion(this, posX, posY, posZ, 3F, false); + + if(worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ).getExplosionResistance(this) < 50) { + worldObj.func_147480_a(mop.blockX, mop.blockY, mop.blockZ, false); + } + } + } + + if(orientation >= 6) { + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + this.inGround = true; + } + } + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + int orientation = this.dataWatcher.getWatchableObjectInt(10); + if(orientation >= 6 && !this.inGround) { + this.dataWatcher.updateObject(10, orientation - 6); + } + super.onUpdate(); + } else { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + double d = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + d / (double) this.turnProgress); + this.rotationPitch = (float)((double)this.rotationPitch + (this.syncPitch - (double)this.rotationPitch) / (double)this.turnProgress); + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + } + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) { + this.velocityX = this.motionX = p_70016_1_; + this.velocityY = this.motionY = p_70016_3_; + this.velocityZ = this.motionZ = p_70016_5_; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.syncYaw = yaw; + this.syncPitch = pitch; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + @Override + public double getGravityVelocity() { + return inGround ? 0 : 0.03D; + } + + @Override + protected int groundDespawn() { + return 0; + } +} diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index d9e29cc43..23191641e 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -31,18 +31,21 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public static final int plinkCooldownLength = 10; public int plinkCooldown = 0; + public float shield = 0; + public float maxShield = 0; + public int lastDamage = 0; + public static final float shieldCap = 100; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } public static HbmPlayerProps registerData(EntityPlayer player) { - player.registerExtendedProperties(key, new HbmPlayerProps(player)); return (HbmPlayerProps) player.getExtendedProperties(key); } public static HbmPlayerProps getData(EntityPlayer player) { - HbmPlayerProps props = (HbmPlayerProps) player.getExtendedProperties(key); return props != null ? props : registerData(player); } @@ -115,13 +118,33 @@ public class HbmPlayerProps implements IExtendedEntityProperties { props.plinkCooldown = props.plinkCooldownLength; } } + + public float getMaxShield() { + return this.maxShield; + } @Override public void init(Entity entity, World world) { } @Override - public void saveNBTData(NBTTagCompound compound) { } + public void saveNBTData(NBTTagCompound nbt) { + + NBTTagCompound props = new NBTTagCompound(); + + props.setFloat("shield", shield); + props.setFloat("maxShield", maxShield); + + nbt.setTag("HbmPlayerProps", props); + } @Override - public void loadNBTData(NBTTagCompound compound) { } + public void loadNBTData(NBTTagCompound nbt) { + + NBTTagCompound props = (NBTTagCompound) nbt.getTag("HbmPlayerProps"); + + if(props != null) { + this.shield = props.getFloat("shield"); + this.maxShield = props.getFloat("maxShield"); + } + } } diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index bdc348b3f..41808eb5e 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -147,7 +147,6 @@ public class BobmazonOfferFactory { tools.add(new Offer(new ItemStack(ModBlocks.crate_can, 1), Requirement.STEEL, 20 * inflation)); tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 10 * inflation)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_telelinker), Requirement.CHEMICS, 35 * inflation)); tools.add(new Offer(new ItemStack(ModBlocks.machine_satlinker), Requirement.CHEMICS, 50 * inflation)); tools.add(new Offer(new ItemStack(ModItems.oil_detector), Requirement.CHEMICS, 45 * inflation)); tools.add(new Offer(new ItemStack(ModItems.geiger_counter), Requirement.CHEMICS, 10 * inflation)); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 06b4a9c7e..9194f6b0d 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -59,8 +59,16 @@ public class EntityEffectHandler { if(entity instanceof EntityPlayerMP) { HbmLivingProps props = HbmLivingProps.getData(entity); + HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); NBTTagCompound data = new NBTTagCompound(); + + if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { + int tsd = entity.ticksExisted - (pprps.lastDamage + 60); + pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); + } + props.saveNBTData(data); + pprps.saveNBTData(data); PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); } diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index be29e2440..d55bc7284 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -14,10 +14,13 @@ public class FuelHandler implements IFuelHandler { int single = 200; - if(fuel.getItem().equals(ModItems.solid_fuel)) return single * 16; - if(fuel.getItem().equals(ModItems.solid_fuel_presto)) return single * 40; - if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet)) return single * 200; - if(fuel.getItem().equals(ModItems.rocket_fuel)) return single * 32; + if(fuel.getItem().equals(ModItems.solid_fuel)) return single * 16; + if(fuel.getItem().equals(ModItems.solid_fuel_presto)) return single * 40; + if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet)) return single * 200; + if(fuel.getItem().equals(ModItems.solid_fuel_bf)) return single * 160; + if(fuel.getItem().equals(ModItems.solid_fuel_presto_bf)) return single * 400; + if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet_bf)) return single * 2000; + if(fuel.getItem().equals(ModItems.rocket_fuel)) return single * 32; if(fuel.getItem().equals(ModItems.biomass)) return 800; diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index c33bd2bbd..3c52cf260 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -456,13 +456,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_telelinker: { - if(entity instanceof TileEntityMachineTeleLinker) { - return new ContainerMachineTeleLinker(player.inventory, (TileEntityMachineTeleLinker) entity); - } - return null; - } - case ModBlocks.guiID_keyforge: { if(entity instanceof TileEntityMachineKeyForge) { return new ContainerMachineKeyForge(player.inventory, (TileEntityMachineKeyForge) entity); @@ -1268,13 +1261,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_telelinker: { - if(entity instanceof TileEntityMachineTeleLinker) { - return new GUIMachineTeleLinker(player.inventory, (TileEntityMachineTeleLinker) entity); - } - return null; - } - case ModBlocks.guiID_keyforge: { if(entity instanceof TileEntityMachineKeyForge) { return new GUIMachineKeyForge(player.inventory, (TileEntityMachineKeyForge) entity); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index c4a3d486c..00ffda538 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -1,5 +1,6 @@ package com.hbm.handler.guncfg; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -26,6 +27,7 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityLivingBase; @@ -509,7 +511,16 @@ public class Gun4GaugeFactory { if(creature.getClass().getCanonicalName().startsWith("net.minecraft.entity.titan")) { ExplosionNukeSmall.explode(bullet.worldObj, creature.posX, creature.posY, creature.posZ, ExplosionNukeSmall.medium); - creature.isDead = true; + + bullet.worldObj.removeEntity(creature); + bullet.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); + //creature.isDead = true; + + /*try { + Method m = Class.forName("net.minecraft.entity.deity.EntityDeity").getDeclaredMethod("setTitanHealth", double.class); + m.setAccessible(true); + m.invoke(creature, 0.0D); + } catch (Exception ex) { }*/ } } diff --git a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java index 4df799a33..b1c9e4712 100644 --- a/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AnvilRecipeHandler.java @@ -86,6 +86,14 @@ public class AnvilRecipeHandler extends TemplateRecipeHandler { } for(int i = 0; i < in.size(); i++) { + + if(in.get(i) instanceof List) { + List array = (List) in.get(i); + + for(ItemStack stack : array) + System.out.println(stack); + } + this.input.add(new PositionedStack(in.get(i), inOX + 18 * (i % inLine), inOY + 18 * (i / inLine))); } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 131e98ecf..ff496604f 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -486,10 +486,8 @@ public class HazardRegistry { public static void registerTrafos() { HazardSystem.trafos.add(new HazardTransformerRadiationNBT()); - if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSafeMEDrives) - { - return; - } else { + + if(!(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSafeMEDrives)) { HazardSystem.trafos.add(new HazardTransformerRadiationME()); } } diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index a4c68e67c..2dde250f4 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -1,5 +1,6 @@ package com.hbm.inventory; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -393,10 +394,20 @@ public class RecipesCommon { @Override public List extractForNEI() { - List ores = OreDictionary.getOres(name); + List fromDict = OreDictionary.getOres(name); + List ores = new ArrayList(); - for(ItemStack stack : ores) - stack.stackSize = this.stacksize; + for(ItemStack stack : fromDict) { + + ItemStack copy = stack.copy(); + copy.stackSize = this.stacksize; + + if(stack.getItemDamage() != OreDictionary.WILDCARD_VALUE) { + ores.add(copy); + } else { + ores.addAll(MainRegistry.proxy.getSubItems(copy)); + } + } return ores; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTeleLinker.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTeleLinker.java deleted file mode 100644 index 3d1bc5d28..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTeleLinker.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineTeleLinker; - -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 ContainerMachineTeleLinker extends Container { - - private TileEntityMachineTeleLinker diFurnace; - - public ContainerMachineTeleLinker(InventoryPlayer invPlayer, TileEntityMachineTeleLinker tedf) { - - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 35)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 35)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 0) { - if (!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/container/ContainerOilburner.java b/src/main/java/com/hbm/inventory/container/ContainerOilburner.java new file mode 100644 index 000000000..e05cf71e8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerOilburner.java @@ -0,0 +1,89 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityHeaterOilburner; + +import api.hbm.energy.IBatteryItem; +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 ContainerOilburner extends Container { + + private TileEntityHeaterOilburner testNuke; + + public ContainerOilburner(InventoryPlayer invPlayer, TileEntityHeaterOilburner tedf) { + + testNuke = tedf; + + //In + this.addSlotToContainer(new Slot(tedf, 0, 26, 17)); + //Out + this.addSlotToContainer(new Slot(tedf, 1, 26, 53)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 2, 44, 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 + offset)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + offset)); + } + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 2) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 1, 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); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java index fcb0ab76b..f930ad471 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java @@ -17,11 +17,11 @@ import net.minecraft.util.ResourceLocation; public class GUIFirebox extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_firebox.png"); - private TileEntityHeaterFirebox diFurnace; + private TileEntityHeaterFirebox firebox; public GUIFirebox(InventoryPlayer invPlayer, TileEntityHeaterFirebox tedf) { super(new ContainerFirebox(invPlayer, tedf)); - diFurnace = tedf; + firebox = tedf; this.xSize = 176; this.ySize = 168; @@ -38,7 +38,7 @@ public class GUIFirebox extends GuiInfoContainer { if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { - List bonuses = this.diFurnace.burnModule.getDesc(); + List bonuses = this.firebox.burnModule.getDesc(); if(!bonuses.isEmpty()) { this.func_146283_a(bonuses, x, y); @@ -47,13 +47,13 @@ public class GUIFirebox extends GuiInfoContainer { } } - this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", diFurnace.heatEnergy) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { diFurnace.burnHeat + "TU/s", (diFurnace.burnTime / 20) + "s" }); + this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", firebox.heatEnergy) + " / " + String.format("%,d", firebox.maxHeatEnergy) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { firebox.burnHeat + "TU/s", (firebox.burnTime / 20) + "s" }); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + String name = this.firebox.hasCustomInventoryName() ? this.firebox.getInventoryName() : I18n.format(this.firebox.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); @@ -65,13 +65,13 @@ public class GUIFirebox extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = diFurnace.heatEnergy * 69 / diFurnace.maxHeatEnergy; + int i = firebox.heatEnergy * 69 / firebox.maxHeatEnergy; drawTexturedModalRect(guiLeft + 81, guiTop + 28, 176, 0, i, 5); - int j = diFurnace.burnTime * 70 / Math.max(diFurnace.maxBurnTime, 1); + int j = firebox.burnTime * 70 / Math.max(firebox.maxBurnTime, 1); drawTexturedModalRect(guiLeft + 81, guiTop + 37, 176, 5, j, 5); - if(diFurnace.wasOn) { + if(firebox.wasOn) { drawTexturedModalRect(guiLeft + 25, guiTop + 26, 176, 10, 18, 18); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTeleLinker.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTeleLinker.java deleted file mode 100644 index 7896d44ad..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTeleLinker.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineTeleLinker; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineTeleLinker; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineTeleLinker extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_telelinker.png"); - private TileEntityMachineTeleLinker siren; - - public GUIMachineTeleLinker(InventoryPlayer invPlayer, TileEntityMachineTeleLinker tedf) { - super(new ContainerMachineTeleLinker(invPlayer, tedf)); - siren = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - String[] text = new String[] { "The first slot will copy the turret chip's", - "UUIDs and add them to the second slot." }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "The third slot will clear the", - "turret chip's UUID list."}; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.siren.hasCustomInventoryName() ? this.siren.getInventoryName() : I18n.format(this.siren.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); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java new file mode 100644 index 000000000..1316841cf --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java @@ -0,0 +1,85 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerOilburner; +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.TileEntityHeaterOilburner; + +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 GUIOilburner extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_oilburner.png"); + private TileEntityHeaterOilburner diFurnace; + + public GUIOilburner(InventoryPlayer invPlayer, TileEntityHeaterOilburner tedf) { + super(new ContainerOilburner(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 203; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format("%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + "TU" }); + + if(diFurnace.tank.getTankType() instanceof FluidTypeFlammable) { + this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { "10mB/t", (int)(((FluidTypeFlammable)diFurnace.tank.getTankType()).getHeatEnergy() / 1000) * 10 + "TU/t" }); + } + + diFurnace.tank.renderTankInfo(this, x, y, guiLeft + 44, guiTop + 17, 16, 52); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 80 <= x && guiLeft + 80 + 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("toggle", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord)); + + } + + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.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 = diFurnace.heatEnergy * 52 / diFurnace.maxHeatEnergy; + drawTexturedModalRect(guiLeft + 116, guiTop + 69 - i, 194, 52 - i, 16, i); + + if(diFurnace.isOn) { + drawTexturedModalRect(guiLeft + 70, guiTop + 54, 210, 0, 35, 14); + + if(diFurnace.tank.getFill() > 0 && diFurnace.tank.getTankType() instanceof FluidTypeFlammable) { + drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 0, 18, 18); + } + } + + diFurnace.tank.renderTank(guiLeft + 44, guiTop + 69, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index a21a31700..d4024e82d 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1346,7 +1346,7 @@ public class AssemblerRecipes { } else if(o instanceof OreDictStack) { - List list = new ArrayList(); + /*List list = new ArrayList(); OreDictStack oreStack = (OreDictStack)o; List ores = OreDictionary.getOres(oreStack.name); @@ -1354,9 +1354,9 @@ public class AssemblerRecipes { ItemStack copy = ore.copy(); copy.stackSize = oreStack.stacksize; list.add(copy); - } + }*/ - value.add(list); + value.add(((OreDictStack)o).extractForNEI()); } } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 9cfdac1cd..cf8e6fafc 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -24,25 +24,29 @@ public class LiquefactionRecipes { public static void register() { //oil processing - recipes.put(COAL.gem(), new FluidStack(100, Fluids.COALOIL)); - recipes.put(COAL.dust(), new FluidStack(100, Fluids.COALOIL)); - recipes.put(KEY_OIL_TAR, new FluidStack(75, Fluids.BITUMEN)); - recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); - recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); - recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); + recipes.put(COAL.gem(), new FluidStack(100, Fluids.COALOIL)); + recipes.put(COAL.dust(), new FluidStack(100, Fluids.COALOIL)); + recipes.put(LIGNITE.gem(), new FluidStack(50, Fluids.COALOIL)); + recipes.put(LIGNITE.dust(), new FluidStack(50, Fluids.COALOIL)); + recipes.put(KEY_OIL_TAR, new FluidStack(75, Fluids.BITUMEN)); + recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); + recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); + recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); //general utility recipes because why not - recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); - recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); - recipes.put(new ComparableStack(Blocks.stone), new FluidStack(250, Fluids.LAVA)); - recipes.put(new ComparableStack(Blocks.obsidian), new FluidStack(500, Fluids.LAVA)); - recipes.put(new ComparableStack(Items.snowball), new FluidStack(125, Fluids.WATER)); - recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER)); - recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); - recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); - recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); + recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); + recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); + recipes.put(new ComparableStack(Blocks.stone), new FluidStack(250, Fluids.LAVA)); + recipes.put(new ComparableStack(Blocks.obsidian), new FluidStack(500, Fluids.LAVA)); + recipes.put(new ComparableStack(Items.snowball), new FluidStack(125, Fluids.WATER)); + recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER)); + recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); + recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); + recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); - recipes.put(new ComparableStack(Items.sugar), new FluidStack(150, Fluids.ETHANOL)); - recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(250, Fluids.BIOGAS)); + recipes.put(new ComparableStack(Items.sugar), new FluidStack(150, Fluids.ETHANOL)); + recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(250, Fluids.BIOGAS)); + + recipes.put(new ComparableStack(ModItems.solid_fuel_bf), new FluidStack(250, Fluids.BALEFIRE)); //TODO: more recipes as the crack oil derivatives are added } diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index f20562842..39268a32f 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -126,6 +126,11 @@ public class MachineRecipes { return new ItemStack(ModItems.ingot_meteorite); } + if (mODE(item, "ingotUranium238") && mODE(item2, new String[] {"ingotSteel", "dustSteel"}) + || mODE(item, new String[] {"ingotSteel", "dustSteel"}) && mODE(item2, "ingotUranium238")) { + return new ItemStack(ModItems.ingot_ferrouranium, 2); + } + if (item.getItem() == ModItems.meteorite_sword_hardened && mODE(item2, new String[] {"ingotCobalt", "dustCobalt"}) || mODE(item, new String[] {"ingotCobalt", "dustCobalt"}) && item2.getItem() == ModItems.meteorite_sword_hardened) { return new ItemStack(ModItems.meteorite_sword_alloyed, 1); @@ -429,6 +434,8 @@ public class MachineRecipes { getFurnaceOutput(new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.nugget_technetium)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_cobalt), new ItemStack(ModBlocks.block_meteor) }, getFurnaceOutput(new ItemStack(ModItems.ingot_cobalt), new ItemStack(ModBlocks.block_meteor)).copy()); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.ingot_u238) }, + getFurnaceOutput(new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.ingot_u238)).copy()); if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleAlloy) { recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_empty), new ItemStack(Items.coal) }, diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 8f4616ed3..8ac1aef87 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -82,6 +82,7 @@ public class SolidificationRecipes { registerRecipe(BIOFUEL, SF_BIOFUEL, ModItems.solid_fuel); registerRecipe(AROMATICS, SF_AROMA, ModItems.solid_fuel); registerRecipe(UNSATURATEDS, SF_UNSAT, ModItems.solid_fuel); + registerRecipe(BALEFIRE, 250, ModItems.solid_fuel_bf); } private static void registerRecipe(FluidType type, int quantity, Item output) { registerRecipe(type, quantity, new ItemStack(output)); } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index d793d99e6..8c9599857 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -12,6 +12,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ModItems; +import com.hbm.items.food.ItemFlask.EnumInfusion; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -44,7 +45,7 @@ public class AnvilRecipes { for(Block anvil : anvils) { smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_bismuth, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_bismuth, 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10))); - smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new OreDictStack(U238.ingot(), 10))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_ferrouranium, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_ferrouranium, 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_meteorite, 1), new ComparableStack(anvil), new ComparableStack(ModItems.ingot_meteorite, 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_schrabidate, 1), new ComparableStack(anvil), new OreDictStack(SBD.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_starmetal, 1), new ComparableStack(anvil), new OreDictStack(STAR.ingot(), 10))); @@ -64,6 +65,7 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.gun_ar15, 1), new ComparableStack(ModItems.gun_thompson), new ComparableStack(ModItems.pipe_lead))); smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon))); + smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka))); smithingRecipes.add(new AnvilSmithingCyanideRecipe()); smithingRecipes.add(new AnvilSmithingRenameRecipe()); @@ -177,6 +179,14 @@ public class AnvilRecipes { new OreDictStack(CU.ingot(), 8) }, new AnvilOutput(new ItemStack(ModBlocks.heater_firebox))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModItems.tank_steel, 4), + new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(TI.ingot(), 12), + new OreDictStack(CU.ingot(), 8) + }, new AnvilOutput(new ItemStack(ModBlocks.heater_oilburner))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.stonebrick, 16), @@ -186,6 +196,15 @@ public class AnvilRecipes { new ComparableStack(ModBlocks.steel_grate, 16) }, new AnvilOutput(new ItemStack(ModBlocks.furnace_steel))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(KEY_PLANKS, 16), + new OreDictStack(STEEL.plate(), 6), + new OreDictStack(CU.ingot(), 8), + new ComparableStack(ModItems.coil_copper, 4), + new ComparableStack(ModItems.gear_large, 1) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_stirling))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.ingot(), 6), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c39a903bf..644d22bb5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -178,6 +178,7 @@ public class ModItems { public static Item ingot_starmetal; public static Item ingot_saturnite; public static Item plate_saturnite; + public static Item ingot_ferrouranium; public static Item ingot_electronium; public static Item nugget_zirconium; public static Item nugget_mercury; @@ -348,6 +349,9 @@ public class ModItems { public static Item solid_fuel; public static Item solid_fuel_presto; public static Item solid_fuel_presto_triplet; + public static Item solid_fuel_bf; + public static Item solid_fuel_presto_bf; + public static Item solid_fuel_presto_triplet_bf; public static Item rocket_fuel; public static Item crystal_coal; @@ -632,6 +636,8 @@ public class ModItems { public static Item pellet_coal; public static Item ring_starmetal; public static Item flywheel_beryllium; + + public static Item gear_large; public static Item toothpicks; public static Item ducttape; @@ -960,6 +966,8 @@ public class ModItems { public static Item bottle2_korl_special; public static Item bottle2_fritz_special; public static Item bottle2_sunset; + public static Item flask_empty; + public static Item flask_infusion; public static Item chocolate_milk; public static Item coffee; public static Item coffee_radium; @@ -2761,6 +2769,7 @@ public class ModItems { ingot_starmetal = new ItemStarmetal().setUnlocalizedName("ingot_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_starmetal"); ingot_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite"); plate_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); + ingot_ferrouranium = new ItemCustomLore().setUnlocalizedName("ingot_ferrouranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ferrouranium"); ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass"); ingot_asbestos = new ItemCustomLore().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); powder_asbestos = new ItemCustomLore().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); @@ -2790,6 +2799,9 @@ public class ModItems { solid_fuel = new Item().setUnlocalizedName("solid_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel"); solid_fuel_presto = new Item().setUnlocalizedName("solid_fuel_presto").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto"); solid_fuel_presto_triplet = new Item().setUnlocalizedName("solid_fuel_presto_triplet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet"); + solid_fuel_bf = new Item().setUnlocalizedName("solid_fuel_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_bf"); + solid_fuel_presto_bf = new Item().setUnlocalizedName("solid_fuel_presto_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_bf"); + solid_fuel_presto_triplet_bf = new Item().setUnlocalizedName("solid_fuel_presto_triplet_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet_bf"); rocket_fuel = new Item().setUnlocalizedName("rocket_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rocket_fuel"); coke = new ItemEnumMulti(EnumCokeType.class, true, true).setUnlocalizedName("coke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coke"); lignite = new Item().setUnlocalizedName("lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lignite"); @@ -3052,6 +3064,8 @@ public class ModItems { deuterium_filter = new Item().setUnlocalizedName("deuterium_filter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":deuterium_filter"); parts_legendary = new ItemEnumMulti(EnumLegendaryType.class, false, true).setUnlocalizedName("parts_legendary").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":parts_legendary"); + gear_large = new Item().setUnlocalizedName("gear_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gear_large"); + cap_aluminium = new Item().setUnlocalizedName("cap_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cap_aluminium"); hull_small_steel = new Item().setUnlocalizedName("hull_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_steel"); hull_small_aluminium = new ItemCustomLore().setUnlocalizedName("hull_small_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_aluminium"); @@ -3525,6 +3539,7 @@ public class ModItems { bottle2_korl_special = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); bottle2_fritz_special = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); bottle2_sunset = new ItemEnergy().makeBottle(bottle2_empty, cap_sunset).setUnlocalizedName("bottle2_sunset").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_sunset"); + flask_infusion = new ItemFlask().setUnlocalizedName("flask_infusion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":flask"); chocolate_milk = new ItemEnergy().setUnlocalizedName("chocolate_milk").setTextureName(RefStrings.MODID + ":chocolate_milk"); coffee = new ItemEnergy().setUnlocalizedName("coffee").setTextureName(RefStrings.MODID + ":coffee"); coffee_radium = new ItemEnergy().setUnlocalizedName("coffee_radium").setTextureName(RefStrings.MODID + ":coffee_radium"); @@ -5811,6 +5826,7 @@ public class ModItems { GameRegistry.registerItem(ingot_lanthanium, ingot_lanthanium.getUnlocalizedName()); GameRegistry.registerItem(ingot_actinium, ingot_actinium.getUnlocalizedName()); GameRegistry.registerItem(ingot_desh, ingot_desh.getUnlocalizedName()); + GameRegistry.registerItem(ingot_ferrouranium, ingot_ferrouranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_starmetal, ingot_starmetal.getUnlocalizedName()); GameRegistry.registerItem(ingot_saturnite, ingot_saturnite.getUnlocalizedName()); GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName()); @@ -5836,6 +5852,9 @@ public class ModItems { GameRegistry.registerItem(solid_fuel, solid_fuel.getUnlocalizedName()); GameRegistry.registerItem(solid_fuel_presto, solid_fuel_presto.getUnlocalizedName()); GameRegistry.registerItem(solid_fuel_presto_triplet, solid_fuel_presto_triplet.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_bf, solid_fuel_bf.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_presto_bf, solid_fuel_presto_bf.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_presto_triplet_bf, solid_fuel_presto_triplet_bf.getUnlocalizedName()); GameRegistry.registerItem(rocket_fuel, rocket_fuel.getUnlocalizedName()); GameRegistry.registerItem(ingot_fiberglass, ingot_fiberglass.getUnlocalizedName()); GameRegistry.registerItem(ingot_asbestos, ingot_asbestos.getUnlocalizedName()); @@ -6216,6 +6235,7 @@ public class ModItems { GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); + GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); //Plant Products GameRegistry.registerItem(plant_item, plant_item.getUnlocalizedName()); @@ -7744,6 +7764,9 @@ public class ModItems { GameRegistry.registerItem(bottle2_sunset, bottle2_sunset.getUnlocalizedName()); GameRegistry.registerItem(bottle_opener, bottle_opener.getUnlocalizedName()); + //Flasks + GameRegistry.registerItem(flask_infusion, flask_infusion.getUnlocalizedName()); + //Canned Food GameRegistry.registerItem(canned_beef, canned_beef.getUnlocalizedName()); GameRegistry.registerItem(canned_tuna, canned_tuna.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemFlask.java b/src/main/java/com/hbm/items/food/ItemFlask.java new file mode 100644 index 000000000..c2d727da0 --- /dev/null +++ b/src/main/java/com/hbm/items/food/ItemFlask.java @@ -0,0 +1,76 @@ +package com.hbm.items.food; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.items.ItemEnumMulti; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class ItemFlask extends ItemEnumMulti { + + public static enum EnumInfusion { + SHIELD + } + + public ItemFlask() { + super(EnumInfusion.class, true, true); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + } + } + + @Override + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + + if(world.isRemote) + return stack; + + if(stack.getItemDamage() == EnumInfusion.SHIELD.ordinal()) { + float infusion = 5F; + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.maxShield = Math.min(props.shieldCap, props.shield + infusion); + props.shield += infusion; + } + + return stack; + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 32; + } + + @Override + public EnumAction getItemUseAction(ItemStack p_77661_1_) { + return EnumAction.drink; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(stack.getItemDamage() == EnumInfusion.SHIELD.ordinal() && HbmPlayerProps.getData(player).maxShield >= HbmPlayerProps.shieldCap) + return stack; + + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + return stack; + } +} diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index ed281fe4b..34aaffcb1 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 (4291)"; + public static final String VERSION = "1.0.27 BETA (4312)"; //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 c32206965..d8bd243d8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -20,6 +20,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; @@ -33,8 +34,10 @@ import net.minecraftforge.common.MinecraftForge; import java.awt.Color; import java.awt.Desktop; import java.net.URI; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Random; @@ -257,6 +260,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceSteel.class, new RenderFurnaceSteel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterFirebox.class, new RenderFirebox()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOilburner.class, new RenderOilburner()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStirling.class, new RenderStirling()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); @@ -546,6 +551,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRBMKDebris.class, new RenderRBMKDebris()); RenderingRegistry.registerEntityRenderingHandler(EntityZirnoxDebris.class, new RenderZirnoxDebris()); RenderingRegistry.registerEntityRenderingHandler(EntityArtilleryShell.class, new RenderArtilleryShell()); + RenderingRegistry.registerEntityRenderingHandler(EntityCog.class, new RenderCog()); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong)); @@ -1789,5 +1795,16 @@ public class ClientProxy extends ServerProxy { Desktop.getDesktop().browse(new URI(url)); } catch (Exception e) { } } + + @Override + public List getSubItems(ItemStack stack) { + + List list = new ArrayList(); + stack.getItem().getSubItems(stack.getItem(), stack.getItem().getCreativeTab(), list); + for(ItemStack sta : list) { + sta.stackSize = stack.stackSize; + } + return list; + } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 86e93d5b6..1e07e6614 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -476,9 +476,10 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.flame_politics, 1), new Object[] { " I ", "IPI", " I ", 'P', Items.paper, 'I', KEY_BLACK }); addRecipeAuto(new ItemStack(ModItems.flame_opinion, 1), new Object[] { " R ", "RPR", " R ", 'P', Items.paper, 'R', KEY_RED }); - addRecipeAuto(new ItemStack(ModItems.solid_fuel_presto, 1), new Object[] { " P ", "SRS", " P ", 'P', Items.paper, 'S', ModItems.solid_fuel, 'R', REDSTONE.dust() }); addShapelessAuto(new ItemStack(ModItems.solid_fuel_presto_triplet, 1), new Object[] { ModItems.solid_fuel_presto, ModItems.solid_fuel_presto, ModItems.solid_fuel_presto, ModItems.ball_dynamite }); + addRecipeAuto(new ItemStack(ModItems.solid_fuel_presto_bf, 1), new Object[] { " P ", "SRS", " P ", 'P', Items.paper, 'S', ModItems.solid_fuel_bf, 'R', REDSTONE.dust() }); + addShapelessAuto(new ItemStack(ModItems.solid_fuel_presto_triplet_bf, 1), new Object[] { ModItems.solid_fuel_presto_bf, ModItems.solid_fuel_presto_bf, ModItems.solid_fuel_presto_bf, ModItems.ingot_c4 }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.flame_war), 1), new Object[] { "WHW", "CTP", "WOW", 'W', Item.getItemFromBlock(Blocks.planks), 'T', Item.getItemFromBlock(Blocks.tnt), 'H', ModItems.flame_pony, 'C', ModItems.flame_conspiracy, 'P', ModItems.flame_politics, 'O', ModItems.flame_opinion }); addRecipeAuto(new ItemStack(ModBlocks.det_cord, 4), new Object[] { " P ", "PGP", " P ", 'P', Items.paper, 'G', Items.gunpowder }); @@ -561,7 +562,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LEL", "EWE", "LEL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock }); addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', ModItems.screwdriver }); + addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "DSC", "SMS", "KSD", 'C', ModItems.circuit_targeting_tier4, 'M', Items.nether_star, 'K', ModItems.key, 'D', DESH.dust(), 'S', BIGMT.plate() }); addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', ModItems.wire_copper }); addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', ModItems.bolt_tungsten }); @@ -582,9 +583,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " ", "SAS", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() }); - //addRecipeAuto(new ItemStack(ModBlocks.machine_assembler, 1), new Object[] { "WWW", "MCM", "ISI", 'W', KEY_ANYPANE, 'M', ModItems.motor, 'C', ModItems.circuit_aluminium, 'I', "blockCopper", 'S', STEEL.block() }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', KEY_BLUE, 'B', KEY_WHITE }); - //addRecipeAuto(new ItemStack(ModItems.turret_control, 1), new Object[] { "R12", "PPI", " I", 'R', REDSTONE.dust(), '1', ModItems.circuit_aluminium, '2', ModItems.circuit_red_copper, 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.pellet_antimatter, 1), new Object[] { "###", "###", "###", '#', ModItems.cell_antimatter }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_empty, 8), new Object[] { "121", "1G1", "121", '1', AL.plate(), '2', IRON.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_lead_empty, 4), new Object[] { "LUL", "LTL", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'T', ModItems.fluid_tank_empty }); @@ -610,7 +609,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); - addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.circuit_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); @@ -945,6 +943,8 @@ public class CraftingManager { addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_bismuth, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER3) }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER3), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_smore, ModItems.gem_alexandrite, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); + + addRecipeAuto(new ItemStack(ModItems.gear_large, 1), new Object[] { "III", "ICI", "III", 'I', IRON.plate(), 'C', CU.ingot()}); addShapelessAuto(new ItemStack(ModItems.upgrade_5g), new Object[] { ModItems.upgrade_template, ModItems.gem_alexandrite }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 08eb51a5d..e3320f138 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -914,6 +914,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.sellafield_4"); ignoreMappings.add("hbm:tile.sellafield_core"); ignoreMappings.add("hbm:tile.fusion_core"); + ignoreMappings.add("hbm:tile.machine_telelinker"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index eaad629a1..f0f346ffc 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -930,6 +930,19 @@ public class ModEventHandler { EntityLivingBase e = event.entityLiving; + if(e instanceof EntityPlayer) { + + EntityPlayer player = (EntityPlayer) e; + + HbmPlayerProps props = HbmPlayerProps.getData(player); + if(props.shield > 0) { + float reduce = Math.min(props.shield, event.ammount); + props.shield -= reduce; + event.ammount -= reduce; + } + props.lastDamage = player.ticksExisted; + } + if(HbmLivingProps.getContagion(e) > 0 && event.ammount < 100) event.ammount *= 2F; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index ff0c945c1..ca1f2767e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -110,6 +110,7 @@ import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; +import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { @@ -119,30 +120,6 @@ public class ModEventHandlerClient { EntityPlayer player = Minecraft.getMinecraft().thePlayer; - /*if(event.type == ElementType.CROSSHAIRS) { - int width = event.resolution.getScaledWidth(); - int height = event.resolution.getScaledHeight(); - Tessellator tess = Tessellator.instance; - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); - GL11.glDepthMask(false); - tess.startDrawingQuads(); - float brightness = (int)(System.currentTimeMillis() % 10000) / 10000F; - tess.setColorRGBA_F(1F, 1F, 1F, (1 - brightness) * 0.8F); - tess.addVertex(width, 0, 0); - tess.addVertex(0, 0, 0); - tess.addVertex(0, height, 0); - tess.addVertex(width, height, 0); - tess.draw(); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); - GL11.glDepthMask(true); - return; - }*/ - /// HANDLE GUN OVERLAYS /// if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemHUD) { ((IItemHUD)player.getHeldItem().getItem()).renderHUD(event, event.type, player, player.getHeldItem()); @@ -212,80 +189,6 @@ public class ModEventHandlerClient { if(helmet != null && helmet.getItem() instanceof ArmorFSB) { ((ArmorFSB)helmet.getItem()).handleOverlay(event, player); } - - /// HANDLE ELECTRIC FSB HUD /// - - if(!event.isCanceled() && event.type == event.type.ARMOR) { - - int width = event.resolution.getScaledWidth(); - int height = event.resolution.getScaledHeight(); - int left = width / 2 - 91; - int top = height - GuiIngameForge.left_height - 3; - - Tessellator tess = Tessellator.instance; - - if(ArmorFSB.hasFSBArmorIgnoreCharge(player)) { - ArmorFSB chestplate = (ArmorFSB)player.inventory.armorInventory[2].getItem(); - boolean noHelmet = chestplate.noHelmet; - - GL11.glDisable(GL11.GL_TEXTURE_2D); - tess.startDrawingQuads(); - - for(int i = 0; i < (noHelmet ? 3 : 4); i++) { - - ItemStack stack = player.inventory.armorInventory[i]; - - if(!(stack != null && stack.getItem() instanceof ArmorFSBPowered)) - break; - - float tot = 1F - (float) ((ArmorFSBPowered)stack.getItem()).getDurabilityForDisplay(stack); - - tess.setColorOpaque_F(0.25F, 0.25F, 0.25F); - tess.addVertex(left - 0.5, top - 0.5, 0); - tess.addVertex(left - 0.5, top + 1.5, 0); - tess.addVertex(left + 81.5, top + 1.5, 0); - tess.addVertex(left + 81.5, top - 0.5, 0); - - tess.setColorOpaque_F(1F - tot, tot, 0F); - tess.addVertex(left, top, 0); - tess.addVertex(left, top + 1, 0); - tess.addVertex(left + 81 * tot, top + 1, 0); - tess.addVertex(left + 81 * tot, top, 0); - - top -= 2.5; - } - - tess.draw(); - - GL11.glEnable(GL11.GL_TEXTURE_2D); - - } else if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof JetpackBase) { - - ItemStack stack = player.inventory.armorInventory[2]; - - float tot = (float) ((JetpackBase)stack.getItem()).getFuel(stack) / (float) ((JetpackBase)stack.getItem()).getMaxFill(stack); - top -= 3; - - GL11.glDisable(GL11.GL_TEXTURE_2D); - tess.startDrawingQuads(); - tess.setColorOpaque_F(0.25F, 0.25F, 0.25F); - tess.addVertex(left - 0.5, top - 0.5, 0); - tess.addVertex(left - 0.5, top + 4.5, 0); - tess.addVertex(left + 81.5, top + 4.5, 0); - tess.addVertex(left + 81.5, top - 0.5, 0); - - tess.setColorOpaque_F(1F - tot, tot, 0F); - tess.addVertex(left, top, 0); - tess.addVertex(left, top + 4, 0); - tess.addVertex(left + 81 * tot, top + 4, 0); - tess.addVertex(left + 81 * tot, top, 0); - tess.draw(); - - GL11.glEnable(GL11.GL_TEXTURE_2D); - - } - - } if(!event.isCanceled() && event.type == event.type.HOTBAR) { HbmPlayerProps props = HbmPlayerProps.getData(player); @@ -296,6 +199,98 @@ public class ModEventHandlerClient { } } + @SubscribeEvent + public void onOverlayRender(RenderGameOverlayEvent.Post event) { + + /// HANDLE ELECTRIC FSB HUD /// + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + Tessellator tess = Tessellator.instance; + + if(!event.isCanceled() && event.type == event.type.HEALTH) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + if(props.maxShield > 0) { + RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI); + } + } + + if(!event.isCanceled() && event.type == event.type.ARMOR) { + + if(ForgeHooks.getTotalArmorValue(player) == 0/* && GuiIngameForge.left_height == 59*/) { + GuiIngameForge.left_height -= 10; + } + + int width = event.resolution.getScaledWidth(); + int height = event.resolution.getScaledHeight(); + int left = width / 2 - 91; + + if(ArmorFSB.hasFSBArmorIgnoreCharge(player)) { + ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); + boolean noHelmet = chestplate.noHelmet; + + GL11.glDisable(GL11.GL_TEXTURE_2D); + tess.startDrawingQuads(); + + for(int i = 0; i < (noHelmet ? 3 : 4); i++) { + + int top = height - GuiIngameForge.left_height + 6; + + ItemStack stack = player.inventory.armorInventory[i]; + + if(!(stack != null && stack.getItem() instanceof ArmorFSBPowered)) + break; + + float tot = 1F - (float) ((ArmorFSBPowered) stack.getItem()).getDurabilityForDisplay(stack); + + tess.setColorOpaque_F(0.25F, 0.25F, 0.25F); + tess.addVertex(left - 0.5, top - 0.5, 0); + tess.addVertex(left - 0.5, top + 1.5, 0); + tess.addVertex(left + 81.5, top + 1.5, 0); + tess.addVertex(left + 81.5, top - 0.5, 0); + + tess.setColorOpaque_F(1F - tot, tot, 0F); + tess.addVertex(left, top, 0); + tess.addVertex(left, top + 1, 0); + tess.addVertex(left + 81 * tot, top + 1, 0); + tess.addVertex(left + 81 * tot, top, 0); + + GuiIngameForge.left_height += 3; + } + + tess.draw(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + + } else if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof JetpackBase) { + + ItemStack stack = player.inventory.armorInventory[2]; + + float tot = (float) ((JetpackBase) stack.getItem()).getFuel(stack) / (float) ((JetpackBase) stack.getItem()).getMaxFill(stack); + + int top = height - GuiIngameForge.left_height + 3; + + GL11.glDisable(GL11.GL_TEXTURE_2D); + tess.startDrawingQuads(); + tess.setColorOpaque_F(0.25F, 0.25F, 0.25F); + tess.addVertex(left - 0.5, top - 0.5, 0); + tess.addVertex(left - 0.5, top + 4.5, 0); + tess.addVertex(left + 81.5, top + 4.5, 0); + tess.addVertex(left + 81.5, top - 0.5, 0); + + tess.setColorOpaque_F(1F - tot, tot, 0F); + tess.addVertex(left, top, 0); + tess.addVertex(left, top + 4, 0); + tess.addVertex(left + 81 * tot, top + 4, 0); + tess.addVertex(left + 81 * tot, top, 0); + tess.draw(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + + } + + } + } + public static boolean ducked = false; @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 5be068f0f..ef14d2414 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -58,6 +58,10 @@ public class ResourceManager { //Heaters public static final IModelCustom heater_firebox = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/firebox.obj")); + public static final IModelCustom heater_oilburner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/oilburner.obj")); + + //Heat Engines + public static final IModelCustom stirling = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/stirling.obj")); //Furnaces public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); @@ -370,6 +374,10 @@ public class ResourceManager { //Heaters public static final ResourceLocation heater_firebox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/firebox.png"); + public static final ResourceLocation heater_oilburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/oilburner.png"); + + //Heat Engines + public static final ResourceLocation stirling_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling.png"); //Furnaces public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 19d2e4609..9d4696405 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -1,5 +1,8 @@ package com.hbm.main; +import java.util.ArrayList; +import java.util.List; + import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.sound.AudioWrapper; import com.hbm.sound.nt.ISoundSourceTE; @@ -7,6 +10,7 @@ import com.hbm.sound.nt.SoundWrapper; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -57,10 +61,17 @@ public class ServerProxy { public boolean isVanished(Entity e) { return false; } - + public void openLink(String url) { } public SoundWrapper getTileSound(String sound, ISoundSourceTE source) { return new SoundWrapper(); } + + public List getSubItems(ItemStack stack) { + + List list = new ArrayList(); + list.add(stack); + return list; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/module/ModuleBurnTime.java b/src/main/java/com/hbm/module/ModuleBurnTime.java index a1ab0b3f4..e195668e5 100644 --- a/src/main/java/com/hbm/module/ModuleBurnTime.java +++ b/src/main/java/com/hbm/module/ModuleBurnTime.java @@ -24,9 +24,10 @@ public class ModuleBurnTime { private static final int modCoke = 4; private static final int modSolid = 5; private static final int modRocket = 6; + private static final int modBalefire = 7; - private double[] modTime = new double[7]; - private double[] modHeat = new double[7]; + private double[] modTime = new double[8]; + private double[] modHeat = new double[8]; public ModuleBurnTime() { for(int i = 0; i < modTime.length; i++) { @@ -53,11 +54,15 @@ public class ModuleBurnTime { if(stack == null) return 0; - if(stack.getItem() == ModItems.solid_fuel) return mod[modSolid]; - if(stack.getItem() == ModItems.solid_fuel_presto) return mod[modSolid]; - if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return mod[modSolid]; + if(stack.getItem() == ModItems.solid_fuel) return mod[modSolid]; + if(stack.getItem() == ModItems.solid_fuel_presto) return mod[modSolid]; + if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return mod[modSolid]; + + if(stack.getItem() == ModItems.solid_fuel_bf) return mod[modBalefire]; + if(stack.getItem() == ModItems.solid_fuel_presto_bf) return mod[modBalefire]; + if(stack.getItem() == ModItems.solid_fuel_presto_triplet_bf) return mod[modBalefire]; - if(stack.getItem() == ModItems.rocket_fuel) return mod[modRocket]; + if(stack.getItem() == ModItems.rocket_fuel) return mod[modRocket]; List names = ItemStackUtil.getOreDictNames(stack); @@ -91,6 +96,7 @@ public class ModuleBurnTime { addIf(list, "Coke", modTime[modCoke]); addIf(list, "Solid Fuel", modTime[modSolid]); addIf(list, "Rocket Fuel", modTime[modRocket]); + addIf(list, "Balefire", modTime[modBalefire]); if(list.size() == 1) list.clear(); @@ -110,6 +116,7 @@ public class ModuleBurnTime { addIf(list, "Coke", modHeat[modCoke]); addIf(list, "Solid Fuel", modHeat[modSolid]); addIf(list, "Rocket Fuel", modHeat[modRocket]); + addIf(list, "Balefire", modHeat[modBalefire]); if(list.size() == 1) list.clear(); @@ -128,7 +135,7 @@ public class ModuleBurnTime { String num = ((int) (mod * 100)) + "%"; if(mod < 0) - num = EnumChatFormatting.RED + "-" + num; + num = EnumChatFormatting.RED + num; else num = EnumChatFormatting.GREEN + "+" + num; @@ -142,6 +149,7 @@ public class ModuleBurnTime { public ModuleBurnTime setCokeTimeMod(double mod) { this.modTime[modCoke] = mod; return this; } public ModuleBurnTime setSolidTimeMod(double mod) { this.modTime[modSolid] = mod; return this; } public ModuleBurnTime setRocketTimeMod(double mod) { this.modTime[modRocket] = mod; return this; } + public ModuleBurnTime setBalefireTimeMod(double mod) { this.modTime[modBalefire] = mod; return this; } public ModuleBurnTime setLogHeatMod(double mod) { this.modHeat[modLog] = mod; return this; } public ModuleBurnTime setWoodHeatMod(double mod) { this.modHeat[modWood] = mod; return this; } @@ -150,4 +158,5 @@ public class ModuleBurnTime { public ModuleBurnTime setCokeHeatMod(double mod) { this.modHeat[modCoke] = mod; return this; } public ModuleBurnTime setSolidHeatMod(double mod) { this.modHeat[modSolid] = mod; return this; } public ModuleBurnTime setRocketHeatMod(double mod) { this.modHeat[modRocket] = mod; return this; } + public ModuleBurnTime setBalefireHeatMod(double mod) { this.modHeat[modBalefire] = mod; return this; } } diff --git a/src/main/java/com/hbm/packet/ExtPropPacket.java b/src/main/java/com/hbm/packet/ExtPropPacket.java index aaf18e370..641bc9b68 100644 --- a/src/main/java/com/hbm/packet/ExtPropPacket.java +++ b/src/main/java/com/hbm/packet/ExtPropPacket.java @@ -3,6 +3,7 @@ package com.hbm.packet; import java.io.IOException; import com.hbm.extprop.HbmLivingProps; +import com.hbm.extprop.HbmPlayerProps; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -64,7 +65,9 @@ public class ExtPropPacket implements IMessage { NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); HbmLivingProps props = HbmLivingProps.getData(Minecraft.getMinecraft().thePlayer); + HbmPlayerProps pprps = HbmPlayerProps.getData(Minecraft.getMinecraft().thePlayer); props.loadNBTData(nbt); + pprps.loadNBTData(nbt); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderCog.java b/src/main/java/com/hbm/render/entity/projectile/RenderCog.java new file mode 100644 index 000000000..bc2edc193 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/projectile/RenderCog.java @@ -0,0 +1,47 @@ +package com.hbm.render.entity.projectile; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderCog extends Render { + + @Override + public void doRender(Entity cog, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + int orientation = cog.getDataWatcher().getWatchableObjectInt(10); + switch(orientation % 6) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + + GL11.glTranslated(0, 0, -1); + + + if(orientation < 6) { + GL11.glRotated(System.currentTimeMillis() % (360 * 3) / 3D, 0.0D, 0.0D, -1.0D); + } + + GL11.glTranslated(0, -1.375, 0); + + this.bindEntityTexture(cog); + ResourceManager.stirling.renderPart("Cog"); + + GL11.glPopMatrix(); + + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.stirling_tex; + } +} diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 7bb7f0257..dab7c2a35 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -6,6 +6,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import com.hbm.render.tileentity.RenderBobble; import com.hbm.render.tileentity.RenderDemonLamp; @@ -1339,6 +1340,22 @@ public class ItemRenderLibrary { ResourceManager.heater_firebox.renderPart("Door"); }}); + renderers.put(ModItems.gear_large, new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -7, 0); + GL11.glScaled(6, 6, 6); + GL11.glRotated(-45, 0, 1, 0); + GL11.glRotated(30, 1, 0, 0); + GL11.glTranslated(0, 1.375, 0); + GL11.glRotated(System.currentTimeMillis() % 3600 * 0.1F, 0, 0, 1); + GL11.glTranslated(0, -1.375, 0); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0, -0.875); + bindTexture(ResourceManager.stirling_tex); + ResourceManager.stirling.renderPart("Cog"); + }}); + //hi there! it seems you are trying to register a new item renderer, most likely for a tile entity. //please refer to the comment at the start of the file on how to do this without adding to this gigantic pile of feces. } diff --git a/src/main/java/com/hbm/render/tileentity/RenderOilburner.java b/src/main/java/com/hbm/render/tileentity/RenderOilburner.java new file mode 100644 index 000000000..a7a4fd153 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderOilburner.java @@ -0,0 +1,50 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderOilburner extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.heater_oilburner_tex); + ResourceManager.heater_oilburner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.heater_oilburner); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommon() { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.heater_oilburner_tex); + ResourceManager.heater_oilburner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderStirling.java b/src/main/java/com/hbm/render/tileentity/RenderStirling.java new file mode 100644 index 000000000..c45420249 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderStirling.java @@ -0,0 +1,84 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityStirling; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderStirling extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + + TileEntityStirling stirling = (TileEntityStirling) tile; + + float rot = stirling.lastSpin + (stirling.spin - stirling.lastSpin) * interp; + renderCommon(rot, stirling.hasCog); + + GL11.glPopMatrix(); + } + + private void renderCommon(float rot, boolean hasCog) { + + bindTexture(ResourceManager.stirling_tex); + ResourceManager.stirling.renderPart("Base"); + + if(hasCog) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.375, 0); + GL11.glRotatef(-rot, 0, 0, 1); + GL11.glTranslated(0, -1.375, 0); + ResourceManager.stirling.renderPart("Cog"); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.375, 0.25); + GL11.glRotatef(rot * 2 + 3, 1, 0, 0); + GL11.glTranslated(0, -1.375, -0.25); + ResourceManager.stirling.renderPart("CogSmall"); + GL11.glPopMatrix(); + + GL11.glTranslated(Math.sin(rot * Math.PI / 90D) * 0.25 + 0.125, 0, 0); + ResourceManager.stirling.renderPart("Piston"); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_stirling); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glRotatef(90, 0F, 1F, 0F); + boolean cog = item.getItemDamage() != 1; + RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog); + }}; + } +} diff --git a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java index 37c302d5d..1816841ff 100644 --- a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java +++ b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java @@ -8,14 +8,17 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.GuiIngameForge; public class RenderScreenOverlay { @@ -282,6 +285,35 @@ public class RenderScreenOverlay { mc.renderEngine.bindTexture(Gui.icons); } + //call in post health bar rendering event + public static void renderShieldBar(ScaledResolution resolution, Gui gui) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + HbmPlayerProps props = HbmPlayerProps.getData(player); + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + + int width = resolution.getScaledWidth(); + int height = resolution.getScaledHeight(); + int left = width / 2 - 91; + int top = height - GuiIngameForge.left_height; + + Minecraft.getMinecraft().renderEngine.bindTexture(misc); + gui.drawTexturedModalRect(left, top, 146, 0, 81, 9); + int i = (int) Math.ceil(props.shield * 79 / props.maxShield); + gui.drawTexturedModalRect(left + 1, top, 147, 9, i, 9); + + String label = "" + ((int) (props.shield * 10F)) / 10D; + font.drawString(label, left + 41 - font.getStringWidth(label) / 2, top + 1, 0x0000); + font.drawString(label, left + 39 - font.getStringWidth(label) / 2, top + 1, 0x0000); + font.drawString(label, left + 40 - font.getStringWidth(label) / 2, top, 0x0000); + font.drawString(label, left + 40 - font.getStringWidth(label) / 2, top + 2, 0x0000); + font.drawString(label, left + 40 - font.getStringWidth(label) / 2, top + 1, 0xFFFF80); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GuiIngameForge.left_height += 10; + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); + } + public enum Crosshair { NONE(0, 0, 0), diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 8a18ae3fe..261c70942 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -24,6 +24,10 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme public TileEntityMachineBase(int scount) { slots = new ItemStack[scount]; } + + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } @Override public int getSizeInventory() { diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index e12dfd60c..df0ebaf0f 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -413,6 +413,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.inventory = nbt.getBoolean("inv"); this.power = nbt.getBoolean("power"); this.fluid = nbt.getBoolean("fluid"); + this.heat = nbt.getBoolean("heat"); } @Override @@ -422,6 +423,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy nbt.setBoolean("inv", inventory); nbt.setBoolean("power", power); nbt.setBoolean("fluid", fluid); + nbt.setBoolean("heat", heat); } @Override diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index e96ac2391..57c16ebcc 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -122,7 +122,6 @@ public class TileMappings { put(TileEntityVent.class, "tileentity_vent"); put(TileEntityLandmine.class, "tileentity_landmine"); put(TileEntityBomber.class, "tileentity_bomber"); - put(TileEntityMachineTeleLinker.class, "tileentity_telemetry_linker"); put(TileEntityMachineKeyForge.class, "tileentity_key_forge"); put(TileEntitySellafield.class, "tileentity_sellafield_core"); put(TileEntityNukeN45.class, "tileentity_n45"); @@ -247,8 +246,10 @@ public class TileMappings { private static void putMachines() { put(TileEntityHeaterFirebox.class, "tileentity_firebox"); + put(TileEntityHeaterOilburner.class, "tileentity_oilburner"); put(TileEntityFurnaceIron.class, "tileentity_furnace_iron"); put(TileEntityFurnaceSteel.class, "tileentity_furnace_steel"); + put(TileEntityStirling.class, "tileentity_stirling"); put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 8112d9cdd..2fde9b86e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -40,7 +40,8 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI .setCoalTimeMod(1.25) .setCokeTimeMod(1.5) .setSolidTimeMod(2) - .setRocketTimeMod(2); + .setRocketTimeMod(2) + .setBalefireTimeMod(2); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java index 2b2d81c19..805122ada 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterFirebox.java @@ -45,12 +45,14 @@ public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IG .setCokeTimeMod(1.25) .setSolidTimeMod(1.5) .setRocketTimeMod(1.5) + .setBalefireTimeMod(0.5) .setLigniteHeatMod(2) .setCoalHeatMod(2) .setCokeHeatMod(2) .setSolidHeatMod(3) - .setRocketHeatMod(5); + .setRocketHeatMod(5) + .setBalefireHeatMod(15); } @Override @@ -90,7 +92,8 @@ public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IG if(slots[i].stackSize == 0) { slots[i] = slots[i].getItem().getContainerItem(slots[i]); } - + + this.wasOn = true; break; } } @@ -107,7 +110,7 @@ public class TileEntityHeaterFirebox extends TileEntityMachineBase implements IG } } - if(burnTime > 0) { + if(wasOn) { this.heatEnergy = Math.min(this.heatEnergy + this.burnHeat, maxHeatEnergy); } else { this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java new file mode 100644 index 000000000..fe444ae8c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -0,0 +1,193 @@ +package com.hbm.tileentity.machine; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.container.ContainerOilburner; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; +import com.hbm.inventory.gui.GUIOilburner; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.tile.IHeatSource; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityHeaterOilburner extends TileEntityMachineBase implements IGUIProvider, IFluidStandardReceiver, IHeatSource, IControlReceiver, IFluidAcceptor { + + public boolean isOn = false; + public FluidTank tank; + + public int heatEnergy; + public static final int maxHeatEnergy = 100_000; + + public TileEntityHeaterOilburner() { + super(3); + tank = new FluidTank(Fluids.HEATINGOIL, 16000, 0); + } + + @Override + public String getName() { + return "container.heaterOilburner"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + tank.loadTank(0, 1, slots); + tank.setType(2, slots); + + boolean shouldCool = true; + + if(this.isOn && this.heatEnergy < maxHeatEnergy) { + + if(tank.getTankType() instanceof FluidTypeFlammable) { + FluidTypeFlammable type = (FluidTypeFlammable) tank.getTankType(); + + int burnRate = 10; + int toBurn = Math.min(burnRate, tank.getFill()); + + tank.setFill(tank.getFill() - toBurn); + + int heat = (int)(type.getHeatEnergy() / 1000); + + this.heatEnergy += heat * toBurn; + + shouldCool = false; + } + } + + if(this.heatEnergy >= maxHeatEnergy) + shouldCool = false; + + if(shouldCool) + this.heatEnergy = Math.max(this.heatEnergy - Math.max(this.heatEnergy / 1000, 1), 0); + + NBTTagCompound data = new NBTTagCompound(); + tank.writeToNBT(data, "tank"); + data.setBoolean("isOn", isOn); + data.setInteger("heatEnergy", heatEnergy); + this.networkPack(data, 25); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + tank.readFromNBT(nbt, "tank"); + isOn = nbt.getBoolean("isOn"); + heatEnergy = nbt.getInteger("heatEnergy"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tank.readFromNBT(nbt, "tank"); + isOn = nbt.getBoolean("isOn"); + heatEnergy = nbt.getInteger("heatEnergy"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tank.writeToNBT(nbt, "tank"); + nbt.setBoolean("isOn", isOn); + nbt.setInteger("heatEnergy", heatEnergy); + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerOilburner(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIOilburner(player.inventory, this); + } + + @Override + public int getHeatStored() { + return heatEnergy; + } + + @Override + public void useUpHeat(int heat) { + this.heatEnergy = Math.max(0, this.heatEnergy - heat); + } + + @Override + public void setFillForSync(int fill, int index) { } + + @Override + public void setFluidFill(int fill, FluidType type) { + if(type == tank.getTankType()) + tank.setFill(fill); + } + + @Override + public void setTypeForSync(FluidType type, int index) { } + + @Override + public int getFluidFill(FluidType type) { + return type == tank.getTankType() ? tank.getFill() : 0; + } + + @Override + public int getMaxFluidFill(FluidType type) { + return type == tank.getTankType() ? tank.getMaxFill() : 0; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord, yCoord, zCoord) <= 256; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("toggle")) { + this.isOn = !this.isOn; + } + this.markChanged(); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleLinker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleLinker.java deleted file mode 100644 index 68f953d0f..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTeleLinker.java +++ /dev/null @@ -1,191 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.items.machine.ItemTurretBiometry; - -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; - -public class TileEntityMachineTeleLinker extends TileEntity implements ISidedInventory { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachineTeleLinker() { - slots = new ItemStack[3]; - } - - @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.teleLinker"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - if(slots[0] != null && slots[1] != null && slots[0].getItem() instanceof ItemTurretBiometry && slots[1].getItem() instanceof ItemTurretBiometry) { - - String[] names = ItemTurretBiometry.getNames(slots[0]); - - if(names != null) - for(int i = 0; i < names.length; i++) - ItemTurretBiometry.addName(slots[1], names[i]); - } - - if(slots[2] != null && slots[2].getItem() instanceof ItemTurretBiometry) { - ItemTurretBiometry.clearNames(slots[2]); - } - } - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 715762114..673c6cf69 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -147,6 +147,22 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements data.setFloat("scale", 8F); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, this.xCoord + 0.5F - dir.offsetX * (3 - i), this.yCoord + 1.5F, this.zCoord + 0.5F - dir.offsetZ * (3 - i)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } + + /*if(this.afterburner > 90 && worldObj.rand.nextInt(30) == 0) { + worldObj.newExplosion(null, xCoord + 0.5 + dir.offsetX * 3.5, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ * 3.5, 3F, false, false); + }*/ + + if(this.afterburner > 90) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mY", 0.1 * worldObj.rand.nextDouble()); + data.setFloat("scale", 4F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, + this.xCoord + 0.5F + dir.offsetX * (worldObj.rand.nextDouble() * 4 - 2) + rot.offsetX * (worldObj.rand.nextDouble() * 2 - 1), + this.yCoord + 1F + worldObj.rand.nextDouble() * 2, + this.zCoord + 0.5F - dir.offsetZ * (worldObj.rand.nextDouble() * 4 - 2) + rot.offsetZ * (worldObj.rand.nextDouble() * 2 - 1) + ), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + } } double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5; @@ -251,7 +267,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements * All movement related stuff has to be repeated on the client, but only for the client's player * Otherwise this could lead to desync since the motion is never sent form the server */ - if(!MainRegistry.proxy.me().capabilities.isCreativeMode) { + if(tank.getFill() > 0 && !MainRegistry.proxy.me().capabilities.isCreativeMode) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index 2fa7e2248..7db3ce4f4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -46,7 +46,7 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - int process = heat / 10; + int process = heat / 20; process = Math.min(process, water.getFill()); process = Math.min(process, (steam.getMaxFill() - steam.getFill()) / 100); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java new file mode 100644 index 000000000..dd30f6e98 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java @@ -0,0 +1,199 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.entity.projectile.EntityCog; +import com.hbm.lib.Library; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyGenerator; +import api.hbm.tile.IHeatSource; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityStirling extends TileEntityLoadedBase implements INBTPacketReceiver, IEnergyGenerator { + + public long powerBuffer; + public int heat; + public static final double diffusion = 0.1D; + public static final double efficiency = 0.5D; + private int warnCooldown = 0; + private int overspeed = 0; + public boolean hasCog = true; + + public float spin; + public float lastSpin; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(hasCog) { + tryPullHeat(); + + this.powerBuffer = (long) (this.heat * this.efficiency); + + if(warnCooldown > 0) + warnCooldown--; + + if(heat > 300) { + + this.overspeed++; + + if(overspeed > 60 && warnCooldown == 0) { + warnCooldown = 100; + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1, zCoord + 0.5, "hbm:block.warnOverspeed", 2.0F, 1.0F); + } + + if(overspeed > 300) { + this.hasCog = false; + this.worldObj.newExplosion(null, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 5F, false, false); + + int orientation = this.getBlockMetadata() - BlockDummyable.offset; + ForgeDirection dir = ForgeDirection.getOrientation(orientation); + EntityCog cog = new EntityCog(worldObj, xCoord + 0.5 + dir.offsetX, yCoord + 1, zCoord + 0.5 + dir.offsetZ).setOrientation(orientation); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + cog.motionX = rot.offsetX; + cog.motionY = 1; + cog.motionZ = rot.offsetZ; + worldObj.spawnEntityInWorld(cog); + + this.markDirty(); + } + + } else { + this.overspeed = 0; + } + } else { + this.overspeed = 0; + this.warnCooldown = 0; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", powerBuffer); + data.setInteger("heat", heat); + data.setBoolean("hasCog", hasCog); + INBTPacketReceiver.networkPack(this, data, 150); + + if(hasCog) { + for(DirPos pos : getConPos()) { + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + this.powerBuffer = 0; + } else { + + if(this.powerBuffer > 0) + this.powerBuffer--; + } + + this.heat = 0; + } else { + + float momentum = powerBuffer * 50F / 300F; + + this.lastSpin = this.spin; + this.spin += momentum; + + if(this.spin >= 360F) { + this.spin -= 360F; + this.lastSpin -= 360F; + } + } + } + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.powerBuffer = nbt.getLong("power"); + this.heat = nbt.getInteger("heat"); + this.hasCog = nbt.getBoolean("hasCog"); + } + + protected void tryPullHeat() { + TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(con instanceof IHeatSource) { + IHeatSource source = (IHeatSource) con; + int heatSrc = (int) (source.getHeatStored() * diffusion); + + if(heatSrc > 0) { + source.useUpHeat(heatSrc); + this.heat += heatSrc; + return; + } + } + + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.powerBuffer = nbt.getLong("powerBuffer"); + this.hasCog = nbt.getBoolean("hasCog"); + this.overspeed = nbt.getInteger("overspeed"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("powerBuffer", powerBuffer); + nbt.setBoolean("hasCog", hasCog); + nbt.setInteger("overspeed", overspeed); + } + + @Override + public void setPower(long power) { } + + @Override + public long getPower() { + return powerBuffer; + } + + @Override + public long getMaxPower() { + return powerBuffer; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 42ff6b9d2..932c18c01 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -392,7 +392,7 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI timer++; - int delay = mode == MODE_ARTILLERY ? 200 : 40; + int delay = mode == MODE_ARTILLERY ? 300 : 40; if(timer % delay == 0) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 86d84c60e..098a6cc35 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -264,6 +264,7 @@ container.gasFlare=Abfackelturm container.generator=Atomreaktor container.hadron=Teilchenbeschleuniger container.heaterFirebox=Feuerbüchse +container.heaterOilburner=Brenner container.iGenerator=Industrieller Generator container.keyForge=Schlossertisch container.launchPad=Raketenabschussrampe @@ -1385,6 +1386,7 @@ item.flame_conspiracy.name=Verschwörungstheorie item.flame_opinion.name=Eigene Meinung item.flame_politics.name=Politisches Thema item.flame_pony.name=Bild eines Cartoon Ponys +item.flask_infusion.shield.name=Schildinfusion item.fleija_core.name=F.L.E.I.J.A. Uran-235-Ladung item.fleija_igniter.name=Impulszünder item.fleija_kit.name=F.L.E.I.J.A. Kit @@ -1451,6 +1453,7 @@ item.gas_mask_m65.name=M65-Z Gasmaske item.gas_mask_mono.name=Halbmaske item.gas_mask_olde.name=Ledergasmaske item.gas_petroleum.name=Petroleumgastank +item.gear_large.name=Großes Zahnrad item.geiger_counter.name=Mobiler Geigerzähler item.gem_alexandrite.name=Alexandrit item.gem_tantalium.name=Tantal-Polykristall @@ -1696,6 +1699,7 @@ item.ingot_dineutronium.name=Dineutroniumbarren item.ingot_dura_steel.name=Schnellarbeitsstahlbarren item.ingot_electronium.name=Elektroniumbarren item.ingot_euphemium.name=Euphemiumbarren +item.ingot_ferrouranium.name=Ferrouranbarren item.ingot_fiberglass.name=Fiberglasstafel item.ingot_gh336.name=Ghiorsium-336-Barren item.ingot_gh336.desc=Seaborgiums Kollege. @@ -2641,8 +2645,11 @@ item.siox.name=SiOX-Krebsmedikament item.siren_track.name=Sirenentrack item.smashing_hammer.name=Zerschmetterungshammer item.solid_fuel.name=Festbrennstoff +item.solid_fuel_bf.name=Festbrennstoff (Balefire) item.solid_fuel_presto.name=Superzündi +item.solid_fuel_presto_bf.name=Superzündi (Balefire) item.solid_fuel_presto_triplet.name=Verbesserte Superzündis +item.solid_fuel_presto_triplet_bf.name=Verbesserte Superzündis (Balefire) item.solinium_core.name=Semistabiler Soliniumkern item.solinium_igniter.name=SOL-Impulszünder item.solinium_kit.name=Solinium Kit @@ -3266,7 +3273,9 @@ tile.frozen_grass.name=Gefrorenes Gras tile.frozen_log.name=Gefrorener Baumstamm tile.frozen_planks.name=Gefrorene Holzbretter tile.furnace_iron.name=Eiserner Ofen +tile.furnace_iron.desc=Größerer und effizienterer Ofen,$verschwended keinen Brennstoff im Leerlauf. tile.furnace_steel.name=Stahlofen +tile.furnace_steel.desc=Sehr großer Ofen mit Produktionsboni.$Benötigt externe Hitzequelle.$Wärmetransferrate: ΔT*0.05 TU/t$(Δ heißt Differenz, T heißt Temparatur) tile.fusion_center.name=Zentralmagnetstück tile.fusion_conductor.name=Supraleiter-Magnet tile.fusion_core.name=Fusionsreaktorsteuerung @@ -3333,6 +3342,9 @@ tile.hadron_power_1g.name=Teilchenbeschleuniger-Stromanschluss (1GHE) tile.hadron_power_10g.name=Teilchenbeschleuniger-Stromanschluss (10GHE) tile.hazmat.name=Strahlenschutzstoff-Block tile.heater_firebox.name=Feuerbüchse +tile.heater_firebox.desc=Erzeugt Wärme aus Festbrennstoff. +tile.heater_oilburner.name=Brenner +tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen. tile.hev_battery.name=Anzugs-Batterie tile.iter.name=Kernfusionsreaktor tile.ladder_aluminium.name=Aluminiumleiter @@ -3448,6 +3460,8 @@ tile.machine_solar_boiler.name=Solarturmboiler tile.machine_solidifier.name=Industrielle Verfestigungsmaschine tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil) tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil) +tile.machine_stirling.name=Stirlingmotor +tile.machine_stirling.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 300 TU/t$Effizienz: 50%% tile.machine_storage_drum.name=Atommüll-Lagertrommel tile.machine_telelinker.name=Geschütz-Telemetrie-Manager tile.machine_teleporter.name=Teleporter @@ -3697,6 +3711,7 @@ tile.struct_plasma_core.name=Plasmaerhitzer-Kernkomponente tile.struct_scaffold.name=Startrampe-Gerüstblock tile.struct_soyuz_core.name=Soyuz-Startrampe-Kernkomponente tile.substation.name=Umspannwerk +tile.sulfuric_acid_block.name=Schwefelsäure tile.taint.name=Korrupter Schmutz tile.taint_barrel.name=IMP-Rückstandsfass tile.tape_recorder.name=Tonbandgerät diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c2e822c66..9ba6c7c94 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -454,6 +454,7 @@ container.gasFlare=Flare Stack container.generator=Nuclear Reactor container.hadron=Particle Accelerator container.heaterFirebox=Firebox +container.heaterOilburner=Fluid Burner container.iGenerator=Industrial Generator container.keyForge=Locksmith Table container.launchPad=Missile Launch Pad @@ -1650,6 +1651,7 @@ item.flame_politics.name=Political Topic item.flame_politics.desc=Donald Duck will build the wall! item.flame_pony.name=Painting of a Cartoon Pony item.flame_pony.desc=Yellow horse beats blue horse, that's a proven fact! +item.flask_infusion.shield.name=Shield Infusion item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge item.fleija_igniter.name=Pulse Igniter item.fleija_kit.name=F.L.E.I.J.A. Kit @@ -1715,6 +1717,7 @@ item.gas_mask_m65.name=M65-Z Gas Mask item.gas_mask_mono.name=Half Mask item.gas_mask_olde.name=Leather Gas Mask item.gas_petroleum.name=Petroleum Gas Tank +item.gear_large.name=Large Gear item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite item.gem_tantalium.name=Tantalium Polycrystal @@ -1970,6 +1973,7 @@ item.ingot_dura_steel.name=High-Speed Steel Ingot item.ingot_electronium.name=Electronium Ingot item.ingot_euphemium.name=Euphemium Ingot item.ingot_euphemium.desc=A very special and yet strange element. +item.ingot_ferrouranium.name=Ferrouranium Ingot item.ingot_fiberglass.name=Fiberglass Bar item.ingot_fiberglass.desc=High in fiber, high in glass. Everything the body needs. item.ingot_gh336.name=Ghiorsium-336 Ingot @@ -3053,8 +3057,11 @@ item.siox.name=SiOX Cancer Medication item.siren_track.name=Siren Track item.smashing_hammer.name=Smashing Hammer item.solid_fuel.name=Solid Fuel +item.solid_fuel_bf.name=Solid Fuel (Balefire) item.solid_fuel_presto.name=Presto Log +item.solid_fuel_presto_bf.name=Presto Log (Balefire) item.solid_fuel_presto_triplet.name=Boosted Presto Logs +item.solid_fuel_presto_triplet_bf.name=Boosted Presto Logs (Balefire) item.solinium_core.name=Semi-Stable Solinium Core item.solinium_igniter.name=SOL Pulse Igniter item.solinium_kit.name=Solinium Kit @@ -3695,7 +3702,7 @@ tile.frozen_planks.name=Frozen Planks tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source. +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control @@ -3763,6 +3770,8 @@ tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE) tile.hazmat.name=Hazmat Cloth Block tile.heater_firebox.name=Firebox tile.heater_firebox.desc=Burns solid fuel to produce heat. +tile.heater_oilburner.name=Fluid Burner +tile.heater_oilburner.desc=Burns fluids to produce heat. tile.hev_battery.name=Suit Battery tile.iter.name=Fusion Reactor tile.ladder_aluminium.name=Aluminium Ladder @@ -3881,6 +3890,8 @@ tile.machine_solidifier.name=Industrial Solidification Machine tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization. tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) tile.machine_spp_top.name=ZPE Potential Generator (Top) +tile.machine_stirling.name=Stirling Engine +tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% tile.machine_storage_drum.name=Nuclear Waste Disposal Drum tile.machine_telelinker.name=Turret Telemetry Linker tile.machine_teleporter.name=Teleporter @@ -4130,6 +4141,7 @@ tile.struct_plasma_core.name=Plasma Heater Core Component tile.struct_scaffold.name=Launch Pad Scaffold Block tile.struct_soyuz_core.name=Soyuz Launcher Core Component tile.substation.name=Substation +tile.sulfuric_acid_block.name=Sulfuric Acid tile.taint.name=Taint tile.taint_barrel.name=IMP Residue Barrel tile.tape_recorder.name=Tape Recorder diff --git a/src/main/resources/assets/hbm/models/machines/oilburner.obj b/src/main/resources/assets/hbm/models/machines/oilburner.obj new file mode 100644 index 000000000..ef1b7f5cb --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/oilburner.obj @@ -0,0 +1,2595 @@ +# Blender v2.79 (sub 0) OBJ File: 'oilburner.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v 1.375000 0.125000 -1.500000 +v -1.375000 0.125000 -1.500000 +v 1.375000 1.875000 -1.500000 +v -1.375000 1.875000 -1.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v -0.437500 2.000000 0.437500 +v 0.437500 2.000000 0.437500 +v -0.437500 2.000000 -0.437500 +v 0.437500 2.000000 -0.437500 +v -0.500000 1.937500 -0.500000 +v -0.500000 1.937500 0.500000 +v 0.500000 1.937500 0.500000 +v 0.500000 1.937500 -0.500000 +v -0.437500 1.937500 -0.437500 +v -0.437500 1.937500 0.437500 +v 0.437500 1.937500 0.437500 +v 0.437500 1.937500 -0.437500 +v -1.500000 0.125000 -1.375000 +v -1.500000 0.125000 1.375000 +v -1.500000 1.875000 -1.375000 +v -1.500000 1.875000 1.375000 +v -1.375000 0.125000 1.500000 +v 1.375000 0.125000 1.500000 +v -1.375000 1.875000 1.500000 +v 1.375000 1.875000 1.500000 +v 1.500000 0.125000 1.375000 +v 1.500000 0.125000 -1.375000 +v 1.500000 1.875000 1.375000 +v 1.500000 1.875000 -1.375000 +v 1.500000 0.250000 -0.250000 +v 1.500000 0.250000 0.250000 +v 1.500000 0.750000 -0.250000 +v 1.500000 0.750000 0.250000 +v 1.375000 0.750000 -0.250000 +v 1.375000 0.250000 -0.250000 +v 1.375000 0.250000 0.250000 +v 1.375000 0.750000 0.250000 +v 1.250000 0.250000 1.125000 +v 1.213388 0.250000 1.036612 +v 1.125000 0.250000 1.000000 +v 1.036612 0.250000 1.036612 +v 1.000000 0.250000 1.125000 +v 1.036612 0.250000 1.213388 +v 1.125000 0.250000 1.250000 +v 1.213388 0.250000 1.213388 +v 1.250000 1.750000 1.125000 +v 1.213388 1.750000 1.036612 +v 1.125000 1.750000 1.000000 +v 1.036612 1.750000 1.036612 +v 1.000000 1.750000 1.125000 +v 1.036612 1.750000 1.213388 +v 1.125000 1.750000 1.250000 +v 1.213388 1.750000 1.213388 +v 1.213389 1.286611 0.375000 +v 1.250000 1.375000 0.375000 +v 1.213389 1.463388 0.375000 +v 1.036612 1.463388 0.375000 +v 1.000000 1.375000 0.375000 +v 1.036612 1.286611 0.375000 +v 1.125000 1.250000 0.375000 +v 1.125000 1.500000 0.375000 +v 1.250000 1.750000 0.875000 +v 1.213388 1.750000 0.786611 +v 1.125000 1.750000 0.750000 +v 1.036612 1.750000 0.786611 +v 1.000000 1.750000 0.875000 +v 1.036612 1.750000 0.963388 +v 1.125000 1.750000 1.000000 +v 1.213388 1.750000 0.963388 +v 1.125000 1.500000 1.000000 +v 1.036612 1.500000 0.963388 +v 1.000000 1.500000 0.875000 +v 1.036612 1.500000 0.786611 +v 1.125000 1.500000 0.750000 +v 1.213389 1.500000 0.786611 +v 1.250000 1.500000 0.875000 +v 1.213389 1.500000 0.963388 +v 1.125000 1.250000 0.750000 +v 1.036612 1.286611 0.750000 +v 1.000000 1.375000 0.750000 +v 1.036612 1.463388 0.750000 +v 1.213389 1.463388 0.750000 +v 1.250000 1.375000 0.750000 +v 1.213389 1.286611 0.750000 +v 1.125000 1.323223 0.926776 +v 1.036612 1.349111 0.900888 +v 1.000000 1.411611 0.838388 +v 1.036612 1.474111 0.775888 +v 1.213389 1.474111 0.775888 +v 1.250000 1.411611 0.838388 +v 1.213389 1.349111 0.900888 +v 1.213389 1.088388 0.375000 +v 1.250000 1.000000 0.375000 +v 1.213389 0.911612 0.375000 +v 1.036612 0.911612 0.375000 +v 1.000000 1.000000 0.375000 +v 1.036612 1.088388 0.375000 +v 1.125000 1.125000 0.375000 +v 1.125000 0.875000 0.375000 +v 1.250000 0.750000 0.750000 +v 1.213388 0.750000 0.661611 +v 1.125000 0.750000 0.625000 +v 1.036612 0.750000 0.661611 +v 1.000000 0.750000 0.750000 +v 1.036612 0.750000 0.838388 +v 1.125000 0.750000 0.875000 +v 1.213388 0.750000 0.838388 +v 1.125000 0.875000 0.875000 +v 1.036612 0.875000 0.838388 +v 1.000000 0.875000 0.750000 +v 1.036612 0.875000 0.661611 +v 1.125000 0.875000 0.625000 +v 1.213389 0.875000 0.661611 +v 1.250000 0.875000 0.750000 +v 1.213389 0.875000 0.838388 +v 1.125000 1.125000 0.625000 +v 1.036612 1.088388 0.625000 +v 1.000000 1.000000 0.625000 +v 1.036612 0.911612 0.625000 +v 1.213389 0.911612 0.625000 +v 1.250000 1.000000 0.625000 +v 1.213389 1.088388 0.625000 +v 1.125000 1.051777 0.801776 +v 1.036612 1.025888 0.775888 +v 1.000000 0.963388 0.713388 +v 1.036612 0.900888 0.650888 +v 1.213389 0.900888 0.650888 +v 1.250000 0.963388 0.713388 +v 1.213389 1.025888 0.775888 +v 1.000000 0.250000 0.437500 +v 1.000000 0.250000 0.937500 +v 1.250000 0.250000 0.437500 +v 1.250000 0.250000 0.937500 +v 1.000000 0.750000 0.437500 +v 1.000000 0.750000 0.937500 +v 1.250000 0.750000 0.437500 +v 1.250000 0.750000 0.937500 +v 1.375000 0.625000 -0.500000 +v 1.375000 1.375000 -0.500000 +v 1.375000 0.625000 -1.250000 +v 1.375000 1.375000 -1.250000 +v 1.500000 1.375000 -0.500000 +v 1.500000 1.375000 -1.250000 +v 1.500000 0.625000 -1.250000 +v 1.500000 0.625000 -0.500000 +v 1.500000 1.250000 -0.625000 +v 1.500000 1.250000 -1.125000 +v 1.500000 0.750000 -1.125000 +v 1.500000 0.750000 -0.625000 +v 1.375000 1.250000 -0.625000 +v 1.375000 1.250000 -1.125000 +v 1.375000 0.750000 -1.125000 +v 1.375000 0.750000 -0.625000 +v 1.437500 1.250000 -0.625000 +v 1.437500 1.250000 -1.125000 +v 1.437500 0.750000 -1.125000 +v 1.437500 0.750000 -0.625000 +v 1.375000 1.875000 -1.375000 +v 1.375000 0.125000 -1.375000 +v 1.375000 1.875000 1.375000 +v 1.375000 0.125000 1.375000 +v 1.500000 0.125000 1.375000 +v 1.500000 0.125000 -1.375000 +v 1.500000 1.875000 1.375000 +v 1.500000 1.875000 -1.375000 +v 1.375000 1.750000 1.250000 +v 1.375000 1.750000 0.375000 +v 1.375000 0.250000 1.250000 +v 1.375000 0.250000 0.375000 +v 1.000000 1.750000 1.250000 +v 1.000000 1.750000 0.375000 +v 1.000000 0.250000 1.250000 +v 1.000000 0.250000 0.375000 +v -0.250000 0.250000 -1.500000 +v 0.250000 0.250000 -1.500000 +v -0.250000 0.750000 -1.500000 +v 0.250000 0.750000 -1.500000 +v -0.250000 0.750000 -1.375000 +v -0.250000 0.250000 -1.375000 +v 0.250000 0.250000 -1.375000 +v 0.250000 0.750000 -1.375000 +v 1.125000 0.250000 -1.250000 +v 1.036612 0.250000 -1.213388 +v 1.000000 0.250000 -1.125000 +v 1.036612 0.250000 -1.036612 +v 1.125000 0.250000 -1.000000 +v 1.213388 0.250000 -1.036612 +v 1.250000 0.250000 -1.125000 +v 1.213388 0.250000 -1.213388 +v 1.125000 1.750000 -1.250000 +v 1.036612 1.750000 -1.213388 +v 1.000000 1.750000 -1.125000 +v 1.036612 1.750000 -1.036612 +v 1.125000 1.750000 -1.000000 +v 1.213388 1.750000 -1.036612 +v 1.250000 1.750000 -1.125000 +v 1.213388 1.750000 -1.213388 +v 0.375000 1.286611 -1.213389 +v 0.375000 1.375000 -1.250000 +v 0.375000 1.463388 -1.213389 +v 0.375000 1.463388 -1.036612 +v 0.375000 1.375000 -1.000000 +v 0.375000 1.286611 -1.036612 +v 0.375000 1.250000 -1.125000 +v 0.375000 1.500000 -1.125000 +v 0.875000 1.750000 -1.250000 +v 0.786611 1.750000 -1.213388 +v 0.750000 1.750000 -1.125000 +v 0.786611 1.750000 -1.036612 +v 0.875000 1.750000 -1.000000 +v 0.963388 1.750000 -1.036612 +v 1.000000 1.750000 -1.125000 +v 0.963388 1.750000 -1.213388 +v 1.000000 1.500000 -1.125000 +v 0.963388 1.500000 -1.036612 +v 0.875000 1.500000 -1.000000 +v 0.786611 1.500000 -1.036612 +v 0.750000 1.500000 -1.125000 +v 0.786611 1.500000 -1.213389 +v 0.875000 1.500000 -1.250000 +v 0.963388 1.500000 -1.213389 +v 0.750000 1.250000 -1.125000 +v 0.750000 1.286611 -1.036612 +v 0.750000 1.375000 -1.000000 +v 0.750000 1.463388 -1.036612 +v 0.750000 1.463388 -1.213389 +v 0.750000 1.375000 -1.250000 +v 0.750000 1.286611 -1.213389 +v 0.926776 1.323223 -1.125000 +v 0.900888 1.349111 -1.036612 +v 0.838388 1.411611 -1.000000 +v 0.775888 1.474111 -1.036612 +v 0.775888 1.474111 -1.213389 +v 0.838388 1.411611 -1.250000 +v 0.900888 1.349111 -1.213389 +v 0.375000 1.088388 -1.213389 +v 0.375000 1.000000 -1.250000 +v 0.375000 0.911612 -1.213389 +v 0.375000 0.911612 -1.036612 +v 0.375000 1.000000 -1.000000 +v 0.375000 1.088388 -1.036612 +v 0.375000 1.125000 -1.125000 +v 0.375000 0.875000 -1.125000 +v 0.750000 0.750000 -1.250000 +v 0.661611 0.750000 -1.213388 +v 0.625000 0.750000 -1.125000 +v 0.661611 0.750000 -1.036612 +v 0.750000 0.750000 -1.000000 +v 0.838388 0.750000 -1.036612 +v 0.875000 0.750000 -1.125000 +v 0.838388 0.750000 -1.213388 +v 0.875000 0.875000 -1.125000 +v 0.838388 0.875000 -1.036612 +v 0.750000 0.875000 -1.000000 +v 0.661611 0.875000 -1.036612 +v 0.625000 0.875000 -1.125000 +v 0.661611 0.875000 -1.213389 +v 0.750000 0.875000 -1.250000 +v 0.838388 0.875000 -1.213389 +v 0.625000 1.125000 -1.125000 +v 0.625000 1.088388 -1.036612 +v 0.625000 1.000000 -1.000000 +v 0.625000 0.911612 -1.036612 +v 0.625000 0.911612 -1.213389 +v 0.625000 1.000000 -1.250000 +v 0.625000 1.088388 -1.213389 +v 0.801776 1.051776 -1.125000 +v 0.775888 1.025888 -1.036612 +v 0.713388 0.963388 -1.000000 +v 0.650888 0.900888 -1.036612 +v 0.650888 0.900888 -1.213389 +v 0.713388 0.963388 -1.250000 +v 0.775888 1.025888 -1.213389 +v 0.437500 0.250000 -1.000000 +v 0.937500 0.250000 -1.000000 +v 0.437500 0.250000 -1.250000 +v 0.937500 0.250000 -1.250000 +v 0.437500 0.750000 -1.000000 +v 0.937500 0.750000 -1.000000 +v 0.437500 0.750000 -1.250000 +v 0.937500 0.750000 -1.250000 +v -0.500000 0.625000 -1.375000 +v -0.500000 1.375000 -1.375000 +v -1.250000 0.625000 -1.375000 +v -1.250000 1.375000 -1.375000 +v -0.500000 1.375000 -1.500000 +v -1.250000 1.375000 -1.500000 +v -1.250000 0.625000 -1.500000 +v -0.500000 0.625000 -1.500000 +v -0.625000 1.250000 -1.500000 +v -1.125000 1.250000 -1.500000 +v -1.125000 0.750000 -1.500000 +v -0.625000 0.750000 -1.500000 +v -0.625000 1.250000 -1.437500 +v -1.125000 1.250000 -1.437500 +v -1.125000 0.750000 -1.437500 +v -0.625000 0.750000 -1.437500 +v -1.375000 1.875000 -1.375000 +v -1.375000 0.125000 -1.375000 +v 1.375000 1.875000 -1.375000 +v 1.375000 0.125000 -1.375000 +v 1.375000 0.125000 -1.500000 +v -1.375000 0.125000 -1.500000 +v 1.375000 1.875000 -1.500000 +v -1.375000 1.875000 -1.500000 +v 1.250000 1.750000 -1.375000 +v 0.375000 1.750000 -1.375000 +v 1.250000 0.250000 -1.375000 +v 0.375000 0.250000 -1.375000 +v 1.250000 1.750000 -1.000000 +v 0.375000 1.750000 -1.000000 +v 1.250000 0.250000 -1.000000 +v 0.375000 0.250000 -1.000000 +v -1.500000 0.250000 0.250000 +v -1.500000 0.250000 -0.250000 +v -1.500000 0.750000 0.250000 +v -1.500000 0.750000 -0.250000 +v -1.375000 0.750000 0.250000 +v -1.375000 0.250000 0.250000 +v -1.375000 0.250000 -0.250000 +v -1.375000 0.750000 -0.250000 +v -1.250000 0.250000 -1.125000 +v -1.213388 0.250000 -1.036612 +v -1.125000 0.250000 -1.000000 +v -1.036612 0.250000 -1.036612 +v -1.000000 0.250000 -1.125000 +v -1.036612 0.250000 -1.213388 +v -1.125000 0.250000 -1.250000 +v -1.213388 0.250000 -1.213388 +v -1.250000 1.749999 -1.125000 +v -1.213388 1.749999 -1.036612 +v -1.125000 1.749999 -1.000000 +v -1.036612 1.749999 -1.036612 +v -1.000000 1.749999 -1.125000 +v -1.036612 1.749999 -1.213388 +v -1.125000 1.749999 -1.250000 +v -1.213388 1.749999 -1.213388 +v -1.213389 1.286611 -0.375000 +v -1.250000 1.374999 -0.375000 +v -1.213389 1.463388 -0.375000 +v -1.036612 1.463388 -0.375000 +v -1.000000 1.374999 -0.375000 +v -1.036612 1.286611 -0.375000 +v -1.125000 1.249999 -0.375000 +v -1.125000 1.499999 -0.375000 +v -1.250000 1.749999 -0.875000 +v -1.213388 1.749999 -0.786611 +v -1.125000 1.749999 -0.750000 +v -1.036612 1.749999 -0.786611 +v -1.000000 1.749999 -0.875000 +v -1.036612 1.749999 -0.963388 +v -1.125000 1.749999 -1.000000 +v -1.213388 1.749999 -0.963388 +v -1.125000 1.499999 -1.000000 +v -1.036612 1.499999 -0.963388 +v -1.000000 1.499999 -0.875000 +v -1.036612 1.499999 -0.786611 +v -1.125000 1.499999 -0.750000 +v -1.213389 1.499999 -0.786611 +v -1.250000 1.499999 -0.875000 +v -1.213389 1.499999 -0.963388 +v -1.125000 1.249999 -0.750000 +v -1.036612 1.286611 -0.750000 +v -1.000000 1.374999 -0.750000 +v -1.036612 1.463388 -0.750000 +v -1.213389 1.463388 -0.750000 +v -1.250000 1.374999 -0.750000 +v -1.213389 1.286611 -0.750000 +v -1.125000 1.323223 -0.926776 +v -1.036612 1.349111 -0.900888 +v -1.000000 1.411611 -0.838388 +v -1.036612 1.474111 -0.775888 +v -1.213389 1.474111 -0.775888 +v -1.250000 1.411611 -0.838388 +v -1.213389 1.349111 -0.900888 +v -1.213389 1.088388 -0.375000 +v -1.250000 1.000000 -0.375000 +v -1.213389 0.911611 -0.375000 +v -1.036612 0.911611 -0.375000 +v -1.000000 1.000000 -0.375000 +v -1.036612 1.088388 -0.375000 +v -1.125000 1.124999 -0.375000 +v -1.125000 0.875000 -0.375000 +v -1.250000 0.750000 -0.750000 +v -1.213388 0.750000 -0.661611 +v -1.125000 0.750000 -0.625000 +v -1.036612 0.750000 -0.661611 +v -1.000000 0.750000 -0.750000 +v -1.036612 0.750000 -0.838388 +v -1.125000 0.750000 -0.875000 +v -1.213388 0.750000 -0.838388 +v -1.125000 0.875000 -0.875000 +v -1.036612 0.875000 -0.838388 +v -1.000000 0.875000 -0.750000 +v -1.036612 0.875000 -0.661611 +v -1.125000 0.875000 -0.625000 +v -1.213389 0.875000 -0.661611 +v -1.250000 0.875000 -0.750000 +v -1.213389 0.875000 -0.838388 +v -1.125000 1.124999 -0.625000 +v -1.036612 1.088388 -0.625000 +v -1.000000 1.000000 -0.625000 +v -1.036612 0.911611 -0.625000 +v -1.213389 0.911611 -0.625000 +v -1.250000 1.000000 -0.625000 +v -1.213389 1.088388 -0.625000 +v -1.125000 1.051776 -0.801776 +v -1.036612 1.025888 -0.775888 +v -1.000000 0.963388 -0.713388 +v -1.036612 0.900888 -0.650888 +v -1.213389 0.900888 -0.650888 +v -1.250000 0.963388 -0.713388 +v -1.213389 1.025888 -0.775888 +v -1.000000 0.250000 -0.437500 +v -1.000000 0.250000 -0.937500 +v -1.250000 0.250000 -0.437500 +v -1.250000 0.250000 -0.937500 +v -1.000000 0.750000 -0.437500 +v -1.000000 0.750000 -0.937500 +v -1.250000 0.750000 -0.437500 +v -1.250000 0.750000 -0.937500 +v -1.375000 0.625000 0.500000 +v -1.375000 1.375000 0.500000 +v -1.375000 0.625000 1.250000 +v -1.375000 1.375000 1.250000 +v -1.500000 1.375000 0.500000 +v -1.500000 1.375000 1.250000 +v -1.500000 0.625000 1.250000 +v -1.500000 0.625000 0.500000 +v -1.500000 1.250000 0.625000 +v -1.500000 1.250000 1.125000 +v -1.500000 0.750000 1.125000 +v -1.500000 0.750000 0.625000 +v -1.437500 1.250000 0.625000 +v -1.437500 1.250000 1.125000 +v -1.437500 0.750000 1.125000 +v -1.437500 0.750000 0.625000 +v -1.375000 1.875000 1.375000 +v -1.375000 0.125000 1.375000 +v -1.375000 1.875000 -1.375000 +v -1.375000 0.125000 -1.375000 +v -1.500000 0.125000 -1.374999 +v -1.499999 0.125000 1.375000 +v -1.500000 1.874999 -1.374999 +v -1.499999 1.874999 1.375000 +v -1.375000 1.749999 -1.249999 +v -1.375000 1.749999 -0.375000 +v -1.375000 0.250000 -1.249999 +v -1.375000 0.250000 -0.375000 +v -1.000000 1.749999 -1.250000 +v -1.000000 1.749999 -0.375000 +v -1.000000 0.250000 -1.250000 +v -1.000000 0.250000 -0.375000 +v 0.250000 0.250000 1.500000 +v -0.250000 0.250000 1.500000 +v 0.250000 0.750000 1.500000 +v -0.250000 0.750000 1.500000 +v 0.250000 0.750000 1.375000 +v 0.250000 0.250000 1.375000 +v -0.250000 0.250000 1.375000 +v -0.250000 0.750000 1.375000 +v -1.125000 0.250000 1.250000 +v -1.036612 0.250000 1.213388 +v -1.000000 0.250000 1.125000 +v -1.036612 0.250000 1.036612 +v -1.125000 0.250000 1.000000 +v -1.213388 0.250000 1.036612 +v -1.250000 0.250000 1.125000 +v -1.213388 0.250000 1.213388 +v -1.125000 1.749999 1.250000 +v -1.036612 1.749999 1.213388 +v -1.000000 1.749999 1.125000 +v -1.036612 1.749999 1.036612 +v -1.125000 1.749999 1.000000 +v -1.213388 1.749999 1.036612 +v -1.250000 1.749999 1.125000 +v -1.213388 1.749999 1.213388 +v -0.375000 1.286611 1.213389 +v -0.375000 1.374999 1.250000 +v -0.375000 1.463387 1.213389 +v -0.375000 1.463387 1.036612 +v -0.375000 1.374999 1.000000 +v -0.375000 1.286611 1.036612 +v -0.375000 1.249999 1.125000 +v -0.375000 1.499999 1.125000 +v -0.875000 1.749999 1.250000 +v -0.786611 1.749999 1.213388 +v -0.750000 1.749999 1.125000 +v -0.786611 1.749999 1.036612 +v -0.875000 1.749999 1.000000 +v -0.963388 1.749999 1.036612 +v -1.000000 1.749999 1.125000 +v -0.963388 1.749999 1.213388 +v -1.000000 1.499999 1.125000 +v -0.963388 1.499999 1.036613 +v -0.875000 1.499999 1.000000 +v -0.786611 1.499999 1.036612 +v -0.750000 1.499999 1.125000 +v -0.786611 1.499999 1.213389 +v -0.875000 1.499999 1.250000 +v -0.963388 1.499999 1.213389 +v -0.750000 1.249999 1.125000 +v -0.750000 1.286611 1.036612 +v -0.750000 1.374999 1.000000 +v -0.750000 1.463387 1.036612 +v -0.750000 1.463387 1.213389 +v -0.750000 1.374999 1.250000 +v -0.750000 1.286611 1.213389 +v -0.926776 1.323222 1.125000 +v -0.900888 1.349111 1.036612 +v -0.838388 1.411611 1.000000 +v -0.775888 1.474111 1.036612 +v -0.775888 1.474111 1.213389 +v -0.838388 1.411611 1.250000 +v -0.900888 1.349111 1.213389 +v -0.375000 1.088388 1.213389 +v -0.375000 1.000000 1.250000 +v -0.375000 0.911611 1.213389 +v -0.375000 0.911611 1.036612 +v -0.375000 1.000000 1.000000 +v -0.375000 1.088388 1.036612 +v -0.375000 1.124999 1.125000 +v -0.375000 0.875000 1.125000 +v -0.750000 0.750000 1.250000 +v -0.661611 0.750000 1.213388 +v -0.625000 0.750000 1.125000 +v -0.661611 0.750000 1.036612 +v -0.750000 0.750000 1.000000 +v -0.838388 0.750000 1.036612 +v -0.875000 0.750000 1.125000 +v -0.838388 0.750000 1.213388 +v -0.875000 0.875000 1.125000 +v -0.838388 0.875000 1.036612 +v -0.750000 0.875000 1.000000 +v -0.661611 0.875000 1.036612 +v -0.625000 0.875000 1.125000 +v -0.661611 0.875000 1.213389 +v -0.750000 0.875000 1.250000 +v -0.838388 0.875000 1.213389 +v -0.625000 1.124999 1.125000 +v -0.625000 1.088388 1.036612 +v -0.625000 1.000000 1.000000 +v -0.625000 0.911611 1.036612 +v -0.625000 0.911611 1.213389 +v -0.625000 1.000000 1.250000 +v -0.625000 1.088388 1.213389 +v -0.801776 1.051776 1.125000 +v -0.775888 1.025888 1.036612 +v -0.713388 0.963388 1.000000 +v -0.650888 0.900888 1.036612 +v -0.650888 0.900888 1.213389 +v -0.713388 0.963388 1.250000 +v -0.775888 1.025888 1.213389 +v -0.437500 0.250000 1.000000 +v -0.937500 0.250000 1.000000 +v -0.437500 0.250000 1.250000 +v -0.937500 0.250000 1.250000 +v -0.437500 0.750000 1.000000 +v -0.937500 0.750000 1.000000 +v -0.437500 0.750000 1.250000 +v -0.937500 0.750000 1.250000 +v 0.500000 0.625000 1.375000 +v 0.500000 1.374999 1.375000 +v 1.250000 0.625000 1.375000 +v 1.250000 1.374999 1.375000 +v 0.500000 1.374999 1.500000 +v 1.250000 1.374999 1.500000 +v 1.250000 0.625000 1.500000 +v 0.500000 0.625000 1.500000 +v 0.625000 1.249999 1.500000 +v 1.125000 1.249999 1.500000 +v 1.125000 0.750000 1.500000 +v 0.625000 0.750000 1.500000 +v 0.625000 1.249999 1.437500 +v 1.125000 1.249999 1.437500 +v 1.125000 0.750000 1.437500 +v 0.625000 0.750000 1.437500 +v 1.375000 1.875000 1.375000 +v 1.375000 0.125000 1.375000 +v -1.374999 1.874999 1.375000 +v -1.374999 0.125000 1.375000 +v -1.374999 0.125000 1.500001 +v 1.375001 0.125000 1.499999 +v -1.374999 1.874999 1.500001 +v 1.375001 1.874999 1.499999 +v -1.249999 1.749999 1.375001 +v -0.375000 1.749999 1.375000 +v -1.249999 0.250000 1.375001 +v -0.375000 0.250000 1.375000 +v -1.250000 1.749999 1.000000 +v -0.375000 1.749999 1.000000 +v -1.250000 0.250000 1.000000 +v -0.375000 0.250000 1.000000 +v -0.625000 1.250000 -1.500000 +v -1.125000 1.250000 -1.500000 +v -1.125000 0.750000 -1.500000 +v -0.625000 0.750000 -1.500000 +v -0.625000 1.250000 -1.375000 +v -1.125000 1.250000 -1.375000 +v -1.125000 0.750000 -1.375000 +v -0.625000 0.750000 -1.375000 +v -1.500000 1.250000 0.625000 +v -1.500000 1.250000 1.125000 +v -1.500000 0.750000 1.125000 +v -1.500000 0.750000 0.625000 +v -1.375000 1.250000 0.625000 +v -1.375000 1.250000 1.125000 +v -1.375000 0.750000 1.125000 +v -1.375000 0.750000 0.625000 +v 0.625000 1.249999 1.500000 +v 1.125000 1.249999 1.500000 +v 1.125000 0.750000 1.500000 +v 0.625000 0.750000 1.500000 +v 0.625000 1.249999 1.375000 +v 1.125000 1.249999 1.375000 +v 1.125000 0.750000 1.375000 +v 0.625000 0.750000 1.375000 +vt 0.333333 0.000000 +vt 0.000000 0.375000 +vt 0.000000 0.000000 +vt 0.222222 0.875000 +vt 0.333333 0.625000 +vt 0.333333 1.000000 +vt 0.000000 0.625000 +vt 0.319444 0.609375 +vt 0.333333 0.625000 +vt 0.319444 0.390625 +vt 0.333333 0.375000 +vt 0.013889 0.390625 +vt 0.000000 0.375000 +vt 0.013889 0.609375 +vt 0.111111 0.875000 +vt 0.000000 1.000000 +vt 0.111111 0.750000 +vt 0.000000 0.625000 +vt 0.222222 0.750000 +vt 0.118056 0.414062 +vt 0.215278 0.406250 +vt 0.215278 0.414062 +vt 0.097222 0.406250 +vt 0.104167 0.531250 +vt 0.097222 0.531250 +vt 0.236111 0.531250 +vt 0.229167 0.406250 +vt 0.236111 0.406250 +vt 0.118056 0.523438 +vt 0.111111 0.414062 +vt 0.215278 0.523438 +vt 0.222222 0.523438 +vt 0.229167 0.531250 +vt 0.118056 0.531250 +vt 0.222222 0.539062 +vt 0.111111 0.539062 +vt 0.104167 0.406250 +vt 0.111111 0.398438 +vt 0.222222 0.398438 +vt 0.222222 0.390625 +vt 0.111111 0.390625 +vt 0.111111 0.546875 +vt 0.222222 0.546875 +vt 0.319444 0.390625 +vt -0.000000 0.375000 +vt 0.333333 0.375000 +vt 0.333333 0.375000 +vt 0.013889 0.390625 +vt 0.319444 0.609375 +vt 0.333333 0.625000 +vt 0.013889 0.609375 +vt 0.319444 0.609375 +vt 0.736111 0.187500 +vt 0.680556 0.125000 +vt 0.736111 0.125000 +vt 0.680556 0.187500 +vt 0.666667 0.125000 +vt 0.750000 0.187500 +vt 0.680556 0.203125 +vt 0.736111 0.109375 +vt 0.541667 0.343750 +vt 0.597222 0.312500 +vt 0.597222 0.343750 +vt 0.541667 0.250000 +vt 0.513889 0.312500 +vt 0.513889 0.250000 +vt 0.625000 0.250000 +vt 0.597222 0.250000 +vt 0.541667 0.312500 +vt -0.000000 0.625000 +vt 0.013889 0.609375 +vt 0.333333 0.375000 +vt 0.319444 0.609375 +vt 0.319444 0.390625 +vt 0.013889 0.390625 +vt 0.000000 0.625000 +vt 0.000000 0.375000 +vt 0.333333 0.625000 +vt 0.916667 0.000000 +vt 0.833333 0.015625 +vt 0.833333 0.000000 +vt 0.666667 0.015625 +vt 0.680556 0.093750 +vt 0.666667 0.109375 +vt 1.000000 0.000000 +vt 0.916667 0.015625 +vt 0.750000 0.015625 +vt 0.750000 0.000000 +vt 0.666667 0.000000 +vt 0.819444 0.015625 +vt 0.763889 0.031250 +vt 0.763889 0.015625 +vt 0.750000 0.109375 +vt 0.736111 0.031250 +vt 0.680556 0.031250 +vt 0.736111 0.093750 +vt 0.763889 0.109375 +vt 0.819444 0.093750 +vt 0.819444 0.109375 +vt 0.750000 0.031250 +vt 0.763889 0.093750 +vt 0.750000 0.093750 +vt 0.833333 0.093750 +vt 0.819444 0.031250 +vt 0.833333 0.031250 +vt 0.833333 0.078125 +vt 0.888889 0.015625 +vt 0.888889 0.078125 +vt 0.347222 0.234375 +vt 0.458333 0.218750 +vt 0.652778 0.234375 +vt 0.347222 -0.000000 +vt 0.652778 0.015625 +vt 0.347222 0.015625 +vt 0.347222 0.250000 +vt 0.652778 0.250000 +vt 0.333333 0.234375 +vt 0.333333 0.015625 +vt 0.361111 0.031250 +vt 0.361111 0.218750 +vt 0.513889 0.484375 +vt 0.472222 0.296875 +vt 0.513889 0.296875 +vt 0.458333 0.031250 +vt 0.666667 0.234375 +vt 0.666667 0.015625 +vt 0.375000 0.484375 +vt 0.375000 0.296875 +vt 0.375000 0.531250 +vt 0.472222 0.484375 +vt 0.472222 0.531250 +vt 0.333333 0.296875 +vt 0.333333 0.484375 +vt 0.375000 0.250000 +vt 0.736111 0.187500 +vt 0.680556 0.125000 +vt 0.736111 0.125000 +vt 0.680556 0.187500 +vt 0.666667 0.125000 +vt 0.750000 0.187500 +vt 0.680556 0.203125 +vt 0.736111 0.109375 +vt 0.597222 0.343750 +vt 0.541667 0.312500 +vt 0.597222 0.312500 +vt 0.541667 0.250000 +vt 0.513889 0.312500 +vt 0.513889 0.250000 +vt 0.625000 0.250000 +vt 0.597222 0.250000 +vt 0.916667 0.000000 +vt 0.833333 0.015625 +vt 0.833333 0.000000 +vt 0.666667 0.015625 +vt 0.680556 0.093750 +vt 0.666667 0.109375 +vt 1.000000 0.000000 +vt 0.916667 0.015625 +vt 0.750000 0.015625 +vt 0.750000 0.000000 +vt 0.666667 0.000000 +vt 0.750000 0.109375 +vt 0.736111 0.031250 +vt 0.680556 0.031250 +vt 0.736111 0.093750 +vt 0.833333 0.078125 +vt 0.888889 0.015625 +vt 0.888889 0.078125 +vt 0.347222 0.234375 +vt 0.458333 0.218750 +vt 0.652778 0.234375 +vt 0.652778 -0.000000 +vt 0.347222 0.015625 +vt 0.347222 -0.000000 +vt 0.347222 0.250000 +vt 0.652778 0.250000 +vt 0.333333 0.234375 +vt 0.333333 0.015625 +vt 0.361111 0.031250 +vt 0.361111 0.218750 +vt 0.513889 0.484375 +vt 0.472222 0.296875 +vt 0.513889 0.296875 +vt 0.652778 0.015625 +vt 0.458333 0.031250 +vt 0.666667 0.234375 +vt 0.666667 0.015625 +vt 0.375000 0.484375 +vt 0.375000 0.296875 +vt 0.375000 0.531250 +vt 0.472222 0.484375 +vt 0.472222 0.531250 +vt 0.333333 0.296875 +vt 0.333333 0.484375 +vt 0.375000 0.250000 +vt 0.736111 0.187500 +vt 0.680556 0.125000 +vt 0.736111 0.125000 +vt 0.680556 0.187500 +vt 0.666667 0.125000 +vt 0.750000 0.187500 +vt 0.680556 0.203125 +vt 0.736111 0.109375 +vt 0.597222 0.343750 +vt 0.541667 0.312500 +vt 0.597222 0.312500 +vt 0.541667 0.250000 +vt 0.513889 0.312500 +vt 0.513889 0.250000 +vt 0.625000 0.250000 +vt 0.597222 0.250000 +vt 0.916667 0.000000 +vt 0.833333 0.015625 +vt 0.833333 0.000000 +vt 0.666667 0.015625 +vt 0.680556 0.093750 +vt 0.666667 0.109375 +vt 1.000000 0.000000 +vt 0.916667 0.015625 +vt 0.750000 0.015625 +vt 0.750000 0.000000 +vt 0.666667 0.000000 +vt 0.750000 0.109375 +vt 0.736111 0.031250 +vt 0.680556 0.031250 +vt 0.736111 0.093750 +vt 0.833333 0.078125 +vt 0.888889 0.015625 +vt 0.888889 0.078125 +vt 0.347222 0.234375 +vt 0.458333 0.218750 +vt 0.652778 0.234375 +vt 0.652778 -0.000000 +vt 0.347222 0.015625 +vt 0.347222 -0.000000 +vt 0.347222 0.250000 +vt 0.652778 0.250000 +vt 0.333333 0.234375 +vt 0.333333 0.015625 +vt 0.361111 0.218750 +vt 0.361111 0.031250 +vt 0.513889 0.484375 +vt 0.472222 0.296875 +vt 0.513889 0.296875 +vt 0.458333 0.031250 +vt 0.652778 0.015625 +vt 0.666667 0.234375 +vt 0.666667 0.015625 +vt 0.375000 0.484375 +vt 0.375000 0.296875 +vt 0.375000 0.531250 +vt 0.472222 0.484375 +vt 0.472222 0.531250 +vt 0.333333 0.296875 +vt 0.333333 0.484375 +vt 0.375000 0.250000 +vt 0.736111 0.187500 +vt 0.680556 0.125000 +vt 0.736111 0.125000 +vt 0.680556 0.187500 +vt 0.666667 0.125000 +vt 0.750000 0.187500 +vt 0.680556 0.203125 +vt 0.736111 0.109375 +vt 0.597222 0.343750 +vt 0.541667 0.312500 +vt 0.597222 0.312500 +vt 0.541667 0.250000 +vt 0.513889 0.312500 +vt 0.513889 0.250000 +vt 0.625000 0.250000 +vt 0.597222 0.250000 +vt 0.916667 0.000000 +vt 0.833333 0.015625 +vt 0.833333 0.000000 +vt 0.666667 0.015625 +vt 0.680556 0.093750 +vt 0.666667 0.109375 +vt 1.000000 0.000000 +vt 0.916667 0.015625 +vt 0.750000 0.015625 +vt 0.750000 0.000000 +vt 0.666667 0.000000 +vt 0.750000 0.109375 +vt 0.736111 0.031250 +vt 0.680556 0.031250 +vt 0.736111 0.093750 +vt 0.833333 0.078125 +vt 0.888889 0.015625 +vt 0.888889 0.078125 +vt 0.347222 0.234375 +vt 0.458333 0.218750 +vt 0.652778 0.234375 +vt 0.652778 -0.000000 +vt 0.347222 0.015625 +vt 0.347222 -0.000000 +vt 0.347222 0.250000 +vt 0.652778 0.250000 +vt 0.333333 0.234375 +vt 0.333333 0.015625 +vt 0.361111 0.218750 +vt 0.361111 0.031250 +vt 0.513889 0.484375 +vt 0.472222 0.296875 +vt 0.513889 0.296875 +vt 0.458333 0.031250 +vt 0.652778 0.015625 +vt 0.666667 0.234375 +vt 0.666667 0.015625 +vt 0.375000 0.484375 +vt 0.375000 0.296875 +vt 0.375000 0.531250 +vt 0.472222 0.484375 +vt 0.472222 0.531250 +vt 0.333333 0.296875 +vt 0.333333 0.484375 +vt 0.375000 0.250000 +vt 0.819444 0.015625 +vt 0.763889 0.031250 +vt 0.763889 0.015625 +vt 0.763889 0.109375 +vt 0.819444 0.093750 +vt 0.819444 0.109375 +vt 0.750000 0.031250 +vt 0.763889 0.093750 +vt 0.750000 0.093750 +vt 0.833333 0.093750 +vt 0.819444 0.031250 +vt 0.833333 0.031250 +vt 0.819444 0.015625 +vt 0.763889 0.031250 +vt 0.763889 0.015625 +vt 0.763889 0.109375 +vt 0.819444 0.093750 +vt 0.819444 0.109375 +vt 0.750000 0.031250 +vt 0.763889 0.093750 +vt 0.750000 0.093750 +vt 0.833333 0.093750 +vt 0.819444 0.031250 +vt 0.833333 0.031250 +vt 0.819444 0.015625 +vt 0.763889 0.031250 +vt 0.763889 0.015625 +vt 0.763889 0.109375 +vt 0.819444 0.093750 +vt 0.819444 0.109375 +vt 0.750000 0.031250 +vt 0.763889 0.093750 +vt 0.750000 0.093750 +vt 0.833333 0.093750 +vt 0.819444 0.031250 +vt 0.833333 0.031250 +vt 0.118056 0.406250 +vt 0.111111 0.523438 +vt 0.222222 0.414062 +vt 0.215278 0.531250 +vt 0.013889 0.390625 +vt 0.319444 0.390625 +vt 0.666667 0.187500 +vt 0.750000 0.125000 +vt 0.736111 0.203125 +vt 0.680556 0.109375 +vt 0.625000 0.312500 +vt 0.013889 0.609375 +vt 1.000000 0.015625 +vt 0.833333 0.015625 +vt 0.652778 -0.000000 +vt 0.472222 0.250000 +vt 0.666667 0.187500 +vt 0.750000 0.125000 +vt 0.736111 0.203125 +vt 0.680556 0.109375 +vt 0.541667 0.343750 +vt 0.625000 0.312500 +vt 1.000000 0.015625 +vt 0.833333 0.015625 +vt 0.472222 0.250000 +vt 0.666667 0.187500 +vt 0.750000 0.125000 +vt 0.736111 0.203125 +vt 0.680556 0.109375 +vt 0.541667 0.343750 +vt 0.625000 0.312500 +vt 1.000000 0.015625 +vt 0.833333 0.015625 +vt 0.472222 0.250000 +vt 0.666667 0.187500 +vt 0.750000 0.125000 +vt 0.736111 0.203125 +vt 0.680556 0.109375 +vt 0.541667 0.343750 +vt 0.625000 0.312500 +vt 1.000000 0.015625 +vt 0.833333 0.015625 +vt 0.472222 0.250000 +vt 0.416667 0.531250 +vt 0.402778 0.718750 +vt 0.402778 0.531250 +vt 0.375000 0.531250 +vt 0.361111 0.718750 +vt 0.361111 0.531250 +vt 0.347222 0.531250 +vt 0.333333 0.718750 +vt 0.333333 0.531250 +vt 0.430556 0.531250 +vt 0.416667 0.718750 +vt 0.388889 0.718750 +vt 0.388889 0.531250 +vt 0.375000 0.718750 +vt 0.347222 0.718750 +vt 0.444444 0.531250 +vt 0.430556 0.718750 +vt 0.583333 0.562500 +vt 0.569444 0.531250 +vt 0.583333 0.531250 +vt 0.625000 0.562500 +vt 0.611111 0.531250 +vt 0.625000 0.531250 +vt 0.597222 0.562500 +vt 0.597222 0.531250 +vt 0.666667 0.531250 +vt 0.652778 0.562500 +vt 0.652778 0.531250 +vt 0.555556 0.562500 +vt 0.555556 0.531250 +vt 0.638889 0.562500 +vt 0.638889 0.531250 +vt 0.611111 0.562500 +vt 0.583333 0.593750 +vt 0.597222 0.640625 +vt 0.583333 0.640625 +vt 0.625000 0.593750 +vt 0.638889 0.640625 +vt 0.625000 0.640625 +vt 0.611111 0.640625 +vt 0.611111 0.593750 +vt 0.652778 0.593750 +vt 0.638889 0.593750 +vt 0.597222 0.593750 +vt 0.569444 0.593750 +vt 0.555556 0.640625 +vt 0.555556 0.593750 +vt 0.569444 0.640625 +vt 0.666667 0.593750 +vt 0.652778 0.640625 +vt 0.625000 0.578125 +vt 0.638889 0.578125 +vt 0.638889 0.585938 +vt 0.652778 0.578125 +vt 0.652778 0.585938 +vt 0.666667 0.578125 +vt 0.652778 0.570312 +vt 0.569444 0.585938 +vt 0.583333 0.578125 +vt 0.583333 0.585938 +vt 0.597222 0.578125 +vt 0.611111 0.578125 +vt 0.638889 0.570312 +vt 0.569444 0.578125 +vt 0.555556 0.578125 +vt 0.569444 0.570312 +vt 0.583333 0.570312 +vt 0.527778 0.531250 +vt 0.541667 0.546875 +vt 0.527778 0.546875 +vt 0.500000 0.531250 +vt 0.486111 0.546875 +vt 0.486111 0.531250 +vt 0.513889 0.546875 +vt 0.513889 0.531250 +vt 0.444444 0.531250 +vt 0.458333 0.546875 +vt 0.444444 0.546875 +vt 0.541667 0.531250 +vt 0.555556 0.546875 +vt 0.472222 0.546875 +vt 0.472222 0.531250 +vt 0.500000 0.546875 +vt 0.458333 0.531250 +vt 0.527778 0.609375 +vt 0.513889 0.578125 +vt 0.527778 0.578125 +vt 0.486111 0.578125 +vt 0.472222 0.609375 +vt 0.472222 0.578125 +vt 0.500000 0.609375 +vt 0.500000 0.578125 +vt 0.458333 0.578125 +vt 0.513889 0.609375 +vt 0.555556 0.609375 +vt 0.541667 0.578125 +vt 0.555556 0.578125 +vt 0.541667 0.609375 +vt 0.458333 0.609375 +vt 0.444444 0.578125 +vt 0.486111 0.562500 +vt 0.500000 0.562500 +vt 0.472222 0.562500 +vt 0.472222 0.570312 +vt 0.458333 0.562500 +vt 0.458333 0.570312 +vt 0.444444 0.562500 +vt 0.458333 0.554688 +vt 0.541667 0.570312 +vt 0.527778 0.562500 +vt 0.541667 0.562500 +vt 0.527778 0.570312 +vt 0.513889 0.562500 +vt 0.472222 0.554688 +vt 0.555556 0.562500 +vt 0.541667 0.554688 +vt 0.527778 0.554688 +vt 0.416667 0.531250 +vt 0.402778 0.718750 +vt 0.402778 0.531250 +vt 0.375000 0.531250 +vt 0.361111 0.718750 +vt 0.361111 0.531250 +vt 0.347222 0.531250 +vt 0.333333 0.718750 +vt 0.333333 0.531250 +vt 0.430556 0.531250 +vt 0.416667 0.718750 +vt 0.388889 0.718750 +vt 0.388889 0.531250 +vt 0.375000 0.718750 +vt 0.347222 0.718750 +vt 0.444444 0.531250 +vt 0.430556 0.718750 +vt 0.583333 0.531250 +vt 0.569444 0.562500 +vt 0.569444 0.531250 +vt 0.625000 0.562500 +vt 0.611111 0.531250 +vt 0.625000 0.531250 +vt 0.597222 0.562500 +vt 0.597222 0.531250 +vt 0.666667 0.531250 +vt 0.652778 0.562500 +vt 0.652778 0.531250 +vt 0.555556 0.562500 +vt 0.555556 0.531250 +vt 0.638889 0.562500 +vt 0.638889 0.531250 +vt 0.611111 0.562500 +vt 0.583333 0.593750 +vt 0.597222 0.640625 +vt 0.583333 0.640625 +vt 0.625000 0.593750 +vt 0.638889 0.640625 +vt 0.625000 0.640625 +vt 0.611111 0.640625 +vt 0.611111 0.593750 +vt 0.652778 0.593750 +vt 0.638889 0.593750 +vt 0.597222 0.593750 +vt 0.569444 0.593750 +vt 0.555556 0.640625 +vt 0.555556 0.593750 +vt 0.569444 0.640625 +vt 0.666667 0.593750 +vt 0.652778 0.640625 +vt 0.625000 0.578125 +vt 0.638889 0.585938 +vt 0.638889 0.578125 +vt 0.652778 0.585938 +vt 0.652778 0.578125 +vt 0.666667 0.578125 +vt 0.652778 0.570312 +vt 0.569444 0.578125 +vt 0.583333 0.585938 +vt 0.569444 0.585938 +vt 0.597222 0.578125 +vt 0.611111 0.578125 +vt 0.638889 0.570312 +vt 0.555556 0.578125 +vt 0.569444 0.570312 +vt 0.583333 0.578125 +vt 0.583333 0.570312 +vt 0.541667 0.531250 +vt 0.527778 0.546875 +vt 0.527778 0.531250 +vt 0.500000 0.531250 +vt 0.486111 0.546875 +vt 0.486111 0.531250 +vt 0.513889 0.546875 +vt 0.513889 0.531250 +vt 0.444444 0.531250 +vt 0.458333 0.546875 +vt 0.444444 0.546875 +vt 0.555556 0.546875 +vt 0.541667 0.546875 +vt 0.472222 0.546875 +vt 0.472222 0.531250 +vt 0.500000 0.546875 +vt 0.458333 0.531250 +vt 0.527778 0.609375 +vt 0.513889 0.578125 +vt 0.527778 0.578125 +vt 0.486111 0.578125 +vt 0.472222 0.609375 +vt 0.472222 0.578125 +vt 0.500000 0.609375 +vt 0.500000 0.578125 +vt 0.458333 0.578125 +vt 0.513889 0.609375 +vt 0.555556 0.609375 +vt 0.541667 0.578125 +vt 0.555556 0.578125 +vt 0.541667 0.609375 +vt 0.458333 0.609375 +vt 0.444444 0.578125 +vt 0.486111 0.562500 +vt 0.500000 0.562500 +vt 0.472222 0.562500 +vt 0.458333 0.570312 +vt 0.472222 0.570312 +vt 0.458333 0.562500 +vt 0.444444 0.562500 +vt 0.458333 0.554688 +vt 0.527778 0.570312 +vt 0.541667 0.562500 +vt 0.541667 0.570312 +vt 0.527778 0.562500 +vt 0.513889 0.562500 +vt 0.472222 0.554688 +vt 0.555556 0.562500 +vt 0.541667 0.554688 +vt 0.527778 0.554688 +vt 0.416667 0.531250 +vt 0.402778 0.718750 +vt 0.402778 0.531250 +vt 0.375000 0.531250 +vt 0.361111 0.718750 +vt 0.361111 0.531250 +vt 0.347222 0.531250 +vt 0.333333 0.718750 +vt 0.333333 0.531250 +vt 0.430556 0.531250 +vt 0.416667 0.718750 +vt 0.388889 0.718750 +vt 0.388889 0.531250 +vt 0.375000 0.718750 +vt 0.347222 0.718750 +vt 0.444444 0.531250 +vt 0.430556 0.718750 +vt 0.583333 0.531250 +vt 0.569444 0.562500 +vt 0.569444 0.531250 +vt 0.625000 0.562500 +vt 0.611111 0.531250 +vt 0.625000 0.531250 +vt 0.597222 0.562500 +vt 0.597222 0.531250 +vt 0.666667 0.531250 +vt 0.652778 0.562500 +vt 0.652778 0.531250 +vt 0.555556 0.562500 +vt 0.555556 0.531250 +vt 0.638889 0.562500 +vt 0.638889 0.531250 +vt 0.611111 0.562500 +vt 0.583333 0.593750 +vt 0.597222 0.640625 +vt 0.583333 0.640625 +vt 0.625000 0.593750 +vt 0.638889 0.640625 +vt 0.625000 0.640625 +vt 0.611111 0.640625 +vt 0.611111 0.593750 +vt 0.652778 0.593750 +vt 0.638889 0.593750 +vt 0.597222 0.593750 +vt 0.569444 0.593750 +vt 0.555556 0.640625 +vt 0.555556 0.593750 +vt 0.569444 0.640625 +vt 0.666667 0.593750 +vt 0.652778 0.640625 +vt 0.625000 0.578125 +vt 0.638889 0.585938 +vt 0.652778 0.578125 +vt 0.652778 0.585938 +vt 0.666667 0.578125 +vt 0.652778 0.570312 +vt 0.569444 0.578125 +vt 0.583333 0.585938 +vt 0.569444 0.585938 +vt 0.597222 0.578125 +vt 0.611111 0.578125 +vt 0.638889 0.578125 +vt 0.638889 0.570312 +vt 0.555556 0.578125 +vt 0.569444 0.570312 +vt 0.583333 0.578125 +vt 0.583333 0.570312 +vt 0.527778 0.531250 +vt 0.541667 0.546875 +vt 0.527778 0.546875 +vt 0.500000 0.531250 +vt 0.486111 0.546875 +vt 0.486111 0.531250 +vt 0.513889 0.546875 +vt 0.513889 0.531250 +vt 0.444444 0.531250 +vt 0.458333 0.546875 +vt 0.444444 0.546875 +vt 0.541667 0.531250 +vt 0.555556 0.546875 +vt 0.472222 0.546875 +vt 0.472222 0.531250 +vt 0.500000 0.546875 +vt 0.458333 0.531250 +vt 0.527778 0.609375 +vt 0.513889 0.578125 +vt 0.527778 0.578125 +vt 0.486111 0.578125 +vt 0.472222 0.609375 +vt 0.472222 0.578125 +vt 0.500000 0.609375 +vt 0.500000 0.578125 +vt 0.458333 0.578125 +vt 0.513889 0.609375 +vt 0.555556 0.609375 +vt 0.541667 0.578125 +vt 0.555556 0.578125 +vt 0.541667 0.609375 +vt 0.458333 0.609375 +vt 0.444444 0.578125 +vt 0.486111 0.562500 +vt 0.500000 0.562500 +vt 0.472222 0.562500 +vt 0.458333 0.570312 +vt 0.472222 0.570312 +vt 0.458333 0.562500 +vt 0.444444 0.562500 +vt 0.458333 0.554688 +vt 0.541667 0.570312 +vt 0.527778 0.562500 +vt 0.541667 0.562500 +vt 0.527778 0.570312 +vt 0.513889 0.562500 +vt 0.472222 0.554688 +vt 0.555556 0.562500 +vt 0.541667 0.554688 +vt 0.527778 0.554688 +vt 0.416667 0.531250 +vt 0.402778 0.718750 +vt 0.402778 0.531250 +vt 0.375000 0.531250 +vt 0.361111 0.718750 +vt 0.361111 0.531250 +vt 0.347222 0.531250 +vt 0.333333 0.718750 +vt 0.333333 0.531250 +vt 0.430556 0.531250 +vt 0.416667 0.718750 +vt 0.388889 0.718750 +vt 0.388889 0.531250 +vt 0.375000 0.718750 +vt 0.347222 0.718750 +vt 0.444444 0.531250 +vt 0.430556 0.718750 +vt 0.583333 0.531250 +vt 0.569444 0.562500 +vt 0.569444 0.531250 +vt 0.625000 0.562500 +vt 0.611111 0.531250 +vt 0.625000 0.531250 +vt 0.597222 0.562500 +vt 0.597222 0.531250 +vt 0.666667 0.531250 +vt 0.652778 0.562500 +vt 0.652778 0.531250 +vt 0.555556 0.562500 +vt 0.555556 0.531250 +vt 0.638889 0.562500 +vt 0.638889 0.531250 +vt 0.611111 0.562500 +vt 0.583333 0.593750 +vt 0.597222 0.640625 +vt 0.583333 0.640625 +vt 0.625000 0.593750 +vt 0.638889 0.640625 +vt 0.625000 0.640625 +vt 0.611111 0.640625 +vt 0.611111 0.593750 +vt 0.652778 0.593750 +vt 0.638889 0.593750 +vt 0.597222 0.593750 +vt 0.569444 0.593750 +vt 0.555556 0.640625 +vt 0.555556 0.593750 +vt 0.569444 0.640625 +vt 0.666667 0.593750 +vt 0.652778 0.640625 +vt 0.625000 0.578125 +vt 0.638889 0.585938 +vt 0.638889 0.578125 +vt 0.652778 0.585938 +vt 0.652778 0.578125 +vt 0.666667 0.578125 +vt 0.652778 0.570312 +vt 0.569444 0.578125 +vt 0.583333 0.585938 +vt 0.569444 0.585938 +vt 0.597222 0.578125 +vt 0.611111 0.578125 +vt 0.555556 0.578125 +vt 0.569444 0.570312 +vt 0.583333 0.578125 +vt 0.583333 0.570312 +vt 0.527778 0.531250 +vt 0.541667 0.546875 +vt 0.527778 0.546875 +vt 0.500000 0.531250 +vt 0.486111 0.546875 +vt 0.486111 0.531250 +vt 0.513889 0.546875 +vt 0.513889 0.531250 +vt 0.444444 0.531250 +vt 0.458333 0.546875 +vt 0.444444 0.546875 +vt 0.541667 0.531250 +vt 0.555556 0.546875 +vt 0.472222 0.546875 +vt 0.472222 0.531250 +vt 0.500000 0.546875 +vt 0.458333 0.531250 +vt 0.527778 0.609375 +vt 0.513889 0.578125 +vt 0.527778 0.578125 +vt 0.486111 0.578125 +vt 0.472222 0.609375 +vt 0.472222 0.578125 +vt 0.500000 0.609375 +vt 0.500000 0.578125 +vt 0.458333 0.578125 +vt 0.513889 0.609375 +vt 0.555556 0.609375 +vt 0.541667 0.578125 +vt 0.555556 0.578125 +vt 0.541667 0.609375 +vt 0.458333 0.609375 +vt 0.444444 0.578125 +vt 0.486111 0.562500 +vt 0.500000 0.562500 +vt 0.472222 0.562500 +vt 0.458333 0.570312 +vt 0.472222 0.570312 +vt 0.458333 0.562500 +vt 0.444444 0.562500 +vt 0.458333 0.554688 +vt 0.541667 0.570312 +vt 0.527778 0.562500 +vt 0.541667 0.562500 +vt 0.527778 0.570312 +vt 0.513889 0.562500 +vt 0.472222 0.554688 +vt 0.555556 0.562500 +vt 0.541667 0.554688 +vt 0.527778 0.554688 +vt 0.444444 0.718750 +vt 0.569444 0.562500 +vt 0.666667 0.562500 +vt 0.666667 0.640625 +vt 0.555556 0.531250 +vt 0.486111 0.609375 +vt 0.444444 0.609375 +vt 0.444444 0.718750 +vt 0.583333 0.562500 +vt 0.666667 0.562500 +vt 0.666667 0.640625 +vt 0.555556 0.531250 +vt 0.486111 0.609375 +vt 0.444444 0.609375 +vt 0.444444 0.718750 +vt 0.583333 0.562500 +vt 0.666667 0.562500 +vt 0.666667 0.640625 +vt 0.555556 0.531250 +vt 0.486111 0.609375 +vt 0.444444 0.609375 +vt 0.444444 0.718750 +vt 0.583333 0.562500 +vt 0.666667 0.562500 +vt 0.666667 0.640625 +vt 0.638889 0.570312 +vt 0.555556 0.531250 +vt 0.486111 0.609375 +vt 0.444444 0.609375 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.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 -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.9987 -0.0196 0.0473 +vn -0.6794 -0.1447 0.7194 +vn 0.6794 -0.1447 0.7194 +vn -0.7263 0.1363 -0.6737 +vn 0.0000 0.7071 -0.7071 +vn -0.9987 -0.0196 0.0473 +vn 0.0000 -0.1866 0.9824 +vn 0.9987 -0.0473 0.0196 +vn 0.7071 -0.7071 0.0000 +vn -0.6794 -0.7194 0.1447 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.9824 0.1866 +vn -0.7263 0.6737 -0.1363 +vn -0.9987 -0.0473 0.0196 +vn 0.6794 -0.7194 0.1447 +vn 0.7263 0.6737 -0.1363 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.6630 -0.5293 0.5293 +vn -0.9955 -0.0670 0.0670 +vn -0.7573 0.4617 -0.4617 +vn 0.9955 -0.0670 0.0670 +vn 0.6630 -0.5293 0.5293 +vn 0.0000 -0.7071 0.7071 +vn 0.7573 0.4617 -0.4617 +vn 0.7263 0.1363 -0.6737 +vn 0.7263 -0.1363 -0.6737 +vn 0.9987 0.0196 0.0473 +vn -0.6794 0.1447 0.7194 +vn 0.6794 0.1447 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn 0.0000 -0.7071 -0.7071 +vn -0.9987 0.0196 0.0473 +vn 0.0000 0.1866 0.9824 +vn 0.6794 0.7194 0.1447 +vn 0.9987 0.0473 0.0196 +vn -0.6794 0.7194 0.1447 +vn -0.9987 0.0473 0.0196 +vn 0.0000 0.9824 0.1866 +vn -0.7263 -0.6737 -0.1363 +vn 0.7263 -0.6737 -0.1363 +vn -0.6630 0.5293 0.5293 +vn 0.0000 0.7071 0.7071 +vn -0.9955 0.0670 0.0670 +vn -0.7573 -0.4617 -0.4617 +vn 0.9955 0.0670 0.0670 +vn 0.7573 -0.4617 -0.4617 +vn 0.6630 0.5293 0.5293 +vn -0.6737 0.1363 -0.7263 +vn 0.7194 -0.1447 0.6794 +vn 0.7194 -0.1447 -0.6794 +vn -0.6737 0.1363 0.7263 +vn 0.0473 -0.0196 0.9987 +vn 0.9824 -0.1866 0.0000 +vn 0.0196 -0.0473 -0.9987 +vn 0.1447 -0.7194 0.6794 +vn 0.1866 -0.9824 0.0000 +vn -0.1363 0.6737 0.7263 +vn 0.0196 -0.0473 0.9987 +vn 0.1447 -0.7194 -0.6794 +vn -0.1363 0.6737 -0.7263 +vn 0.5293 -0.5293 0.6630 +vn 0.0670 -0.0670 0.9955 +vn -0.4617 0.4617 0.7573 +vn -0.4617 0.4617 -0.7573 +vn 0.5293 -0.5293 -0.6630 +vn 0.0670 -0.0670 -0.9955 +vn 0.0473 -0.0196 -0.9987 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1447 0.6794 +vn 0.7194 0.1447 -0.6794 +vn -0.6737 -0.1363 0.7263 +vn -0.6737 -0.1363 -0.7263 +vn 0.0473 0.0196 0.9987 +vn 0.9824 0.1866 0.0000 +vn 0.1447 0.7194 -0.6794 +vn 0.0196 0.0473 -0.9987 +vn 0.1447 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 0.7263 +vn -0.1363 -0.6737 -0.7263 +vn 0.5293 0.5293 0.6630 +vn 0.0670 0.0670 0.9955 +vn -0.4617 -0.4617 0.7573 +vn -0.4617 -0.4617 -0.7573 +vn 0.0670 0.0670 -0.9955 +vn 0.5293 0.5293 -0.6630 +vn -0.7263 0.1363 0.6737 +vn 0.6794 -0.1447 -0.7194 +vn -0.6794 -0.1447 -0.7194 +vn 0.7263 0.1363 0.6737 +vn 0.9987 -0.0196 -0.0473 +vn 0.0000 -0.1866 -0.9824 +vn -0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1447 +vn 0.0000 -0.9824 -0.1866 +vn 0.7263 0.6737 0.1363 +vn 0.9987 -0.0473 -0.0196 +vn -0.6794 -0.7194 -0.1447 +vn -0.7263 0.6737 0.1363 +vn 0.6630 -0.5293 -0.5293 +vn 0.7573 0.4617 0.4617 +vn -0.7573 0.4617 0.4617 +vn -0.6630 -0.5293 -0.5293 +vn 0.9955 -0.0670 -0.0670 +vn -0.9955 -0.0670 -0.0670 +vn -0.9987 -0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn -0.9987 0.0196 -0.0473 +vn 0.6794 0.1447 -0.7194 +vn -0.6794 0.1447 -0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.9987 0.0196 -0.0473 +vn 0.0000 0.1866 -0.9824 +vn -0.6794 0.7194 -0.1447 +vn -0.9987 0.0473 -0.0196 +vn 0.6794 0.7194 -0.1447 +vn 0.9987 0.0473 -0.0196 +vn 0.0000 0.9824 -0.1866 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn 0.6630 0.5293 -0.5293 +vn 0.9955 0.0670 -0.0670 +vn 0.7573 -0.4617 0.4617 +vn -0.9955 0.0670 -0.0670 +vn -0.7573 -0.4617 0.4617 +vn -0.6630 0.5293 -0.5293 +vn 0.6737 0.1363 0.7263 +vn -0.7194 -0.1447 -0.6794 +vn -0.7194 -0.1447 0.6794 +vn 0.6737 0.1363 -0.7263 +vn -0.0473 -0.0196 -0.9987 +vn -0.9824 -0.1866 0.0000 +vn -0.0196 -0.0473 0.9987 +vn -0.1447 -0.7194 -0.6794 +vn -0.1866 -0.9824 0.0000 +vn 0.1363 0.6737 -0.7263 +vn -0.0196 -0.0473 -0.9987 +vn -0.1447 -0.7194 0.6794 +vn 0.1363 0.6737 0.7263 +vn -0.5293 -0.5293 -0.6630 +vn -0.0670 -0.0670 -0.9955 +vn 0.4617 0.4617 -0.7573 +vn 0.4617 0.4617 0.7573 +vn -0.5293 -0.5293 0.6630 +vn -0.0670 -0.0670 0.9955 +vn -0.0473 -0.0196 0.9987 +vn 0.6737 -0.1363 0.7263 +vn -0.0473 0.0196 0.9987 +vn -0.7194 0.1447 -0.6794 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 -0.7263 +vn -0.0473 0.0196 -0.9987 +vn -0.9824 0.1866 0.0000 +vn -0.1447 0.7194 0.6794 +vn -0.0196 0.0473 0.9987 +vn -0.1447 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn -0.1866 0.9824 0.0000 +vn 0.1363 -0.6737 -0.7263 +vn 0.1363 -0.6737 0.7263 +vn -0.5293 0.5293 -0.6630 +vn -0.0670 0.0670 -0.9955 +vn 0.4617 -0.4617 -0.7573 +vn -0.0670 0.0670 0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.5293 0.5293 0.6630 +s off +f 3/1/1 2/2/1 1/3/1 +f 15/4/2 8/5/2 7/6/2 +f 8/7/3 12/8/3 7/9/3 +f 7/9/3 10/10/3 3/11/3 +f 3/11/3 9/12/3 4/13/3 +f 4/13/3 11/14/3 8/7/3 +f 13/15/2 7/6/2 5/16/2 +f 14/17/2 5/16/2 6/18/2 +f 16/19/2 6/18/2 8/5/2 +f 18/20/4 28/21/4 20/22/4 +f 14/23/3 22/24/3 13/25/3 +f 15/26/5 24/27/5 16/28/5 +f 17/29/5 27/30/5 18/20/5 +f 17/29/2 20/22/2 19/31/2 +f 25/32/2 24/27/2 21/33/2 +f 26/34/2 21/35/2 22/36/2 +f 27/30/2 22/24/2 23/37/2 +f 28/21/2 23/38/2 24/39/2 +f 19/31/6 26/34/6 17/29/6 +f 16/40/6 23/38/6 14/41/6 +f 13/42/4 21/35/4 15/43/4 +f 20/22/3 25/32/3 19/31/3 +f 34/44/5 1/45/5 2/46/5 +f 4/47/4 37/48/4 2/2/4 +f 36/49/5 2/46/5 6/50/5 +f 2/2/4 39/51/4 6/18/4 +f 40/52/4 4/47/4 8/5/4 +f 8/5/4 39/51/4 40/52/4 +f 43/53/4 42/54/4 41/55/4 +f 44/56/5 47/57/5 42/54/5 +f 41/55/3 45/58/3 43/53/3 +f 43/53/2 48/59/2 44/56/2 +f 42/54/1 46/60/1 41/55/1 +f 146/61/2 147/62/2 145/63/2 +f 144/64/5 146/65/5 142/66/5 +f 141/67/3 147/62/3 143/68/3 +f 143/68/4 148/69/4 144/64/4 +f 5/70/5 36/49/5 6/50/5 +f 1/45/5 35/71/5 5/70/5 +f 1/72/6 32/73/6 30/74/6 +f 29/75/6 7/76/6 3/77/6 +f 7/76/6 32/73/6 5/78/6 +f 30/74/6 3/77/6 1/72/6 +f 150/79/2 154/80/2 152/81/2 +f 156/82/4 157/83/4 153/84/4 +f 149/85/5 153/86/5 150/79/5 +f 152/81/3 155/87/3 151/88/3 +f 151/88/1 156/82/1 149/89/1 +f 159/90/2 164/91/2 160/92/2 +f 154/93/4 159/94/4 155/87/4 +f 155/87/4 160/95/4 156/82/4 +f 153/84/4 158/96/4 154/93/4 +f 157/97/1 162/98/1 158/99/1 +f 160/100/3 161/101/3 157/102/3 +f 158/103/5 163/104/5 159/105/5 +f 165/106/4 167/107/4 166/108/4 +f 171/109/4 178/110/4 169/111/4 +f 173/112/2 170/113/2 172/114/2 +f 175/115/1 169/111/1 176/116/1 +f 172/114/3 175/117/3 173/118/3 +f 171/109/4 179/119/4 177/120/4 +f 178/121/5 184/122/5 180/123/5 +f 170/113/4 178/110/4 180/124/4 +f 180/124/4 172/114/4 170/113/4 +f 176/125/5 170/113/5 174/126/5 +f 184/122/4 181/127/4 183/128/4 +f 177/129/1 182/130/1 178/131/1 +f 179/132/3 181/127/3 177/133/3 +f 179/134/2 184/122/2 183/128/2 +f 187/135/3 186/136/3 185/137/3 +f 188/138/4 191/139/4 186/136/4 +f 185/137/6 189/140/6 187/135/6 +f 187/135/2 192/141/2 188/138/2 +f 186/136/1 190/142/1 185/137/1 +f 289/143/2 292/144/2 291/145/2 +f 288/146/4 290/147/4 286/148/4 +f 285/149/6 291/145/6 287/150/6 +f 287/150/3 292/144/3 288/146/3 +f 294/151/2 298/152/2 296/153/2 +f 300/154/3 301/155/3 297/156/3 +f 293/157/4 297/158/4 294/151/4 +f 296/153/6 299/159/6 295/160/6 +f 295/160/1 300/154/1 293/161/1 +f 298/162/3 303/163/3 299/159/3 +f 299/159/3 304/164/3 300/154/3 +f 297/156/3 302/165/3 298/162/3 +f 305/166/3 307/167/3 306/168/3 +f 311/169/3 318/170/3 309/171/3 +f 314/172/2 312/173/2 313/174/2 +f 315/175/1 309/171/1 316/176/1 +f 312/173/6 315/177/6 313/178/6 +f 311/169/3 319/179/3 317/180/3 +f 318/181/4 324/182/4 320/183/4 +f 310/184/3 318/170/3 320/185/3 +f 320/185/3 312/173/3 310/184/3 +f 316/186/4 310/184/4 314/187/4 +f 324/182/3 321/188/3 323/189/3 +f 317/190/1 322/191/1 318/192/1 +f 319/193/6 321/188/6 317/194/6 +f 319/195/2 324/182/2 323/189/2 +f 327/196/6 326/197/6 325/198/6 +f 328/199/3 331/200/3 326/197/3 +f 325/198/5 329/201/5 327/196/5 +f 327/196/2 332/202/2 328/199/2 +f 326/197/1 330/203/1 325/198/1 +f 429/204/2 432/205/2 431/206/2 +f 428/207/3 430/208/3 426/209/3 +f 425/210/5 431/206/5 427/211/5 +f 427/211/6 432/205/6 428/207/6 +f 434/212/2 438/213/2 436/214/2 +f 440/215/6 441/216/6 437/217/6 +f 433/218/3 437/219/3 434/212/3 +f 436/214/5 439/220/5 435/221/5 +f 435/221/1 440/215/1 433/222/1 +f 438/223/6 443/224/6 439/220/6 +f 439/220/6 444/225/6 440/215/6 +f 437/217/6 442/226/6 438/223/6 +f 445/227/6 447/228/6 446/229/6 +f 451/230/6 458/231/6 449/232/6 +f 454/233/2 452/234/2 453/235/2 +f 455/236/1 449/232/1 456/237/1 +f 452/234/5 455/238/5 453/239/5 +f 457/240/6 452/234/6 459/241/6 +f 458/242/3 464/243/3 460/244/3 +f 449/232/6 460/245/6 450/246/6 +f 460/245/6 452/234/6 450/246/6 +f 456/247/3 450/246/3 454/248/3 +f 464/243/6 461/249/6 463/250/6 +f 457/251/1 462/252/1 458/253/1 +f 459/254/5 461/249/5 457/255/5 +f 459/256/2 464/243/2 463/250/2 +f 467/257/5 466/258/5 465/259/5 +f 468/260/6 471/261/6 466/258/6 +f 465/259/4 469/262/4 467/257/4 +f 467/257/2 472/263/2 468/260/2 +f 466/258/1 470/264/1 465/259/1 +f 569/265/2 572/266/2 571/267/2 +f 568/268/6 570/269/6 566/270/6 +f 565/271/4 571/267/4 567/272/4 +f 567/272/5 572/266/5 568/268/5 +f 574/273/2 578/274/2 576/275/2 +f 580/276/5 581/277/5 577/278/5 +f 573/279/6 577/280/6 574/273/6 +f 576/275/4 579/281/4 575/282/4 +f 575/282/1 580/276/1 573/283/1 +f 578/284/5 583/285/5 579/281/5 +f 579/281/5 584/286/5 580/276/5 +f 577/278/5 582/287/5 578/284/5 +f 585/288/5 587/289/5 586/290/5 +f 591/291/5 598/292/5 589/293/5 +f 594/294/2 592/295/2 593/296/2 +f 595/297/1 589/293/1 596/298/1 +f 592/295/4 595/299/4 593/300/4 +f 597/301/5 592/295/5 599/302/5 +f 598/303/6 604/304/6 600/305/6 +f 589/293/5 600/306/5 590/307/5 +f 600/306/5 592/295/5 590/307/5 +f 596/308/6 590/307/6 594/309/6 +f 604/304/5 601/310/5 603/311/5 +f 597/312/1 602/313/1 598/314/1 +f 599/315/4 601/310/4 597/316/4 +f 599/317/2 604/304/2 603/311/2 +f 607/318/2 612/319/2 608/320/2 +f 605/321/1 610/322/1 606/323/1 +f 608/324/6 609/325/6 605/326/6 +f 606/327/4 611/328/4 607/329/4 +f 615/330/2 620/331/2 616/332/2 +f 613/333/1 618/334/1 614/335/1 +f 616/336/5 617/337/5 613/338/5 +f 614/339/3 619/340/3 615/341/3 +f 623/342/2 628/343/2 624/344/2 +f 621/345/1 626/346/1 622/347/1 +f 624/348/4 625/349/4 621/350/4 +f 622/351/6 627/352/6 623/353/6 +f 3/1/1 4/47/1 2/2/1 +f 15/4/2 16/19/2 8/5/2 +f 8/7/3 11/14/3 12/8/3 +f 7/9/3 12/8/3 10/10/3 +f 3/11/3 10/10/3 9/12/3 +f 4/13/3 9/12/3 11/14/3 +f 13/15/2 15/4/2 7/6/2 +f 14/17/2 13/15/2 5/16/2 +f 16/19/2 14/17/2 6/18/2 +f 18/20/4 27/354/4 28/21/4 +f 14/23/3 23/37/3 22/24/3 +f 15/26/5 21/33/5 24/27/5 +f 17/29/5 26/355/5 27/30/5 +f 17/29/2 18/20/2 20/22/2 +f 25/32/2 28/356/2 24/27/2 +f 26/34/2 25/357/2 21/35/2 +f 27/30/2 26/355/2 22/24/2 +f 28/21/2 27/354/2 23/38/2 +f 19/31/6 25/357/6 26/34/6 +f 16/40/6 24/39/6 23/38/6 +f 13/42/4 22/36/4 21/35/4 +f 20/22/3 28/356/3 25/32/3 +f 34/44/5 33/358/5 1/45/5 +f 4/47/4 38/359/4 37/48/4 +f 36/49/5 34/44/5 2/46/5 +f 2/2/4 37/48/4 39/51/4 +f 40/52/4 38/359/4 4/47/4 +f 8/5/4 6/18/4 39/51/4 +f 43/53/4 44/56/4 42/54/4 +f 44/56/5 48/360/5 47/57/5 +f 41/55/3 46/361/3 45/58/3 +f 43/53/2 45/362/2 48/59/2 +f 42/54/1 47/363/1 46/60/1 +f 146/61/2 148/69/2 147/62/2 +f 144/64/5 148/69/5 146/65/5 +f 141/67/3 145/364/3 147/62/3 +f 143/68/4 147/62/4 148/69/4 +f 5/70/5 35/71/5 36/49/5 +f 1/45/5 33/358/5 35/71/5 +f 1/72/6 5/78/6 32/73/6 +f 29/75/6 31/365/6 7/76/6 +f 7/76/6 31/365/6 32/73/6 +f 30/74/6 29/75/6 3/77/6 +f 150/79/2 153/86/2 154/80/2 +f 156/82/4 160/95/4 157/83/4 +f 149/85/5 156/366/5 153/86/5 +f 152/81/3 154/80/3 155/87/3 +f 151/88/1 155/87/1 156/82/1 +f 159/90/2 163/104/2 164/91/2 +f 154/93/4 158/96/4 159/94/4 +f 155/87/4 159/94/4 160/95/4 +f 153/84/4 157/83/4 158/96/4 +f 157/97/1 161/101/1 162/98/1 +f 160/100/3 164/91/3 161/101/3 +f 158/103/5 162/98/5 163/104/5 +f 165/106/4 168/367/4 167/107/4 +f 171/109/4 177/120/4 178/110/4 +f 173/112/2 174/368/2 170/113/2 +f 175/115/1 171/109/1 169/111/1 +f 172/114/3 171/109/3 175/117/3 +f 171/109/4 172/114/4 179/119/4 +f 178/121/5 182/130/5 184/122/5 +f 170/113/4 169/111/4 178/110/4 +f 180/124/4 179/119/4 172/114/4 +f 176/125/5 169/111/5 170/113/5 +f 184/122/4 182/130/4 181/127/4 +f 177/129/1 181/127/1 182/130/1 +f 179/132/3 183/128/3 181/127/3 +f 179/134/2 180/369/2 184/122/2 +f 187/135/3 188/138/3 186/136/3 +f 188/138/4 192/370/4 191/139/4 +f 185/137/6 190/371/6 189/140/6 +f 187/135/2 189/372/2 192/141/2 +f 186/136/1 191/373/1 190/142/1 +f 289/143/2 290/374/2 292/144/2 +f 288/146/4 292/144/4 290/147/4 +f 285/149/6 289/375/6 291/145/6 +f 287/150/3 291/145/3 292/144/3 +f 294/151/2 297/158/2 298/152/2 +f 300/154/3 304/164/3 301/155/3 +f 293/157/4 300/376/4 297/158/4 +f 296/153/6 298/152/6 299/159/6 +f 295/160/1 299/159/1 300/154/1 +f 298/162/3 302/165/3 303/163/3 +f 299/159/3 303/163/3 304/164/3 +f 297/156/3 301/155/3 302/165/3 +f 305/166/3 308/377/3 307/167/3 +f 311/169/3 317/180/3 318/170/3 +f 314/172/2 310/184/2 312/173/2 +f 315/175/1 311/169/1 309/171/1 +f 312/173/6 311/169/6 315/177/6 +f 311/169/3 312/173/3 319/179/3 +f 318/181/4 322/191/4 324/182/4 +f 310/184/3 309/171/3 318/170/3 +f 320/185/3 319/179/3 312/173/3 +f 316/186/4 309/171/4 310/184/4 +f 324/182/3 322/191/3 321/188/3 +f 317/190/1 321/188/1 322/191/1 +f 319/193/6 323/189/6 321/188/6 +f 319/195/2 320/378/2 324/182/2 +f 327/196/6 328/199/6 326/197/6 +f 328/199/3 332/379/3 331/200/3 +f 325/198/5 330/380/5 329/201/5 +f 327/196/2 329/381/2 332/202/2 +f 326/197/1 331/382/1 330/203/1 +f 429/204/2 430/383/2 432/205/2 +f 428/207/3 432/205/3 430/208/3 +f 425/210/5 429/384/5 431/206/5 +f 427/211/6 431/206/6 432/205/6 +f 434/212/2 437/219/2 438/213/2 +f 440/215/6 444/225/6 441/216/6 +f 433/218/3 440/385/3 437/219/3 +f 436/214/5 438/213/5 439/220/5 +f 435/221/1 439/220/1 440/215/1 +f 438/223/6 442/226/6 443/224/6 +f 439/220/6 443/224/6 444/225/6 +f 437/217/6 441/216/6 442/226/6 +f 445/227/6 448/386/6 447/228/6 +f 451/230/6 457/240/6 458/231/6 +f 454/233/2 450/246/2 452/234/2 +f 455/236/1 451/230/1 449/232/1 +f 452/234/5 451/230/5 455/238/5 +f 457/240/6 451/230/6 452/234/6 +f 458/242/3 462/252/3 464/243/3 +f 449/232/6 458/231/6 460/245/6 +f 460/245/6 459/241/6 452/234/6 +f 456/247/3 449/232/3 450/246/3 +f 464/243/6 462/252/6 461/249/6 +f 457/251/1 461/249/1 462/252/1 +f 459/254/5 463/250/5 461/249/5 +f 459/256/2 460/387/2 464/243/2 +f 467/257/5 468/260/5 466/258/5 +f 468/260/6 472/388/6 471/261/6 +f 465/259/4 470/389/4 469/262/4 +f 467/257/2 469/390/2 472/263/2 +f 466/258/1 471/391/1 470/264/1 +f 569/265/2 570/392/2 572/266/2 +f 568/268/6 572/266/6 570/269/6 +f 565/271/4 569/393/4 571/267/4 +f 567/272/5 571/267/5 572/266/5 +f 574/273/2 577/280/2 578/274/2 +f 580/276/5 584/286/5 581/277/5 +f 573/279/6 580/394/6 577/280/6 +f 576/275/4 578/274/4 579/281/4 +f 575/282/1 579/281/1 580/276/1 +f 578/284/5 582/287/5 583/285/5 +f 579/281/5 583/285/5 584/286/5 +f 577/278/5 581/277/5 582/287/5 +f 585/288/5 588/395/5 587/289/5 +f 591/291/5 597/301/5 598/292/5 +f 594/294/2 590/307/2 592/295/2 +f 595/297/1 591/291/1 589/293/1 +f 592/295/4 591/291/4 595/299/4 +f 597/301/5 591/291/5 592/295/5 +f 598/303/6 602/313/6 604/304/6 +f 589/293/5 598/292/5 600/306/5 +f 600/306/5 599/302/5 592/295/5 +f 596/308/6 589/293/6 590/307/6 +f 604/304/5 602/313/5 601/310/5 +f 597/312/1 601/310/1 602/313/1 +f 599/315/4 603/311/4 601/310/4 +f 599/317/2 600/396/2 604/304/2 +f 607/318/2 611/328/2 612/319/2 +f 605/321/1 609/325/1 610/322/1 +f 608/324/6 612/319/6 609/325/6 +f 606/327/4 610/322/4 611/328/4 +f 615/330/2 619/340/2 620/331/2 +f 613/333/1 617/337/1 618/334/1 +f 616/336/5 620/331/5 617/337/5 +f 614/339/3 618/334/3 619/340/3 +f 623/342/2 627/352/2 628/343/2 +f 621/345/1 625/349/1 626/346/1 +f 624/348/4 628/343/4 625/349/4 +f 622/351/6 626/346/6 627/352/6 +s 1 +f 51/397/3 58/398/7 50/399/7 +f 56/400/8 63/401/5 55/402/5 +f 54/403/9 61/404/6 53/405/6 +f 52/406/10 59/407/3 51/397/3 +f 50/399/7 57/408/4 49/409/4 +f 49/409/4 64/410/8 56/400/8 +f 55/402/5 62/411/9 54/403/9 +f 53/412/6 60/413/10 52/406/10 +f 87/414/11 74/415/7 73/416/4 +f 82/417/12 79/418/5 78/419/9 +f 88/420/13 73/416/4 80/421/8 +f 75/422/3 84/423/14 76/424/10 +f 74/415/7 85/425/15 75/426/3 +f 83/427/16 78/419/9 77/428/6 +f 80/421/8 81/429/17 88/420/13 +f 84/423/14 77/428/6 76/424/10 +f 94/430/18 65/431/19 66/432/4 +f 90/433/20 69/434/6 70/435/21 +f 90/433/20 71/436/1 89/437/22 +f 92/438/23 69/434/6 91/439/24 +f 89/437/22 65/431/19 95/440/25 +f 93/441/26 72/442/2 85/443/15 +f 94/430/18 67/444/27 93/441/26 +f 85/445/15 68/446/28 92/438/23 +f 89/437/22 97/447/29 90/433/20 +f 90/433/20 98/448/30 91/449/24 +f 91/449/24 99/450/31 92/451/23 +f 99/450/31 85/452/15 92/451/23 +f 84/453/14 85/452/15 99/450/31 +f 93/454/26 101/455/32 94/456/18 +f 101/455/32 95/440/25 94/456/18 +f 102/457/33 89/437/22 95/440/25 +f 81/429/17 97/447/29 96/458/34 +f 82/417/12 98/448/30 97/447/29 +f 83/459/16 99/450/31 98/448/30 +f 100/460/35 93/454/26 85/461/15 +f 86/462/36 100/460/35 85/461/15 +f 86/462/36 101/455/32 100/460/35 +f 87/463/11 102/457/33 101/455/32 +f 88/420/13 96/458/34 102/457/33 +f 111/464/4 124/465/37 125/466/38 +f 117/467/5 120/468/39 116/469/9 +f 111/464/4 126/470/40 118/471/8 +f 113/472/3 122/473/41 123/474/42 +f 112/475/7 123/476/42 124/465/37 +f 116/469/9 121/477/43 115/478/6 +f 118/471/8 119/479/44 117/467/5 +f 114/480/10 121/477/43 122/473/41 +f 104/481/4 133/482/45 132/483/46 +f 128/484/47 107/485/6 129/486/48 +f 109/487/2 128/484/47 127/488/49 +f 107/485/6 130/489/50 129/486/48 +f 103/490/27 127/488/49 133/482/45 +f 110/491/1 131/492/51 123/493/42 +f 105/494/19 132/483/46 131/492/51 +f 106/495/21 123/496/42 130/489/50 +f 127/488/49 135/497/52 134/498/53 +f 128/484/47 136/499/54 135/497/52 +f 129/500/48 137/501/55 136/499/54 +f 137/501/55 130/502/50 123/503/42 +f 122/504/41 137/501/55 123/503/42 +f 131/505/51 139/506/56 138/507/57 +f 133/482/45 139/506/56 132/508/46 +f 127/488/49 140/509/58 133/482/45 +f 135/497/52 119/479/44 134/498/53 +f 135/497/52 121/510/43 120/468/39 +f 137/501/55 121/510/43 136/499/54 +f 138/507/57 123/511/42 131/505/51 +f 124/512/37 123/511/42 138/507/57 +f 138/507/57 125/513/38 124/512/37 +f 140/509/58 125/513/38 139/506/56 +f 140/509/58 119/479/44 126/470/40 +f 195/514/6 202/515/10 194/516/10 +f 200/517/7 207/518/4 199/519/4 +f 198/520/8 205/521/5 197/522/5 +f 196/523/9 203/524/6 195/514/6 +f 194/516/10 201/525/3 193/526/3 +f 193/526/3 208/527/7 200/517/7 +f 199/519/4 206/528/8 198/520/8 +f 197/529/5 204/530/9 196/523/9 +f 217/531/3 230/532/59 218/533/10 +f 226/534/60 223/535/4 222/536/8 +f 232/537/61 217/531/3 224/538/7 +f 219/539/6 228/540/62 220/541/9 +f 218/533/10 229/542/28 219/543/6 +f 227/544/63 222/536/8 221/545/5 +f 224/538/7 225/546/64 232/537/61 +f 220/541/9 227/544/63 221/545/5 +f 238/547/65 209/548/42 210/549/3 +f 234/550/66 213/551/5 214/552/34 +f 234/550/66 215/553/1 233/554/67 +f 236/555/68 213/551/5 235/556/69 +f 233/554/67 209/548/42 239/557/70 +f 237/558/71 216/559/2 229/560/28 +f 238/547/65 211/561/15 237/558/71 +f 229/562/28 212/563/53 236/555/68 +f 233/554/67 241/564/72 234/550/66 +f 241/564/72 235/565/69 234/550/66 +f 242/566/73 236/567/68 235/565/69 +f 243/568/74 229/569/28 236/567/68 +f 228/570/62 229/569/28 243/568/74 +f 244/571/75 238/572/65 237/573/71 +f 238/572/65 246/574/76 239/557/70 +f 239/557/70 240/575/19 233/554/67 +f 225/546/64 241/564/72 240/575/19 +f 241/564/72 227/576/63 242/566/73 +f 242/566/73 228/570/62 243/568/74 +f 244/571/75 237/573/71 229/577/28 +f 230/578/59 244/571/75 229/577/28 +f 230/578/59 245/579/77 244/571/75 +f 231/580/78 246/574/76 245/579/77 +f 232/537/61 240/575/19 246/574/76 +f 256/581/10 269/582/79 255/583/3 +f 261/584/4 264/585/80 260/586/8 +f 255/583/3 270/587/81 262/588/7 +f 257/589/6 266/590/82 267/591/21 +f 256/581/10 267/592/21 268/593/83 +f 260/586/8 265/594/84 259/595/5 +f 262/588/7 263/596/85 261/584/4 +f 258/597/9 265/594/84 266/590/82 +f 248/598/3 277/599/86 276/600/87 +f 272/601/88 251/602/5 273/603/89 +f 253/604/2 272/601/88 271/605/90 +f 251/602/5 274/606/91 273/603/89 +f 247/607/15 271/605/90 277/599/86 +f 254/608/1 275/609/92 267/610/21 +f 249/611/42 276/600/87 275/609/92 +f 250/612/34 267/613/21 274/606/91 +f 271/605/90 279/614/93 278/615/27 +f 272/601/88 280/616/94 279/614/93 +f 274/617/91 280/616/94 273/618/89 +f 281/619/95 274/617/91 267/620/21 +f 266/621/82 281/619/95 267/620/21 +f 276/622/87 282/623/96 275/624/92 +f 277/599/86 283/625/97 276/622/87 +f 271/605/90 284/626/98 277/599/86 +f 279/614/93 263/596/85 278/615/27 +f 279/614/93 265/627/84 264/585/80 +f 280/616/94 266/621/82 265/627/84 +f 282/623/96 267/628/21 275/624/92 +f 268/629/83 267/628/21 282/623/96 +f 283/625/97 268/629/83 282/623/96 +f 284/626/98 269/630/79 283/625/97 +f 284/626/98 263/596/85 270/587/81 +f 335/631/5 342/632/9 334/633/9 +f 340/634/10 347/635/3 339/636/3 +f 338/637/7 345/638/4 337/639/4 +f 336/640/8 343/641/5 335/631/5 +f 334/633/9 341/642/6 333/643/6 +f 333/643/6 348/644/10 340/634/10 +f 339/636/3 346/645/7 338/637/7 +f 337/646/4 344/647/8 336/640/8 +f 357/648/6 370/649/99 358/650/9 +f 366/651/100 363/652/3 362/653/7 +f 372/654/101 357/648/6 364/655/10 +f 359/656/5 368/657/102 360/658/8 +f 358/650/9 369/659/53 359/660/5 +f 367/661/103 362/653/7 361/662/4 +f 364/655/10 365/663/104 372/654/101 +f 368/657/102 361/662/4 360/658/8 +f 378/664/105 349/665/21 350/666/6 +f 374/667/106 353/668/4 354/669/19 +f 374/667/106 355/670/1 373/671/107 +f 376/672/108 353/668/4 375/673/109 +f 373/671/107 349/665/21 379/674/110 +f 377/675/111 356/676/2 369/677/53 +f 378/664/105 351/678/28 377/675/111 +f 369/679/53 352/680/27 376/672/108 +f 373/671/107 381/681/112 374/667/106 +f 381/681/112 375/682/109 374/667/106 +f 375/682/109 383/683/113 376/684/108 +f 383/683/113 369/685/53 376/684/108 +f 368/686/102 369/685/53 383/683/113 +f 384/687/114 378/688/105 377/689/111 +f 378/688/105 386/690/115 379/674/110 +f 379/674/110 380/691/42 373/671/107 +f 365/663/104 381/681/112 380/691/42 +f 366/651/100 382/692/116 381/681/112 +f 367/693/103 383/683/113 382/692/116 +f 384/687/114 377/689/111 369/694/53 +f 370/695/99 384/687/114 369/694/53 +f 370/695/99 385/696/117 384/687/114 +f 371/697/118 386/690/115 385/696/117 +f 372/654/101 380/691/42 386/690/115 +f 395/698/6 408/699/119 409/700/120 +f 401/701/3 404/702/121 400/703/7 +f 395/698/6 410/704/122 402/705/10 +f 397/706/5 406/707/123 407/708/34 +f 396/709/9 407/710/34 408/699/119 +f 400/703/7 405/711/124 399/712/4 +f 402/705/10 403/713/125 401/701/3 +f 398/714/8 405/711/124 406/707/123 +f 388/715/6 417/716/126 416/717/127 +f 412/718/128 391/719/4 413/720/129 +f 393/721/2 412/718/128 411/722/130 +f 391/719/4 414/723/131 413/720/129 +f 387/724/28 411/722/130 417/716/126 +f 394/725/1 415/726/132 407/727/34 +f 389/728/21 416/717/127 415/726/132 +f 390/729/19 407/730/34 414/723/131 +f 411/722/130 419/731/133 418/732/15 +f 412/718/128 420/733/134 419/731/133 +f 414/734/131 420/733/134 413/735/129 +f 421/736/135 414/734/131 407/737/34 +f 406/738/123 421/736/135 407/737/34 +f 415/739/132 423/740/136 422/741/137 +f 417/716/126 423/740/136 416/742/127 +f 411/722/130 424/743/138 417/716/126 +f 419/731/133 403/713/125 418/732/15 +f 419/731/133 405/744/124 404/702/121 +f 420/733/134 406/738/123 405/744/124 +f 422/741/137 407/745/34 415/739/132 +f 408/746/119 407/745/34 422/741/137 +f 423/740/136 408/746/119 422/741/137 +f 424/743/138 409/747/120 423/740/136 +f 418/732/15 410/704/122 424/743/138 +f 475/748/4 482/749/8 474/750/8 +f 480/751/9 487/752/6 479/753/6 +f 478/754/10 485/755/3 477/756/3 +f 476/757/7 483/758/4 475/748/4 +f 474/750/8 481/759/5 473/760/5 +f 473/760/5 488/761/9 480/751/9 +f 479/753/6 486/762/10 478/754/10 +f 477/763/3 484/764/7 476/757/7 +f 497/765/5 510/766/139 498/767/8 +f 506/768/140 503/769/6 502/770/10 +f 512/771/141 497/765/5 504/772/9 +f 499/773/4 508/774/142 500/775/7 +f 498/767/8 509/776/27 499/777/4 +f 507/778/143 502/770/10 501/779/3 +f 504/772/9 505/780/144 512/771/141 +f 508/774/142 501/779/3 500/775/7 +f 518/781/145 489/782/34 490/783/5 +f 514/784/146 493/785/3 494/786/42 +f 514/784/146 495/787/1 513/788/147 +f 516/789/148 493/785/3 515/790/149 +f 513/788/147 489/782/34 519/791/150 +f 517/792/151 496/793/2 509/794/27 +f 518/781/145 491/795/53 517/792/151 +f 509/796/27 492/797/15 516/789/148 +f 513/788/147 521/798/152 514/784/146 +f 521/798/152 515/799/149 514/784/146 +f 522/800/153 516/801/148 515/799/149 +f 523/802/154 509/803/27 516/801/148 +f 508/804/142 509/803/27 523/802/154 +f 524/805/155 518/806/145 517/807/151 +f 518/806/145 526/808/156 519/791/150 +f 519/791/150 520/809/21 513/788/147 +f 520/809/21 506/768/140 521/798/152 +f 506/768/140 522/800/153 521/798/152 +f 522/800/153 508/804/142 523/802/154 +f 524/805/155 517/807/151 509/810/27 +f 510/811/139 524/805/155 509/810/27 +f 510/811/139 525/812/157 524/805/155 +f 511/813/158 526/808/156 525/812/157 +f 526/808/156 505/780/144 520/809/21 +f 535/814/5 548/815/159 549/816/160 +f 541/817/6 544/818/161 540/819/10 +f 535/814/5 550/820/162 542/821/9 +f 537/822/4 546/823/163 547/824/19 +f 536/825/8 547/826/19 548/815/159 +f 540/819/10 545/827/164 539/828/3 +f 542/821/9 543/829/165 541/817/6 +f 538/830/7 545/827/164 546/823/163 +f 528/831/5 557/832/166 556/833/167 +f 552/834/168 531/835/3 553/836/169 +f 533/837/2 552/834/168 551/838/170 +f 531/835/3 554/839/171 553/836/169 +f 527/840/53 551/838/170 557/832/166 +f 534/841/1 555/842/172 547/843/19 +f 529/844/34 556/833/167 555/842/172 +f 530/845/42 547/846/19 554/839/171 +f 551/838/170 559/847/173 558/848/28 +f 552/834/168 560/849/174 559/847/173 +f 554/850/171 560/849/174 553/851/169 +f 561/852/175 554/850/171 547/853/19 +f 546/854/163 561/852/175 547/853/19 +f 555/855/172 563/856/176 562/857/177 +f 557/832/166 563/856/176 556/858/167 +f 551/838/170 564/859/178 557/832/166 +f 559/847/173 543/829/165 558/848/28 +f 559/847/173 545/860/164 544/818/161 +f 560/849/174 546/854/163 545/860/164 +f 562/857/177 547/861/19 555/855/172 +f 548/862/159 547/861/19 562/857/177 +f 563/856/176 548/862/159 562/857/177 +f 564/859/178 549/863/160 563/856/176 +f 558/848/28 550/820/162 564/859/178 +f 51/397/3 59/407/3 58/398/7 +f 56/400/8 64/410/8 63/401/5 +f 54/403/9 62/411/9 61/404/6 +f 52/406/10 60/413/10 59/407/3 +f 50/399/7 58/398/7 57/408/4 +f 49/409/4 57/408/4 64/410/8 +f 55/402/5 63/401/5 62/411/9 +f 53/412/6 61/864/6 60/413/10 +f 87/414/11 86/865/36 74/415/7 +f 82/417/12 81/429/17 79/418/5 +f 88/420/13 87/414/11 73/416/4 +f 75/422/3 85/866/15 84/423/14 +f 74/415/7 86/865/36 85/425/15 +f 83/427/16 82/417/12 78/419/9 +f 80/421/8 79/418/5 81/429/17 +f 84/423/14 83/427/16 77/428/6 +f 94/430/18 95/440/25 65/431/19 +f 90/433/20 91/439/24 69/434/6 +f 90/433/20 70/435/21 71/436/1 +f 92/438/23 68/446/28 69/434/6 +f 89/437/22 71/436/1 65/431/19 +f 93/441/26 67/444/27 72/442/2 +f 94/430/18 66/432/4 67/444/27 +f 85/445/15 72/867/2 68/446/28 +f 89/437/22 96/458/34 97/447/29 +f 90/433/20 97/447/29 98/448/30 +f 91/449/24 98/448/30 99/450/31 +f 93/454/26 100/460/35 101/455/32 +f 101/455/32 102/457/33 95/440/25 +f 102/457/33 96/458/34 89/437/22 +f 81/429/17 82/417/12 97/447/29 +f 82/417/12 83/459/16 98/448/30 +f 83/459/16 84/453/14 99/450/31 +f 86/462/36 87/463/11 101/455/32 +f 87/463/11 88/420/13 102/457/33 +f 88/420/13 81/429/17 96/458/34 +f 111/464/4 112/475/7 124/465/37 +f 117/467/5 119/479/44 120/468/39 +f 111/464/4 125/466/38 126/470/40 +f 113/472/3 114/480/10 122/473/41 +f 112/475/7 113/868/3 123/476/42 +f 116/469/9 120/468/39 121/477/43 +f 118/471/8 126/470/40 119/479/44 +f 114/480/10 115/478/6 121/477/43 +f 104/481/4 103/490/27 133/482/45 +f 128/484/47 108/869/28 107/485/6 +f 109/487/2 108/869/28 128/484/47 +f 107/485/6 106/495/21 130/489/50 +f 103/490/27 109/487/2 127/488/49 +f 110/491/1 105/494/19 131/492/51 +f 105/494/19 104/481/4 132/483/46 +f 106/495/21 110/870/1 123/496/42 +f 127/488/49 128/484/47 135/497/52 +f 128/484/47 129/500/48 136/499/54 +f 129/500/48 130/502/50 137/501/55 +f 131/505/51 132/508/46 139/506/56 +f 133/482/45 140/509/58 139/506/56 +f 127/488/49 134/498/53 140/509/58 +f 135/497/52 120/468/39 119/479/44 +f 135/497/52 136/499/54 121/510/43 +f 137/501/55 122/504/41 121/510/43 +f 138/507/57 139/506/56 125/513/38 +f 140/509/58 126/470/40 125/513/38 +f 140/509/58 134/498/53 119/479/44 +f 195/514/6 203/524/6 202/515/10 +f 200/517/7 208/527/7 207/518/4 +f 198/520/8 206/528/8 205/521/5 +f 196/523/9 204/530/9 203/524/6 +f 194/516/10 202/515/10 201/525/3 +f 193/526/3 201/525/3 208/527/7 +f 199/519/4 207/518/4 206/528/8 +f 197/529/5 205/871/5 204/530/9 +f 217/531/3 231/872/78 230/532/59 +f 226/534/60 225/546/64 223/535/4 +f 232/537/61 231/872/78 217/531/3 +f 219/539/6 229/873/28 228/540/62 +f 218/533/10 230/532/59 229/542/28 +f 227/544/63 226/534/60 222/536/8 +f 224/538/7 223/535/4 225/546/64 +f 220/541/9 228/540/62 227/544/63 +f 238/547/65 239/557/70 209/548/42 +f 234/550/66 235/556/69 213/551/5 +f 234/550/66 214/552/34 215/553/1 +f 236/555/68 212/563/53 213/551/5 +f 233/554/67 215/553/1 209/548/42 +f 237/558/71 211/561/15 216/559/2 +f 238/547/65 210/549/3 211/561/15 +f 229/562/28 216/874/2 212/563/53 +f 233/554/67 240/575/19 241/564/72 +f 241/564/72 242/566/73 235/565/69 +f 242/566/73 243/568/74 236/567/68 +f 244/571/75 245/579/77 238/572/65 +f 238/572/65 245/579/77 246/574/76 +f 239/557/70 246/574/76 240/575/19 +f 225/546/64 226/534/60 241/564/72 +f 241/564/72 226/534/60 227/576/63 +f 242/566/73 227/576/63 228/570/62 +f 230/578/59 231/580/78 245/579/77 +f 231/580/78 232/537/61 246/574/76 +f 232/537/61 225/546/64 240/575/19 +f 256/581/10 268/593/83 269/582/79 +f 261/584/4 263/596/85 264/585/80 +f 255/583/3 269/582/79 270/587/81 +f 257/589/6 258/597/9 266/590/82 +f 256/581/10 257/875/6 267/592/21 +f 260/586/8 264/585/80 265/594/84 +f 262/588/7 270/587/81 263/596/85 +f 258/597/9 259/595/5 265/594/84 +f 248/598/3 247/607/15 277/599/86 +f 272/601/88 252/876/53 251/602/5 +f 253/604/2 252/876/53 272/601/88 +f 251/602/5 250/612/34 274/606/91 +f 247/607/15 253/604/2 271/605/90 +f 254/608/1 249/611/42 275/609/92 +f 249/611/42 248/598/3 276/600/87 +f 250/612/34 254/877/1 267/613/21 +f 271/605/90 272/601/88 279/614/93 +f 272/601/88 273/618/89 280/616/94 +f 274/617/91 281/619/95 280/616/94 +f 276/622/87 283/625/97 282/623/96 +f 277/599/86 284/626/98 283/625/97 +f 271/605/90 278/615/27 284/626/98 +f 279/614/93 264/585/80 263/596/85 +f 279/614/93 280/616/94 265/627/84 +f 280/616/94 281/619/95 266/621/82 +f 283/625/97 269/630/79 268/629/83 +f 284/626/98 270/587/81 269/630/79 +f 284/626/98 278/615/27 263/596/85 +f 335/631/5 343/641/5 342/632/9 +f 340/634/10 348/644/10 347/635/3 +f 338/637/7 346/645/7 345/638/4 +f 336/640/8 344/647/8 343/641/5 +f 334/633/9 342/632/9 341/642/6 +f 333/643/6 341/642/6 348/644/10 +f 339/636/3 347/635/3 346/645/7 +f 337/646/4 345/878/4 344/647/8 +f 357/648/6 371/879/118 370/649/99 +f 366/651/100 365/663/104 363/652/3 +f 372/654/101 371/879/118 357/648/6 +f 359/656/5 369/880/53 368/657/102 +f 358/650/9 370/649/99 369/659/53 +f 367/661/103 366/651/100 362/653/7 +f 364/655/10 363/652/3 365/663/104 +f 368/657/102 367/661/103 361/662/4 +f 378/664/105 379/674/110 349/665/21 +f 374/667/106 375/673/109 353/668/4 +f 374/667/106 354/669/19 355/670/1 +f 376/672/108 352/680/27 353/668/4 +f 373/671/107 355/670/1 349/665/21 +f 377/675/111 351/678/28 356/676/2 +f 378/664/105 350/666/6 351/678/28 +f 369/679/53 356/881/2 352/680/27 +f 373/671/107 380/691/42 381/681/112 +f 381/681/112 382/692/116 375/682/109 +f 375/682/109 382/692/116 383/683/113 +f 384/687/114 385/696/117 378/688/105 +f 378/688/105 385/696/117 386/690/115 +f 379/674/110 386/690/115 380/691/42 +f 365/663/104 366/651/100 381/681/112 +f 366/651/100 367/693/103 382/692/116 +f 367/693/103 368/686/102 383/683/113 +f 370/695/99 371/697/118 385/696/117 +f 371/697/118 372/654/101 386/690/115 +f 372/654/101 365/663/104 380/691/42 +f 395/698/6 396/709/9 408/699/119 +f 401/701/3 403/713/125 404/702/121 +f 395/698/6 409/700/120 410/704/122 +f 397/706/5 398/714/8 406/707/123 +f 396/709/9 397/882/5 407/710/34 +f 400/703/7 404/702/121 405/711/124 +f 402/705/10 410/704/122 403/713/125 +f 398/714/8 399/712/4 405/711/124 +f 388/715/6 387/724/28 417/716/126 +f 412/718/128 392/883/27 391/719/4 +f 393/721/2 392/883/27 412/718/128 +f 391/719/4 390/729/19 414/723/131 +f 387/724/28 393/721/2 411/722/130 +f 394/725/1 389/728/21 415/726/132 +f 389/728/21 388/715/6 416/717/127 +f 390/729/19 394/884/1 407/730/34 +f 411/722/130 412/718/128 419/731/133 +f 412/718/128 413/735/129 420/733/134 +f 414/734/131 421/736/135 420/733/134 +f 415/739/132 416/742/127 423/740/136 +f 417/716/126 424/743/138 423/740/136 +f 411/722/130 418/732/15 424/743/138 +f 419/731/133 404/702/121 403/713/125 +f 419/731/133 420/733/134 405/744/124 +f 420/733/134 421/736/135 406/738/123 +f 423/740/136 409/747/120 408/746/119 +f 424/743/138 410/704/122 409/747/120 +f 418/732/15 403/713/125 410/704/122 +f 475/748/4 483/758/4 482/749/8 +f 480/751/9 488/761/9 487/752/6 +f 478/754/10 486/762/10 485/755/3 +f 476/757/7 484/764/7 483/758/4 +f 474/750/8 482/749/8 481/759/5 +f 473/760/5 481/759/5 488/761/9 +f 479/753/6 487/752/6 486/762/10 +f 477/763/3 485/885/3 484/764/7 +f 497/765/5 511/886/158 510/766/139 +f 506/768/140 505/780/144 503/769/6 +f 512/771/141 511/886/158 497/765/5 +f 499/773/4 509/887/27 508/774/142 +f 498/767/8 510/766/139 509/776/27 +f 507/778/143 506/768/140 502/770/10 +f 504/772/9 503/769/6 505/780/144 +f 508/774/142 507/778/143 501/779/3 +f 518/781/145 519/791/150 489/782/34 +f 514/784/146 515/790/149 493/785/3 +f 514/784/146 494/786/42 495/787/1 +f 516/789/148 492/797/15 493/785/3 +f 513/788/147 495/787/1 489/782/34 +f 517/792/151 491/795/53 496/793/2 +f 518/781/145 490/783/5 491/795/53 +f 509/796/27 496/888/2 492/797/15 +f 513/788/147 520/809/21 521/798/152 +f 521/798/152 522/800/153 515/799/149 +f 522/800/153 523/802/154 516/801/148 +f 524/805/155 525/812/157 518/806/145 +f 518/806/145 525/812/157 526/808/156 +f 519/791/150 526/808/156 520/809/21 +f 520/809/21 505/780/144 506/768/140 +f 506/768/140 507/889/143 522/800/153 +f 522/800/153 507/889/143 508/804/142 +f 510/811/139 511/813/158 525/812/157 +f 511/813/158 512/771/141 526/808/156 +f 526/808/156 512/771/141 505/780/144 +f 535/814/5 536/825/8 548/815/159 +f 541/817/6 543/829/165 544/818/161 +f 535/814/5 549/816/160 550/820/162 +f 537/822/4 538/830/7 546/823/163 +f 536/825/8 537/890/4 547/826/19 +f 540/819/10 544/818/161 545/827/164 +f 542/821/9 550/820/162 543/829/165 +f 538/830/7 539/828/3 545/827/164 +f 528/831/5 527/840/53 557/832/166 +f 552/834/168 532/891/15 531/835/3 +f 533/837/2 532/891/15 552/834/168 +f 531/835/3 530/845/42 554/839/171 +f 527/840/53 533/837/2 551/838/170 +f 534/841/1 529/844/34 555/842/172 +f 529/844/34 528/831/5 556/833/167 +f 530/845/42 534/892/1 547/846/19 +f 551/838/170 552/834/168 559/847/173 +f 552/834/168 553/851/169 560/849/174 +f 554/850/171 561/852/175 560/849/174 +f 555/855/172 556/858/167 563/856/176 +f 557/832/166 564/859/178 563/856/176 +f 551/838/170 558/848/28 564/859/178 +f 559/847/173 544/818/161 543/829/165 +f 559/847/173 560/849/174 545/860/164 +f 560/849/174 561/852/175 546/854/163 +f 563/856/176 549/863/160 548/862/159 +f 564/859/178 550/820/162 549/863/160 +f 558/848/28 543/829/165 550/820/162 diff --git a/src/main/resources/assets/hbm/models/machines/stirling.obj b/src/main/resources/assets/hbm/models/machines/stirling.obj new file mode 100644 index 000000000..85101aab6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/stirling.obj @@ -0,0 +1,2697 @@ +# Blender v2.79 (sub 0) OBJ File: 'stirling.blend' +# www.blender.org +o Piston +v -0.625000 1.375000 -1.000000 +v -0.625000 1.500000 -0.966506 +v -0.625000 1.591506 -0.875000 +v -0.625000 1.625000 -0.750000 +v -0.625000 1.591506 -0.625000 +v -0.625000 1.500000 -0.533494 +v -0.625000 1.375000 -0.500000 +v -0.625000 1.250000 -0.533494 +v -0.625000 1.158494 -0.625000 +v -0.625000 1.125000 -0.750000 +v -0.625000 1.158494 -0.875000 +v -0.625000 1.250000 -0.966506 +v -1.375000 1.500000 -0.966506 +v -1.375000 1.375000 -1.000000 +v -1.375000 1.591506 -0.875000 +v -1.375000 1.625000 -0.750000 +v -1.375000 1.591506 -0.625000 +v -1.375000 1.500000 -0.533494 +v -1.375000 1.375000 -0.500000 +v -1.375000 1.250000 -0.533494 +v -1.375000 1.158494 -0.625000 +v -1.375000 1.125000 -0.750000 +v -1.375000 1.158494 -0.875000 +v -1.375000 1.250000 -0.966506 +v -0.625000 1.375000 0.000000 +v -0.625000 1.500000 0.033494 +v -0.625000 1.591506 0.125000 +v -0.625000 1.625000 0.250000 +v -0.625000 1.591506 0.375000 +v -0.625000 1.500000 0.466506 +v -0.625000 1.375000 0.500000 +v -0.625000 1.250000 0.466506 +v -0.625000 1.158494 0.375000 +v -0.625000 1.125000 0.250000 +v -0.625000 1.158494 0.125000 +v -0.625000 1.250000 0.033494 +v -1.375000 1.500000 0.033494 +v -1.375000 1.375000 0.000000 +v -1.375000 1.591506 0.125000 +v -1.375000 1.625000 0.250000 +v -1.375000 1.591506 0.375000 +v -1.375000 1.500000 0.466506 +v -1.375000 1.375000 0.500000 +v -1.375000 1.250000 0.466506 +v -1.375000 1.158494 0.375000 +v -1.375000 1.125000 0.250000 +v -1.375000 1.158494 0.125000 +v -1.375000 1.250000 0.033494 +vt 0.792330 0.196501 +vt 0.792330 0.232071 +vt 0.772727 0.249856 +vt 0.852273 0.178571 +vt 0.863636 0.071429 +vt 0.863636 0.178571 +vt 0.818182 0.178571 +vt 0.829545 0.071429 +vt 0.829545 0.178571 +vt 0.761364 0.178571 +vt 0.772727 0.071429 +vt 0.772727 0.178571 +vt 0.784091 0.178571 +vt 0.795455 0.071429 +vt 0.795455 0.178571 +vt 0.875000 0.071429 +vt 0.875000 0.178571 +vt 0.840909 0.071429 +vt 0.840909 0.178571 +vt 0.784091 0.071429 +vt 0.806818 0.071429 +vt 0.806818 0.178571 +vt 0.886364 0.071429 +vt 0.886364 0.178571 +vt 0.852273 0.071429 +vt 0.818182 0.071429 +vt 0.750000 0.178571 +vt 0.761364 0.071429 +vt 0.792330 0.232071 +vt 0.772727 0.249856 +vt 0.753124 0.196501 +vt 0.852273 0.178571 +vt 0.863636 0.071429 +vt 0.863636 0.178571 +vt 0.818182 0.178571 +vt 0.829545 0.071429 +vt 0.829545 0.178571 +vt 0.761364 0.178571 +vt 0.772727 0.071429 +vt 0.772727 0.178571 +vt 0.784091 0.178571 +vt 0.795455 0.071429 +vt 0.795455 0.178571 +vt 0.875000 0.071429 +vt 0.875000 0.178571 +vt 0.840909 0.071429 +vt 0.840909 0.178571 +vt 0.784091 0.071429 +vt 0.806818 0.071429 +vt 0.806818 0.178571 +vt 0.886364 0.071429 +vt 0.886364 0.178571 +vt 0.852273 0.071429 +vt 0.818182 0.071429 +vt 0.750000 0.178571 +vt 0.761364 0.071429 +vt 0.753124 0.196501 +vt 0.761410 0.183481 +vt 0.772727 0.178716 +vt 0.784045 0.183481 +vt 0.795363 0.214286 +vt 0.784045 0.245090 +vt 0.761410 0.245090 +vt 0.753125 0.232071 +vt 0.750092 0.214286 +vt 0.750000 0.071429 +vt 0.761410 0.183481 +vt 0.772727 0.178716 +vt 0.784045 0.183481 +vt 0.792330 0.196501 +vt 0.795363 0.214286 +vt 0.784045 0.245090 +vt 0.761410 0.245090 +vt 0.753125 0.232071 +vt 0.750092 0.214286 +vt 0.750000 0.071429 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.9659 0.2588 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.9659 0.2588 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.9659 -0.2588 +s off +f 23/1/1 21/2/1 19/3/1 +f 7/4/2 20/5/2 8/6/2 +f 4/7/3 17/8/3 5/9/3 +f 11/10/4 24/11/4 12/12/4 +f 1/13/5 13/14/5 2/15/5 +f 8/6/6 21/16/6 9/17/6 +f 5/9/7 18/18/7 6/19/7 +f 12/12/8 14/20/8 1/13/8 +f 2/15/9 15/21/9 3/22/9 +f 9/17/10 22/23/10 10/24/10 +f 6/19/11 19/25/11 7/4/11 +f 3/22/12 16/26/12 4/7/12 +f 10/27/13 23/28/13 11/10/13 +f 45/29/1 43/30/1 39/31/1 +f 31/32/2 44/33/2 32/34/2 +f 28/35/3 41/36/3 29/37/3 +f 35/38/4 48/39/4 36/40/4 +f 25/41/5 37/42/5 26/43/5 +f 32/34/6 45/44/6 33/45/6 +f 29/37/7 42/46/7 30/47/7 +f 36/40/8 38/48/8 25/41/8 +f 26/43/9 39/49/9 27/50/9 +f 33/45/10 46/51/10 34/52/10 +f 30/47/11 43/53/11 31/32/11 +f 27/50/12 40/54/12 28/35/12 +f 34/55/13 47/56/13 35/38/13 +f 15/57/1 13/58/1 14/59/1 +f 14/59/1 24/60/1 23/1/1 +f 23/1/1 22/61/1 21/2/1 +f 21/2/1 20/62/1 19/3/1 +f 19/3/1 18/63/1 17/64/1 +f 17/64/1 16/65/1 19/3/1 +f 16/65/1 15/57/1 19/3/1 +f 15/57/1 14/59/1 19/3/1 +f 14/59/1 23/1/1 19/3/1 +f 7/4/2 19/25/2 20/5/2 +f 4/7/3 16/26/3 17/8/3 +f 11/10/4 23/28/4 24/11/4 +f 1/13/5 14/20/5 13/14/5 +f 8/6/6 20/5/6 21/16/6 +f 5/9/7 17/8/7 18/18/7 +f 12/12/8 24/11/8 14/20/8 +f 2/15/9 13/14/9 15/21/9 +f 9/17/10 21/16/10 22/23/10 +f 6/19/11 18/18/11 19/25/11 +f 3/22/12 15/21/12 16/26/12 +f 10/27/13 22/66/13 23/28/13 +f 39/31/1 37/67/1 38/68/1 +f 38/68/1 48/69/1 39/31/1 +f 48/69/1 47/70/1 39/31/1 +f 47/70/1 46/71/1 45/29/1 +f 45/29/1 44/72/1 43/30/1 +f 43/30/1 42/73/1 41/74/1 +f 41/74/1 40/75/1 43/30/1 +f 40/75/1 39/31/1 43/30/1 +f 47/70/1 45/29/1 39/31/1 +f 31/32/2 43/53/2 44/33/2 +f 28/35/3 40/54/3 41/36/3 +f 35/38/4 47/56/4 48/39/4 +f 25/41/5 38/48/5 37/42/5 +f 32/34/6 44/33/6 45/44/6 +f 29/37/7 41/36/7 42/46/7 +f 36/40/8 48/39/8 38/48/8 +f 26/43/9 37/42/9 39/49/9 +f 33/45/10 45/44/10 46/51/10 +f 30/47/11 42/46/11 43/53/11 +f 27/50/12 39/49/12 40/54/12 +f 34/55/13 46/76/13 47/56/13 +o Cog +v 0.000000 2.375000 0.750000 +v -0.500000 2.241025 0.750000 +v -0.866025 1.875000 0.750000 +v -1.000000 1.375000 0.750000 +v -0.866025 0.875000 0.750000 +v -0.500000 0.508975 0.750000 +v -0.000000 0.375000 0.750000 +v 0.500000 0.508975 0.750000 +v 0.866025 0.875000 0.750000 +v 1.000000 1.375000 0.750000 +v 0.866026 1.875000 0.750000 +v 0.500001 2.241025 0.750000 +v 0.000000 2.125000 0.750000 +v -0.375000 2.024519 0.750000 +v -0.649519 1.750000 0.750000 +v -0.750000 1.375000 0.750000 +v -0.649519 1.000000 0.750000 +v -0.375000 0.725481 0.750000 +v -0.000000 0.625000 0.750000 +v 0.375000 0.725481 0.750000 +v 0.649519 1.000000 0.750000 +v 0.750000 1.375000 0.750000 +v 0.649519 1.750000 0.750000 +v 0.375000 2.024518 0.750000 +v -0.500000 2.241025 1.000000 +v 0.000000 2.375000 1.000000 +v -0.866025 1.875000 1.000000 +v -1.000000 1.375000 1.000000 +v -0.866025 0.875000 1.000000 +v -0.500000 0.508975 1.000000 +v -0.000000 0.375000 1.000000 +v 0.500000 0.508975 1.000000 +v 0.866025 0.875000 1.000000 +v 1.000000 1.375000 1.000000 +v 0.866026 1.875000 1.000000 +v 0.500001 2.241025 1.000000 +v -0.375000 2.024519 1.000000 +v 0.000000 2.125000 1.000000 +v -0.649519 1.750000 1.000000 +v -0.750000 1.375000 1.000000 +v -0.649519 1.000000 1.000000 +v -0.375000 0.725481 1.000000 +v -0.000000 0.625000 1.000000 +v 0.375000 0.725481 1.000000 +v 0.649519 1.000000 1.000000 +v 0.750000 1.375000 1.000000 +v 0.649519 1.750000 1.000000 +v 0.375000 2.024518 1.000000 +v -0.125000 1.562500 0.937500 +v -0.125000 2.187500 0.937500 +v -0.125000 1.562500 0.812500 +v -0.125000 2.187500 0.812500 +v 0.125000 1.562500 0.937500 +v 0.125000 2.187500 0.937500 +v 0.125000 1.562500 0.812500 +v 0.125000 2.187500 0.812500 +v 0.187500 1.500000 0.937500 +v 0.812500 1.500000 0.937500 +v 0.187500 1.500000 0.812500 +v 0.812500 1.500000 0.812500 +v 0.187500 1.250000 0.937500 +v 0.812500 1.250000 0.937500 +v 0.187500 1.250000 0.812500 +v 0.812500 1.250000 0.812500 +v 0.125000 1.187500 0.937500 +v 0.125000 0.562500 0.937500 +v 0.125000 1.187500 0.812500 +v 0.125000 0.562500 0.812500 +v -0.125000 1.187500 0.937500 +v -0.125000 0.562500 0.937500 +v -0.125000 1.187500 0.812500 +v -0.125000 0.562500 0.812500 +v -0.187500 1.250000 0.937500 +v -0.812500 1.250000 0.937500 +v -0.187500 1.250000 0.812500 +v -0.812500 1.250000 0.812500 +v -0.187500 1.500000 0.937500 +v -0.812500 1.500000 0.937500 +v -0.187500 1.500000 0.812500 +v -0.812500 1.500000 0.812500 +v 0.937500 1.500000 0.968750 +v 0.937500 1.500000 0.781250 +v 0.937500 1.250000 0.968750 +v 0.937500 1.250000 0.781250 +v 1.187500 1.500000 0.968750 +v 1.187500 1.500000 0.781250 +v 1.187500 1.250000 0.968750 +v 1.187500 1.250000 0.781250 +v -0.937500 1.250000 0.968750 +v -0.937500 1.250000 0.781250 +v -0.937500 1.500000 0.968750 +v -0.937500 1.500000 0.781250 +v -1.187500 1.250000 0.968750 +v -1.187500 1.250000 0.781250 +v -1.187500 1.500000 0.968750 +v -1.187500 1.500000 0.781250 +v 0.125000 0.437500 0.968750 +v 0.125000 0.437500 0.781250 +v -0.125000 0.437500 0.968750 +v -0.125000 0.437500 0.781250 +v 0.125000 0.187500 0.968750 +v 0.125000 0.187500 0.781250 +v -0.125000 0.187500 0.968750 +v -0.125000 0.187500 0.781250 +v -0.125000 2.312500 0.968750 +v -0.125000 2.312500 0.781250 +v 0.125000 2.312500 0.968750 +v 0.125000 2.312500 0.781250 +v -0.125000 2.562500 0.968750 +v -0.125000 2.562500 0.781250 +v 0.125000 2.562500 0.968750 +v 0.125000 2.562500 0.781250 +v 0.874399 1.014503 0.968750 +v 0.874399 1.014503 0.781250 +v 0.749399 0.797997 0.968750 +v 0.749399 0.797997 0.781250 +v 1.090905 0.889503 0.968750 +v 1.090905 0.889503 0.781250 +v 0.965905 0.672997 0.968750 +v 0.965905 0.672997 0.781250 +v -0.874399 1.735497 0.968750 +v -0.874399 1.735497 0.781250 +v -0.749399 1.952003 0.968750 +v -0.749399 1.952003 0.781250 +v -1.090905 1.860497 0.968750 +v -1.090905 1.860497 0.781250 +v -0.965905 2.077003 0.968750 +v -0.965905 2.077003 0.781250 +v -0.360497 0.500601 0.968750 +v -0.360497 0.500601 0.781250 +v -0.577003 0.625601 0.968750 +v -0.577003 0.625601 0.781250 +v -0.485497 0.284094 0.968750 +v -0.485497 0.284094 0.781250 +v -0.702003 0.409094 0.968750 +v -0.702003 0.409094 0.781250 +v 0.360497 2.249399 0.968750 +v 0.360497 2.249399 0.781250 +v 0.577003 2.124399 0.968750 +v 0.577003 2.124399 0.781250 +v 0.485497 2.465905 0.968750 +v 0.485497 2.465905 0.781250 +v 0.702003 2.340905 0.968750 +v 0.702003 2.340905 0.781250 +v 0.577003 0.625601 0.968750 +v 0.577003 0.625601 0.781250 +v 0.360497 0.500601 0.968750 +v 0.360497 0.500601 0.781250 +v 0.702003 0.409094 0.968750 +v 0.702003 0.409094 0.781250 +v 0.485497 0.284094 0.968750 +v 0.485497 0.284094 0.781250 +v -0.577003 2.124399 0.968750 +v -0.577003 2.124399 0.781250 +v -0.360497 2.249399 0.968750 +v -0.360497 2.249399 0.781250 +v -0.702003 2.340905 0.968750 +v -0.702003 2.340905 0.781250 +v -0.485497 2.465905 0.968750 +v -0.485497 2.465905 0.781250 +v -0.749399 0.797997 0.968750 +v -0.749399 0.797997 0.781250 +v -0.874399 1.014503 0.968750 +v -0.874399 1.014503 0.781250 +v -0.965905 0.672997 0.968750 +v -0.965905 0.672997 0.781250 +v -1.090905 0.889503 0.968750 +v -1.090905 0.889503 0.781250 +v 0.749399 1.952003 0.968750 +v 0.749399 1.952003 0.781250 +v 0.874399 1.735497 0.968750 +v 0.874399 1.735497 0.781250 +v 0.965905 2.077003 0.968750 +v 0.965905 2.077003 0.781250 +v 1.090905 1.860497 0.968750 +v 1.090905 1.860497 0.781250 +v -0.216506 1.500000 1.000000 +v -0.125000 1.591506 1.000000 +v 0.000000 1.625000 1.000000 +v 0.125000 1.591506 1.000000 +v 0.216506 1.500000 1.000000 +v 0.250000 1.375000 1.000000 +v 0.216506 1.250000 1.000000 +v 0.125000 1.158494 1.000000 +v 0.000000 1.125000 1.000000 +v -0.125000 1.158494 1.000000 +v -0.250000 1.375000 1.000000 +v -0.216506 1.250000 1.000000 +v -0.216506 1.500000 0.750000 +v -0.125000 1.591506 0.750000 +v 0.000000 1.625000 0.750000 +v 0.125000 1.591506 0.750000 +v 0.216506 1.500000 0.750000 +v 0.250000 1.375000 0.750000 +v 0.216506 1.250000 0.750000 +v 0.125000 1.158494 0.750000 +v 0.000000 1.125000 0.750000 +v -0.125000 1.158494 0.750000 +v -0.216506 1.250000 0.750000 +v -0.250000 1.375000 0.750000 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.471591 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.471591 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.471591 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.471591 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.471591 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.553571 +vt 0.437500 0.589286 +vt 0.431818 0.553571 +vt 0.477273 0.517857 +vt 0.437500 0.482143 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.437500 0.482143 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.437500 0.482143 +vt 0.471591 0.482143 +vt 0.431818 0.517857 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.477273 0.517857 +vt 0.437500 0.482143 +vt 0.471591 0.482143 +vt 0.431818 0.517857 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.431818 0.517857 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.431818 0.517857 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.431818 0.517857 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.477273 0.517857 +vt 0.437500 0.482143 +vt 0.471591 0.482143 +vt 0.431818 0.517857 +vt 0.471591 0.482143 +vt 0.477273 0.517857 +vt 0.477273 0.517857 +vt 0.437500 0.482143 +vt 0.471591 0.482143 +vt 0.471591 0.446429 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.482143 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.482143 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.446429 +vt 0.437500 0.446429 +vt 0.437500 0.482143 +vt 0.471591 0.446429 +vt 0.437500 0.482143 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.482143 +vt 0.437500 0.446429 +vt 0.437500 0.446429 +vt 0.471591 0.446429 +vt 0.437500 0.482143 +vt 0.437500 0.446429 +vt 0.670455 0.446429 +vt 0.681818 0.535714 +vt 0.670455 0.535714 +vt 0.613636 0.446429 +vt 0.636364 0.535714 +vt 0.613636 0.535714 +vt 0.636364 0.446429 +vt 0.647727 0.535714 +vt 0.647727 0.446429 +vt 0.670455 0.446429 +vt 0.681818 0.535714 +vt 0.670455 0.535714 +vt 0.613636 0.446429 +vt 0.636364 0.535714 +vt 0.613636 0.535714 +vt 0.636364 0.446429 +vt 0.647727 0.535714 +vt 0.647727 0.446429 +vt 0.670455 0.446429 +vt 0.681818 0.535714 +vt 0.670455 0.535714 +vt 0.613636 0.446429 +vt 0.636364 0.535714 +vt 0.613636 0.535714 +vt 0.636364 0.446429 +vt 0.647727 0.535714 +vt 0.647727 0.446429 +vt 0.670455 0.446429 +vt 0.681818 0.535714 +vt 0.670455 0.535714 +vt 0.613636 0.535714 +vt 0.636364 0.446429 +vt 0.636364 0.535714 +vt 0.647727 0.535714 +vt 0.647727 0.446429 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.522727 0.553571 +vt 0.545455 0.589286 +vt 0.522727 0.589286 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.553571 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.562500 0.553571 +vt 0.585227 0.589286 +vt 0.562500 0.589286 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.553571 +vt 0.522727 0.616071 +vt 0.522727 0.553571 +vt 0.545455 0.589286 +vt 0.522727 0.589286 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.553571 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.522727 0.553571 +vt 0.545455 0.589286 +vt 0.522727 0.589286 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.553571 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.562500 0.553571 +vt 0.585227 0.589286 +vt 0.562500 0.589286 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.553571 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.562500 0.553571 +vt 0.585227 0.589286 +vt 0.562500 0.589286 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.553571 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.522727 0.589286 +vt 0.522727 0.553571 +vt 0.585227 0.553571 +vt 0.562500 0.589286 +vt 0.562500 0.553571 +vt 0.545455 0.589286 +vt 0.602273 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.616071 +vt 0.545455 0.553571 +vt 0.556818 0.517857 +vt 0.556818 0.553571 +vt 0.500000 0.553571 +vt 0.511364 0.517857 +vt 0.511364 0.553571 +vt 0.568182 0.517857 +vt 0.568182 0.553571 +vt 0.579545 0.517857 +vt 0.579545 0.553571 +vt 0.590909 0.517857 +vt 0.590909 0.553571 +vt 0.602273 0.517857 +vt 0.602273 0.553571 +vt 0.522727 0.517857 +vt 0.522727 0.553571 +vt 0.613636 0.517857 +vt 0.613636 0.553571 +vt 0.534091 0.517857 +vt 0.534091 0.553571 +vt 0.477273 0.553571 +vt 0.488636 0.517857 +vt 0.488636 0.553571 +vt 0.545455 0.517857 +vt 0.500000 0.517857 +vt 0.482577 0.573479 +vt 0.500000 0.557671 +vt 0.517423 0.573479 +vt 0.500000 0.450529 +vt 0.517423 0.497950 +vt 0.482577 0.497950 +vt 0.471591 0.589286 +vt 0.471591 0.589286 +vt 0.471591 0.589286 +vt 0.437500 0.589286 +vt 0.471591 0.589286 +vt 0.437500 0.589286 +vt 0.437500 0.589286 +vt 0.471591 0.589286 +vt 0.437500 0.589286 +vt 0.437500 0.589286 +vt 0.471591 0.589286 +vt 0.471591 0.589286 +vt 0.431818 0.517857 +vt 0.431818 0.517857 +vt 0.431818 0.517857 +vt 0.431818 0.517857 +vt 0.431818 0.517857 +vt 0.431818 0.517857 +vt 0.471591 0.446429 +vt 0.471591 0.446429 +vt 0.681818 0.446429 +vt 0.681818 0.446429 +vt 0.681818 0.446429 +vt 0.681818 0.446429 +vt 0.613636 0.446429 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.477273 0.517857 +vt 0.520118 0.589286 +vt 0.517423 0.605093 +vt 0.510059 0.616665 +vt 0.500000 0.620900 +vt 0.489941 0.616665 +vt 0.482577 0.605093 +vt 0.479882 0.589286 +vt 0.489941 0.561907 +vt 0.510059 0.561907 +vt 0.479882 0.482143 +vt 0.482577 0.466336 +vt 0.489941 0.454764 +vt 0.510059 0.454764 +vt 0.517423 0.466336 +vt 0.520118 0.482143 +vt 0.510059 0.509522 +vt 0.500000 0.513757 +vt 0.489941 0.509522 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.2588 -0.9659 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.9659 -0.2588 0.0000 +vn -0.2588 0.9659 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.2588 -0.9659 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +s off +f 58/77/14 71/78/14 59/79/14 +f 59/80/14 72/81/14 60/82/14 +f 60/83/14 61/84/14 49/85/14 +f 61/86/14 50/87/14 49/88/14 +f 50/89/14 63/90/14 51/91/14 +f 63/92/14 52/93/14 51/94/14 +f 64/95/14 53/96/14 52/97/14 +f 53/98/14 66/99/14 54/100/14 +f 66/101/14 55/102/14 54/103/14 +f 67/104/14 56/105/14 55/106/14 +f 56/107/14 69/108/14 57/109/14 +f 57/110/14 70/111/14 58/112/14 +f 82/113/15 95/114/15 94/115/15 +f 83/116/15 96/117/15 95/118/15 +f 84/119/15 86/120/15 96/121/15 +f 73/122/15 86/123/15 74/124/15 +f 73/125/15 87/126/15 85/127/15 +f 76/128/15 87/129/15 75/130/15 +f 77/131/15 88/132/15 76/133/15 +f 78/134/15 89/135/15 77/136/15 +f 79/137/15 90/138/15 78/139/15 +f 79/140/15 92/141/15 91/142/15 +f 81/143/15 92/144/15 80/145/15 +f 81/146/15 94/147/15 93/148/15 +f 72/149/16 86/120/16 61/150/16 +f 51/91/17 73/125/17 50/89/17 +f 65/151/18 90/152/18 66/153/18 +f 59/79/19 82/113/19 58/77/19 +f 52/93/20 75/130/20 51/94/20 +f 66/154/21 91/155/21 67/156/21 +f 60/82/18 83/116/18 59/80/18 +f 53/96/22 76/133/22 52/97/22 +f 67/157/23 92/141/23 68/158/23 +f 49/85/21 84/119/21 60/83/21 +f 53/98/24 78/134/24 77/136/24 +f 69/159/17 92/144/17 93/160/17 +f 61/161/25 85/162/25 62/163/25 +f 55/102/16 78/139/16 54/103/16 +f 69/164/20 94/147/20 70/165/20 +f 62/166/26 87/126/26 63/167/26 +f 56/105/25 79/140/25 55/106/25 +f 70/168/22 95/114/22 71/169/22 +f 63/170/27 88/171/27 64/172/27 +f 57/109/26 80/145/26 56/107/26 +f 72/173/24 95/118/24 96/117/24 +f 50/87/23 74/124/23 49/88/23 +f 64/174/19 89/175/19 65/176/19 +f 58/112/27 81/146/27 57/110/27 +f 98/177/28 99/178/28 97/179/28 +f 100/180/14 103/181/14 99/182/14 +f 104/183/29 101/184/29 103/181/29 +f 102/185/15 97/179/15 101/184/15 +f 106/186/30 107/187/30 105/188/30 +f 108/189/14 111/190/14 107/191/14 +f 112/192/31 109/193/31 111/190/31 +f 110/194/15 105/188/15 109/193/15 +f 114/195/29 115/196/29 113/197/29 +f 116/198/14 119/199/14 115/200/14 +f 120/201/28 117/202/28 119/199/28 +f 118/203/15 113/197/15 117/202/15 +f 122/204/31 123/205/31 121/206/31 +f 123/207/14 128/208/14 127/209/14 +f 128/208/30 125/210/30 127/209/30 +f 126/211/15 121/206/15 125/210/15 +f 131/212/15 133/213/15 129/214/15 +f 130/215/14 136/216/14 132/217/14 +f 132/217/31 135/218/31 131/212/31 +f 129/219/30 134/220/30 130/215/30 +f 135/218/29 134/221/29 133/213/29 +f 139/222/15 141/223/15 137/224/15 +f 138/225/14 144/226/14 140/227/14 +f 140/227/30 143/228/30 139/222/30 +f 137/229/31 142/230/31 138/225/31 +f 143/228/28 142/231/28 141/223/28 +f 147/232/15 149/233/15 145/234/15 +f 146/235/14 152/236/14 148/237/14 +f 148/237/28 151/238/28 147/232/28 +f 145/239/29 150/240/29 146/235/29 +f 151/238/31 150/241/31 149/233/31 +f 155/242/15 157/243/15 153/244/15 +f 154/245/14 160/246/14 156/247/14 +f 156/247/29 159/248/29 155/242/29 +f 153/249/28 158/250/28 154/245/28 +f 159/248/30 158/251/30 157/243/30 +f 161/252/15 167/253/15 165/254/15 +f 162/255/14 168/256/14 164/257/14 +f 164/257/32 167/253/32 163/258/32 +f 161/259/33 166/260/33 162/255/33 +f 167/253/34 166/261/34 165/254/34 +f 171/262/15 173/263/15 169/264/15 +f 172/265/14 174/266/14 176/267/14 +f 172/265/33 175/268/33 171/262/33 +f 169/269/32 174/266/32 170/270/32 +f 175/268/35 174/271/35 173/263/35 +f 177/272/15 183/273/15 181/274/15 +f 178/275/14 184/276/14 180/277/14 +f 180/277/35 183/273/35 179/278/35 +f 177/279/34 182/280/34 178/275/34 +f 183/273/32 182/281/32 181/274/32 +f 185/282/15 191/283/15 189/284/15 +f 186/285/14 192/286/14 188/287/14 +f 188/287/34 191/283/34 187/288/34 +f 185/289/35 190/290/35 186/285/35 +f 191/283/33 190/291/33 189/284/33 +f 195/292/15 197/293/15 193/294/15 +f 196/295/14 198/296/14 200/297/14 +f 196/295/36 199/298/36 195/292/36 +f 193/299/37 198/296/37 194/300/37 +f 199/298/38 198/301/38 197/293/38 +f 203/302/15 205/303/15 201/304/15 +f 204/305/14 206/306/14 208/307/14 +f 204/305/37 207/308/37 203/302/37 +f 201/309/36 206/306/36 202/310/36 +f 207/308/39 206/311/39 205/303/39 +f 211/312/15 213/313/15 209/314/15 +f 210/315/14 216/316/14 212/317/14 +f 212/317/39 215/318/39 211/312/39 +f 209/319/38 214/320/38 210/315/38 +f 215/318/36 214/321/36 213/313/36 +f 219/322/15 221/323/15 217/324/15 +f 218/325/14 224/326/14 220/327/14 +f 220/327/38 223/328/38 219/322/38 +f 217/329/39 222/330/39 218/325/39 +f 223/328/37 222/331/37 221/323/37 +f 239/332/21 228/333/21 240/334/21 +f 247/335/22 235/336/22 248/337/22 +f 240/334/18 229/338/18 241/339/18 +f 241/339/19 230/340/19 242/341/19 +f 242/341/27 231/342/27 243/343/27 +f 243/343/26 232/344/26 244/345/26 +f 248/337/20 225/346/20 237/347/20 +f 244/345/25 233/348/25 245/349/25 +f 237/347/17 226/350/17 238/351/17 +f 245/352/16 234/353/16 246/354/16 +f 238/351/23 227/355/23 239/332/23 +f 246/354/24 236/356/24 247/335/24 +f 243/357/14 245/358/14 247/359/14 +f 233/360/15 229/361/15 225/362/15 +f 58/77/14 70/363/14 71/78/14 +f 59/80/14 71/364/14 72/81/14 +f 60/83/14 72/365/14 61/84/14 +f 61/86/14 62/366/14 50/87/14 +f 50/89/14 62/367/14 63/90/14 +f 63/92/14 64/368/14 52/93/14 +f 64/95/14 65/369/14 53/96/14 +f 53/98/14 65/370/14 66/99/14 +f 66/101/14 67/371/14 55/102/14 +f 67/104/14 68/372/14 56/105/14 +f 56/107/14 68/373/14 69/108/14 +f 57/110/14 69/374/14 70/111/14 +f 82/113/15 83/375/15 95/114/15 +f 83/116/15 84/376/15 96/117/15 +f 84/119/15 74/377/15 86/120/15 +f 73/122/15 85/162/15 86/123/15 +f 73/125/15 75/378/15 87/126/15 +f 76/128/15 88/171/15 87/129/15 +f 77/131/15 89/175/15 88/132/15 +f 78/134/15 90/152/15 89/135/15 +f 79/137/15 91/155/15 90/138/15 +f 79/140/15 80/379/15 92/141/15 +f 81/143/15 93/160/15 92/144/15 +f 81/146/15 82/380/15 94/147/15 +f 72/149/16 96/121/16 86/120/16 +f 51/91/17 75/378/17 73/125/17 +f 65/151/18 89/135/18 90/152/18 +f 59/79/19 83/375/19 82/113/19 +f 52/93/20 76/128/20 75/130/20 +f 66/154/21 90/138/21 91/155/21 +f 60/82/18 84/376/18 83/116/18 +f 53/96/22 77/131/22 76/133/22 +f 67/157/23 91/142/23 92/141/23 +f 49/85/21 74/377/21 84/119/21 +f 53/98/24 54/100/24 78/134/24 +f 69/159/17 68/381/17 92/144/17 +f 61/161/25 86/123/25 85/162/25 +f 55/102/16 79/137/16 78/139/16 +f 69/164/20 93/148/20 94/147/20 +f 62/166/26 85/127/26 87/126/26 +f 56/105/25 80/379/25 79/140/25 +f 70/168/22 94/115/22 95/114/22 +f 63/170/27 87/129/27 88/171/27 +f 57/109/26 81/143/26 80/145/26 +f 72/173/24 71/382/24 95/118/24 +f 50/87/23 73/122/23 74/124/23 +f 64/174/19 88/132/19 89/175/19 +f 58/112/27 82/380/27 81/146/27 +f 98/177/28 100/383/28 99/178/28 +f 100/180/14 104/183/14 103/181/14 +f 104/183/29 102/185/29 101/184/29 +f 102/185/15 98/177/15 97/179/15 +f 106/186/30 108/384/30 107/187/30 +f 108/189/14 112/192/14 111/190/14 +f 112/192/31 110/194/31 109/193/31 +f 110/194/15 106/186/15 105/188/15 +f 114/195/29 116/385/29 115/196/29 +f 116/198/14 120/201/14 119/199/14 +f 120/201/28 118/203/28 117/202/28 +f 118/203/15 114/195/15 113/197/15 +f 122/204/31 124/386/31 123/205/31 +f 123/207/14 124/387/14 128/208/14 +f 128/208/30 126/211/30 125/210/30 +f 126/211/15 122/204/15 121/206/15 +f 131/212/15 135/218/15 133/213/15 +f 130/215/14 134/220/14 136/216/14 +f 132/217/31 136/216/31 135/218/31 +f 129/219/30 133/388/30 134/220/30 +f 135/218/29 136/389/29 134/221/29 +f 139/222/15 143/228/15 141/223/15 +f 138/225/14 142/230/14 144/226/14 +f 140/227/30 144/226/30 143/228/30 +f 137/229/31 141/390/31 142/230/31 +f 143/228/28 144/391/28 142/231/28 +f 147/232/15 151/238/15 149/233/15 +f 146/235/14 150/240/14 152/236/14 +f 148/237/28 152/236/28 151/238/28 +f 145/239/29 149/392/29 150/240/29 +f 151/238/31 152/393/31 150/241/31 +f 155/242/15 159/248/15 157/243/15 +f 154/245/14 158/250/14 160/246/14 +f 156/247/29 160/246/29 159/248/29 +f 153/249/28 157/394/28 158/250/28 +f 159/248/30 160/395/30 158/251/30 +f 161/252/15 163/258/15 167/253/15 +f 162/255/14 166/260/14 168/256/14 +f 164/257/32 168/256/32 167/253/32 +f 161/259/33 165/396/33 166/260/33 +f 167/253/34 168/397/34 166/261/34 +f 171/262/15 175/268/15 173/263/15 +f 172/265/14 170/270/14 174/266/14 +f 172/265/33 176/267/33 175/268/33 +f 169/269/32 173/398/32 174/266/32 +f 175/268/35 176/399/35 174/271/35 +f 177/272/15 179/278/15 183/273/15 +f 178/275/14 182/280/14 184/276/14 +f 180/277/35 184/276/35 183/273/35 +f 177/279/34 181/400/34 182/280/34 +f 183/273/32 184/401/32 182/281/32 +f 185/282/15 187/288/15 191/283/15 +f 186/285/14 190/290/14 192/286/14 +f 188/287/34 192/286/34 191/283/34 +f 185/289/35 189/402/35 190/290/35 +f 191/283/33 192/403/33 190/291/33 +f 195/292/15 199/298/15 197/293/15 +f 196/295/14 194/300/14 198/296/14 +f 196/295/36 200/297/36 199/298/36 +f 193/299/37 197/404/37 198/296/37 +f 199/298/38 200/405/38 198/301/38 +f 203/302/15 207/308/15 205/303/15 +f 204/305/14 202/310/14 206/306/14 +f 204/305/37 208/307/37 207/308/37 +f 201/309/36 205/406/36 206/306/36 +f 207/308/39 208/407/39 206/311/39 +f 211/312/15 215/318/15 213/313/15 +f 210/315/14 214/320/14 216/316/14 +f 212/317/39 216/316/39 215/318/39 +f 209/319/38 213/408/38 214/320/38 +f 215/318/36 216/409/36 214/321/36 +f 219/322/15 223/328/15 221/323/15 +f 218/325/14 222/330/14 224/326/14 +f 220/327/38 224/326/38 223/328/38 +f 217/329/39 221/410/39 222/330/39 +f 223/328/37 224/411/37 222/331/37 +f 239/332/21 227/355/21 228/333/21 +f 247/335/22 236/356/22 235/336/22 +f 240/334/18 228/333/18 229/338/18 +f 241/339/19 229/338/19 230/340/19 +f 242/341/27 230/340/27 231/342/27 +f 243/343/26 231/342/26 232/344/26 +f 248/337/20 235/336/20 225/346/20 +f 244/345/25 232/344/25 233/348/25 +f 237/347/17 225/346/17 226/350/17 +f 245/352/16 233/412/16 234/353/16 +f 238/351/23 226/350/23 227/355/23 +f 246/354/24 234/353/24 236/356/24 +f 247/359/14 248/413/14 237/414/14 +f 237/414/14 238/415/14 239/416/14 +f 239/416/14 240/417/14 243/357/14 +f 240/417/14 241/418/14 243/357/14 +f 241/418/14 242/419/14 243/357/14 +f 243/357/14 244/420/14 245/358/14 +f 245/358/14 246/421/14 247/359/14 +f 247/359/14 237/414/14 243/357/14 +f 237/414/14 239/416/14 243/357/14 +f 225/362/15 235/422/15 236/423/15 +f 236/423/15 234/424/15 233/360/15 +f 233/360/15 232/425/15 231/426/15 +f 231/426/15 230/427/15 233/360/15 +f 230/427/15 229/361/15 233/360/15 +f 229/361/15 228/428/15 225/362/15 +f 228/428/15 227/429/15 225/362/15 +f 227/429/15 226/430/15 225/362/15 +f 225/362/15 236/423/15 233/360/15 +o CogSmall +v 1.031250 0.687500 0.125000 +v 1.218750 0.687500 0.125000 +v 1.031250 0.687500 0.375000 +v 1.218750 0.687500 0.375000 +v 1.250000 1.625000 0.683012 +v 1.250000 1.808013 0.500000 +v 1.250000 1.875000 0.250000 +v 1.250000 1.808012 -0.000000 +v 1.250000 1.625000 -0.183013 +v 1.250000 1.375000 -0.250000 +v 1.250000 1.125000 -0.183013 +v 1.250000 0.941987 0.000000 +v 1.250000 0.875000 0.250000 +v 1.250000 0.941987 0.500000 +v 1.250000 1.375000 0.750000 +v 1.250000 1.125000 0.683013 +v 1.000000 1.625000 0.683012 +v 1.000000 1.808013 0.500000 +v 1.000000 1.875000 0.250000 +v 1.000000 1.808012 -0.000000 +v 1.000000 1.625000 -0.183013 +v 1.000000 1.375000 -0.250000 +v 1.000000 1.125000 -0.183013 +v 1.000000 0.941987 0.000000 +v 1.000000 0.875000 0.250000 +v 1.000000 0.941987 0.500000 +v 1.000000 1.125000 0.683013 +v 1.000000 1.375000 0.750000 +v 1.218750 0.937500 0.125000 +v 1.218750 0.937500 0.375000 +v 1.031250 0.937500 0.125000 +v 1.031250 0.937500 0.375000 +v 1.031250 2.062500 0.375000 +v 1.218750 2.062500 0.375000 +v 1.031250 2.062500 0.125000 +v 1.218750 2.062500 0.125000 +v 1.218750 1.812500 0.375000 +v 1.218750 1.812500 0.125000 +v 1.031250 1.812500 0.375000 +v 1.031250 1.812500 0.125000 +v 1.031250 0.922997 0.782892 +v 1.218750 0.922997 0.782892 +v 1.031250 1.139503 0.907892 +v 1.218750 1.139503 0.907892 +v 1.218750 1.047997 0.566386 +v 1.218750 1.264503 0.691386 +v 1.031250 1.047997 0.566386 +v 1.031250 1.264503 0.691386 +v 1.031250 1.827003 -0.282892 +v 1.218750 1.827003 -0.282892 +v 1.031250 1.610497 -0.407892 +v 1.218750 1.610497 -0.407892 +v 1.218750 1.702003 -0.066386 +v 1.218750 1.485497 -0.191386 +v 1.031250 1.702003 -0.066386 +v 1.031250 1.485497 -0.191386 +v 1.031250 1.610497 0.907892 +v 1.218750 1.610497 0.907892 +v 1.031250 1.827003 0.782892 +v 1.218750 1.827003 0.782892 +v 1.218750 1.485497 0.691386 +v 1.218750 1.702003 0.566386 +v 1.031250 1.485497 0.691386 +v 1.031250 1.702003 0.566386 +v 1.031250 1.139503 -0.407892 +v 1.218750 1.139503 -0.407892 +v 1.031250 0.922997 -0.282892 +v 1.218750 0.922997 -0.282892 +v 1.218750 1.264503 -0.191386 +v 1.218750 1.047997 -0.066386 +v 1.031250 1.264503 -0.191386 +v 1.031250 1.047997 -0.066386 +v 1.000000 1.562500 0.574759 +v 1.000000 1.699759 0.437500 +v 1.000000 1.750000 0.250000 +v 1.000000 1.699759 0.062500 +v 1.000000 1.562500 -0.074759 +v 1.000000 1.375000 -0.125000 +v 1.000000 1.187500 -0.074759 +v 1.000000 1.050241 0.062500 +v 1.000000 1.000000 0.250000 +v 1.000000 1.050241 0.437500 +v 1.000000 1.187500 0.574759 +v 1.000000 1.375000 0.625000 +v 1.250000 1.562500 0.574759 +v 1.250000 1.699759 0.437500 +v 1.250000 1.750000 0.250000 +v 1.250000 1.699759 0.062500 +v 1.250000 1.562500 -0.074760 +v 1.250000 1.375000 -0.125000 +v 1.250000 1.187500 -0.074760 +v 1.250000 1.050241 0.062500 +v 1.250000 1.000000 0.250000 +v 1.250000 1.050241 0.437500 +v 1.250000 1.375000 0.625000 +v 1.250000 1.187500 0.574759 +v 1.250000 1.500000 0.466506 +v 1.250000 1.591506 0.375000 +v 1.250000 1.625000 0.250000 +v 1.250000 1.591506 0.125000 +v 1.250000 1.500000 0.033494 +v 1.250000 1.375000 -0.000000 +v 1.250000 1.250000 0.033494 +v 1.250000 1.158494 0.125000 +v 1.250000 1.125000 0.250000 +v 1.250000 1.158494 0.375000 +v 1.250000 1.375000 0.500000 +v 1.250000 1.250000 0.466506 +v 1.000000 1.500000 0.466506 +v 1.000000 1.591506 0.375000 +v 1.000000 1.625000 0.250000 +v 1.000000 1.591506 0.125000 +v 1.000000 1.500000 0.033494 +v 1.000000 1.375000 -0.000000 +v 1.000000 1.250000 0.033494 +v 1.000000 1.158494 0.125000 +v 1.000000 1.125000 0.250000 +v 1.000000 1.158494 0.375000 +v 1.000000 1.250000 0.466506 +v 1.000000 1.375000 0.500000 +v 1.062500 1.562500 0.375000 +v 1.187500 1.562500 0.375000 +v 1.062500 1.562500 0.125000 +v 1.187500 1.562500 0.125000 +v 1.062500 1.750000 0.375000 +v 1.187500 1.750000 0.375000 +v 1.062500 1.750000 0.125000 +v 1.187500 1.750000 0.125000 +v 1.062500 1.172997 0.349879 +v 1.187500 1.172997 0.349879 +v 1.062500 1.389503 0.474879 +v 1.187500 1.389503 0.474879 +v 1.062500 1.079247 0.512259 +v 1.187500 1.079247 0.512259 +v 1.062500 1.295753 0.637259 +v 1.187500 1.295753 0.637259 +v 1.062500 1.389503 0.025120 +v 1.187500 1.389503 0.025120 +v 1.062500 1.172997 0.150120 +v 1.187500 1.172997 0.150120 +v 1.062500 1.295753 -0.137260 +v 1.187500 1.295753 -0.137260 +v 1.062500 1.079247 -0.012260 +v 1.187500 1.079247 -0.012260 +vt 0.545455 0.616071 +vt 0.522727 0.589286 +vt 0.545455 0.589286 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.681818 0.535714 +vt 0.704545 0.500000 +vt 0.704545 0.535714 +vt 0.545455 0.616071 +vt 0.522727 0.589286 +vt 0.545455 0.589286 +vt 0.585227 0.589286 +vt 0.562500 0.553571 +vt 0.585227 0.553571 +vt 0.545455 0.553571 +vt 0.562500 0.589286 +vt 0.602273 0.553571 +vt 0.602273 0.589286 +vt 0.585227 0.589286 +vt 0.562500 0.553571 +vt 0.585227 0.553571 +vt 0.545455 0.553571 +vt 0.562500 0.589286 +vt 0.602273 0.553571 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.522727 0.589286 +vt 0.545455 0.589286 +vt 0.545455 0.616071 +vt 0.522727 0.589286 +vt 0.545455 0.589286 +vt 0.585227 0.589286 +vt 0.562500 0.553571 +vt 0.585227 0.553571 +vt 0.545455 0.553571 +vt 0.562500 0.589286 +vt 0.602273 0.553571 +vt 0.602273 0.589286 +vt 0.562500 0.589286 +vt 0.585227 0.553571 +vt 0.585227 0.589286 +vt 0.522727 0.553571 +vt 0.545455 0.553571 +vt 0.562500 0.553571 +vt 0.602273 0.553571 +vt 0.602273 0.589286 +vt 0.545455 0.616071 +vt 0.522727 0.589286 +vt 0.545455 0.589286 +vt 0.545455 0.616071 +vt 0.522727 0.589286 +vt 0.545455 0.589286 +vt 0.585227 0.589286 +vt 0.562500 0.553571 +vt 0.585227 0.553571 +vt 0.545455 0.553571 +vt 0.562500 0.589286 +vt 0.602273 0.553571 +vt 0.602273 0.589286 +vt 0.585227 0.589286 +vt 0.562500 0.553571 +vt 0.585227 0.553571 +vt 0.545455 0.553571 +vt 0.562500 0.589286 +vt 0.602273 0.553571 +vt 0.602273 0.589286 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.704545 0.553571 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.704545 0.553571 +vt 0.681818 0.553571 +vt 0.704545 0.553571 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.704545 0.553571 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.681818 0.553571 +vt 0.684659 0.482143 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.684659 0.482143 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.684659 0.482143 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.684659 0.482143 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.681818 0.500000 +vt 0.701705 0.482143 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.684659 0.446429 +vt 0.701705 0.446429 +vt 0.545455 0.553571 +vt 0.556818 0.517857 +vt 0.556818 0.553571 +vt 0.500000 0.553571 +vt 0.511364 0.517857 +vt 0.511364 0.553571 +vt 0.568182 0.517857 +vt 0.568182 0.553571 +vt 0.579545 0.517857 +vt 0.579545 0.553571 +vt 0.590909 0.517857 +vt 0.590909 0.553571 +vt 0.602273 0.517857 +vt 0.602273 0.553571 +vt 0.522727 0.517857 +vt 0.522727 0.553571 +vt 0.613636 0.517857 +vt 0.613636 0.553571 +vt 0.534091 0.517857 +vt 0.534091 0.553571 +vt 0.477273 0.553571 +vt 0.488636 0.517857 +vt 0.488636 0.553571 +vt 0.545455 0.517857 +vt 0.500000 0.517857 +vt 0.482577 0.573479 +vt 0.500000 0.557671 +vt 0.517423 0.573479 +vt 0.517423 0.466336 +vt 0.517423 0.497950 +vt 0.482577 0.497950 +vt 0.613636 0.535714 +vt 0.636364 0.562500 +vt 0.613636 0.562500 +vt 0.647727 0.535714 +vt 0.670455 0.562500 +vt 0.647727 0.562500 +vt 0.636364 0.535714 +vt 0.670455 0.535714 +vt 0.681818 0.562500 +vt 0.613636 0.535714 +vt 0.636364 0.562500 +vt 0.613636 0.562500 +vt 0.647727 0.535714 +vt 0.670455 0.562500 +vt 0.647727 0.562500 +vt 0.636364 0.535714 +vt 0.670455 0.535714 +vt 0.681818 0.562500 +vt 0.613636 0.562500 +vt 0.636364 0.535714 +vt 0.636364 0.562500 +vt 0.647727 0.535714 +vt 0.670455 0.562500 +vt 0.647727 0.562500 +vt 0.670455 0.535714 +vt 0.681818 0.562500 +vt 0.522727 0.616071 +vt 0.681818 0.500000 +vt 0.681818 0.500000 +vt 0.681818 0.500000 +vt 0.681818 0.500000 +vt 0.522727 0.616071 +vt 0.522727 0.553571 +vt 0.522727 0.553571 +vt 0.522727 0.616071 +vt 0.522727 0.616071 +vt 0.522727 0.553571 +vt 0.522727 0.616071 +vt 0.522727 0.616071 +vt 0.522727 0.553571 +vt 0.522727 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.704545 0.553571 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.684659 0.482143 +vt 0.477273 0.517857 +vt 0.520118 0.589286 +vt 0.517423 0.605093 +vt 0.510059 0.616665 +vt 0.500000 0.620900 +vt 0.489941 0.616665 +vt 0.482577 0.605093 +vt 0.479882 0.589286 +vt 0.489941 0.561907 +vt 0.510059 0.561907 +vt 0.479882 0.482143 +vt 0.482577 0.466336 +vt 0.489941 0.454764 +vt 0.500000 0.450529 +vt 0.510059 0.454764 +vt 0.520118 0.482143 +vt 0.510059 0.509522 +vt 0.500000 0.513757 +vt 0.489941 0.509522 +vt 0.681818 0.535714 +vt 0.681818 0.535714 +vt 0.613636 0.535714 +vt 0.681818 0.535714 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.2588 0.9659 +vn 0.0000 -0.9659 -0.2588 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.9659 0.2588 +vn 0.0000 0.9659 0.2588 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +s off +f 251/431/40 250/432/40 252/433/40 +f 267/434/41 256/435/41 268/436/41 +f 275/437/42 263/438/42 276/439/42 +f 268/440/43 257/441/43 269/442/43 +f 269/443/44 258/444/44 270/445/44 +f 270/446/45 259/447/45 271/448/45 +f 271/449/46 260/450/46 272/451/46 +f 276/452/47 253/453/47 265/454/47 +f 272/455/48 261/456/48 273/457/48 +f 265/458/49 254/459/49 266/460/49 +f 273/461/50 262/462/50 274/463/50 +f 266/464/51 255/465/51 267/466/51 +f 274/467/52 264/468/52 275/469/52 +f 283/470/53 282/471/53 284/472/53 +f 249/473/54 280/474/54 279/475/54 +f 250/432/55 278/476/55 252/433/55 +f 252/433/56 280/474/56 251/477/56 +f 249/473/57 277/478/57 250/479/57 +f 281/480/54 288/481/54 287/482/54 +f 282/471/55 286/483/55 284/472/55 +f 284/472/57 288/481/57 283/484/57 +f 281/480/56 285/485/56 282/486/56 +f 291/487/58 290/488/58 292/489/58 +f 299/490/59 298/491/59 300/492/59 +f 289/493/54 296/494/54 295/495/54 +f 290/488/55 294/496/55 292/489/55 +f 292/489/60 296/494/60 291/497/60 +f 289/493/61 293/498/61 290/499/61 +f 299/500/54 303/501/54 297/502/54 +f 300/492/55 301/503/55 302/504/55 +f 300/492/61 304/505/61 299/500/61 +f 297/502/60 301/506/60 298/507/60 +f 307/508/62 306/509/62 308/510/62 +f 315/511/63 314/512/63 316/513/63 +f 305/514/54 312/515/54 311/516/54 +f 306/509/55 310/517/55 308/510/55 +f 308/510/64 312/515/64 307/518/64 +f 305/514/65 309/519/65 306/520/65 +f 313/521/54 320/522/54 319/523/54 +f 314/512/55 318/524/55 316/513/55 +f 316/513/65 320/522/65 315/525/65 +f 313/521/64 317/526/64 314/527/64 +f 268/436/54 323/528/54 267/434/54 +f 275/469/54 330/529/54 274/467/54 +f 265/454/54 332/530/54 276/452/54 +f 272/451/54 327/531/54 271/449/54 +f 268/440/54 325/532/54 324/533/54 +f 276/439/54 331/534/54 275/437/54 +f 265/458/54 322/535/54 321/536/54 +f 272/455/54 329/537/54 328/538/54 +f 270/445/54 325/539/54 269/443/54 +f 266/464/54 323/540/54 322/541/54 +f 274/463/54 329/542/54 273/461/54 +f 271/448/54 326/543/54 270/446/54 +f 258/444/55 337/544/55 338/545/55 +f 254/546/55 335/547/55 255/465/55 +f 262/462/55 341/548/55 342/549/55 +f 258/550/55 339/551/55 259/447/55 +f 256/435/55 335/552/55 336/553/55 +f 262/554/55 344/555/55 264/468/55 +f 253/453/55 343/556/55 333/557/55 +f 259/558/55 340/559/55 260/450/55 +f 256/560/55 337/561/55 257/441/55 +f 264/562/55 343/563/55 263/438/55 +f 253/564/55 334/565/55 254/459/55 +f 260/566/55 341/567/55 261/456/55 +f 342/549/41 329/568/41 330/569/41 +f 344/555/43 330/570/43 331/571/43 +f 343/563/44 331/572/44 332/573/44 +f 333/557/45 332/574/45 321/575/45 +f 334/565/46 321/576/46 322/577/46 +f 335/547/48 322/578/48 323/579/48 +f 336/553/50 323/580/50 324/581/50 +f 337/561/52 324/582/52 325/583/52 +f 338/545/42 325/584/42 326/585/42 +f 339/551/47 326/586/47 327/587/47 +f 340/559/49 327/588/49 328/589/49 +f 341/567/51 328/590/51 329/591/51 +f 359/592/41 348/593/41 360/594/41 +f 367/595/42 355/596/42 368/597/42 +f 360/594/43 349/598/43 361/599/43 +f 361/599/44 350/600/44 362/601/44 +f 362/601/45 351/602/45 363/603/45 +f 363/603/46 352/604/46 364/605/46 +f 368/597/47 345/606/47 357/607/47 +f 364/605/48 353/608/48 365/609/48 +f 357/607/49 346/610/49 358/611/49 +f 365/612/50 354/613/50 366/614/50 +f 358/611/51 347/615/51 359/592/51 +f 366/614/52 356/616/52 367/595/52 +f 363/617/54 365/618/54 367/619/54 +f 351/620/55 349/621/55 345/622/55 +f 373/623/54 371/624/54 369/625/54 +f 376/626/55 370/627/55 372/628/55 +f 375/629/57 372/628/57 371/624/57 +f 374/630/56 369/631/56 370/627/56 +f 381/632/54 379/633/54 377/634/54 +f 384/635/55 378/636/55 380/637/55 +f 383/638/60 380/637/60 379/633/60 +f 382/639/61 377/640/61 378/636/61 +f 385/641/54 391/642/54 387/643/54 +f 392/644/55 386/645/55 388/646/55 +f 391/642/65 388/646/65 387/643/65 +f 390/647/64 385/648/64 386/645/64 +f 251/431/40 249/649/40 250/432/40 +f 267/434/41 255/650/41 256/435/41 +f 275/437/42 264/562/42 263/438/42 +f 268/440/43 256/560/43 257/441/43 +f 269/443/44 257/651/44 258/444/44 +f 270/446/45 258/550/45 259/447/45 +f 271/449/46 259/558/46 260/450/46 +f 276/452/47 263/652/47 253/453/47 +f 272/455/48 260/566/48 261/456/48 +f 265/458/49 253/564/49 254/459/49 +f 273/461/50 261/653/50 262/462/50 +f 266/464/51 254/546/51 255/465/51 +f 274/467/52 262/554/52 264/468/52 +f 283/470/53 281/654/53 282/471/53 +f 249/473/54 251/477/54 280/474/54 +f 250/432/55 277/655/55 278/476/55 +f 252/433/56 278/476/56 280/474/56 +f 249/473/57 279/475/57 277/478/57 +f 281/480/54 283/484/54 288/481/54 +f 282/471/55 285/656/55 286/483/55 +f 284/472/57 286/483/57 288/481/57 +f 281/480/56 287/482/56 285/485/56 +f 291/487/58 289/657/58 290/488/58 +f 299/490/59 297/658/59 298/491/59 +f 289/493/54 291/497/54 296/494/54 +f 290/488/55 293/659/55 294/496/55 +f 292/489/60 294/496/60 296/494/60 +f 289/493/61 295/495/61 293/498/61 +f 299/500/54 304/505/54 303/501/54 +f 300/492/55 298/491/55 301/503/55 +f 300/492/61 302/504/61 304/505/61 +f 297/502/60 303/501/60 301/506/60 +f 307/508/62 305/660/62 306/509/62 +f 315/511/63 313/661/63 314/512/63 +f 305/514/54 307/518/54 312/515/54 +f 306/509/55 309/662/55 310/517/55 +f 308/510/64 310/517/64 312/515/64 +f 305/514/65 311/516/65 309/519/65 +f 313/521/54 315/525/54 320/522/54 +f 314/512/55 317/663/55 318/524/55 +f 316/513/65 318/524/65 320/522/65 +f 313/521/64 319/523/64 317/526/64 +f 268/436/54 324/664/54 323/528/54 +f 275/469/54 331/665/54 330/529/54 +f 265/454/54 321/666/54 332/530/54 +f 272/451/54 328/667/54 327/531/54 +f 268/440/54 269/442/54 325/532/54 +f 276/439/54 332/668/54 331/534/54 +f 265/458/54 266/460/54 322/535/54 +f 272/455/54 273/457/54 329/537/54 +f 270/445/54 326/669/54 325/539/54 +f 266/464/54 267/466/54 323/540/54 +f 274/463/54 330/670/54 329/542/54 +f 271/448/54 327/671/54 326/543/54 +f 258/444/55 257/651/55 337/544/55 +f 254/546/55 334/672/55 335/547/55 +f 262/462/55 261/653/55 341/548/55 +f 258/550/55 338/673/55 339/551/55 +f 256/435/55 255/650/55 335/552/55 +f 262/554/55 342/674/55 344/555/55 +f 253/453/55 263/652/55 343/556/55 +f 259/558/55 339/675/55 340/559/55 +f 256/560/55 336/676/55 337/561/55 +f 264/562/55 344/677/55 343/563/55 +f 253/564/55 333/678/55 334/565/55 +f 260/566/55 340/679/55 341/567/55 +f 342/549/41 341/548/41 329/568/41 +f 344/555/43 342/674/43 330/570/43 +f 343/563/44 344/677/44 331/572/44 +f 333/557/45 343/556/45 332/574/45 +f 334/565/46 333/678/46 321/576/46 +f 335/547/48 334/672/48 322/578/48 +f 336/553/50 335/552/50 323/580/50 +f 337/561/52 336/676/52 324/582/52 +f 338/545/42 337/544/42 325/584/42 +f 339/551/47 338/673/47 326/586/47 +f 340/559/49 339/675/49 327/588/49 +f 341/567/51 340/679/51 328/590/51 +f 359/592/41 347/615/41 348/593/41 +f 367/595/42 356/616/42 355/596/42 +f 360/594/43 348/593/43 349/598/43 +f 361/599/44 349/598/44 350/600/44 +f 362/601/45 350/600/45 351/602/45 +f 363/603/46 351/602/46 352/604/46 +f 368/597/47 355/596/47 345/606/47 +f 364/605/48 352/604/48 353/608/48 +f 357/607/49 345/606/49 346/610/49 +f 365/612/50 353/680/50 354/613/50 +f 358/611/51 346/610/51 347/615/51 +f 366/614/52 354/613/52 356/616/52 +f 367/619/54 368/681/54 357/682/54 +f 357/682/54 358/683/54 359/684/54 +f 359/684/54 360/685/54 363/617/54 +f 360/685/54 361/686/54 363/617/54 +f 361/686/54 362/687/54 363/617/54 +f 363/617/54 364/688/54 365/618/54 +f 365/618/54 366/689/54 367/619/54 +f 367/619/54 357/682/54 363/617/54 +f 357/682/54 359/684/54 363/617/54 +f 345/622/55 355/690/55 356/691/55 +f 356/691/55 354/692/55 353/693/55 +f 353/693/55 352/694/55 351/620/55 +f 351/620/55 350/695/55 349/621/55 +f 349/621/55 348/696/55 345/622/55 +f 348/696/55 347/697/55 345/622/55 +f 347/697/55 346/698/55 345/622/55 +f 345/622/55 356/691/55 353/693/55 +f 353/693/55 351/620/55 345/622/55 +f 373/623/54 375/629/54 371/624/54 +f 376/626/55 374/630/55 370/627/55 +f 375/629/57 376/626/57 372/628/57 +f 374/630/56 373/699/56 369/631/56 +f 381/632/54 383/638/54 379/633/54 +f 384/635/55 382/639/55 378/636/55 +f 383/638/60 384/635/60 380/637/60 +f 382/639/61 381/700/61 377/640/61 +f 385/641/54 389/701/54 391/642/54 +f 392/644/55 390/647/55 386/645/55 +f 391/642/65 392/644/65 388/646/65 +f 390/647/64 389/702/64 385/648/64 +o Base +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -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.437500 0.000000 0.437500 +v 0.437500 0.000000 0.437500 +v -0.437500 0.000000 -0.437500 +v 0.437500 0.000000 -0.437500 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -0.500000 0.062500 -0.500000 +v -0.500000 0.062500 0.500000 +v 0.500000 0.062500 0.500000 +v 0.500000 0.062500 -0.500000 +v -0.437500 0.062500 -0.437500 +v -0.437500 0.062500 0.437500 +v 0.437500 0.062500 0.437500 +v 0.437500 0.062500 -0.437500 +v -0.625000 1.000000 0.750000 +v 0.625000 1.000000 0.750000 +v -0.625000 1.000000 -1.250000 +v 0.625000 1.000000 -1.250000 +v -0.500000 1.125000 -1.250000 +v -0.500000 1.125000 0.750000 +v 0.500000 1.125000 0.750000 +v 0.500000 1.125000 -1.250000 +v -0.500000 1.625000 -1.250000 +v -0.500000 1.625000 0.750000 +v 0.500000 1.625000 0.750000 +v 0.500000 1.625000 -1.250000 +v -0.250000 1.875000 -1.250000 +v -0.250000 1.875000 0.750000 +v 0.250000 1.875000 0.750000 +v 0.250000 1.875000 -1.250000 +v -0.625000 1.000000 1.000000 +v 0.625000 1.000000 1.000000 +v -0.500000 1.125000 1.000000 +v 0.500000 1.125000 1.000000 +v -0.500000 1.625000 1.000000 +v 0.500000 1.625000 1.000000 +v -0.250000 1.875000 1.000000 +v 0.250000 1.875000 1.000000 +v 0.500000 1.125000 1.250000 +v 0.500000 1.625000 1.250000 +v 0.625000 1.000000 1.250000 +v -0.625000 1.000000 1.250000 +v -0.500000 1.125000 1.250000 +v -0.500000 1.625000 1.250000 +v -0.250000 1.875000 1.250000 +v 0.250000 1.875000 1.250000 +v -1.250000 1.000000 1.000000 +v 1.250000 1.000000 1.000000 +v -1.250000 1.000000 0.750000 +v 1.000000 1.000000 0.750000 +v -1.250000 0.125000 1.000000 +v 1.250000 0.125000 1.000000 +v -1.250000 0.125000 0.750000 +v 1.000000 0.125000 0.750000 +v 1.250000 1.000000 -0.500000 +v 1.250000 0.125000 -0.500000 +v 1.000000 1.000000 -0.500000 +v 1.000000 0.125000 -0.500000 +v 1.250000 1.500000 0.500000 +v 1.250000 1.000000 0.500000 +v 1.250000 1.500000 -0.000000 +v 1.250000 1.000000 -0.000000 +v 1.375000 1.500000 -0.000000 +v 1.375000 1.500000 0.500000 +v 1.375000 1.000000 0.500000 +v 1.375000 1.000000 -0.000000 +v 1.250000 1.625000 0.125000 +v 1.250000 1.625000 0.375000 +v 1.375000 1.625000 0.125000 +v 1.375000 1.625000 0.375000 +v 1.000000 1.500000 0.500000 +v 1.000000 1.000000 0.500000 +v 1.000000 1.500000 -0.000000 +v 1.000000 1.000000 -0.000000 +v 1.000000 1.625000 0.125000 +v 1.000000 1.625000 0.375000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.000000 +v 0.500000 1.500000 0.500000 +v 0.500000 1.500000 -0.000000 +v 0.500000 1.625000 0.125000 +v 0.500000 1.625000 0.375000 +v -0.875000 1.750000 0.250000 +v -0.875000 1.699759 0.437500 +v -0.875000 1.562500 0.574760 +v -0.875000 1.375000 0.625000 +v -0.875000 1.187500 0.574760 +v -0.875000 1.050241 0.437500 +v -0.875000 1.000000 0.250000 +v -0.875000 1.050241 0.062500 +v -0.875000 1.187500 -0.074759 +v -0.875000 1.375000 -0.125000 +v -0.875000 1.562500 -0.074760 +v -0.875000 1.699759 0.062500 +v -0.375000 1.750000 0.250000 +v -0.375000 1.699759 0.437500 +v -0.375000 1.562500 0.574760 +v -0.375000 1.375000 0.625000 +v -0.375000 1.187500 0.574760 +v -0.375000 1.050241 0.437500 +v -0.375000 1.000000 0.250000 +v -0.375000 1.050241 0.062500 +v -0.375000 1.187500 -0.074759 +v -0.375000 1.375000 -0.125000 +v -0.375000 1.562500 -0.074760 +v -0.375000 1.699759 0.062500 +v -0.875000 1.750000 -0.750000 +v -0.875000 1.699759 -0.562500 +v -0.875000 1.562500 -0.425240 +v -0.875000 1.375000 -0.375000 +v -0.875000 1.187500 -0.425240 +v -0.875000 1.050241 -0.562500 +v -0.875000 1.000000 -0.750000 +v -0.875000 1.050241 -0.937500 +v -0.875000 1.187500 -1.074759 +v -0.875000 1.375000 -1.125000 +v -0.875000 1.562500 -1.074759 +v -0.875000 1.699759 -0.937500 +v -0.375000 1.750000 -0.750000 +v -0.375000 1.699759 -0.562500 +v -0.375000 1.562500 -0.425240 +v -0.375000 1.375000 -0.375000 +v -0.375000 1.187500 -0.425240 +v -0.375000 1.050241 -0.562500 +v -0.375000 1.000000 -0.750000 +v -0.375000 1.050241 -0.937500 +v -0.375000 1.187500 -1.074759 +v -0.375000 1.375000 -1.125000 +v -0.375000 1.562500 -1.074759 +v -0.375000 1.699759 -0.937500 +v -0.250000 0.250000 1.500000 +v 0.250000 0.250000 1.500000 +v -0.250000 0.750000 1.500000 +v 0.250000 0.750000 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.312500 1.500000 +v -0.187500 0.687500 1.500000 +v 0.187500 0.687500 1.500000 +v -0.250000 0.750000 1.437500 +v -0.250000 0.250000 1.437500 +v 0.250000 0.250000 1.437500 +v 0.250000 0.750000 1.437500 +v -0.187500 0.687500 1.437500 +v -0.187500 0.312500 1.437500 +v 0.187500 0.312500 1.437500 +v 0.187500 0.687500 1.437500 +v 1.500000 0.250000 0.250000 +v 1.500000 0.250000 -0.250000 +v 1.500000 0.750000 0.250000 +v 1.500000 0.750000 -0.250000 +v 1.500000 0.312500 0.187500 +v 1.500000 0.312500 -0.187500 +v 1.500000 0.687500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.437500 0.750000 0.250000 +v 1.437500 0.250000 0.250000 +v 1.437500 0.250000 -0.250000 +v 1.437500 0.750000 -0.250000 +v 1.437500 0.687500 0.187500 +v 1.437500 0.312500 0.187500 +v 1.437500 0.312500 -0.187500 +v 1.437500 0.687500 -0.187500 +v 0.250000 0.250000 -1.500000 +v -0.250000 0.250000 -1.500000 +v 0.250000 0.750000 -1.500000 +v -0.250000 0.750000 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.312500 -1.500000 +v 0.187500 0.687500 -1.500000 +v -0.187500 0.687500 -1.500000 +v 0.250000 0.750000 -1.437500 +v 0.250000 0.250000 -1.437500 +v -0.250000 0.250000 -1.437500 +v -0.250000 0.750000 -1.437500 +v 0.187500 0.687500 -1.437500 +v 0.187500 0.312500 -1.437500 +v -0.187500 0.312500 -1.437500 +v -0.187500 0.687500 -1.437500 +v -1.500000 0.250000 -0.250000 +v -1.500000 0.250000 0.250000 +v -1.500000 0.750000 -0.250000 +v -1.500000 0.750000 0.250000 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.437500 0.750000 -0.250000 +v -1.437500 0.250000 -0.250000 +v -1.437500 0.250000 0.250000 +v -1.437500 0.750000 0.250000 +v -1.437500 0.687500 -0.187500 +v -1.437500 0.312500 -0.187500 +v -1.437500 0.312500 0.187500 +v -1.437500 0.687500 0.187500 +vt 0.647727 0.357143 +vt 0.738636 0.348214 +vt 0.738636 0.357143 +vt 0.738636 0.178571 +vt 0.647727 0.187500 +vt 0.647727 0.178571 +vt 0.653409 0.205357 +vt 0.732955 0.330357 +vt 0.653409 0.330357 +vt 0.653409 0.339286 +vt 0.732955 0.196429 +vt 0.732955 0.205357 +vt 0.272727 0.000000 +vt 0.090909 0.142857 +vt 0.000000 0.000000 +vt 0.272727 0.428571 +vt 0.181818 0.142857 +vt 0.545455 0.660714 +vt 0.568182 0.839286 +vt 0.545455 0.875000 +vt 0.090909 0.285714 +vt 0.000000 0.428571 +vt 0.159091 0.464286 +vt -0.000000 0.428571 +vt 0.272727 0.428571 +vt 0.772727 0.875000 +vt 0.772727 0.839286 +vt 0.113636 0.535714 +vt 0.272727 0.571429 +vt -0.000000 0.571429 +vt 0.272727 0.750000 +vt 0.278409 0.821429 +vt 0.272727 0.821429 +vt 0.795455 0.875000 +vt 1.000000 1.000000 +vt 0.795455 1.000000 +vt 0.738636 0.187500 +vt 0.653409 0.196429 +vt 0.642045 0.196429 +vt 0.647727 0.330357 +vt 0.642045 0.339286 +vt 0.744318 0.339286 +vt 0.738636 0.205357 +vt 0.744318 0.196429 +vt 0.647727 0.348214 +vt 0.732955 0.339286 +vt 0.738636 0.330357 +vt 0.647727 0.205357 +vt 0.750000 0.339286 +vt 0.750000 0.196429 +vt 0.636364 0.196429 +vt 0.636364 0.339286 +vt 0.534091 0.160714 +vt 0.556818 0.125000 +vt 0.556818 0.160714 +vt 0.477273 0.160714 +vt 0.488636 0.125000 +vt 0.488636 0.160714 +vt 0.477273 0.410714 +vt 0.465909 0.125000 +vt 0.477273 0.125000 +vt 0.272727 0.125000 +vt 0.284091 0.410714 +vt 0.272727 0.410714 +vt 0.420455 0.517857 +vt 0.318182 0.535714 +vt 0.329545 0.517857 +vt 0.329545 0.017857 +vt 0.431818 -0.000000 +vt 0.420455 0.017857 +vt 0.534091 0.017857 +vt 0.636364 0.000000 +vt 0.625000 0.017857 +vt 0.602273 0.125000 +vt 0.602273 0.160714 +vt 0.465909 0.410714 +vt 0.420455 0.125000 +vt 0.284091 0.125000 +vt 0.329545 0.410714 +vt 0.397727 0.125000 +vt 0.352273 0.410714 +vt 0.352273 0.125000 +vt 0.420455 0.410714 +vt 0.329545 0.125000 +vt 0.534091 0.267857 +vt 0.670455 0.160714 +vt 0.681818 0.125000 +vt 0.681818 0.160714 +vt 0.625000 0.160714 +vt 0.670455 0.125000 +vt 0.625000 0.125000 +vt 0.534091 0.125000 +vt 0.181818 0.285714 +vt 0.772727 1.000000 +vt 0.545455 1.000000 +vt 0.000000 0.571429 +vt 0.022727 0.678571 +vt 0.000000 1.000000 +vt 0.113636 0.464286 +vt 0.250000 0.642857 +vt 0.272727 0.571429 +vt 0.409091 0.875000 +vt 0.409091 1.000000 +vt 0.386364 0.875000 +vt 0.272727 1.000000 +vt 0.272727 0.875000 +vt 0.250000 0.857143 +vt 0.272727 1.000000 +vt 0.227273 0.857143 +vt 0.227273 0.678571 +vt 0.318182 0.607143 +vt 0.318182 0.535714 +vt 0.363636 0.535714 +vt 0.568182 0.357143 +vt 0.556818 0.375000 +vt 0.534091 0.375000 +vt 0.363636 0.660714 +vt 0.363636 0.732143 +vt 0.318182 0.732143 +vt 0.318182 0.625000 +vt 0.329545 0.642857 +vt 0.318182 0.642857 +vt 0.363636 0.642857 +vt 0.409091 0.625000 +vt 0.409091 0.642857 +vt 0.272727 0.642857 +vt 0.352273 0.625000 +vt 0.352273 0.642857 +vt 0.613636 0.375000 +vt 0.568182 0.446429 +vt 0.568182 0.375000 +vt 0.363636 0.625000 +vt 0.556818 0.446429 +vt 0.534091 0.446429 +vt 0.522727 0.375000 +vt 0.477273 0.446429 +vt 0.477273 0.375000 +vt 0.522727 0.446429 +vt 0.869318 -0.000000 +vt 0.852273 0.071429 +vt 0.852273 -0.000000 +vt 0.784091 0.000000 +vt 0.767045 0.071429 +vt 0.767045 0.000000 +vt 0.818182 -0.000000 +vt 0.801136 0.071429 +vt 0.801136 -0.000000 +vt 0.732955 0.000000 +vt 0.715909 0.071429 +vt 0.715909 0.000000 +vt 0.886364 -0.000000 +vt 0.869318 0.071429 +vt 0.835227 -0.000000 +vt 0.818182 0.071429 +vt 0.750000 0.000000 +vt 0.732955 0.071429 +vt 0.698864 0.000000 +vt 0.681818 0.071429 +vt 0.681818 0.000000 +vt 0.835227 0.071429 +vt 0.750000 0.071429 +vt 0.784091 0.071429 +vt 0.698864 0.071429 +vt 0.743913 0.099593 +vt 0.715909 0.175814 +vt 0.687905 0.099593 +vt 0.869318 -0.000000 +vt 0.852273 0.071429 +vt 0.852273 -0.000000 +vt 0.784091 0.000000 +vt 0.767045 0.071429 +vt 0.767045 0.000000 +vt 0.818182 -0.000000 +vt 0.801136 0.071429 +vt 0.801136 -0.000000 +vt 0.732955 0.000000 +vt 0.715909 0.071429 +vt 0.715909 0.000000 +vt 0.886364 -0.000000 +vt 0.869318 0.071429 +vt 0.835227 -0.000000 +vt 0.818182 0.071429 +vt 0.750000 0.000000 +vt 0.732955 0.071429 +vt 0.698864 0.000000 +vt 0.681818 0.071429 +vt 0.681818 0.000000 +vt 0.835227 0.071429 +vt 0.750000 0.071429 +vt 0.784091 0.071429 +vt 0.698864 0.071429 +vt 0.743913 0.099593 +vt 0.715909 0.175814 +vt 0.687905 0.099593 +vt 0.340909 0.821429 +vt 0.335227 0.750000 +vt 0.340909 0.750000 +vt 0.323864 0.758929 +vt 0.289773 0.812500 +vt 0.289773 0.758929 +vt 0.284091 0.758929 +vt 0.329545 0.812500 +vt 0.323864 0.812500 +vt 0.113636 0.464286 +vt 0.113636 0.535714 +vt 0.159091 0.535714 +vt 0.159091 0.464286 +vt 0.335227 0.821429 +vt 0.323864 0.750000 +vt 0.284091 0.741071 +vt 0.329545 0.741071 +vt 0.289773 0.821429 +vt 0.329545 0.830357 +vt 0.284091 0.830357 +vt 0.278409 0.750000 +vt 0.284091 0.839286 +vt 0.329545 0.839286 +vt 0.329545 0.732143 +vt 0.284091 0.732143 +vt 0.272727 0.750000 +vt 0.278409 0.821429 +vt 0.272727 0.821429 +vt 0.340909 0.821429 +vt 0.335227 0.750000 +vt 0.340909 0.750000 +vt 0.323864 0.758929 +vt 0.289773 0.812500 +vt 0.289773 0.758929 +vt 0.284091 0.758929 +vt 0.329545 0.812500 +vt 0.323864 0.812500 +vt 0.335227 0.821429 +vt 0.323864 0.750000 +vt 0.284091 0.741071 +vt 0.329545 0.741071 +vt 0.289773 0.821429 +vt 0.329545 0.830357 +vt 0.284091 0.830357 +vt 0.278409 0.750000 +vt 0.284091 0.839286 +vt 0.329545 0.839286 +vt 0.329545 0.732143 +vt 0.284091 0.732143 +vt 0.272727 0.750000 +vt 0.278409 0.821429 +vt 0.272727 0.821429 +vt 0.340909 0.821429 +vt 0.335227 0.750000 +vt 0.340909 0.750000 +vt 0.323864 0.758929 +vt 0.289773 0.812500 +vt 0.289773 0.758929 +vt 0.284091 0.758929 +vt 0.329545 0.812500 +vt 0.323864 0.812500 +vt 0.335227 0.821429 +vt 0.323864 0.750000 +vt 0.284091 0.741071 +vt 0.329545 0.741071 +vt 0.289773 0.821429 +vt 0.329545 0.830357 +vt 0.284091 0.830357 +vt 0.278409 0.750000 +vt 0.284091 0.839286 +vt 0.329545 0.839286 +vt 0.329545 0.732143 +vt 0.284091 0.732143 +vt 0.272727 0.750000 +vt 0.278409 0.821429 +vt 0.272727 0.821429 +vt 0.340909 0.821429 +vt 0.335227 0.750000 +vt 0.340909 0.750000 +vt 0.323864 0.758929 +vt 0.289773 0.812500 +vt 0.289773 0.758929 +vt 0.284091 0.758929 +vt 0.329545 0.812500 +vt 0.323864 0.812500 +vt 0.335227 0.821429 +vt 0.323864 0.750000 +vt 0.284091 0.741071 +vt 0.329545 0.741071 +vt 0.289773 0.821429 +vt 0.329545 0.830357 +vt 0.284091 0.830357 +vt 0.278409 0.750000 +vt 0.284091 0.812500 +vt 0.284091 0.839286 +vt 0.329545 0.839286 +vt 0.329545 0.732143 +vt 0.284091 0.732143 +vt 0.159091 0.535714 +vt 0.113636 0.535714 +vt 0.000000 0.428571 +vt 0.113636 0.464286 +vt 0.272727 0.571429 +vt -0.000000 0.571429 +vt 0.159091 0.464286 +vt 0.272727 0.428571 +vt 0.159091 0.535714 +vt 0.159091 0.535714 +vt 0.272727 0.428571 +vt 0.272727 0.571429 +vt 0.113636 0.535714 +vt -0.000000 0.428571 +vt 0.113636 0.464286 +vt 0.159091 0.464286 +vt -0.000000 0.571429 +vt 0.568182 0.660714 +vt 1.000000 0.875000 +vt 0.477273 0.125000 +vt 0.329545 0.446429 +vt 0.397727 0.410714 +vt 0.420455 0.446429 +vt 0.431818 0.535714 +vt 0.420455 0.089286 +vt 0.329545 0.089286 +vt 0.318182 -0.000000 +vt 0.625000 0.089286 +vt 0.534091 0.089286 +vt 0.522727 0.000000 +vt 0.625000 0.267857 +vt 0.636364 0.285714 +vt 0.522727 0.285714 +vt 0.534091 0.196429 +vt 0.625000 0.196429 +vt 0.022727 0.642857 +vt 0.386364 1.000000 +vt 0.363636 0.607143 +vt 0.329545 0.625000 +vt 0.522727 0.357143 +vt 0.522727 0.285714 +vt 0.568182 0.285714 +vt 0.318182 0.660714 +vt 0.272727 0.625000 +vt 0.613636 0.446429 +vt 0.886364 0.071429 +vt 0.699741 0.080994 +vt 0.715909 0.074186 +vt 0.732077 0.080994 +vt 0.748245 0.125000 +vt 0.743913 0.150407 +vt 0.732077 0.169006 +vt 0.699741 0.169006 +vt 0.687905 0.150407 +vt 0.683573 0.125000 +vt 0.886364 0.071429 +vt 0.699741 0.080994 +vt 0.715909 0.074186 +vt 0.732077 0.080994 +vt 0.748245 0.125000 +vt 0.743913 0.150407 +vt 0.732077 0.169006 +vt 0.699741 0.169006 +vt 0.687905 0.150407 +vt 0.683573 0.125000 +vt 0.284091 0.812500 +vt 0.329545 0.758929 +vt 0.289773 0.750000 +vt 0.323864 0.821429 +vt 0.284091 0.812500 +vt 0.329545 0.758929 +vt 0.289773 0.750000 +vt 0.323864 0.821429 +vt 0.284091 0.812500 +vt 0.329545 0.758929 +vt 0.289773 0.750000 +vt 0.323864 0.821429 +vt 0.329545 0.758929 +vt 0.289773 0.750000 +vt 0.323864 0.821429 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.9659 0.2588 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.9659 -0.2588 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.9659 0.2588 +vn 0.0000 -0.7071 -0.7071 +s off +f 397/703/66 411/704/66 398/705/66 +f 400/706/67 409/707/67 399/708/67 +f 403/709/68 402/710/68 401/711/68 +f 402/710/67 414/712/67 401/711/67 +f 403/709/66 416/713/66 404/714/66 +f 396/715/68 399/716/68 395/717/68 +f 394/718/68 400/719/68 396/715/68 +f 458/720/69 456/721/69 454/722/69 +f 395/717/68 397/723/68 393/724/68 +f 550/725/70 394/726/70 396/727/70 +f 453/728/69 456/721/69 455/729/69 +f 551/730/70 408/731/70 406/732/70 +f 533/733/70 541/734/70 535/735/70 +f 455/736/67 452/737/67 451/738/67 +f 412/739/68 413/740/68 409/707/68 +f 409/741/68 414/742/68 410/743/68 +f 411/744/68 416/745/68 412/746/68 +f 410/747/68 415/748/68 411/704/68 +f 404/714/70 415/749/70 402/710/70 +f 401/711/71 413/750/71 403/709/71 +f 398/751/71 412/746/71 400/752/71 +f 399/753/70 410/743/70 397/754/70 +f 437/755/72 447/756/72 439/757/72 +f 433/758/72 445/759/72 435/760/72 +f 420/761/73 423/762/73 418/763/73 +f 417/764/72 421/765/72 419/766/72 +f 424/767/66 419/768/66 421/769/66 +f 422/770/67 418/771/67 423/772/67 +f 445/773/67 443/774/67 441/775/67 +f 439/757/69 448/776/69 440/777/69 +f 424/778/70 427/779/70 423/762/70 +f 422/780/71 425/781/71 421/765/71 +f 431/782/69 429/783/69 430/784/69 +f 428/785/73 431/782/73 427/779/73 +f 426/786/72 429/783/72 425/781/72 +f 435/787/66 439/757/66 440/777/66 +f 436/788/73 443/789/73 434/790/73 +f 438/791/70 441/792/70 436/788/70 +f 440/777/73 442/793/73 438/791/73 +f 435/760/71 446/794/71 437/755/71 +f 393/724/68 398/795/68 394/718/68 +f 454/722/66 449/796/66 450/797/66 +f 405/798/69 451/799/69 407/800/69 +f 406/732/70 549/801/70 551/730/70 +f 451/738/70 453/728/70 455/736/70 +f 450/802/69 405/798/69 406/803/69 +f 450/797/71 458/804/71 454/722/71 +f 457/805/67 460/806/67 458/804/67 +f 460/806/70 452/807/70 456/808/70 +f 457/809/69 406/803/69 408/810/69 +f 408/810/69 459/811/69 457/809/69 +f 459/811/69 451/799/69 452/812/69 +f 466/813/70 467/814/70 468/815/70 +f 475/816/70 477/817/70 478/818/70 +f 463/819/71 464/820/71 462/821/71 +f 466/822/74 470/823/74 461/824/74 +f 463/825/66 468/826/66 464/827/66 +f 462/828/67 466/822/67 461/824/67 +f 470/823/69 471/829/69 469/830/69 +f 476/831/66 482/832/66 475/833/66 +f 463/825/75 471/829/75 465/834/75 +f 475/833/75 483/835/75 477/817/75 +f 477/817/69 484/836/69 478/818/69 +f 473/837/67 479/838/67 474/839/67 +f 478/818/74 481/840/74 473/837/74 +f 490/841/76 501/842/76 489/843/76 +f 485/844/77 508/845/77 496/846/77 +f 487/847/74 498/848/74 486/849/74 +f 494/850/78 505/851/78 493/852/78 +f 491/853/79 502/854/79 490/841/79 +f 488/855/80 499/856/80 487/847/80 +f 495/857/81 506/858/81 494/850/81 +f 492/859/82 503/860/82 491/861/82 +f 489/843/83 500/862/83 488/855/83 +f 496/846/75 507/863/75 495/857/75 +f 486/849/84 497/864/84 485/844/84 +f 493/852/85 504/865/85 492/859/85 +f 495/866/71 491/867/71 487/868/71 +f 514/869/76 525/870/76 513/871/76 +f 509/872/77 532/873/77 520/874/77 +f 511/875/74 522/876/74 510/877/74 +f 518/878/78 529/879/78 517/880/78 +f 515/881/79 526/882/79 514/869/79 +f 512/883/80 523/884/80 511/875/80 +f 519/885/81 530/886/81 518/878/81 +f 516/887/82 527/888/82 515/889/82 +f 513/871/83 524/890/83 512/883/83 +f 520/874/75 531/891/75 519/885/75 +f 510/877/84 521/892/84 509/872/84 +f 517/880/85 528/893/85 516/887/85 +f 519/894/71 515/895/71 511/896/71 +f 536/897/71 543/898/71 534/899/71 +f 538/900/67 539/901/67 537/902/67 +f 539/901/71 546/903/71 537/902/71 +f 538/900/70 548/904/70 540/905/70 +f 533/906/67 405/798/67 393/724/67 +f 535/907/67 406/803/67 405/798/67 +f 536/908/67 394/718/67 406/803/67 +f 534/909/67 393/724/67 394/718/67 +f 548/904/67 543/898/67 544/910/67 +f 547/911/67 542/912/67 543/913/67 +f 545/914/67 544/915/67 541/916/67 +f 546/903/67 541/734/67 542/917/67 +f 540/905/69 545/914/69 539/901/69 +f 537/902/68 547/911/68 538/900/68 +f 535/918/68 544/915/68 536/919/68 +f 534/920/69 542/912/69 533/921/69 +f 549/922/66 557/923/66 551/924/66 +f 552/925/67 559/926/67 550/927/67 +f 554/928/70 555/929/70 553/930/70 +f 555/929/67 562/931/67 553/930/67 +f 554/928/66 564/932/66 556/933/66 +f 564/932/70 559/926/70 560/934/70 +f 563/935/70 558/936/70 559/937/70 +f 561/938/70 560/939/70 557/940/70 +f 562/931/70 557/923/70 558/941/70 +f 556/933/69 561/938/69 555/929/69 +f 553/930/68 563/935/68 554/928/68 +f 551/942/68 560/939/68 552/943/68 +f 550/944/69 558/936/69 549/945/69 +f 565/946/71 573/947/71 567/948/71 +f 568/949/70 575/950/70 566/951/70 +f 570/952/66 571/953/66 569/954/66 +f 571/953/70 578/955/70 569/954/70 +f 570/952/71 580/956/71 572/957/71 +f 580/956/66 575/950/66 576/958/66 +f 579/959/66 574/960/66 575/961/66 +f 577/962/66 576/963/66 573/964/66 +f 578/955/66 573/947/66 574/965/66 +f 572/957/69 577/962/69 571/953/69 +f 569/954/68 579/959/68 570/952/68 +f 567/966/68 576/963/68 568/967/68 +f 566/968/69 574/960/69 565/969/69 +f 581/970/67 589/971/67 583/972/67 +f 584/973/66 591/974/66 582/975/66 +f 586/976/71 587/977/71 585/978/71 +f 587/977/66 594/979/66 585/978/66 +f 586/976/67 596/980/67 588/981/67 +f 596/980/71 591/974/71 592/982/71 +f 595/983/71 590/984/71 591/985/71 +f 593/986/71 592/987/71 589/988/71 +f 590/989/71 593/990/71 589/971/71 +f 588/981/69 593/986/69 587/977/69 +f 585/978/68 595/983/68 586/976/68 +f 583/991/68 592/987/68 584/992/68 +f 582/993/69 590/984/69 581/994/69 +f 396/727/70 552/995/70 550/725/70 +f 567/996/66 396/997/66 565/998/66 +f 567/996/66 407/999/66 408/1000/66 +f 566/1001/66 396/997/66 395/1002/66 +f 395/1002/66 568/1003/66 566/1001/66 +f 584/1004/71 393/1005/71 405/1006/71 +f 583/1007/71 395/1008/71 581/1009/71 +f 582/1010/71 395/1008/71 393/1005/71 +f 583/1007/71 405/1006/71 407/1011/71 +f 397/703/66 410/747/66 411/704/66 +f 400/706/67 412/739/67 409/707/67 +f 403/709/68 404/714/68 402/710/68 +f 402/710/67 415/748/67 414/712/67 +f 403/709/66 413/740/66 416/713/66 +f 396/715/68 400/719/68 399/716/68 +f 394/718/68 398/795/68 400/719/68 +f 458/720/69 460/1012/69 456/721/69 +f 395/717/68 399/716/68 397/723/68 +f 550/725/70 549/801/70 394/726/70 +f 453/728/69 454/722/69 456/721/69 +f 551/730/70 552/995/70 408/731/70 +f 533/733/70 542/917/70 541/734/70 +f 455/736/67 456/1013/67 452/737/67 +f 412/739/68 416/713/68 413/740/68 +f 409/741/68 413/750/68 414/742/68 +f 411/744/68 415/749/68 416/745/68 +f 410/747/68 414/712/68 415/748/68 +f 404/714/70 416/745/70 415/749/70 +f 401/711/71 414/742/71 413/750/71 +f 398/751/71 411/744/71 412/746/71 +f 399/753/70 409/741/70 410/743/70 +f 437/755/72 446/794/72 447/756/72 +f 433/758/72 444/1014/72 445/759/72 +f 420/761/73 424/778/73 423/762/73 +f 417/764/72 422/780/72 421/765/72 +f 421/769/66 425/1015/66 424/767/66 +f 425/1015/66 429/783/66 424/767/66 +f 429/783/66 432/1016/66 428/1017/66 +f 424/767/66 420/1018/66 419/768/66 +f 429/783/66 428/1017/66 424/767/66 +f 423/772/67 427/1019/67 422/770/67 +f 427/1019/67 431/782/67 422/770/67 +f 431/782/67 430/784/67 426/1020/67 +f 422/770/67 417/1021/67 418/771/67 +f 431/782/67 426/1020/67 422/770/67 +f 441/775/67 442/1022/67 445/773/67 +f 442/1022/67 448/776/67 445/773/67 +f 448/776/67 447/756/67 446/1023/67 +f 445/773/67 444/1024/67 443/774/67 +f 448/776/67 446/1023/67 445/773/67 +f 439/757/69 447/756/69 448/776/69 +f 424/778/70 428/785/70 427/779/70 +f 422/780/71 426/786/71 425/781/71 +f 431/782/69 432/1016/69 429/783/69 +f 428/785/73 432/1016/73 431/782/73 +f 426/786/72 430/784/72 429/783/72 +f 436/1025/66 434/1026/66 433/1027/66 +f 435/787/66 437/1028/66 439/757/66 +f 436/1025/66 433/1027/66 435/787/66 +f 440/777/66 438/1029/66 435/787/66 +f 438/1029/66 436/1025/66 435/787/66 +f 436/788/73 441/792/73 443/789/73 +f 438/791/70 442/793/70 441/792/70 +f 440/777/73 448/776/73 442/793/73 +f 435/760/71 445/759/71 446/794/71 +f 393/724/68 397/723/68 398/795/68 +f 454/722/66 453/728/66 449/796/66 +f 405/798/69 449/1030/69 451/799/69 +f 406/732/70 394/726/70 549/801/70 +f 451/738/70 449/796/70 453/728/70 +f 450/802/69 449/1030/69 405/798/69 +f 450/797/71 457/805/71 458/804/71 +f 457/805/67 459/1031/67 460/806/67 +f 460/806/70 459/1031/70 452/807/70 +f 457/809/69 450/802/69 406/803/69 +f 408/810/69 407/800/69 459/811/69 +f 459/811/69 407/800/69 451/799/69 +f 468/815/70 465/1032/70 466/813/70 +f 465/1032/70 471/829/70 466/813/70 +f 471/829/70 472/1033/70 466/813/70 +f 478/818/70 473/1034/70 475/816/70 +f 473/1034/70 474/1035/70 475/816/70 +f 474/1035/70 476/1036/70 475/816/70 +f 462/821/71 461/1037/71 463/819/71 +f 461/1037/71 470/823/71 463/819/71 +f 470/823/71 469/830/71 463/819/71 +f 466/822/74 472/1033/74 470/823/74 +f 463/825/66 465/834/66 468/826/66 +f 462/828/67 467/1038/67 466/822/67 +f 470/823/69 472/1033/69 471/829/69 +f 476/831/66 480/1039/66 482/832/66 +f 463/825/75 469/830/75 471/829/75 +f 475/833/75 482/832/75 483/835/75 +f 477/817/69 483/835/69 484/836/69 +f 473/837/67 481/840/67 479/838/67 +f 478/818/74 484/836/74 481/840/74 +f 490/841/76 502/854/76 501/842/76 +f 485/844/77 497/864/77 508/845/77 +f 487/847/74 499/856/74 498/848/74 +f 494/850/78 506/858/78 505/851/78 +f 491/853/79 503/1040/79 502/854/79 +f 488/855/80 500/862/80 499/856/80 +f 495/857/81 507/863/81 506/858/81 +f 492/859/82 504/865/82 503/860/82 +f 489/843/83 501/842/83 500/862/83 +f 496/846/75 508/845/75 507/863/75 +f 486/849/84 498/848/84 497/864/84 +f 493/852/85 505/851/85 504/865/85 +f 487/868/71 486/1041/71 485/1042/71 +f 485/1042/71 496/1043/71 487/868/71 +f 496/1043/71 495/866/71 487/868/71 +f 495/866/71 494/1044/71 493/1045/71 +f 493/1045/71 492/1046/71 495/866/71 +f 492/1046/71 491/867/71 495/866/71 +f 491/867/71 490/1047/71 487/868/71 +f 490/1047/71 489/1048/71 487/868/71 +f 489/1048/71 488/1049/71 487/868/71 +f 514/869/76 526/882/76 525/870/76 +f 509/872/77 521/892/77 532/873/77 +f 511/875/74 523/884/74 522/876/74 +f 518/878/78 530/886/78 529/879/78 +f 515/881/79 527/1050/79 526/882/79 +f 512/883/80 524/890/80 523/884/80 +f 519/885/81 531/891/81 530/886/81 +f 516/887/82 528/893/82 527/888/82 +f 513/871/83 525/870/83 524/890/83 +f 520/874/75 532/873/75 531/891/75 +f 510/877/84 522/876/84 521/892/84 +f 517/880/85 529/879/85 528/893/85 +f 511/896/71 510/1051/71 509/1052/71 +f 509/1052/71 520/1053/71 519/894/71 +f 519/894/71 518/1054/71 517/1055/71 +f 517/1055/71 516/1056/71 519/894/71 +f 516/1056/71 515/895/71 519/894/71 +f 515/895/71 514/1057/71 511/896/71 +f 514/1057/71 513/1058/71 511/896/71 +f 513/1058/71 512/1059/71 511/896/71 +f 511/896/71 509/1052/71 519/894/71 +f 536/897/71 544/910/71 543/898/71 +f 538/900/67 540/905/67 539/901/67 +f 539/901/71 545/1060/71 546/903/71 +f 538/900/70 547/1061/70 548/904/70 +f 533/906/67 535/907/67 405/798/67 +f 535/907/67 536/908/67 406/803/67 +f 536/908/67 534/909/67 394/718/67 +f 534/909/67 533/906/67 393/724/67 +f 548/904/67 547/1061/67 543/898/67 +f 547/911/67 546/1062/67 542/912/67 +f 545/914/67 548/1063/67 544/915/67 +f 546/903/67 545/1060/67 541/734/67 +f 540/905/69 548/1063/69 545/914/69 +f 537/902/68 546/1062/68 547/911/68 +f 535/918/68 541/916/68 544/915/68 +f 534/920/69 543/913/69 542/912/69 +f 549/922/66 558/941/66 557/923/66 +f 552/925/67 560/934/67 559/926/67 +f 554/928/70 556/933/70 555/929/70 +f 555/929/67 561/1064/67 562/931/67 +f 554/928/66 563/1065/66 564/932/66 +f 564/932/70 563/1065/70 559/926/70 +f 563/935/70 562/1066/70 558/936/70 +f 561/938/70 564/1067/70 560/939/70 +f 562/931/70 561/1064/70 557/923/70 +f 556/933/69 564/1067/69 561/938/69 +f 553/930/68 562/1066/68 563/935/68 +f 551/942/68 557/940/68 560/939/68 +f 550/944/69 559/937/69 558/936/69 +f 565/946/71 574/965/71 573/947/71 +f 568/949/70 576/958/70 575/950/70 +f 570/952/66 572/957/66 571/953/66 +f 571/953/70 577/1068/70 578/955/70 +f 570/952/71 579/1069/71 580/956/71 +f 580/956/66 579/1069/66 575/950/66 +f 579/959/66 578/1070/66 574/960/66 +f 577/962/66 580/1071/66 576/963/66 +f 578/955/66 577/1068/66 573/947/66 +f 572/957/69 580/1071/69 577/962/69 +f 569/954/68 578/1070/68 579/959/68 +f 567/966/68 573/964/68 576/963/68 +f 566/968/69 575/961/69 574/960/69 +f 581/970/67 590/989/67 589/971/67 +f 584/973/66 592/982/66 591/974/66 +f 586/976/71 588/981/71 587/977/71 +f 587/977/66 593/990/66 594/979/66 +f 586/976/67 595/1072/67 596/980/67 +f 596/980/71 595/1072/71 591/974/71 +f 595/983/71 594/1073/71 590/984/71 +f 593/986/71 596/1074/71 592/987/71 +f 590/989/71 594/979/71 593/990/71 +f 588/981/69 596/1074/69 593/986/69 +f 585/978/68 594/1073/68 595/983/68 +f 583/991/68 589/988/68 592/987/68 +f 582/993/69 591/985/69 590/984/69 +f 396/727/70 408/731/70 552/995/70 +f 567/996/66 408/1000/66 396/997/66 +f 567/996/66 568/1003/66 407/999/66 +f 566/1001/66 565/998/66 396/997/66 +f 395/1002/66 407/999/66 568/1003/66 +f 584/1004/71 582/1010/71 393/1005/71 +f 583/1007/71 407/1011/71 395/1008/71 +f 582/1010/71 581/1009/71 395/1008/71 +f 583/1007/71 584/1004/71 405/1006/71 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 7a6d5f244..2bcda4f58 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -44,6 +44,7 @@ "block.storageClose": {"category": "block", "sounds": [{"name": "block/storageClose", "stream": false}]}, "block.openC": {"category": "block", "sounds": ["block/openC1", "block/openC2", "block/openCSqueaky"]}, "block.closeC": {"category": "block", "sounds": ["block/closeC1", "block/closeC2", "block/closeC3"]}, + "block.warnOverspeed": {"category": "block", "sounds": [{"name": "block/warnOverspeed", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/warnOverspeed.ogg b/src/main/resources/assets/hbm/sounds/block/warnOverspeed.ogg new file mode 100644 index 000000000..8d99789bc Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/warnOverspeed.ogg differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png index 7515fb457..258a60867 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png index 364922ead..1b6fdcb1a 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png index d9aa43f6d..a6d884bee 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png index 197597120..9ce5b3466 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png index 62520968b..d89bd1753 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png index 95f1df83f..ed3dabe63 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png index c4b7ac1e6..011c1e47d 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_oilburner.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_oilburner.png new file mode 100644 index 000000000..38ca42375 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_oilburner.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_axe.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_axe.png new file mode 100644 index 000000000..bbf282611 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_axe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_boots.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_boots.png new file mode 100644 index 000000000..ce04dcfc1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_boots.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_helmet.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_helmet.png new file mode 100644 index 000000000..adb5d5f4c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_hoe.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_hoe.png new file mode 100644 index 000000000..6acbaa5c8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_hoe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_legs.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_legs.png new file mode 100644 index 000000000..7b68c6e4a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_legs.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_pickaxe.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_pickaxe.png new file mode 100644 index 000000000..612c74b1c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_pickaxe.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_plate.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_plate.png new file mode 100644 index 000000000..8c55608f3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_plate.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_shovel.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_shovel.png new file mode 100644 index 000000000..0d813181a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_shovel.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ferrouranium_sword.png b/src/main/resources/assets/hbm/textures/items/ferrouranium_sword.png new file mode 100644 index 000000000..b8f7a981b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ferrouranium_sword.png differ diff --git a/src/main/resources/assets/hbm/textures/items/flask_empty.png b/src/main/resources/assets/hbm/textures/items/flask_empty.png new file mode 100644 index 000000000..6a2fffd51 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/flask_empty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/flask_radpot.png b/src/main/resources/assets/hbm/textures/items/flask_radpot.png new file mode 100644 index 000000000..922c827ab Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/flask_radpot.png differ diff --git a/src/main/resources/assets/hbm/textures/items/flask_shield.png b/src/main/resources/assets/hbm/textures/items/flask_shield.png new file mode 100644 index 000000000..9095264b2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/flask_shield.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gear_large.png b/src/main/resources/assets/hbm/textures/items/gear_large.png new file mode 100644 index 000000000..eb9bee8d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gear_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_ferrouranium.png b/src/main/resources/assets/hbm/textures/items/ingot_ferrouranium.png index 5af036389..b9c35553e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_ferrouranium.png and b/src/main/resources/assets/hbm/textures/items/ingot_ferrouranium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/solid_fuel_bf.png b/src/main/resources/assets/hbm/textures/items/solid_fuel_bf.png new file mode 100644 index 000000000..09400c49c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/solid_fuel_bf.png differ diff --git a/src/main/resources/assets/hbm/textures/items/solid_fuel_presto_bf.png b/src/main/resources/assets/hbm/textures/items/solid_fuel_presto_bf.png new file mode 100644 index 000000000..1774ba366 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/solid_fuel_presto_bf.png differ diff --git a/src/main/resources/assets/hbm/textures/items/solid_fuel_presto_triplet_bf.png b/src/main/resources/assets/hbm/textures/items/solid_fuel_presto_triplet_bf.png new file mode 100644 index 000000000..bca010521 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/solid_fuel_presto_triplet_bf.png differ diff --git a/src/main/resources/assets/hbm/textures/misc/overlay_misc.png b/src/main/resources/assets/hbm/textures/misc/overlay_misc.png index f0c03e6d8..60e17b9a0 100644 Binary files a/src/main/resources/assets/hbm/textures/misc/overlay_misc.png and b/src/main/resources/assets/hbm/textures/misc/overlay_misc.png differ diff --git a/src/main/resources/assets/hbm/textures/models/horse/horse_template.png b/src/main/resources/assets/hbm/textures/models/horse/horse_template.png new file mode 100644 index 000000000..520b0b9dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/horse/horse_template.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/oilburner.png b/src/main/resources/assets/hbm/textures/models/machines/oilburner.png index f962c0804..fb2c6a386 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/oilburner.png and b/src/main/resources/assets/hbm/textures/models/machines/oilburner.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/stirling.png b/src/main/resources/assets/hbm/textures/models/machines/stirling.png new file mode 100644 index 000000000..980578e5b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/stirling.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index d16d92149..695d48134 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,11 +3,11 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4291", + "version":"1.0.27_X4312", "mcversion": "1.7.10", "url": "", "updateUrl": "", - "credits": "HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms), Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting), UFFR (fork with all sorts of features), Pu-238 (Tom impact effects), Bismarck (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines), Vær (fibrosis, gas centrifuges), Adam29 (liquid petroleum, ethanol), Pashtet (russian localization), Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), impbk2002 (project settings), OvermindDL1 (project settings), TehTemmie (reacher radiation function)", + "credits": "HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms), Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting), UFFR (fork with all sorts of features), Pu-238 (Tom impact effects), Bismarck (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines, weapons), Vær (fibrosis, gas centrifuges, ZIRNOX, CP-1 parts, starter guide), Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), impbk2002 (project settings), OvermindDL1 (project settings), TehTemmie (reacher radiation function), Toshayo (improved satellite loot system), Silly541 (config for safe ME drives), Voxelstice (OpenComputers integration), Pvndols (thorium fuel recipe)", "logoFile": "", "screenshots": [], "dependencies": []