From cd12b9c86ef85b08df8d4be7e07a2c34c1373e37 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 4 Dec 2022 18:54:29 +0100 Subject: [PATCH] finished engine, fluid fixes, more .44 models, configs --- .../java/api/hbm/fluid/IFluidConnector.java | 2 +- src/main/java/api/hbm/fluid/PipeNet.java | 4 + src/main/java/com/hbm/blocks/ModBlocks.java | 9 +- .../machine/MachineCombustionEngine.java | 54 + .../hbm/blocks/machine/rbmk/RBMKHeatex.java | 4 +- src/main/java/com/hbm/config/WorldConfig.java | 4 + .../container/ContainerCombustionEngine.java | 94 + .../inventory/gui/GUICombustionEngine.java | 137 + .../com/hbm/inventory/gui/GUITurretBase.java | 6 +- .../hbm/inventory/gui/GuiInfoContainer.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 37 + .../inventory/recipes/anvil/AnvilRecipes.java | 8 + src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/machine/ItemPistons.java | 67 + src/main/java/com/hbm/lib/HbmWorldGen.java | 4 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 10 +- .../java/com/hbm/main/CraftingManager.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 12 + .../item/weapon/ItemRenderWeaponNovac.java | 20 +- .../tileentity/RenderCombustionEngine.java | 81 + .../java/com/hbm/tileentity/TileMappings.java | 2 + .../TileEntityMachineCombustionEngine.java | 306 ++ .../TileEntityMachineSeleniumEngine.java | 10 +- .../tileentity/machine/TileEntitySawmill.java | 16 +- .../oil/TileEntityMachineLiquefactor.java | 2 +- .../machine/storage/TileEntityBarrel.java | 63 +- .../storage/TileEntityMachineBAT9000.java | 48 +- .../storage/TileEntityMachineFluidTank.java | 6 +- .../storage/TileEntityMachineOrbus.java | 49 +- .../turret/TileEntityTurretFritz.java | 56 +- src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../hbm/models/weapons/novac_scoped.obj | 3975 +++++++++++++++++ .../gui/generators/gui_combustion.png | Bin 0 -> 4810 bytes .../assets/hbm/textures/items/piston_set.png | Bin 0 -> 319 bytes .../hbm/textures/items/piston_set_desh.png | Bin 0 -> 308 bytes .../hbm/textures/items/piston_set_dura.png | Bin 0 -> 332 bytes .../textures/items/piston_set_starmetal.png | Bin 0 -> 326 bytes .../hbm/textures/items/piston_set_steel.png | Bin 0 -> 319 bytes .../models/machines/combustion_engine.png | Bin 2346 -> 4273 bytes .../hbm/textures/models/weapons/blackjack.png | Bin 0 -> 4570 bytes .../hbm/textures/models/weapons/lent_gun.png | Bin 0 -> 4915 bytes .../hbm/textures/models/weapons/lil_pip.png | Bin 0 -> 4498 bytes .../textures/models/weapons/novac_scope.png | Bin 0 -> 3022 bytes .../hbm/textures/models/weapons/red_key.png | Bin 0 -> 5624 bytes src/main/resources/mcmod.info | 2 +- 47 files changed, 4988 insertions(+), 121 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java create mode 100644 src/main/java/com/hbm/items/machine/ItemPistons.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderCombustionEngine.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java create mode 100644 src/main/resources/assets/hbm/models/weapons/novac_scoped.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/generators/gui_combustion.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_set.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_set_desh.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_set_dura.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_set_starmetal.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_set_steel.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/blackjack.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lent_gun.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/novac_scope.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/red_key.png diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index f5b728959..634412cbf 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -87,5 +87,5 @@ public interface IFluidConnector { } } - public static final boolean particleDebug = true; + public static final boolean particleDebug = false; } diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 2a2c6bf78..31ef45505 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -91,6 +91,10 @@ public class PipeNet implements IPipeNet { return fill; List subList = new ArrayList(subscribers); + return fairTransfer(subList, type, fill); + } + + public static long fairTransfer(List subList, FluidType type, long fill) { List weight = new ArrayList(); long totalReq = 0; diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4e6c5f66a..8e831c82f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -929,6 +929,7 @@ public class ModBlocks { public static Block machine_diesel; public static final int guiID_machine_diesel = 31; + public static Block machine_combustion_engine; public static Block machine_shredder; public static final int guiID_machine_shredder = 34; @@ -1938,6 +1939,7 @@ public class ModBlocks { machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); machine_diesel = new MachineDiesel(Material.iron).setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_shredder_large = new MachineShredderLarge(Material.iron).setBlockName("machine_shredder_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":code"); @@ -2177,7 +2179,7 @@ public class ModBlocks { rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader"); rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet"); rbmk_steam_outlet = new RBMKOutlet(Material.iron).setBlockName("rbmk_steam_outlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_outlet"); - rbmk_heatex = new RBMKHeatex(Material.iron).setBlockName("rbmk_heatex").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_heatex"); + rbmk_heatex = new RBMKHeatex(Material.iron).setBlockName("rbmk_heatex").setCreativeTab(null).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_heatex"); pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris"); pribris_burning = new RBMKDebrisBurning().setBlockName("pribris_burning").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_burning"); pribris_radiating = new RBMKDebrisRadiating().setBlockName("pribris_radiating").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_radiating"); @@ -3073,8 +3075,9 @@ public class ModBlocks { GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); - GameRegistry.registerBlock(machine_diesel, ItemBlockBase.class, machine_diesel.getUnlocalizedName()); - GameRegistry.registerBlock(machine_selenium, ItemBlockBase.class, machine_selenium.getUnlocalizedName()); + register(machine_diesel); + register(machine_selenium); + register(machine_combustion_engine); GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); GameRegistry.registerBlock(reactor_research, reactor_research.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java b/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java new file mode 100644 index 000000000..d1ce8604b --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCombustionEngine.java @@ -0,0 +1,54 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCombustionEngine extends BlockDummyable { + + public MachineCombustionEngine() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) + return new TileEntityMachineCombustionEngine(); + if(hasExtra(meta)) + return new TileEntityProxyCombo().power().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 3, 2}; + } + + @Override + public int getOffset() { + return 0; + } + + @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); + } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - rot.offsetX, y, z - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX - rot.offsetX, y, z - dir.offsetZ - rot.offsetZ); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java index 653d1dccc..af1e1eaee 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKHeatex.java @@ -1,7 +1,5 @@ package com.hbm.blocks.machine.rbmk; -import com.hbm.tileentity.machine.rbmk.TileEntityHeatex; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; @@ -15,6 +13,6 @@ public class RBMKHeatex extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityHeatex(); + return null; } } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 4aed781be..305bc8968 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -29,6 +29,8 @@ public class WorldConfig { public static int gasbubbleSpawn = 4; public static int explosivebubbleSpawn = 8; public static int cobaltSpawn = 2; + public static int oilSpawn = 25; + public static int bedrockOilSpawn = 50; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -117,6 +119,8 @@ public class WorldConfig { cobaltSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cobaltSpawnRate", "Amount of cobalt ore veins per chunk", 2); explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 8); alexandriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.20_alexandriteSpawnRate", "Spawns an alexandrite vein every nTH chunk", 100); + oilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.21_oilSpawnRate", "Spawns an oil bubble every nTH chunk", 25); + bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 50); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java b/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java new file mode 100644 index 000000000..b1f0c6522 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCombustionEngine.java @@ -0,0 +1,94 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; + +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.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCombustionEngine extends Container { + + private TileEntityMachineCombustionEngine engine; + + public ContainerCombustionEngine(InventoryPlayer invPlayer, TileEntityMachineCombustionEngine tedf) { + this.engine = tedf; + this.engine.openInventory(); + + this.addSlotToContainer(new Slot(tedf, 0, 17, 17)); + this.addSlotToContainer(new SlotMachineOutput(tedf, 1, 17, 53)); + this.addSlotToContainer(new Slot(tedf, 2, 88, 71)); + this.addSlotToContainer(new Slot(tedf, 3, 143, 71)); + this.addSlotToContainer(new Slot(tedf, 4, 35, 71)); + + 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, 121 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 179)); + } + } + + @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 <= 4) { + if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 4, 5, false)) { + return null; + } + } else if(var3.getItem() == ModItems.piston_set) { + 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 engine.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.engine.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java new file mode 100644 index 000000000..fe85c7fe6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java @@ -0,0 +1,137 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCombustionEngine; +import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPistons.EnumPistonType; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityMachineCombustionEngine; +import com.hbm.util.EnumUtil; + +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.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class GUICombustionEngine extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_combustion.png"); + private TileEntityMachineCombustionEngine engine; + private int setting = 0; + private boolean isMouseLocked = false; + + public GUICombustionEngine(InventoryPlayer invPlayer, TileEntityMachineCombustionEngine tedf) { + super(new ContainerCombustionEngine(invPlayer, tedf)); + engine = tedf; + this.setting = engine.setting; + + this.xSize = 176; + this.ySize = 203; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(!isMouseLocked) { + this.drawElectricityInfo(this, x, y, guiLeft + 143, guiTop + 17, 16, 52, engine.getPower(), engine.maxPower); + engine.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 17, 16, 52); + } + + if(isMouseLocked || (guiLeft + 80 <= x && guiLeft + 80 + 34 > x && guiTop + 38 < y && guiTop + 38 + 8 >= y)) { + drawCreativeTabHoveringText(((setting * 2) / 10D) + "mB/t", MathHelper.clamp_int(x, guiLeft + 80, guiLeft + 114), MathHelper.clamp_int(y, guiTop + 38, guiTop + 46)); + } + + if(engine.slots[2] != null && engine.slots[2].getItem() == ModItems.piston_set) { + double power = 0; + if(engine.tank.getTankType().hasTrait(FT_Combustible.class)) { + FT_Combustible trait = engine.tank.getTankType().getTrait(FT_Combustible.class); + int i = engine.slots[2].getItemDamage(); + EnumPistonType piston = EnumUtil.grabEnumSafely(EnumPistonType.class, i); + power = setting * 0.2 * trait.getCombustionEnergy() / 1_000D * piston.eff[trait.getGrade().ordinal()]; + } + String c = EnumChatFormatting.YELLOW + ""; + drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format("%,d", (int)(power)) + " HE/t", c + String.format("%,d", (int)(power * 20)) + " HE/s"); + } + + drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 13, 35, 15, x, y, "Ignition"); + + if(isMouseLocked) { + + int setting = (x - guiLeft - 81) * 30 / 32; + setting = MathHelper.clamp_int(setting, 0, 30); + + if(this.setting != setting) { + this.setting = setting; + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("setting", setting); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, engine.xCoord, engine.yCoord, engine.zCoord)); + } + } + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 13 < y && guiTop + 13 + 14 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("turnOn", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, engine.xCoord, engine.yCoord, engine.zCoord)); + } + + if(guiLeft + 79 <= x && guiLeft + 79 + 36 > x && guiTop + 38 < y && guiTop + 38 + 8 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + isMouseLocked = true; + } + } + + @Override + protected void mouseMovedOrUp(int x, int y, int i) { + super.mouseMovedOrUp(x, y, i); + + if(isMouseLocked) { + + if(i == 0 || i == 1) { + isMouseLocked = false; + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(engine.slots[2] != null && engine.slots[2].getItem() == ModItems.piston_set) { + int i = engine.slots[2].getItemDamage(); + drawTexturedModalRect(guiLeft + 80, guiTop + 51, 176, 52 + i * 12, 25, 12); + } + + drawTexturedModalRect(guiLeft + 79 + (setting * 32 / 30), guiTop + 38, 192, 15, 4, 8); + + if(engine.isOn) { + drawTexturedModalRect(guiLeft + 79, guiTop + 13, 192, 0, 35, 15); + } + + int i = (int) (engine.power * 53 / engine.maxPower); + drawTexturedModalRect(guiLeft + 143, guiTop + 69 - i, 176, 52 - i, 16, i); + + engine.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java index c54616f12..7624ac28a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java @@ -89,9 +89,13 @@ public abstract class GUITurretBase extends GuiInfoContainer { if(list.size() < 10) { lines.add(list.toArray()); - } else { + } else if(list.size() < 24) { lines.add(list.subList(0, list.size() / 2).toArray()); lines.add(list.subList(list.size() / 2, list.size()).toArray()); + } else { + lines.add(list.subList(0, list.size() / 3).toArray()); + lines.add(list.subList(list.size() / 3, list.size() / 3 * 2).toArray()); + lines.add(list.subList(list.size() / 3 * 2, list.size()).toArray()); } lines.add(new Object[] {I18nUtil.resolveKey(selected.getDisplayName())}); diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 46836a484..4c041eaea 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -33,7 +33,7 @@ public abstract class GuiInfoContainer extends GuiContainer { gui.drawInfo(new String[] { BobMathUtil.getShortNumber(power) + "/" + BobMathUtil.getShortNumber(maxPower) + "HE" }, mouseX, mouseY); } - public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, String[] text) { drawCustomInfoStat(mouseX, mouseY, x, y, width, height, tPosX, tPosY, Arrays.asList(text)); } + public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, String... text) { drawCustomInfoStat(mouseX, mouseY, x, y, width, height, tPosX, tPosY, Arrays.asList(text)); } public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, List text) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 9f1a8bdea..a036fbb4c 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -28,6 +28,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; +import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.Loader; @@ -462,6 +463,42 @@ public class AssemblerRecipes { new ComparableStack(ModItems.circuit_red_copper, 8), new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] { + new OreDictStack(STEEL.plate(), 12), + new OreDictStack(IRON.plate(), 8), + new OreDictStack(CU.ingot(), 8), + new ComparableStack(ModItems.generator_steel, 1), + new ComparableStack(ModItems.tank_steel, 2), + new ComparableStack(ModItems.bolt_tungsten, 8), + new ComparableStack(ModItems.wire_red_copper, 24), + new ComparableStack(ModItems.circuit_copper, 1) + }, 300); + makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.STEEL.ordinal()), new AStack[] { + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(CU.plate(), 4), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModItems.bolt_tungsten, 16) + }, 200); + makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DURA.ordinal()), new AStack[] { + new OreDictStack(DURA.ingot(), 24), + new OreDictStack(TI.plate(), 8), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModItems.bolt_dura_steel, 16) + }, 200); + makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.DESH.ordinal()), new AStack[] { + new OreDictStack(DESH.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 12), + new OreDictStack(CU.plate(), 24), + new OreDictStack(W.ingot(), 16), + new ComparableStack(ModItems.bolt_compound, 16) + }, 200); + makeRecipe(new ComparableStack(ModItems.piston_set, 1, EnumPistonType.STARMETAL.ordinal()), new AStack[] { + new OreDictStack(STAR.ingot(), 24), + new OreDictStack(RUBBER.ingot(), 16), + new OreDictStack(BIGMT.plate(), 24), + new OreDictStack(NB.ingot(), 16), + new ComparableStack(ModItems.bolt_compound, 16) + }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { new OreDictStack(STEEL.plate(), 12), new OreDictStack(RUBBER.ingot(), 4), 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 8923bd65d..d652acaa9 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -266,6 +266,14 @@ public class AnvilRecipes { new ComparableStack(ModItems.circuit_copper, 1) }, new AnvilOutput(new ItemStack(ModBlocks.heater_electric))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(RUBBER.ingot(), 4), + new OreDictStack(CU.ingot(), 16), + new OreDictStack(STEEL.plate(), 16), + new ComparableStack(ModItems.pipes_steel, 1), + }, new AnvilOutput(new ItemStack(ModBlocks.heater_heatex))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.stonebrick, 16), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e95dc80e1..c8048258a 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -788,6 +788,7 @@ public class ModItems { public static Item pellet_advanced; public static Item piston_selenium; + public static Item piston_set; //public static Item crystal_energy; //public static Item pellet_coolant; @@ -3244,6 +3245,7 @@ public class ModItems { tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); + piston_set = new ItemPistons().setUnlocalizedName("piston_set").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); //crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); //pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); @@ -6473,6 +6475,7 @@ public class ModItems { //Engine Pieces GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); + GameRegistry.registerItem(piston_set, piston_set.getUnlocalizedName()); //Cells GameRegistry.registerItem(cell_empty, cell_empty.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemPistons.java b/src/main/java/com/hbm/items/machine/ItemPistons.java new file mode 100644 index 000000000..576371e0f --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemPistons.java @@ -0,0 +1,67 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; + +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.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; + +public class ItemPistons extends ItemEnumMulti { + + public ItemPistons() { + super(EnumPistonType.class, true, true); + } + + @Override + @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 String getUnlocalizedName(ItemStack stack) { + Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + EnumPistonType type = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + + + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + for(int i = 0; i < type.eff.length; i++) { + list.add(EnumChatFormatting.YELLOW + "-" + FuelGrade.values()[i].getGrade() + ": " + EnumChatFormatting.RED + "" + (int)(type.eff[i] * 100) + "%"); + } + } + + public static enum EnumPistonType { + STEEL (1.00, 0.75, 0.25, 0.00), + DURA (0.50, 1.00, 0.90, 0.50), + DESH (0.00, 0.50, 1.00, 0.75), + STARMETAL (0.50, 0.75, 1.00, 0.90); + + public double[] eff; + + private EnumPistonType(double... eff) { + this.eff = new double[Math.min(FuelGrade.values().length, eff.length)]; + for(int i = 0; i < eff.length; i++) { + this.eff[i] = eff[i]; + } + } + } +} diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 612f93a5f..57321c4f5 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -577,7 +577,7 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(rand.nextInt(25) == 0) { + if(WorldConfig.oilSpawn > 0 && rand.nextInt(WorldConfig.oilSpawn) == 0) { int randPosX = i + rand.nextInt(16); int randPosY = rand.nextInt(25); int randPosZ = j + rand.nextInt(16); @@ -585,7 +585,7 @@ public class HbmWorldGen implements IWorldGenerator { OilBubble.spawnOil(world, randPosX, randPosY, randPosZ, 7 + rand.nextInt(9)); } - if(rand.nextInt(50) == 0) { + if(WorldConfig.bedrockOilSpawn > 0 && rand.nextInt(WorldConfig.bedrockOilSpawn) == 0) { int randPosX = i + rand.nextInt(16); int randPosZ = j + rand.nextInt(16); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7b6bff4b0..70af3ad8e 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 (4431)"; + public static final String VERSION = "1.0.27 BETA (4438)"; //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 9fcf66d4d..06c83ca4c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -258,6 +258,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucible.class, new RenderCrucible()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeatBoiler.class, new RenderBoiler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySteamEngine.class, new RenderSteamEngine()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCombustionEngine.class, new RenderCombustionEngine()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); @@ -447,11 +448,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_defabricator, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_dash, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_twigun, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderOverkill()); - //MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nopip, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_blackjack, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderOverkill()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderOverkill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_dampfmaschine, new ItemRenderBullshit()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700, ResourceManager.rem700_tex)); @@ -494,6 +490,10 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_glass_cannon, new ItemRenderWeaponGlass()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderWeaponChemthrower()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nopip, new ItemRenderWeaponNovac()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_pip, new ItemRenderWeaponNovac()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_blackjack, new ItemRenderWeaponNovac()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderWeaponNovac()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index bcb5e01ee..1af352818 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -838,7 +838,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_loader, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.plate(), 'C', CU.ingot(), 'B', ModItems.tank_steel }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_inlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', IRON.plate(), 'B', ModItems.tank_steel }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); - addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); + //addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk, 8), new Object[] { "R", 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk_smooth, 1), new Object[] { "R", 'R', ModBlocks.deco_rbmk }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 58dd5a42f..02b8fbf83 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -124,6 +124,9 @@ public class ResourceManager { public static final IModelCustom selenium_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_rotor.obj")); public static final IModelCustom selenium_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/selenium_engine_piston.obj")); + //Combustion Engine + public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asDisplayList(); + //Press public static final IModelCustom press_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_body.obj")); public static final IModelCustom press_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_head.obj")); @@ -456,6 +459,9 @@ public class ResourceManager { public static final ResourceLocation selenium_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_piston.png"); public static final ResourceLocation selenium_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/selenium_engine_rotor.png"); + //Combustion Engine + public static final ResourceLocation combustion_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/combustion_engine.png"); + //Press public static final ResourceLocation press_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_body.png"); public static final ResourceLocation press_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_head.png"); @@ -709,6 +715,7 @@ public class ResourceManager { public static final IModelCustom bio_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/bio_revolver.obj")); public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asDisplayList(); public static final IModelCustom novac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac.obj")); + public static final IModelCustom novac_scoped = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/novac_scoped.obj")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -789,6 +796,11 @@ public class ResourceManager { public static final ResourceLocation bio_revolver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/bio_revolver.png"); public static final ResourceLocation chemthrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/chemthrower.png"); public static final ResourceLocation novac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/novac.png"); + public static final ResourceLocation novac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/novac_scope.png"); + public static final ResourceLocation lil_pip_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lil_pip.png"); + public static final ResourceLocation blackjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/blackjack.png"); + public static final ResourceLocation lent_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lent_gun.png"); + public static final ResourceLocation red_key_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/red_key.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java index 5b8744f0f..0df9e0b12 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponNovac.java @@ -2,6 +2,7 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; @@ -36,7 +37,12 @@ public class ItemRenderWeaponNovac implements IItemRenderer { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_tex); + + if(item.getItem() == ModItems.gun_revolver_nopip) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_tex); + if(item.getItem() == ModItems.gun_revolver_pip) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lil_pip_tex); + if(item.getItem() == ModItems.gun_revolver_blackjack) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.blackjack_tex); + if(item.getItem() == ModItems.gun_revolver_silver) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lent_gun_tex); + if(item.getItem() == ModItems.gun_revolver_red) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.red_key_tex); switch(type) { @@ -46,7 +52,7 @@ public class ItemRenderWeaponNovac implements IItemRenderer { GL11.glRotated(25, 0, 0, 1); GL11.glRotated(80, 0, 1, 0); GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.25F, 0.0F, -1.25F); + GL11.glTranslatef(-0.0F, 0.0F, -1.25F); GL11.glScaled(s0, s0, s0); break; @@ -87,7 +93,15 @@ public class ItemRenderWeaponNovac implements IItemRenderer { } GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.novac.renderAll(); + if(item.getItem() == ModItems.gun_revolver_pip) { + ResourceManager.novac_scoped.renderPart("Gun"); + ResourceManager.novac_scoped.renderPart("Hammer"); + ResourceManager.novac_scoped.renderPart("Cylinder"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.novac_scope_tex); + ResourceManager.novac_scoped.renderPart("Scope"); + } else { + ResourceManager.novac.renderAll(); + } GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCombustionEngine.java b/src/main/java/com/hbm/render/tileentity/RenderCombustionEngine.java new file mode 100644 index 000000000..53197c65f --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCombustionEngine.java @@ -0,0 +1,81 @@ +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.TileEntityMachineCombustionEngine; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderCombustionEngine 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(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, 3); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.combustion_engine_tex); + ResourceManager.combustion_engine.renderPart("Engine"); + + TileEntityMachineCombustionEngine engine = (TileEntityMachineCombustionEngine) tile; + + int color = engine.tank.getTankType().getContainerColor(); + if(color != 0xffffff) { + float r = ((color & 0xff0000) >> 16) / 256F; + float g = ((color & 0x00ff00) >> 8) / 256F; + float b = ((color & 0x0000ff) >> 0) / 256F; + GL11.glColor4f(r, g, b, 1F); + } + ResourceManager.combustion_engine.renderPart("Canister"); + GL11.glColor4f(1F, 1F, 1F, 1F); + + GL11.glTranslated(1, 0, -2.6875); + GL11.glRotated(engine.prevDoorAngle + (engine.doorAngle - engine.prevDoorAngle) * interp, 0, -1, 0); + GL11.glTranslated(-1, 0, 2.6875); + ResourceManager.combustion_engine.renderPart("Hatch"); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_combustion_engine); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glTranslated(0, 0, 2.75); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.combustion_engine_tex); + ResourceManager.combustion_engine.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ee8fc99d6..75e4249f7 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -271,6 +271,8 @@ public class TileMappings { put(TileEntityMachineLargeTurbine.class, "tileentity_industrial_turbine"); put(TileEntityChungus.class, "tileentity_chungus"); + put(TileEntityMachineCombustionEngine.class, "tileentity_combustion_engine"); + put(TileEntityMachineAssembler.class, "tileentity_assembly_machine"); put(TileEntityMachineAssemfac.class, "tileentity_assemfac"); put(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java new file mode 100644 index 000000000..592854660 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -0,0 +1,306 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerCombustionEngine; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.inventory.gui.GUICombustionEngine; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPistons.EnumPistonType; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.EnumUtil; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardReceiver; +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.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineCombustionEngine extends TileEntityMachineBase implements IEnergyGenerator, IFluidStandardReceiver, IControlReceiver, IGUIProvider { + + public boolean isOn = false; + public static long maxPower = 2_500_000; + public long power; + private int playersUsing = 0; + public int setting = 0; + public boolean wasOn = false; + + public float doorAngle = 0; + public float prevDoorAngle = 0; + + private AudioWrapper audio; + + public FluidTank tank; + public int tenth = 0; + + public TileEntityMachineCombustionEngine() { + super(5); + this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0); + } + + @Override + public String getName() { + return "container.combustionEngine"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.tank.loadTank(0, 1, slots); + if(this.tank.setType(4, slots)) { + this.tenth = 0; + } + + wasOn = false; + + int fill = tank.getFill() * 10 + tenth; + if(isOn && setting > 0 && slots[2] != null && slots[2].getItem() == ModItems.piston_set && fill > 0 && tank.getTankType().hasTrait(FT_Combustible.class)) { + EnumPistonType piston = EnumUtil.grabEnumSafely(EnumPistonType.class, slots[2].getItemDamage()); + FT_Combustible trait = tank.getTankType().getTrait(FT_Combustible.class); + + double eff = piston.eff[trait.getGrade().ordinal()]; + + if(eff > 0) { + int speed = setting * 2; + + int toBurn = Math.min(fill, speed); + this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; + fill -= toBurn; + + if(toBurn > 0) { + wasOn = true; + } + + tank.setFill(fill / 10); + tenth = fill % 10; + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", Math.min(power, maxPower)); + + this.power = Library.chargeItemsFromTE(slots, 3, power, power); + + for(DirPos pos : getConPos()) { + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(power > maxPower) + power = maxPower; + + data.setInteger("playersUsing", playersUsing); + data.setInteger("setting", setting); + data.setBoolean("isOn", isOn); + data.setBoolean("wasOn", wasOn); + tank.writeToNBT(data, "tank"); + this.networkPack(data, 50); + + } else { + this.prevDoorAngle = this.doorAngle; + float swingSpeed = (doorAngle / 10F) + 3; + + if(this.playersUsing > 0) { + this.doorAngle += swingSpeed; + } else { + this.doorAngle -= swingSpeed; + } + + this.doorAngle = MathHelper.clamp_float(this.doorAngle, 0F, 135F); + + if(wasOn) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + private DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()) + }; + } + + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 2.0F, 1.0F); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.DOWN; + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.DOWN; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.playersUsing = nbt.getInteger("playersUsing"); + this.setting = nbt.getInteger("setting"); + this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); + this.wasOn = nbt.getBoolean("wasOn"); + this.tank.readFromNBT(nbt, "tank"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.setting = nbt.getInteger("setting"); + this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); + this.tank.readFromNBT(nbt, "tank"); + this.tenth = nbt.getInteger("tenth"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("setting", setting); + nbt.setLong("power", power); + nbt.setBoolean("isOn", isOn); + tank.writeToNBT(nbt, "tank"); + nbt.setInteger("tenth", tenth); + } + + @Override + public void openInventory() { + if(!worldObj.isRemote) this.playersUsing++; + } + + @Override + public void closeInventory() { + if(!worldObj.isRemote) this.playersUsing--; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCombustionEngine(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICombustionEngine(player.inventory, this); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 2, + zCoord + 4 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 25; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("turnOn")) this.isOn = !this.isOn; + if(data.hasKey("setting")) this.setting = data.getInteger("setting"); + + this.markChanged(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index 9252d382a..40fd34e0c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -45,14 +45,14 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem public static long maxPower = 250000; public static int fluidCap = 16000; - public static double pistonExp = 1.15D; + public static double pistonExp = 1.0D; public static boolean shutUp = false; public static HashMap fuelEfficiency = new HashMap(); static { - fuelEfficiency.put(FuelGrade.LOW, 1.0D); - fuelEfficiency.put(FuelGrade.MEDIUM, 0.75D); - fuelEfficiency.put(FuelGrade.HIGH, 0.5D); - fuelEfficiency.put(FuelGrade.AERO, 0.05D); + fuelEfficiency.put(FuelGrade.LOW, 0.75D); + fuelEfficiency.put(FuelGrade.MEDIUM, 0.5D); + fuelEfficiency.put(FuelGrade.HIGH, 0.25D); + fuelEfficiency.put(FuelGrade.AERO, 0.00D); } private static final int[] slots_top = new int[] { 0 }; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java index fc6dd4727..a82b519f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java @@ -112,7 +112,7 @@ public class TileEntitySawmill extends TileEntityMachineBase { ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); cog.motionX = rot.offsetX; - cog.motionY = 1; + cog.motionY = 1 + (heat - 100) * 0.0001D; cog.motionZ = rot.offsetZ; worldObj.spawnEntityInWorld(cog); @@ -179,6 +179,20 @@ public class TileEntitySawmill extends TileEntityMachineBase { } } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.hasBlade = nbt.getBoolean("hasBlade"); + this.progress = nbt.getInteger("progress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("hasBlade", hasBlade); + nbt.setInteger("progress", progress); + } + protected void tryPullHeat() { TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index e8ee4edae..a93e5f80a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -60,7 +60,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); this.processTime = processTimeBase - (processTimeBase / 4) * speed; - this.usage = usageBase - (usageBase / 4) * speed; + this.usage = usageBase - (usageBase / 4) * speed / power; if(this.canProcess()) this.process(); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 2f0d24f61..f516c44fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -1,7 +1,9 @@ package com.hbm.tileentity.machine.storage; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; @@ -15,12 +17,19 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.fluid.IFluidConductor; +import api.hbm.fluid.IFluidConnector; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.fluid.IPipeNet; +import api.hbm.fluid.PipeNet; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IPersistentNBT { @@ -55,7 +64,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.unloadTank(4, 5, slots); tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - if(this.mode == 1 || this.mode == 2) { + /*if(this.mode == 1 || this.mode == 2) { this.sendFluidToAll(tank.getTankType(), this); } @@ -63,7 +72,9 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc this.subscribeToAllAround(tank.getTankType(), worldObj, xCoord, yCoord, zCoord); } else { this.unsubscribeToAllAround(tank.getTankType(), worldObj, xCoord, yCoord, zCoord); - } + }*/ + + tank.setFill(transmitFluidFairly(worldObj, tank.getTankType(), this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); age++; if(age >= 20) @@ -81,6 +92,54 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc this.networkPack(data, 50); } } + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) + }; + } + + protected static int transmitFluidFairly(World world, FluidType type, IFluidConnector that, int fill, boolean connect, boolean send, DirPos[] connections) { + + Set nets = new HashSet(); + Set consumers = new HashSet(); + + for(DirPos pos : connections) { + + TileEntity te = world.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + + if(te instanceof IFluidConductor) { + IFluidConductor con = (IFluidConductor) te; + if(con.getPipeNet(type) != null) { + nets.add(con.getPipeNet(type)); + con.getPipeNet(type).unsubscribe(that); + consumers.addAll(con.getPipeNet(type).getSubscribers()); + } + + //if it's just a consumer, buffer it as a subscriber + } else if(te instanceof IFluidConnector) { + consumers.add((IFluidConnector) te); + } + } + + if(fill > 0 && send) { + List con = new ArrayList(); + con.addAll(consumers); + fill = (int) PipeNet.fairTransfer(con, type, fill); + } + + //resubscribe to buffered nets, if necessary + if(connect) { + nets.forEach(x -> x.subscribe(that)); + } + + return fill; + } @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 955fe63b4..353573073 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -2,12 +2,11 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; public class TileEntityMachineBAT9000 extends TileEntityBarrel { @@ -28,29 +27,19 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10, true, true); } } - + @Override - public void subscribeToAllAround(FluidType type, World world, int x, int y, int z) { - this.trySubscribe(type, world, xCoord + 1, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(type, world, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(type, world, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(type, world, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - } - - @Override - public void unsubscribeToAllAround(FluidType type, World world, int x, int y, int z) { - this.tryUnsubscribe(type, world, xCoord + 1, yCoord, zCoord + 3); - this.tryUnsubscribe(type, world, xCoord - 1, yCoord, zCoord + 3); - this.tryUnsubscribe(type, world, xCoord + 1, yCoord, zCoord - 3); - this.tryUnsubscribe(type, world, xCoord - 1, yCoord, zCoord - 3); - this.tryUnsubscribe(type, world, xCoord + 3, yCoord, zCoord + 1); - this.tryUnsubscribe(type, world, xCoord - 3, yCoord, zCoord + 1); - this.tryUnsubscribe(type, world, xCoord + 3, yCoord, zCoord - 1); - this.tryUnsubscribe(type, world, xCoord - 3, yCoord, zCoord - 1); + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + 3, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord - 3, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord + 3, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 3, yCoord, zCoord - 1, Library.NEG_X) + }; } @Override @@ -65,17 +54,6 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type); } - public void sendFluidToAll(FluidType type, TileEntity te) { - sendFluid(type, worldObj, xCoord + 1, yCoord, zCoord + 3, Library.POS_Z); - sendFluid(type, worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - sendFluid(type, worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); - sendFluid(type, worldObj, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); - sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); - sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); - sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 38162e0f1..198615fc8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -51,7 +51,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements if(age >= 20) age = 0; - if(this.mode == 2 || this.mode == 3) { + /*if(this.mode == 2 || this.mode == 3) { for(DirPos pos : getConPos()) this.tryUnsubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); } if(this.mode == 0 || this.mode == 1) { @@ -59,7 +59,9 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements } if(this.mode == 1 || this.mode == 2) { for(DirPos pos : getConPos()) this.sendFluid(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } + }*/ + + tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank.getTankType(), this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); if((mode == 1 || mode == 2) && (age == 9 || age == 19)) fillFluidInit(tank.getTankType()); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java index 7fa054606..6ec98a454 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.storage; import com.hbm.blocks.BlockDummyable; import com.hbm.inventory.fluid.FluidType; +import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -38,47 +39,29 @@ public class TileEntityMachineOrbus extends TileEntityBarrel { } } - public void sendFluidToAll(FluidType type, TileEntity te) { + protected DirPos[] conPos; + + @Override + protected DirPos[] getConPos() { + + if(conPos != null) + return conPos; + + conPos = new DirPos[8]; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); for(int i = -1; i < 6; i += 6) { ForgeDirection out = i == -1 ? ForgeDirection.DOWN : ForgeDirection.UP; - sendFluid(type, worldObj, xCoord, yCoord + i, zCoord, out); - sendFluid(type, worldObj, xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, out); - sendFluid(type, worldObj, xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, out); - sendFluid(type, worldObj, xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, out); + int index = i == -1 ? 0 : 1; + conPos[index + 0] = new DirPos(xCoord, yCoord + i, zCoord, out); + conPos[index + 1] = new DirPos(xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, out); + conPos[index + 2] = new DirPos(xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, out); + conPos[index + 3] = new DirPos(xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, out); } - } - - @Override - public void subscribeToAllAround(FluidType type, World world, int x, int y, int z) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - for(int i = -1; i < 6; i += 6) { - ForgeDirection out = i == -1 ? ForgeDirection.DOWN : ForgeDirection.UP; - this.trySubscribe(type, world, xCoord, yCoord + i, zCoord, out); - this.trySubscribe(type, world, xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, out); - this.trySubscribe(type, world, xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, out); - this.trySubscribe(type, world, xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, out); - } - } - - @Override - public void unsubscribeToAllAround(FluidType type, World world, int x, int y, int z) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - for(int i = -1; i < 7; i += 7) { - this.tryUnsubscribe(type, world, xCoord, yCoord + i, zCoord); - this.tryUnsubscribe(type, world, xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ); - this.tryUnsubscribe(type, world, xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ); - this.tryUnsubscribe(type, world, xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ); - } + return conPos; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index f571c4c03..f1fdca973 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -4,12 +4,16 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -50,9 +54,14 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl ammoStacks = new ArrayList(); - ammoStacks.add(new ItemStack(ModItems.fluid_icon, 1, Fluids.DIESEL.getID())); ammoStacks.add(new ItemStack(ModItems.ammo_fuel)); + for(FluidType type : Fluids.getInNiceOrder()) { + if(type.hasTrait(FT_Combustible.class) && type.hasTrait(FT_Liquid.class)) { + ammoStacks.add(new ItemStack(ModItems.fluid_icon, 1, type.getID())); + } + } + return ammoStacks; } @@ -89,17 +98,24 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl @Override public void updateFiringTick() { - if(this.tank.getTankType() == Fluids.DIESEL && this.tank.getFill() >= 10) { + if(this.tank.getTankType().hasTrait(FT_Flammable.class) && this.tank.getTankType().hasTrait(FT_Liquid.class) && this.tank.getFill() >= 2) { + FT_Flammable trait = this.tank.getTankType().getTrait(FT_Flammable.class); BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(BulletConfigSyncingUtil.FLA_NORMAL); - this.spawnBullet(conf); - this.tank.setFill(this.tank.getFill() - 10); + this.tank.setFill(this.tank.getFill() - 2); Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(conf)); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); + proj.overrideDamage = (float) (trait.getHeatEnergy() / 500_000F); + + proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, conf.velocity, conf.spread); + worldObj.spawnEntityInWorld(proj); + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.flamethrowerShoot", 2F, 1F + worldObj.rand.nextFloat() * 0.5F); NBTTagCompound data = new NBTTagCompound(); @@ -141,23 +157,23 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * 0, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * -1, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * -2, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * -2, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * 1, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 1, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 0, ForgeDirection.UNKNOWN); - this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, ForgeDirection.UNKNOWN); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * 0, ForgeDirection.SOUTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * -1, ForgeDirection.SOUTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * -2, ForgeDirection.WEST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * -2, ForgeDirection.WEST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * 1, ForgeDirection.EAST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 1, ForgeDirection.EAST); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 0, ForgeDirection.NORTH); + this.trySubscribe(worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, ForgeDirection.NORTH); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * 0, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * -1, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * -2, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * -2, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * 1, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 1, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 0, ForgeDirection.UNKNOWN); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, ForgeDirection.UNKNOWN); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * 0, ForgeDirection.SOUTH); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * -1 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * -1 + rot.offsetZ * -1, ForgeDirection.SOUTH); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * -2, ForgeDirection.WEST); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * -2, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * -2, ForgeDirection.WEST); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 0 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 0 + rot.offsetZ * 1, ForgeDirection.EAST); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 1 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 1, ForgeDirection.EAST); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 0, ForgeDirection.NORTH); + this.trySubscribe(tank.getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -1, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -1, ForgeDirection.NORTH); } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index bf95230f7..68989ec04 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -306,6 +306,7 @@ container.gasFlare=Abfackelturm container.generator=Atomreaktor container.hadron=Teilchenbeschleuniger container.heaterFirebox=Feuerbüchse +container.heaterHeatex=Wärmetauscher container.heaterOilburner=Brenner container.heaterOven=Heizofen container.iGenerator=Industrieller Generator @@ -2394,6 +2395,10 @@ item.pipes_steel.name=Stahlrohre item.pirfenidone.name=Pirfenidon item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.piston_selenium.name=Motorkolben +item.piston_set_desh.name=Ottomotorenkolben (Desh) +item.piston_set_dura.name=Ottomotorenkolben (Schnellarbeitsstahl) +item.piston_set_starmetal.name=Ottomotorenkolben (Sternmetall) +item.piston_set_steel.name=Ottomotorenkolben (Stahl) item.plan_c.name=Plan C item.plant_item.rope.name=Seil item.plant_item.tobacco.name=Tabak @@ -3647,6 +3652,7 @@ tile.machine_chungus.desc=Effizienz: 85%% tile.machine_coal_off.name=Verbrennungsgenerator tile.machine_coal_on.name=Verbrennungsgenerator tile.machine_combine_factory.name=CMB-Stahl Hochofen +tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor tile.machine_condenser.name=Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5a12faa80..12429e545 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -584,6 +584,7 @@ container.gasFlare=Flare Stack container.generator=Nuclear Reactor container.hadron=Particle Accelerator container.heaterFirebox=Firebox +container.heaterHeatex=Heat Exchanger container.heaterOilburner=Fluid Burner container.heaterOven=Heating Oven container.iGenerator=Industrial Generator @@ -2821,6 +2822,10 @@ item.pipes_steel.name=Steel Pipes item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. item.pirfenidone.name=Pirfenidone item.piston_selenium.name=Combustion Engine Piston +item.piston_set_desh.name=Desh Piston Set +item.piston_set_dura.name=High-Speed Steel Piston Set +item.piston_set_starmetal.name=Starmetal Piston Set +item.piston_set_steel.name=Steel Piston Set item.plan_c.name=Plan C item.plant_item.rope.name=Rope item.plant_item.tobacco.name=Tobacco @@ -4175,6 +4180,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_combine_factory.name=CMB Steel Furnace +tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_condenser.name=Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter diff --git a/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj b/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj new file mode 100644 index 000000000..376e474b8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/novac_scoped.obj @@ -0,0 +1,3975 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Scope +v 0.000000 1.477200 0.088723 +v 0.098039 1.333949 0.145326 +v 0.000000 1.333949 0.088723 +v 0.098039 1.477200 0.145326 +v 0.098039 1.333949 0.258532 +v 0.098039 1.477200 0.258532 +v 0.000000 1.333949 0.315135 +v 0.000000 1.477200 0.315135 +v -0.098039 1.333949 0.258532 +v -0.098039 1.477200 0.258532 +v -0.098039 1.333949 0.145326 +v -0.098039 1.477200 0.145326 +v -0.052355 1.290100 0.088723 +v -0.195606 1.192061 0.145326 +v -0.195606 1.290100 0.088723 +v -0.052355 1.192061 0.145326 +v -0.195606 1.192061 0.258532 +v -0.052355 1.192061 0.258532 +v -0.195606 1.290100 0.315135 +v -0.052355 1.290100 0.315135 +v -0.195606 1.388139 0.258532 +v -0.052355 1.388139 0.258532 +v -0.195606 1.388139 0.145326 +v -0.052355 1.388139 0.145326 +v 0.122250 1.167851 -0.880258 +v 0.172888 1.290101 -0.535252 +v 0.122250 1.167851 -0.535252 +v 0.122250 1.412351 -0.880258 +v 0.122250 1.412351 -0.535252 +v 0.000000 1.462989 -0.535252 +v 0.000000 1.462989 -0.880258 +v -0.122250 1.412351 -0.535252 +v -0.122250 1.412351 -0.880258 +v -0.172888 1.290101 -0.535252 +v -0.172888 1.290101 -0.880258 +v -0.122250 1.167851 -0.535252 +v -0.148774 1.290101 -0.842944 +v 0.000000 1.438875 -0.842944 +v 0.148774 1.290101 -0.842944 +v -0.122250 1.167851 -0.880258 +v 0.000000 1.117213 -0.535252 +v 0.047857 1.242244 1.175174 +v 0.047857 1.337958 1.175174 +v -0.047857 1.337958 1.175174 +v -0.101696 1.188405 0.795065 +v 0.000000 1.118381 0.903662 +v -0.121424 1.168677 0.903662 +v -0.143820 1.290101 0.795065 +v -0.171720 1.290101 0.903662 +v -0.101696 1.391797 0.795065 +v -0.121424 1.411525 0.903662 +v 0.000000 1.433921 0.795065 +v 0.000000 1.461821 0.903662 +v 0.101696 1.391797 0.795065 +v 0.121424 1.411525 0.903662 +v 0.143820 1.290101 0.795065 +v 0.171720 1.290101 0.903662 +v 0.101696 1.188405 0.795065 +v 0.121424 1.168677 0.903662 +v 0.000000 1.146281 0.795065 +v -0.101696 1.188405 -0.426655 +v 0.000000 1.146281 -0.380929 +v -0.101696 1.188405 -0.380929 +v -0.143820 1.290101 -0.426655 +v -0.143820 1.290101 -0.380929 +v -0.101696 1.391797 -0.426655 +v -0.101696 1.391797 -0.380929 +v 0.000000 1.433921 -0.426655 +v 0.000000 1.433921 -0.380929 +v 0.101696 1.391797 -0.426655 +v 0.101696 1.391797 -0.380929 +v 0.143820 1.290101 -0.426655 +v 0.143820 1.290101 -0.380929 +v 0.101696 1.188405 -0.426655 +v 0.101696 1.188405 -0.380929 +v 0.000000 1.146281 -0.426655 +v 0.171720 1.290101 1.200607 +v 0.121424 1.411525 1.200607 +v 0.000000 1.461821 1.200607 +v -0.121424 1.411525 1.200607 +v -0.171720 1.290101 1.200607 +v -0.121424 1.168677 1.200607 +v 0.000000 1.118381 1.200607 +v 0.000000 1.146281 0.387825 +v 0.101696 1.188405 0.425211 +v 0.000000 1.146281 0.425211 +v 0.127181 1.162920 -0.019415 +v 0.127181 1.162920 0.387825 +v 0.143820 1.290101 0.387825 +v 0.143820 1.290101 0.425211 +v 0.101696 1.391797 0.425211 +v 0.143820 1.290101 -0.019415 +v 0.127181 1.417282 0.387825 +v 0.000000 1.433921 0.387825 +v 0.000000 1.433921 0.425211 +v 0.127181 1.417282 -0.019415 +v -0.101696 1.391797 0.425211 +v 0.000000 1.433921 -0.019415 +v -0.127181 1.417282 0.387825 +v -0.143820 1.290101 0.387825 +v -0.143820 1.290101 0.425211 +v -0.127181 1.417282 -0.019415 +v -0.101696 1.188405 0.425211 +v -0.143820 1.290101 -0.019415 +v -0.127181 1.162920 0.387825 +v -0.127181 1.162920 -0.019415 +v 0.000000 1.146281 0.560528 +v -0.101696 1.188405 0.560528 +v -0.143820 1.290101 0.560528 +v -0.101696 1.391797 0.560528 +v 0.000000 1.433921 0.560528 +v 0.101696 1.391797 0.560528 +v 0.143820 1.290101 0.560528 +v 0.101696 1.188405 0.560528 +v 0.000000 1.146281 -0.019415 +v 0.101696 1.188405 -0.056801 +v 0.101696 1.391797 -0.056801 +v -0.101696 1.391797 -0.056801 +v -0.101696 1.188405 -0.056801 +v 0.000000 1.146281 0.726438 +v -0.113307 1.408526 -0.380929 +v 0.000000 1.453522 -0.380929 +v 0.101696 1.188405 0.726438 +v -0.125746 1.106419 0.726438 +v 0.000000 1.113253 0.726438 +v 0.143820 1.290101 0.726438 +v 0.125746 1.106419 0.726438 +v 0.101696 1.391797 0.726438 +v 0.000000 1.433921 -0.214523 +v -0.113307 1.408526 -0.214523 +v -0.101696 1.391797 -0.214523 +v 0.000000 1.433921 0.726438 +v -0.125746 1.106419 0.560528 +v -0.160240 1.306368 0.560528 +v -0.101696 1.391797 0.726438 +v 0.113307 1.408526 -0.380929 +v -0.143820 1.290101 0.726438 +v -0.101696 1.188405 0.726438 +v 0.113307 1.408526 -0.214523 +v 0.000000 1.453522 -0.214523 +v 0.000000 1.146281 -0.056801 +v 0.101696 1.188405 -0.214523 +v -0.113307 1.408526 0.560528 +v 0.143820 1.290101 -0.056801 +v 0.160240 1.306368 -0.380929 +v 0.143820 1.290101 -0.214523 +v -0.160240 1.306368 0.726438 +v 0.101696 1.391797 -0.214523 +v 0.000000 1.433921 -0.056801 +v 0.160240 1.306368 -0.214523 +v 0.000000 1.453522 0.560528 +v -0.143820 1.290101 -0.056801 +v 0.125746 1.106419 -0.380929 +v -0.143820 1.290101 -0.214523 +v -0.113307 1.408526 0.726438 +v -0.101696 1.188405 -0.214523 +v 0.125746 1.106419 -0.214523 +v 0.000000 1.113253 0.560528 +v 0.125746 1.106419 0.560528 +v 0.160240 1.306368 0.726438 +v 0.160240 1.306368 0.560528 +v 0.113307 1.408526 0.726438 +v 0.113307 1.408526 0.560528 +v 0.000000 1.453522 0.726438 +v 0.000000 1.113253 -0.214523 +v -0.160240 1.306368 -0.214523 +v -0.125746 1.106419 -0.380929 +v -0.125746 1.106419 -0.214523 +v -0.160240 1.306368 -0.380929 +v 0.000000 1.146281 -0.214523 +v 0.000000 1.113253 -0.380929 +v -0.106302 1.396403 1.157056 +v -0.150333 1.290101 1.200607 +v -0.150333 1.290101 1.157056 +v 0.000000 1.440434 1.157056 +v -0.106302 1.396403 1.200607 +v 0.106302 1.396403 1.157056 +v 0.000000 1.440434 1.200607 +v 0.150333 1.290101 1.157056 +v 0.106302 1.396403 1.200607 +v 0.000000 1.156786 1.166115 +v 0.106302 1.183800 1.157056 +v 0.094268 1.195833 1.166115 +v 0.133315 1.290101 1.166115 +v 0.094268 1.384369 1.166115 +v 0.000000 1.423417 1.166115 +v -0.094268 1.384369 1.166115 +v -0.133315 1.290101 1.166115 +v -0.106302 1.183800 1.157056 +v -0.094268 1.195833 1.166115 +v 0.000000 1.139768 1.157056 +v 0.000000 1.178299 1.171550 +v 0.079056 1.211045 1.171550 +v 0.111802 1.290101 1.171550 +v 0.079056 1.369157 1.171550 +v 0.000000 1.401903 1.171550 +v -0.079056 1.369157 1.171550 +v -0.111802 1.290101 1.171550 +v -0.079056 1.211045 1.171550 +v 0.000000 1.222421 1.175174 +v 0.067680 1.290101 1.175174 +v 0.000000 1.357781 1.175174 +v -0.067680 1.290101 1.175174 +v -0.047857 1.242244 1.175174 +v 0.000000 1.139768 1.200607 +v 0.121424 1.168677 1.200607 +v 0.106302 1.183800 1.200607 +v 0.150333 1.290101 1.200607 +v -0.106302 1.183800 1.200607 +v -0.105199 1.184902 -0.842944 +v -0.148774 1.290101 -0.880258 +v -0.105199 1.395301 -0.880258 +v -0.105199 1.395301 -0.842944 +v 0.000000 1.438875 -0.880258 +v 0.105199 1.395301 -0.880258 +v 0.105199 1.395301 -0.842944 +v 0.105199 1.184902 -0.880258 +v 0.000000 1.117213 -0.880258 +v 0.000000 1.141327 -0.880258 +v 0.148774 1.290101 -0.880258 +v 0.172888 1.290101 -0.880258 +v -0.105199 1.184902 -0.880258 +v 0.000000 1.141327 -0.842944 +v 0.105199 1.184902 -0.842944 +v 0.127287 1.060470 -0.215130 +v -0.127287 1.060470 -0.215130 +v -0.137370 0.965631 -0.215130 +v 0.127287 1.060470 -0.381779 +v 0.127345 1.113839 -0.215130 +v 0.165068 1.014758 -0.215130 +v 0.165068 1.014758 -0.381779 +v -0.127287 1.060470 -0.381779 +v 0.137370 0.965631 -0.381779 +v -0.127345 1.113839 -0.215130 +v -0.127345 1.113839 -0.381779 +v 0.127345 1.113839 -0.381779 +v -0.165068 0.999696 -0.381779 +v -0.137370 0.965631 -0.381779 +v 0.165068 0.999696 -0.215130 +v 0.137370 0.965631 -0.215130 +v -0.165068 1.014758 -0.381779 +v -0.165068 1.014758 -0.215130 +v 0.165068 0.999696 -0.381779 +v -0.165068 0.999696 -0.215130 +v 0.127287 1.060470 0.727120 +v -0.127287 1.060470 0.727120 +v -0.137370 0.965631 0.727120 +v 0.127345 1.113839 0.560471 +v 0.127287 1.060470 0.560471 +v 0.165068 1.014758 0.727120 +v 0.165068 1.014758 0.560471 +v -0.127287 1.060470 0.560471 +v 0.137370 0.965631 0.560471 +v -0.127345 1.113839 0.727120 +v -0.127345 1.113839 0.560471 +v 0.127345 1.113839 0.727120 +v -0.165068 0.999696 0.560471 +v -0.137370 0.965631 0.560471 +v 0.165068 0.999696 0.727120 +v 0.137370 0.965631 0.727120 +v -0.165068 1.014758 0.560471 +v -0.165068 1.014758 0.727120 +v 0.165068 0.999696 0.560471 +v -0.165068 0.999696 0.727120 +v -0.128673 1.041385 0.864105 +v -0.158890 1.005824 -0.497553 +v -0.158890 1.005824 0.864105 +v 0.128673 1.041385 -0.497553 +v 0.158890 1.005824 0.864105 +v 0.158890 1.005824 -0.497553 +v -0.128673 0.970263 -0.497553 +v 0.128673 0.970263 -0.497553 +v -0.042891 0.970263 -0.078904 +v 0.128673 0.970263 0.864105 +v -0.128673 1.041385 -0.497553 +v -0.042891 1.005824 0.864105 +v -0.042891 0.970263 0.864105 +v -0.042891 0.970263 0.913056 +v -0.128673 0.970263 0.864105 +v 0.128673 1.041385 0.864105 +v 0.042891 0.970263 0.864105 +v 0.042891 0.916053 0.076168 +v 0.042891 0.970263 -0.078904 +v 0.042891 1.005824 0.953107 +v -0.042891 0.970263 0.953107 +v 0.042891 0.970263 0.953107 +v 0.042891 0.894106 0.885317 +v 0.042891 0.970263 0.913056 +v 0.042891 1.005824 0.864105 +v -0.042891 0.868174 0.915839 +v -0.042891 0.894106 0.885317 +v 0.042891 0.868174 0.915839 +v -0.042891 0.970263 -0.078904 +v 0.042891 0.916053 0.864105 +v -0.042891 0.916053 0.076168 +v -0.042891 0.916053 0.864105 +v 0.042891 0.970263 -0.078904 +v -0.042891 1.005824 0.953107 +vt 0.862112 0.382430 +vt 0.862112 0.343887 +vt 0.876470 0.342361 +vt 0.781491 0.334765 +vt 0.831474 0.326685 +vt 0.831474 0.334765 +vt 0.831474 0.343744 +vt 0.781491 0.343744 +vt 0.839614 0.332388 +vt 0.839614 0.293845 +vt 0.853972 0.292318 +vt 0.831474 0.420254 +vt 0.781491 0.412174 +vt 0.831474 0.412174 +vt 0.781491 0.288125 +vt 0.781491 0.326685 +vt 0.831474 0.394267 +vt 0.781491 0.400915 +vt 0.781491 0.394268 +vt 0.781491 0.352672 +vt 0.831474 0.346025 +vt 0.831474 0.352672 +vt 0.781491 0.403195 +vt 0.831474 0.403195 +vt 0.781491 0.346025 +vt 0.831474 0.400915 +vt 0.862112 0.332388 +vt 0.862112 0.293845 +vt 0.876470 0.292318 +vt 0.731449 0.326685 +vt 0.781432 0.334765 +vt 0.731449 0.334765 +vt 0.781432 0.343744 +vt 0.731449 0.343744 +vt 0.839614 0.382430 +vt 0.839614 0.343887 +vt 0.853972 0.342361 +vt 0.781432 0.420254 +vt 0.731449 0.412174 +vt 0.781432 0.412174 +vt 0.731449 0.288125 +vt 0.781432 0.326685 +vt 0.781432 0.394268 +vt 0.731449 0.400915 +vt 0.731449 0.394268 +vt 0.731449 0.352672 +vt 0.781432 0.346025 +vt 0.781432 0.352672 +vt 0.731449 0.403195 +vt 0.781432 0.403195 +vt 0.731449 0.346025 +vt 0.781432 0.400915 +vt 0.876470 0.383956 +vt 0.871313 0.388150 +vt 0.869033 0.388150 +vt 0.854032 0.382439 +vt 0.854032 0.343878 +vt 0.869033 0.338167 +vt 0.871313 0.338167 +vt 0.853972 0.333914 +vt 0.848815 0.338108 +vt 0.846534 0.338108 +vt 0.831533 0.332397 +vt 0.831533 0.293836 +vt 0.846534 0.288125 +vt 0.848815 0.288125 +vt 0.781491 0.420254 +vt 0.831474 0.288125 +vt 0.876470 0.333914 +vt 0.871313 0.338108 +vt 0.869033 0.338108 +vt 0.854032 0.332397 +vt 0.854032 0.293836 +vt 0.869033 0.288125 +vt 0.871313 0.288125 +vt 0.853972 0.383956 +vt 0.848815 0.388150 +vt 0.846534 0.388150 +vt 0.831533 0.382439 +vt 0.831533 0.343878 +vt 0.846534 0.338167 +vt 0.848815 0.338167 +vt 0.731449 0.420254 +vt 0.781432 0.288125 +vt 0.064605 0.000179 +vt 0.032391 0.940141 +vt 0.032391 0.000179 +vt 0.242253 0.940141 +vt 0.274466 0.000179 +vt 0.274467 0.940141 +vt 0.484329 0.940141 +vt 0.306680 0.940141 +vt 0.425112 0.651144 +vt 0.306680 0.000179 +vt 0.534226 0.414338 +vt 0.534226 0.236360 +vt 0.583414 0.236360 +vt 0.546318 0.592663 +vt 0.546318 0.568069 +vt 0.512464 0.568069 +vt 0.000178 0.940141 +vt 0.000178 0.000179 +vt 0.064605 0.940141 +vt 0.242253 0.000179 +vt 0.487811 0.005697 +vt 0.519381 0.464564 +vt 0.487811 0.554873 +vt 0.073028 1.000143 +vt 0.097622 0.940817 +vt 0.097622 1.000143 +vt 0.484684 0.568103 +vt 0.531567 0.515434 +vt 0.512383 0.568103 +vt 0.290390 1.000143 +vt 0.256536 0.940817 +vt 0.290390 0.940817 +vt 0.583463 0.236360 +vt 0.558869 0.355012 +vt 0.558869 0.295686 +vt 0.200482 1.000143 +vt 0.172783 0.940817 +vt 0.200482 0.940817 +vt 0.256536 1.000143 +vt 0.172783 1.000143 +vt 0.011475 0.940817 +vt 0.011475 1.000143 +vt 0.398353 0.604156 +vt 0.398156 0.603821 +vt 0.398353 0.604149 +vt 0.533461 0.664397 +vt 0.495970 0.605071 +vt 0.533461 0.605071 +vt 0.519381 0.464564 +vt 0.519381 0.005697 +vt 0.487811 0.005697 +vt 0.425288 0.548168 +vt 0.365961 0.661778 +vt 0.365961 0.548168 +vt 0.425288 0.003239 +vt 0.365896 0.651144 +vt 0.365896 0.000179 +vt 0.425112 0.000178 +vt 0.484329 0.000178 +vt 0.558820 0.215462 +vt 0.583414 0.414338 +vt 0.558820 0.435236 +vt 0.531648 0.515400 +vt 0.484765 0.568069 +vt 0.510539 0.497465 +vt 0.484765 0.592663 +vt 0.487811 0.554873 +vt 0.519381 0.005697 +vt 0.073028 0.940817 +vt 0.546237 0.568103 +vt 0.546237 0.592696 +vt 0.484684 0.592696 +vt 0.510458 0.497499 +vt 0.534276 0.236360 +vt 0.558869 0.215462 +vt 0.583463 0.414338 +vt 0.558869 0.435236 +vt 0.534276 0.414338 +vt 0.534276 0.355012 +vt 0.534276 0.295686 +vt 0.397971 0.604156 +vt 0.495970 0.664397 +vt 0.487811 0.554873 +vt 0.487811 0.554873 +vt 0.425288 0.661778 +vt 0.365961 0.003239 +vt 0.298927 0.396205 +vt 0.426834 0.332251 +vt 0.426834 0.396205 +vt 0.298927 0.332251 +vt 0.426834 0.268298 +vt 0.298927 0.268297 +vt 0.426834 0.204344 +vt 0.298927 0.588067 +vt 0.426834 0.524113 +vt 0.426834 0.588067 +vt 0.482312 0.332251 +vt 0.426926 0.236321 +vt 0.537698 0.236321 +vt 0.298927 0.524113 +vt 0.426834 0.460159 +vt 0.298927 0.460159 +vt 0.537698 0.364320 +vt 0.482312 0.460251 +vt 0.426926 0.364320 +vt 0.298927 0.204344 +vt 0.537698 0.300274 +vt 0.426926 0.300274 +vt 0.482312 0.204344 +vt 0.482312 0.332343 +vt 0.537698 0.428274 +vt 0.426926 0.428274 +vt 0.298927 0.396205 +vt 0.426834 0.332251 +vt 0.426834 0.396205 +vt 0.298927 0.332251 +vt 0.426834 0.268298 +vt 0.298927 0.268297 +vt 0.426834 0.204344 +vt 0.298927 0.588067 +vt 0.426834 0.524113 +vt 0.426834 0.588067 +vt 0.482312 0.332251 +vt 0.426926 0.236321 +vt 0.537698 0.236321 +vt 0.298927 0.524113 +vt 0.426834 0.460159 +vt 0.298927 0.460159 +vt 0.537698 0.364320 +vt 0.482312 0.460251 +vt 0.426926 0.364320 +vt 0.298927 0.204344 +vt 0.537698 0.300274 +vt 0.426926 0.300274 +vt 0.482312 0.204344 +vt 0.482312 0.332343 +vt 0.537698 0.428274 +vt 0.426926 0.428274 +vt 0.625763 0.415571 +vt 0.819774 0.344939 +vt 0.820219 0.412768 +vt 0.625356 0.276291 +vt 0.819329 0.277211 +vt 0.818884 0.209376 +vt 0.625153 0.206823 +vt 0.818436 0.141164 +vt 0.624951 0.137496 +vt 0.817982 0.071918 +vt 0.624748 0.068299 +vt 0.817507 -0.000475 +vt 0.739260 0.846264 +vt 0.780443 0.945689 +vt 0.681018 0.986873 +vt 0.626172 0.555444 +vt 0.820667 0.481090 +vt 0.821128 0.551376 +vt 0.696930 0.948356 +vt 0.678415 0.903416 +vt 0.723357 0.884906 +vt 0.876666 0.003400 +vt 0.816718 0.072080 +vt 0.816304 0.006550 +vt 0.876085 0.483878 +vt 0.819483 0.550860 +vt 0.819079 0.483115 +vt 0.876168 0.415340 +vt 0.818684 0.414464 +vt 0.876251 0.346487 +vt 0.818292 0.346212 +vt 0.876334 0.277480 +vt 0.817901 0.278056 +vt 0.876418 0.208392 +vt 0.817509 0.209851 +vt 0.876502 0.139291 +vt 0.817116 0.141387 +vt 0.876585 0.070439 +vt 0.876585 0.549564 +vt 0.900604 0.482520 +vt 0.900604 0.549669 +vt 0.876841 0.068823 +vt 0.900604 0.001360 +vt 0.900604 0.069103 +vt 0.876804 0.137986 +vt 0.900604 0.137993 +vt 0.876767 0.207313 +vt 0.900604 0.207190 +vt 0.876730 0.276558 +vt 0.900604 0.276413 +vt 0.876693 0.345668 +vt 0.900604 0.345495 +vt 0.876657 0.414568 +vt 0.900604 0.414254 +vt 0.876620 0.483158 +vt 0.876877 0.001414 +vt 0.626103 0.208309 +vt 0.626206 0.277009 +vt 0.626310 0.345842 +vt 0.626414 0.414767 +vt 0.626518 0.483792 +vt 0.626623 0.553016 +vt 0.625896 0.071491 +vt 0.814153 0.731675 +vt 0.754704 0.732862 +vt 0.807643 0.713695 +vt 0.837372 0.482857 +vt 0.629071 0.417250 +vt 0.837372 0.417250 +vt 0.695254 0.731675 +vt 0.701764 0.713695 +vt 0.837372 0.351644 +vt 0.648824 0.694528 +vt 0.629071 0.351644 +vt 0.837372 0.286037 +vt 0.860612 0.695197 +vt 0.814182 0.732345 +vt 0.807672 0.714365 +vt 0.629071 0.286037 +vt 0.837372 0.220430 +vt 0.754732 0.733532 +vt 0.629071 0.220430 +vt 0.837372 0.154823 +vt 0.695283 0.732345 +vt 0.701793 0.714365 +vt 0.629071 0.154823 +vt 0.837372 0.089217 +vt 0.648853 0.695197 +vt 0.629071 0.089217 +vt 0.837372 0.023610 +vt 0.860583 0.694528 +vt 0.629071 0.548464 +vt 0.837372 0.548464 +vt 0.636324 0.548220 +vt 0.705538 0.491917 +vt 0.705538 0.548220 +vt 0.705538 0.154102 +vt 0.636324 0.097799 +vt 0.705538 0.097799 +vt 0.636324 0.210405 +vt 0.705538 0.210405 +vt 0.636324 0.266707 +vt 0.705538 0.266707 +vt 0.636324 0.323010 +vt 0.705538 0.323010 +vt 0.636324 0.379312 +vt 0.705538 0.379312 +vt 0.636324 0.435615 +vt 0.705538 0.435615 +vt 0.636324 0.491917 +vt 0.695333 0.731288 +vt 0.754783 0.732474 +vt 0.754783 0.759036 +vt 0.814233 0.731288 +vt 0.860662 0.694140 +vt 0.877667 0.714545 +vt 0.649050 0.695197 +vt 0.695480 0.732345 +vt 0.632046 0.715602 +vt 0.754930 0.733532 +vt 0.754930 0.760094 +vt 0.814379 0.732345 +vt 0.860809 0.695197 +vt 0.877813 0.715602 +vt 0.648904 0.694140 +vt 0.631899 0.714545 +vt 0.900124 0.071811 +vt 0.902327 0.912035 +vt 0.960283 0.899046 +vt 0.902327 0.922061 +vt 0.900124 0.140016 +vt 0.901890 0.765040 +vt 0.837572 0.744650 +vt 0.901890 0.748146 +vt 0.900124 0.208571 +vt 0.966209 0.744650 +vt 0.953907 0.786586 +vt 0.900124 0.277204 +vt 0.902327 0.911782 +vt 0.844371 0.898793 +vt 0.850310 0.890236 +vt 0.900124 0.345738 +vt 0.975890 0.839400 +vt 0.966645 0.745448 +vt 0.984289 0.847721 +vt 0.900124 0.413996 +vt 0.844371 0.899046 +vt 0.850310 0.890489 +vt 0.900124 0.481829 +vt 0.876005 0.550176 +vt 0.828328 0.838603 +vt 0.849874 0.786586 +vt 0.900124 0.004636 +vt 0.960283 0.898792 +vt 0.902327 0.921808 +vt 0.711854 0.496239 +vt 0.631181 0.439936 +vt 0.711854 0.439936 +vt 0.954344 0.891417 +vt 0.960283 0.899974 +vt 0.711854 0.383634 +vt 0.820365 0.846792 +vt 0.828764 0.838472 +vt 0.631181 0.383634 +vt 0.711854 0.327331 +vt 0.849874 0.890620 +vt 0.819929 0.846923 +vt 0.631181 0.327331 +vt 0.711854 0.271028 +vt 0.954344 0.890236 +vt 0.984289 0.846539 +vt 0.631181 0.271028 +vt 0.711854 0.214726 +vt 0.902327 0.912963 +vt 0.902327 0.922989 +vt 0.631181 0.214726 +vt 0.711854 0.158423 +vt 0.838009 0.744520 +vt 0.850310 0.786455 +vt 0.631181 0.158423 +vt 0.711854 0.102121 +vt 0.901891 0.912166 +vt 0.843935 0.899176 +vt 0.631181 0.552542 +vt 0.711854 0.552541 +vt 0.975890 0.838219 +vt 0.966645 0.744267 +vt 0.397199 0.874901 +vt 0.482061 0.810488 +vt 0.482061 0.874901 +vt 0.397199 0.810488 +vt 0.482061 0.706705 +vt 0.397199 0.706705 +vt 0.482061 0.649202 +vt 0.397199 0.649202 +vt 0.482061 0.586843 +vt 0.397199 0.586843 +vt 0.482061 0.524485 +vt 0.397199 0.524485 +vt 0.482061 0.466981 +vt 0.397199 0.466981 +vt 0.482061 0.363198 +vt 0.397199 0.939314 +vt 0.482061 0.939314 +vt 0.396382 0.874901 +vt 0.311267 0.810488 +vt 0.396382 0.810488 +vt 0.396382 0.706705 +vt 0.311267 0.706705 +vt 0.396382 0.649202 +vt 0.311267 0.649202 +vt 0.396382 0.586843 +vt 0.311267 0.586843 +vt 0.396382 0.524485 +vt 0.311267 0.524485 +vt 0.396382 0.466981 +vt 0.311267 0.363198 +vt 0.396382 0.363198 +vt 0.311267 0.939314 +vt 0.396382 0.939314 +vt 0.902327 0.765837 +vt 0.838009 0.745448 +vt 0.902327 0.748944 +vt 0.954344 0.787383 +vt 0.820365 0.846539 +vt 0.828764 0.838219 +vt 0.975453 0.838603 +vt 0.983852 0.846923 +vt 0.954344 0.890489 +vt 0.984289 0.846793 +vt 0.828764 0.839400 +vt 0.850310 0.787383 +vt 0.838009 0.744267 +vt 0.850310 0.786202 +vt 0.953907 0.890619 +vt 0.959846 0.899176 +vt 0.975890 0.838472 +vt 0.966645 0.744520 +vt 0.850310 0.891417 +vt 0.820365 0.847721 +vt 0.902327 0.764656 +vt 0.954344 0.786202 +vt 0.902327 0.747763 +vt 0.901891 0.922191 +vt 0.902327 0.764909 +vt 0.902327 0.748016 +vt 0.954344 0.786455 +vt 0.844371 0.899974 +vt 0.640899 0.140025 +vt 0.663174 0.198878 +vt 0.640899 0.198878 +vt 0.640899 0.081173 +vt 0.663175 0.140025 +vt 0.640899 0.493140 +vt 0.663174 0.551992 +vt 0.640899 0.551992 +vt 0.640899 0.434287 +vt 0.663174 0.493140 +vt 0.736235 0.979788 +vt 0.680093 0.989178 +vt 0.683934 0.979737 +vt 0.637595 0.946681 +vt 0.646986 0.942722 +vt 0.637595 0.886581 +vt 0.647035 0.890422 +vt 0.680092 0.844083 +vt 0.684051 0.853475 +vt 0.740193 0.844085 +vt 0.736352 0.853526 +vt 0.773300 0.890541 +vt 0.782692 0.886581 +vt 0.782692 0.946682 +vt 0.773251 0.942841 +vt 0.740194 0.989180 +vt 0.731842 0.969217 +vt 0.688303 0.969155 +vt 0.657557 0.938328 +vt 0.657617 0.894790 +vt 0.688445 0.864046 +vt 0.731984 0.864107 +vt 0.762729 0.894934 +vt 0.762669 0.938473 +vt 0.723236 0.948412 +vt 0.678362 0.929721 +vt 0.697051 0.884851 +vt 0.741925 0.903542 +vt 0.741872 0.929847 +vt 0.799881 0.604423 +vt 0.785094 0.666531 +vt 0.777359 0.658796 +vt 0.722987 0.692257 +vt 0.722987 0.681318 +vt 0.660879 0.666531 +vt 0.668614 0.658796 +vt 0.635153 0.604424 +vt 0.646092 0.604424 +vt 0.799881 0.604346 +vt 0.785094 0.666454 +vt 0.777359 0.658718 +vt 0.722987 0.681240 +vt 0.722987 0.692179 +vt 0.660879 0.666454 +vt 0.668614 0.658718 +vt 0.646092 0.604346 +vt 0.635153 0.604346 +vt 0.663174 0.257730 +vt 0.640899 0.257730 +vt 0.663174 0.316582 +vt 0.640899 0.316582 +vt 0.663174 0.375435 +vt 0.640899 0.375435 +vt 0.663174 0.434287 +vt 0.625999 0.139796 +vt 0.642973 0.084114 +vt 0.662059 0.142357 +vt 0.642973 0.142357 +vt 0.662059 0.200599 +vt 0.642973 0.200599 +vt 0.662059 0.258841 +vt 0.642973 0.258841 +vt 0.662059 0.317083 +vt 0.642973 0.317083 +vt 0.723487 0.680169 +vt 0.660957 0.666602 +vt 0.669679 0.657881 +vt 0.777296 0.657881 +vt 0.723487 0.692503 +vt 0.799585 0.604072 +vt 0.786018 0.666602 +vt 0.669775 0.658077 +vt 0.635153 0.604268 +vt 0.647487 0.604268 +vt 0.723584 0.680365 +vt 0.661054 0.666798 +vt 0.777393 0.658077 +vt 0.723584 0.692699 +vt 0.799681 0.604268 +vt 0.786114 0.666798 +vt 0.635056 0.604072 +vt 0.647390 0.604072 +vt 0.642973 0.491810 +vt 0.662059 0.550052 +vt 0.642973 0.550052 +vt 0.642973 0.433568 +vt 0.662059 0.491810 +vt 0.642973 0.375326 +vt 0.662059 0.433568 +vt 0.662059 0.375326 +vt 0.625967 0.485397 +vt 0.625560 0.345878 +vt 0.624550 0.000408 +vt 0.639834 0.945689 +vt 0.639834 0.887447 +vt 0.681018 0.846264 +vt 0.780443 0.887447 +vt 0.739260 0.986873 +vt 0.625795 0.004394 +vt 0.754704 0.759424 +vt 0.629071 0.482857 +vt 0.631819 0.714933 +vt 0.877616 0.715602 +vt 0.754732 0.760094 +vt 0.631849 0.715602 +vt 0.629071 0.023610 +vt 0.877587 0.714933 +vt 0.636324 0.154102 +vt 0.701844 0.713307 +vt 0.807723 0.713307 +vt 0.701990 0.714365 +vt 0.807869 0.714365 +vt 0.900124 0.549107 +vt 0.631181 0.496239 +vt 0.631181 0.102121 +vt 0.397199 0.363198 +vt 0.311267 0.874901 +vt 0.311267 0.466981 +vt 0.663175 0.081173 +vt 0.810820 0.604423 +vt 0.810820 0.604346 +vt 0.662059 0.084114 +vt 0.811918 0.604072 +vt 0.812015 0.604268 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0011 0.0000 +vn 0.7708 0.6371 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0011 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7759 -0.6309 0.0000 +vn 0.7759 -0.6309 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7708 0.6371 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7620 0.6475 0.0000 +vn 0.7620 0.6475 0.0000 +vn 0.7620 -0.6475 -0.0000 +vn -0.7620 -0.6475 -0.0000 +vn 0.0000 -0.7621 -0.6475 +vn 0.0000 0.3422 -0.9396 +vn 0.0000 -0.3429 0.9394 +vn 0.0000 -0.9440 -0.3300 +vn 0.0000 0.0000 0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0362 -0.0362 0.9987 +vn 0.0362 0.0362 0.9987 +vn -0.0362 0.0362 0.9987 +vn -0.6849 -0.6849 -0.2488 +vn 0.0000 -0.9685 -0.2488 +vn -0.9685 -0.0000 -0.2488 +vn -0.6849 0.6849 -0.2488 +vn -0.0000 0.9685 -0.2488 +vn 0.6849 0.6849 -0.2488 +vn 0.9685 0.0000 -0.2488 +vn 0.6849 -0.6849 -0.2488 +vn -0.6831 -0.6831 0.2586 +vn -0.0000 -0.9660 0.2586 +vn -0.9660 0.0000 0.2586 +vn -0.6831 0.6831 0.2586 +vn 0.0000 0.9660 0.2586 +vn 0.6831 0.6831 0.2586 +vn 0.9660 0.0000 0.2586 +vn 0.6831 -0.6831 0.2586 +vn 0.0000 -0.9856 0.1689 +vn 0.1560 -0.8391 0.5211 +vn 0.1297 -0.9916 0.0000 +vn 0.8391 -0.1560 0.5211 +vn 0.9856 0.0000 0.1689 +vn 0.9916 -0.1297 0.0000 +vn 0.8391 0.1560 0.5211 +vn 0.9916 0.1297 0.0000 +vn 0.1560 0.8391 0.5211 +vn -0.0000 0.9856 0.1689 +vn 0.1297 0.9916 0.0000 +vn -0.1560 0.8391 0.5211 +vn -0.1297 0.9916 0.0000 +vn -0.8391 0.1560 0.5211 +vn -0.9856 0.0000 0.1689 +vn -0.9916 0.1297 0.0000 +vn -0.8391 -0.1560 0.5211 +vn -0.9916 -0.1297 0.0000 +vn -0.1560 -0.8391 0.5211 +vn -0.1297 -0.9916 0.0000 +vn 0.0000 -0.9856 -0.1689 +vn 0.1560 -0.8391 -0.5211 +vn 0.1031 -0.7878 -0.6073 +vn 0.8391 -0.1560 -0.5211 +vn 0.9856 0.0000 -0.1689 +vn 0.7878 -0.1031 -0.6073 +vn 0.8391 0.1560 -0.5211 +vn 0.7878 0.1031 -0.6073 +vn 0.1560 0.8391 -0.5211 +vn -0.0000 0.9856 -0.1689 +vn 0.1031 0.7878 -0.6073 +vn -0.1560 0.8391 -0.5211 +vn -0.1031 0.7878 -0.6073 +vn -0.8391 0.1560 -0.5211 +vn -0.9856 0.0000 -0.1689 +vn -0.7878 0.1031 -0.6073 +vn -0.8391 -0.1560 -0.5211 +vn -0.7878 -0.1031 -0.6073 +vn -0.1560 -0.8391 -0.5211 +vn -0.1031 -0.7878 -0.6073 +vn -0.0543 -0.9985 0.0000 +vn 0.9854 -0.1700 0.0000 +vn 0.9916 0.1295 0.0000 +vn 0.6883 0.7255 0.0000 +vn -0.6883 0.7255 0.0000 +vn -0.9916 0.1295 0.0000 +vn -0.9854 -0.1700 0.0000 +vn 0.0543 -0.9985 0.0000 +vn 0.0000 -0.3856 0.9227 +vn 0.3323 -0.3323 0.8827 +vn 0.2727 -0.2727 0.9227 +vn 0.4699 -0.0000 0.8827 +vn 0.3856 -0.0000 0.9227 +vn 0.3323 0.3323 0.8827 +vn 0.2727 0.2727 0.9227 +vn 0.0000 0.4699 0.8827 +vn 0.0000 0.3856 0.9227 +vn -0.3323 0.3323 0.8827 +vn -0.2727 0.2727 0.9227 +vn -0.3856 -0.0000 0.9227 +vn -0.4699 -0.0000 0.8827 +vn -0.3323 -0.3323 0.8827 +vn -0.2727 -0.2727 0.9227 +vn 0.0000 -0.4699 0.8827 +vn 0.0000 -0.1839 0.9829 +vn 0.1300 -0.1300 0.9829 +vn 0.1839 -0.0000 0.9829 +vn 0.1300 0.1300 0.9829 +vn -0.0000 0.1839 0.9829 +vn -0.1300 0.1300 0.9829 +vn -0.1839 -0.0000 0.9829 +vn -0.1300 -0.1300 0.9829 +vn 0.0000 -0.0512 0.9987 +vn 0.0512 -0.0000 0.9987 +vn 0.0000 0.0512 0.9987 +vn -0.0512 0.0000 0.9987 +vn -0.0362 -0.0362 0.9987 +vn 0.1031 -0.7878 0.6073 +vn 0.7878 -0.1031 0.6073 +vn 0.7878 0.1031 0.6073 +vn 0.1031 0.7878 0.6073 +vn -0.1031 0.7878 0.6073 +vn -0.7878 0.1031 0.6073 +vn -0.7878 -0.1031 0.6073 +vn -0.1031 -0.7878 0.6073 +s off +f 225/1/1 226/2/1 227/3/1 +f 228/4/2 229/5/2 225/6/2 +f 228/4/3 230/7/3 231/8/3 +f 232/9/4 228/10/4 233/11/4 +f 234/12/5 232/13/5 226/14/5 +f 235/15/6 229/5/6 236/16/6 +f 227/17/7 237/18/7 238/19/7 +f 233/20/8 239/21/8 240/22/8 +f 233/20/9 227/17/9 238/19/9 +f 226/14/10 241/23/10 242/24/10 +f 231/8/11 239/21/11 243/25/11 +f 242/24/12 237/18/12 244/26/12 +f 245/27/1 246/28/1 247/29/1 +f 248/30/2 245/31/2 249/32/2 +f 249/32/3 250/33/3 251/34/3 +f 252/35/4 249/36/4 253/37/4 +f 254/38/5 252/39/5 246/40/5 +f 255/41/6 256/42/6 248/30/6 +f 247/43/7 257/44/7 258/45/7 +f 253/46/8 259/47/8 260/48/8 +f 253/46/9 247/43/9 258/45/9 +f 246/40/10 261/49/10 262/50/10 +f 251/34/11 259/47/11 263/51/11 +f 262/50/12 257/44/12 264/52/12 +f 227/3/1 240/53/1 225/1/1 +f 240/53/1 239/54/1 230/55/1 +f 225/1/1 240/53/1 230/55/1 +f 225/1/1 229/56/1 234/57/1 +f 226/2/1 242/58/1 227/3/1 +f 242/58/1 244/59/1 227/3/1 +f 225/1/1 234/57/1 226/2/1 +f 228/4/2 236/16/2 229/5/2 +f 228/4/3 225/6/3 230/7/3 +f 233/11/4 238/60/4 232/9/4 +f 238/60/4 237/61/4 241/62/4 +f 232/9/4 238/60/4 241/62/4 +f 232/9/4 235/63/4 236/64/4 +f 228/10/4 231/65/4 233/11/4 +f 231/65/4 243/66/4 233/11/4 +f 232/9/4 236/64/4 228/10/4 +f 234/12/5 235/67/5 232/13/5 +f 235/15/6 234/68/6 229/5/6 +f 227/17/7 244/26/7 237/18/7 +f 233/20/8 243/25/8 239/21/8 +f 233/20/9 240/22/9 227/17/9 +f 226/14/10 232/13/10 241/23/10 +f 231/8/11 230/7/11 239/21/11 +f 242/24/12 241/23/12 237/18/12 +f 247/29/1 260/69/1 245/27/1 +f 260/69/1 259/70/1 250/71/1 +f 245/27/1 260/69/1 250/71/1 +f 245/27/1 256/72/1 254/73/1 +f 246/28/1 262/74/1 247/29/1 +f 262/74/1 264/75/1 247/29/1 +f 245/27/1 254/73/1 246/28/1 +f 248/30/2 256/42/2 245/31/2 +f 249/32/3 245/31/3 250/33/3 +f 253/37/4 258/76/4 252/35/4 +f 258/76/4 257/77/4 261/78/4 +f 252/35/4 258/76/4 261/78/4 +f 252/35/4 255/79/4 248/80/4 +f 249/36/4 251/81/4 253/37/4 +f 251/81/4 263/82/4 253/37/4 +f 252/35/4 248/80/4 249/36/4 +f 254/38/5 255/83/5 252/39/5 +f 255/41/6 254/84/6 256/42/6 +f 247/43/7 264/52/7 257/44/7 +f 253/46/8 263/51/8 259/47/8 +f 253/46/9 260/48/9 247/43/9 +f 246/40/10 252/39/10 261/49/10 +f 251/34/11 250/33/11 259/47/11 +f 262/50/12 261/49/12 257/44/12 +f 265/85/13 266/86/13 267/87/13 +f 268/88/14 269/89/14 270/90/14 +f 271/91/9 272/92/9 273/93/9 +f 270/90/15 274/94/15 272/92/15 +f 272/95/4 271/96/4 275/97/4 +f 276/98/12 277/99/12 278/100/12 +f 267/87/16 271/101/16 279/102/16 +f 275/103/6 280/104/6 268/88/6 +f 281/105/11 282/106/11 283/107/11 +f 284/108/1 285/109/1 286/110/1 +f 286/111/11 287/112/11 288/113/11 +f 281/114/9 278/115/9 277/116/9 +f 280/117/1 276/118/1 289/119/1 +f 287/120/17 290/121/17 291/122/17 +f 288/123/18 291/122/18 278/115/18 +f 285/109/19 292/124/19 286/110/19 +f 276/125/6 284/108/6 289/126/6 +f 273/127/1 283/128/1 293/129/1 +f 277/130/1 294/131/1 281/132/1 +f 295/133/12 296/134/12 277/135/12 +f 295/136/20 283/137/20 282/138/20 +f 282/138/9 296/139/9 295/136/9 +f 265/85/13 275/103/13 266/86/13 +f 268/88/14 280/104/14 269/89/14 +f 272/92/9 274/94/9 297/140/9 +f 274/94/9 281/141/9 297/140/9 +f 277/142/9 279/143/9 273/93/9 +f 279/143/9 271/91/9 273/93/9 +f 272/92/9 297/140/9 273/93/9 +f 270/90/15 269/89/15 274/94/15 +f 266/144/4 275/97/4 271/96/4 +f 275/97/4 268/145/4 272/95/4 +f 268/145/4 270/146/4 272/95/4 +f 278/100/12 291/147/12 285/148/12 +f 291/147/12 290/149/12 285/148/12 +f 285/148/12 298/150/12 278/100/12 +f 298/150/12 276/98/12 278/100/12 +f 267/87/16 266/86/16 271/101/16 +f 275/103/6 265/85/6 280/104/6 +f 283/107/21 297/151/21 281/105/21 +f 281/105/11 294/152/11 282/106/11 +f 284/108/1 298/153/1 285/109/1 +f 288/113/11 281/154/11 289/155/11 +f 289/155/11 284/156/11 288/113/11 +f 284/156/11 286/111/11 288/113/11 +f 286/111/11 292/157/11 287/112/11 +f 281/114/9 288/123/9 278/115/9 +f 274/158/1 269/159/1 280/117/1 +f 280/117/1 265/160/1 276/118/1 +f 265/160/1 267/161/1 279/162/1 +f 276/118/1 265/160/1 279/162/1 +f 279/162/1 277/163/1 276/118/1 +f 281/164/1 274/158/1 289/119/1 +f 274/158/1 280/117/1 289/119/1 +f 287/120/17 292/124/17 290/121/17 +f 288/123/18 287/120/18 291/122/18 +f 285/109/19 290/121/19 292/124/19 +f 276/125/6 298/153/6 284/108/6 +f 273/127/1 297/165/1 283/128/1 +f 277/130/1 296/166/1 294/131/1 +f 277/135/21 273/167/21 293/168/21 +f 293/168/12 295/133/12 277/135/12 +f 295/136/20 293/169/20 283/137/20 +f 282/138/9 294/170/9 296/139/9 +s 1 +f 1/171/4 2/172/22 3/173/4 +f 4/174/22 5/175/23 2/172/22 +f 6/176/23 7/177/1 5/175/23 +f 8/178/1 9/179/24 7/180/1 +f 1/181/6 10/182/6 6/183/6 +f 10/184/24 11/185/25 9/179/24 +f 12/186/25 3/173/4 11/185/25 +f 2/187/9 7/188/9 11/189/9 +f 1/171/4 4/174/22 2/172/22 +f 4/174/22 6/176/23 5/175/23 +f 6/176/23 8/190/1 7/177/1 +f 8/178/1 10/184/24 9/179/24 +f 6/183/6 4/191/6 1/181/6 +f 1/181/6 12/192/6 10/182/6 +f 10/182/6 8/193/6 6/183/6 +f 10/184/24 12/186/25 11/185/25 +f 12/186/25 1/171/4 3/173/4 +f 11/189/9 3/194/9 2/187/9 +f 2/187/9 5/195/9 7/188/9 +f 7/188/9 9/196/9 11/189/9 +f 13/197/4 14/198/26 15/199/4 +f 16/200/26 17/201/27 14/198/26 +f 18/202/27 19/203/1 17/201/27 +f 20/204/1 21/205/28 19/206/1 +f 13/207/11 22/208/11 18/209/11 +f 22/210/28 23/211/29 21/205/28 +f 24/212/29 15/199/4 23/211/29 +f 14/213/12 19/214/12 23/215/12 +f 13/197/4 16/200/26 14/198/26 +f 16/200/26 18/202/27 17/201/27 +f 18/202/27 20/216/1 19/203/1 +f 20/204/1 22/210/28 21/205/28 +f 18/209/11 16/217/11 13/207/11 +f 13/207/11 24/218/11 22/208/11 +f 22/208/11 20/219/11 18/209/11 +f 22/210/28 24/212/29 23/211/29 +f 24/212/29 13/197/4 15/199/4 +f 23/215/12 15/220/12 14/213/12 +f 14/213/12 17/221/12 19/214/12 +f 19/214/12 21/222/12 23/215/12 +f 25/223/30 26/224/11 27/225/30 +f 26/224/11 28/226/31 29/227/31 +f 28/226/31 30/228/6 29/227/31 +f 31/229/6 32/230/32 30/228/6 +f 33/231/32 34/232/12 32/230/32 +f 35/233/12 36/234/33 34/232/12 +f 37/235/4 38/236/4 39/237/4 +f 40/238/33 41/239/9 36/240/33 +f 42/241/34 43/242/35 44/243/36 +f 45/244/37 46/245/38 47/246/37 +f 48/247/39 47/248/37 49/249/39 +f 50/250/40 49/249/39 51/251/40 +f 52/252/41 51/251/40 53/253/41 +f 54/254/42 53/253/41 55/255/42 +f 56/256/43 55/255/42 57/257/43 +f 58/258/44 57/257/43 59/259/44 +f 60/260/38 59/259/44 46/245/38 +f 61/261/33 62/262/9 63/263/33 +f 64/264/12 63/265/33 65/266/12 +f 66/267/32 65/266/12 67/268/32 +f 68/269/6 67/268/32 69/270/6 +f 70/271/31 69/270/6 71/272/31 +f 72/273/11 71/272/31 73/274/11 +f 74/275/30 73/274/11 75/276/30 +f 76/277/9 75/276/30 62/262/9 +f 36/240/45 76/277/46 61/261/45 +f 34/232/47 61/278/45 64/264/47 +f 32/230/48 64/264/47 66/267/48 +f 30/228/49 66/267/48 68/269/49 +f 70/271/50 30/228/49 68/269/49 +f 72/273/51 29/227/50 70/271/50 +f 74/275/52 26/224/51 72/273/51 +f 41/239/46 74/275/52 76/277/46 +f 77/279/11 59/259/30 57/257/11 +f 78/280/31 57/257/11 55/255/31 +f 79/281/6 55/255/31 53/253/6 +f 80/282/32 53/253/6 51/251/32 +f 81/283/12 51/251/32 49/249/12 +f 82/284/33 49/249/12 47/248/33 +f 83/285/9 47/246/33 46/245/9 +f 84/286/53 85/287/54 86/288/9 +f 84/289/9 87/290/55 88/291/55 +f 85/287/56 89/292/57 90/293/11 +f 87/290/58 89/294/11 88/291/58 +f 89/292/57 91/295/59 90/293/11 +f 92/296/11 93/297/60 89/294/11 +f 91/298/61 94/299/62 95/300/6 +f 96/301/63 94/302/6 93/297/63 +f 94/299/62 97/303/64 95/300/6 +f 98/304/6 99/305/65 94/302/6 +f 97/303/66 100/306/67 101/307/12 +f 102/308/68 100/309/12 99/305/68 +f 100/306/67 103/310/69 101/307/12 +f 104/311/12 105/312/70 100/309/12 +f 103/313/71 84/286/53 86/288/9 +f 106/314/72 84/289/9 105/315/72 +f 103/316/33 107/317/9 108/318/33 +f 109/319/12 103/320/33 108/321/33 +f 97/322/32 109/319/12 110/323/32 +f 95/324/6 110/323/32 111/325/6 +f 91/326/31 111/325/6 112/327/31 +f 90/328/11 112/327/31 113/329/11 +f 85/330/30 113/329/11 114/331/30 +f 86/332/9 114/331/30 107/317/9 +f 115/333/73 116/334/74 87/335/75 +f 116/334/76 92/336/77 87/335/78 +f 92/336/77 117/337/79 96/338/80 +f 117/339/81 98/340/82 96/341/83 +f 98/340/82 118/342/84 102/343/85 +f 118/342/86 104/344/87 102/343/88 +f 104/344/87 119/345/89 106/346/90 +f 119/347/91 115/333/73 106/348/92 +f 120/349/9 58/258/30 60/260/9 +f 69/350/4 121/351/4 122/352/4 +f 123/353/30 56/256/11 58/258/30 +f 120/354/1 124/355/1 125/356/1 +f 126/357/11 54/254/31 56/256/11 +f 120/354/1 127/358/1 123/359/1 +f 128/360/31 52/252/6 54/254/31 +f 129/361/1 130/362/1 131/363/1 +f 132/364/6 50/250/32 52/252/6 +f 109/365/4 133/366/4 134/367/4 +f 135/368/32 48/247/12 50/250/32 +f 69/350/4 136/369/4 71/370/4 +f 137/371/12 45/372/33 48/247/12 +f 137/373/1 124/355/1 138/374/1 +f 138/375/33 60/260/9 45/244/33 +f 129/361/1 139/376/1 140/377/1 +f 141/378/9 142/379/30 116/380/30 +f 110/381/4 134/367/4 143/382/4 +f 142/379/30 144/383/11 116/380/30 +f 71/370/4 145/384/4 73/385/4 +f 146/386/11 117/387/31 144/383/11 +f 135/388/1 147/389/1 137/373/1 +f 148/390/31 149/391/6 117/387/31 +f 148/392/1 150/393/1 139/376/1 +f 129/394/6 118/395/32 149/391/6 +f 111/396/4 143/382/4 151/397/4 +f 131/398/32 152/399/12 118/395/32 +f 73/385/4 153/400/4 75/401/4 +f 154/402/12 119/403/33 152/399/12 +f 132/404/1 155/405/1 135/388/1 +f 156/406/33 141/378/9 119/407/33 +f 146/408/1 157/409/1 150/393/1 +f 158/410/9 127/411/93 125/412/9 +f 159/413/94 160/414/95 127/411/94 +f 161/415/95 162/416/96 160/414/95 +f 163/417/96 164/418/6 162/416/96 +f 151/419/6 155/420/97 164/418/6 +f 143/421/97 147/422/98 155/420/97 +f 134/423/98 124/424/99 147/422/98 +f 133/425/100 125/412/9 124/426/100 +f 165/427/9 153/428/93 157/429/93 +f 153/428/94 150/430/95 157/429/94 +f 145/431/95 139/432/96 150/430/95 +f 136/433/96 140/434/6 139/432/96 +f 122/435/6 130/436/97 140/434/6 +f 121/437/97 166/438/98 130/436/97 +f 166/438/98 167/439/99 168/440/99 +f 167/441/100 165/427/9 168/442/100 +f 107/443/4 159/444/4 158/445/4 +f 107/443/4 133/366/4 108/446/4 +f 131/363/1 166/447/1 154/448/1 +f 126/449/1 127/358/1 160/450/1 +f 67/451/4 169/452/4 121/351/4 +f 113/453/4 159/444/4 114/454/4 +f 154/448/1 168/455/1 156/456/1 +f 128/457/1 160/450/1 162/458/1 +f 65/459/4 167/460/4 169/452/4 +f 112/461/4 161/462/4 113/453/4 +f 170/463/1 157/409/1 142/464/1 +f 170/463/1 168/455/1 165/465/1 +f 132/404/1 162/458/1 164/466/1 +f 62/467/4 153/400/4 171/468/4 +f 62/467/4 167/460/4 63/469/4 +f 111/396/4 163/470/4 112/461/4 +f 172/471/30 173/472/11 174/473/11 +f 175/474/9 176/475/30 172/471/30 +f 177/476/33 178/477/9 175/478/9 +f 179/479/12 180/480/33 177/476/33 +f 181/481/101 182/482/102 183/483/103 +f 183/483/103 179/484/104 184/485/105 +f 184/485/105 177/486/106 185/487/107 +f 185/487/107 175/488/108 186/489/109 +f 186/489/109 172/490/110 187/491/111 +f 188/492/112 172/490/110 174/493/113 +f 188/492/112 189/494/114 190/495/115 +f 190/495/115 191/496/116 181/481/101 +f 192/497/117 183/483/103 193/498/118 +f 193/498/118 184/485/105 194/499/119 +f 194/499/119 185/487/107 195/500/120 +f 195/500/120 186/489/109 196/501/121 +f 196/501/121 187/491/111 197/502/122 +f 198/503/123 187/491/111 188/492/112 +f 198/503/123 190/495/115 199/504/124 +f 192/497/117 190/495/115 181/481/101 +f 200/505/125 193/498/118 42/241/34 +f 201/506/126 193/498/118 194/499/119 +f 201/506/126 195/500/120 43/242/35 +f 202/507/127 195/500/120 196/501/121 +f 202/507/127 197/502/122 44/243/36 +f 44/243/36 198/503/123 203/508/128 +f 203/508/128 199/504/124 204/509/129 +f 200/505/125 199/504/124 192/497/117 +f 205/510/1 206/511/1 207/512/1 +f 207/512/1 77/513/1 208/514/1 +f 208/514/1 78/515/1 180/516/1 +f 180/516/1 79/517/1 178/518/1 +f 178/519/1 80/520/1 176/521/1 +f 173/522/1 80/520/1 81/523/1 +f 173/522/1 82/524/1 209/525/1 +f 205/526/1 82/524/1 83/527/1 +f 174/473/11 209/528/31 189/529/31 +f 189/529/31 205/530/6 191/531/6 +f 191/531/6 207/532/32 182/533/32 +f 182/533/32 208/534/12 179/479/12 +f 206/535/30 46/245/9 59/259/30 +f 210/536/31 211/537/11 37/538/11 +f 37/538/11 212/539/30 213/540/30 +f 213/540/30 214/541/9 38/542/9 +f 38/542/9 215/543/33 216/544/33 +f 217/545/4 218/546/4 219/547/4 +f 220/548/4 25/549/4 217/545/4 +f 215/550/4 221/551/4 220/548/4 +f 214/552/4 28/553/4 215/554/4 +f 212/555/4 31/556/4 214/552/4 +f 211/557/4 33/558/4 212/555/4 +f 222/559/4 35/560/4 211/557/4 +f 219/547/4 40/561/4 222/562/4 +f 223/563/6 222/564/31 210/565/31 +f 224/566/32 219/567/6 223/563/6 +f 39/568/12 217/569/32 224/566/32 +f 216/544/33 220/570/12 39/568/12 +f 218/571/9 27/225/30 41/239/9 +f 25/223/30 221/572/11 26/224/11 +f 26/224/11 221/572/11 28/226/31 +f 28/226/31 31/229/6 30/228/6 +f 31/229/6 33/231/32 32/230/32 +f 33/231/32 35/233/12 34/232/12 +f 35/233/12 40/573/33 36/234/33 +f 39/237/4 224/574/4 37/235/4 +f 224/574/4 223/575/4 37/235/4 +f 223/575/4 210/576/4 37/235/4 +f 37/235/4 213/577/4 38/236/4 +f 38/236/4 216/578/4 39/237/4 +f 40/238/33 218/571/9 41/239/9 +f 204/509/129 200/505/125 42/241/34 +f 42/241/34 201/506/126 43/242/35 +f 43/242/35 202/507/127 44/243/36 +f 44/243/36 203/508/128 204/509/129 +f 204/509/129 42/241/34 44/243/36 +f 45/244/37 60/260/38 46/245/38 +f 48/247/39 45/372/37 47/248/37 +f 50/250/40 48/247/39 49/249/39 +f 52/252/41 50/250/40 51/251/40 +f 54/254/42 52/252/41 53/253/41 +f 56/256/43 54/254/42 55/255/42 +f 58/258/44 56/256/43 57/257/43 +f 60/260/38 58/258/44 59/259/44 +f 61/261/33 76/277/9 62/262/9 +f 64/264/12 61/278/33 63/265/33 +f 66/267/32 64/264/12 65/266/12 +f 68/269/6 66/267/32 67/268/32 +f 70/271/31 68/269/6 69/270/6 +f 72/273/11 70/271/31 71/272/31 +f 74/275/30 72/273/11 73/274/11 +f 76/277/9 74/275/30 75/276/30 +f 36/240/45 41/239/46 76/277/46 +f 34/232/47 36/234/45 61/278/45 +f 32/230/48 34/232/47 64/264/47 +f 30/228/49 32/230/48 66/267/48 +f 70/271/50 29/227/50 30/228/49 +f 72/273/51 26/224/51 29/227/50 +f 74/275/52 27/225/52 26/224/51 +f 41/239/46 27/225/52 74/275/52 +f 77/279/11 206/535/30 59/259/30 +f 78/280/31 77/279/11 57/257/11 +f 79/281/6 78/280/31 55/255/31 +f 80/282/32 79/281/6 53/253/6 +f 81/283/12 80/282/32 51/251/32 +f 82/284/33 81/283/12 49/249/12 +f 83/285/9 82/579/33 47/246/33 +f 84/286/53 88/580/130 85/287/54 +f 84/289/9 115/581/9 87/290/55 +f 85/287/56 88/580/131 89/292/57 +f 87/290/58 92/296/11 89/294/11 +f 89/292/57 93/582/132 91/295/59 +f 92/296/11 96/301/60 93/297/60 +f 91/298/61 93/583/133 94/299/62 +f 96/301/63 98/304/6 94/302/6 +f 94/299/62 99/584/134 97/303/64 +f 98/304/6 102/308/65 99/305/65 +f 97/303/66 99/584/135 100/306/67 +f 102/308/68 104/311/12 100/309/12 +f 100/306/67 105/585/136 103/310/69 +f 104/311/12 106/586/70 105/312/70 +f 103/313/71 105/587/137 84/286/53 +f 106/314/72 115/581/9 84/289/9 +f 103/316/33 86/332/9 107/317/9 +f 109/319/12 101/588/12 103/320/33 +f 97/322/32 101/588/12 109/319/12 +f 95/324/6 97/322/32 110/323/32 +f 91/326/31 95/324/6 111/325/6 +f 90/328/11 91/326/31 112/327/31 +f 85/330/30 90/328/11 113/329/11 +f 86/332/9 85/330/30 114/331/30 +f 115/333/73 141/589/9 116/334/74 +f 116/334/76 144/590/11 92/336/77 +f 92/336/77 144/590/11 117/337/79 +f 117/339/81 149/591/6 98/340/82 +f 98/340/82 149/591/6 118/342/84 +f 118/342/86 152/592/12 104/344/87 +f 104/344/87 152/592/12 119/345/89 +f 119/347/91 141/589/9 115/333/73 +f 120/349/9 123/353/30 58/258/30 +f 69/350/4 67/451/4 121/351/4 +f 123/353/30 126/357/11 56/256/11 +f 120/354/1 138/374/1 124/355/1 +f 126/357/11 128/360/31 54/254/31 +f 120/354/1 125/356/1 127/358/1 +f 128/360/31 132/364/6 52/252/6 +f 129/361/1 140/377/1 130/362/1 +f 132/364/6 135/368/32 50/250/32 +f 109/365/4 108/446/4 133/366/4 +f 135/368/32 137/371/12 48/247/12 +f 69/350/4 122/352/4 136/369/4 +f 137/371/12 138/593/33 45/372/33 +f 137/373/1 147/389/1 124/355/1 +f 138/375/33 120/349/9 60/260/9 +f 129/361/1 148/392/1 139/376/1 +f 141/378/9 170/594/9 142/379/30 +f 110/381/4 109/365/4 134/367/4 +f 142/379/30 146/386/11 144/383/11 +f 71/370/4 136/369/4 145/384/4 +f 146/386/11 148/390/31 117/387/31 +f 135/388/1 155/405/1 147/389/1 +f 148/390/31 129/394/6 149/391/6 +f 148/392/1 146/408/1 150/393/1 +f 129/394/6 131/398/32 118/395/32 +f 111/396/4 110/381/4 143/382/4 +f 131/398/32 154/402/12 152/399/12 +f 73/385/4 145/384/4 153/400/4 +f 154/402/12 156/595/33 119/403/33 +f 132/404/1 164/466/1 155/405/1 +f 156/406/33 170/594/9 141/378/9 +f 146/408/1 142/464/1 157/409/1 +f 158/410/9 159/413/93 127/411/93 +f 159/413/94 161/415/95 160/414/95 +f 161/415/95 163/417/96 162/416/96 +f 163/417/96 151/419/6 164/418/6 +f 151/419/6 143/421/97 155/420/97 +f 143/421/97 134/423/98 147/422/98 +f 134/423/98 133/596/99 124/424/99 +f 133/425/100 158/410/9 125/412/9 +f 165/427/9 171/597/9 153/428/93 +f 153/428/94 145/431/95 150/430/95 +f 145/431/95 136/433/96 139/432/96 +f 136/433/96 122/435/6 140/434/6 +f 122/435/6 121/437/97 130/436/97 +f 121/437/97 169/598/98 166/438/98 +f 166/438/98 169/598/98 167/439/99 +f 167/441/100 171/597/9 165/427/9 +f 107/443/4 114/454/4 159/444/4 +f 107/443/4 158/445/4 133/366/4 +f 131/363/1 130/362/1 166/447/1 +f 126/449/1 123/359/1 127/358/1 +f 67/451/4 65/459/4 169/452/4 +f 113/453/4 161/462/4 159/444/4 +f 154/448/1 166/447/1 168/455/1 +f 128/457/1 126/449/1 160/450/1 +f 65/459/4 63/469/4 167/460/4 +f 112/461/4 163/470/4 161/462/4 +f 170/463/1 165/465/1 157/409/1 +f 170/463/1 156/456/1 168/455/1 +f 132/404/1 128/457/1 162/458/1 +f 62/467/4 75/401/4 153/400/4 +f 62/467/4 171/468/4 167/460/4 +f 111/396/4 151/397/4 163/470/4 +f 172/471/30 176/475/30 173/472/11 +f 175/474/9 178/599/9 176/475/30 +f 177/476/33 180/480/33 178/477/9 +f 179/479/12 208/534/12 180/480/33 +f 181/481/101 191/496/116 182/482/102 +f 183/483/103 182/482/102 179/484/104 +f 184/485/105 179/484/104 177/486/106 +f 185/487/107 177/486/106 175/488/108 +f 186/489/109 175/488/108 172/490/110 +f 188/492/112 187/491/111 172/490/110 +f 188/492/112 174/493/113 189/494/114 +f 190/495/115 189/494/114 191/496/116 +f 192/497/117 181/481/101 183/483/103 +f 193/498/118 183/483/103 184/485/105 +f 194/499/119 184/485/105 185/487/107 +f 195/500/120 185/487/107 186/489/109 +f 196/501/121 186/489/109 187/491/111 +f 198/503/123 197/502/122 187/491/111 +f 198/503/123 188/492/112 190/495/115 +f 192/497/117 199/504/124 190/495/115 +f 200/505/125 192/497/117 193/498/118 +f 201/506/126 42/241/34 193/498/118 +f 201/506/126 194/499/119 195/500/120 +f 202/507/127 43/242/35 195/500/120 +f 202/507/127 196/501/121 197/502/122 +f 44/243/36 197/502/122 198/503/123 +f 203/508/128 198/503/123 199/504/124 +f 200/505/125 204/509/129 199/504/124 +f 205/510/1 83/600/1 206/511/1 +f 207/512/1 206/511/1 77/513/1 +f 208/514/1 77/513/1 78/515/1 +f 180/516/1 78/515/1 79/517/1 +f 178/519/1 79/601/1 80/520/1 +f 173/522/1 176/521/1 80/520/1 +f 173/522/1 81/523/1 82/524/1 +f 205/526/1 209/525/1 82/524/1 +f 174/473/11 173/472/11 209/528/31 +f 189/529/31 209/528/31 205/530/6 +f 191/531/6 205/530/6 207/532/32 +f 182/533/32 207/532/32 208/534/12 +f 206/535/30 83/285/9 46/245/9 +f 210/536/31 222/602/31 211/537/11 +f 37/538/11 211/537/11 212/539/30 +f 213/540/30 212/539/30 214/541/9 +f 38/542/9 214/541/9 215/543/33 +f 217/545/4 25/549/4 218/546/4 +f 220/548/4 221/551/4 25/549/4 +f 215/550/4 28/603/4 221/551/4 +f 214/552/4 31/556/4 28/553/4 +f 212/555/4 33/558/4 31/556/4 +f 211/557/4 35/560/4 33/558/4 +f 222/559/4 40/604/4 35/560/4 +f 219/547/4 218/546/4 40/561/4 +f 223/563/6 219/567/6 222/564/31 +f 224/566/32 217/569/32 219/567/6 +f 39/568/12 220/570/12 217/569/32 +f 216/544/33 215/543/33 220/570/12 +f 218/571/9 25/223/30 27/225/30 +o Hammer +v 0.032000 0.588845 1.091862 +v 0.032000 0.697419 1.159147 +v 0.032000 0.639309 1.194319 +v -0.032000 0.588845 1.091862 +v -0.032000 0.697419 1.159147 +v -0.032000 0.755530 1.130092 +v 0.032000 0.842695 0.952702 +v -0.032000 0.842695 1.107154 +v 0.032000 0.842695 1.107154 +v 0.032000 0.755530 1.130092 +v -0.032000 0.718828 1.220316 +v 0.032000 0.718828 1.220316 +v 0.068452 0.772351 1.279956 +v -0.068452 0.772351 1.279956 +v -0.068452 0.776939 1.464992 +v 0.068452 0.776939 1.464992 +v -0.068452 0.737179 1.463463 +v 0.068452 0.737179 1.463463 +v -0.068452 0.735650 1.390060 +v 0.068452 0.735650 1.390060 +v 0.068452 0.724945 1.304423 +v -0.068452 0.724945 1.304423 +v -0.032000 0.663776 1.232550 +v 0.032000 0.663776 1.232550 +v -0.032000 0.639309 1.194319 +v -0.032000 0.620958 1.237138 +v 0.032000 0.620958 1.237138 +v -0.032000 0.561319 1.335008 +v 0.032000 0.561319 1.335008 +v -0.032000 0.477211 1.387001 +v 0.032000 0.477211 1.387001 +v -0.032000 0.842695 0.952702 +vt 0.343765 0.934799 +vt 0.350946 0.946383 +vt 0.354698 0.940182 +vt 0.343782 0.934821 +vt 0.350963 0.946405 +vt 0.347864 0.952606 +vt 0.390183 0.954876 +vt 0.397012 0.971356 +vt 0.390183 0.971356 +vt 0.397012 0.980973 +vt 0.390183 0.980973 +vt 0.397012 0.987905 +vt 0.390183 0.987905 +vt 0.397012 0.994820 +vt 0.390183 0.994820 +vt 0.379264 0.964780 +vt 0.387814 0.975498 +vt 0.379264 0.979388 +vt 0.359515 0.979388 +vt 0.359515 0.964780 +vt 0.355269 0.979388 +vt 0.355269 0.964780 +vt 0.347436 0.979388 +vt 0.347436 0.964780 +vt 0.338227 0.964780 +vt 0.338227 0.979388 +vt 0.328157 0.975498 +vt 0.328157 0.968670 +vt 0.397043 0.923988 +vt 0.403872 0.928831 +vt 0.397043 0.928831 +vt 0.403872 0.933801 +vt 0.397043 0.933801 +vt 0.403872 0.946030 +vt 0.397043 0.946030 +vt 0.403872 0.956580 +vt 0.397043 0.956580 +vt 0.403872 0.990249 +vt 0.397043 0.990249 +vt 0.390183 0.923988 +vt 0.397012 0.954876 +vt 0.384495 0.954648 +vt 0.384235 0.950410 +vt 0.376401 0.950426 +vt 0.357473 0.948666 +vt 0.367240 0.949494 +vt 0.358777 0.942792 +vt 0.357490 0.948689 +vt 0.367257 0.949516 +vt 0.364763 0.954633 +vt 0.376418 0.950449 +vt 0.384252 0.950432 +vt 0.384512 0.954670 +vt 0.328921 0.961887 +vt 0.347847 0.952584 +vt 0.345400 0.961884 +vt 0.369708 0.931858 +vt 0.375254 0.922884 +vt 0.359266 0.938223 +vt 0.375271 0.922906 +vt 0.369725 0.931881 +vt 0.359283 0.938246 +vt 0.354715 0.940204 +vt 0.358794 0.942814 +vt 0.345417 0.961907 +vt 0.328938 0.961909 +vt 0.387814 0.968670 +vt 0.403872 0.923988 +vt 0.397012 0.923988 +vt 0.364746 0.954610 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.2545 0.9671 +vn 0.0000 0.4472 0.8944 +vn 0.0000 0.9439 -0.3303 +vn 0.0000 0.7442 -0.6679 +vn 0.0000 0.9997 -0.0248 +vn 0.0000 -0.0384 0.9993 +vn 0.0000 -0.9998 0.0208 +vn 0.0000 -0.9923 0.1240 +vn 0.0000 -0.7615 0.6481 +vn 0.0000 -0.8423 0.5390 +vn 0.0000 0.9191 0.3939 +vn 0.0000 0.8539 0.5204 +vn 0.0000 0.5258 0.8506 +vn 0.0000 -0.9353 -0.3538 +vn 0.0000 -0.4807 -0.8769 +vn 0.9164 -0.0869 -0.3908 +vn -0.9050 -0.1951 -0.3780 +vn 0.9050 -0.1951 -0.3780 +vn -0.9164 -0.0869 -0.3908 +s off +f 299/605/138 300/606/138 301/607/138 +f 302/608/139 303/609/139 304/610/139 +f 305/611/140 306/612/140 307/613/140 +f 307/613/141 304/614/141 308/615/141 +f 308/615/142 303/616/142 300/617/142 +f 300/617/143 309/618/143 310/619/143 +f 311/620/144 309/621/144 312/622/144 +f 311/620/145 313/623/145 314/624/145 +f 314/624/146 315/625/146 316/626/146 +f 316/626/147 317/627/147 318/628/147 +f 319/629/148 317/627/148 320/630/148 +f 319/629/149 321/631/149 322/632/149 +f 322/633/150 323/634/150 301/635/150 +f 301/635/151 324/636/151 325/637/151 +f 325/637/152 326/638/152 327/639/152 +f 327/639/153 328/640/153 329/641/153 +f 329/641/154 302/642/154 299/643/154 +f 299/644/155 330/645/155 305/611/155 +f 314/646/138 316/647/138 318/648/138 +f 310/649/156 319/650/156 322/651/156 +f 309/652/157 320/653/157 312/654/157 +f 317/655/139 315/656/139 313/657/139 +f 299/605/138 305/658/138 308/659/138 +f 305/658/138 307/660/138 308/659/138 +f 327/661/138 329/662/138 299/605/138 +f 301/607/138 325/663/138 299/605/138 +f 325/663/138 327/661/138 299/605/138 +f 310/649/138 322/651/138 300/606/138 +f 322/651/138 301/607/138 300/606/138 +f 299/605/138 308/659/138 300/606/138 +f 302/608/139 328/664/139 326/665/139 +f 326/665/139 324/666/139 302/608/139 +f 324/666/139 323/667/139 302/608/139 +f 323/667/139 321/668/139 303/609/139 +f 321/668/139 309/652/139 303/609/139 +f 306/669/139 330/670/139 304/610/139 +f 330/670/139 302/608/139 304/610/139 +f 302/608/139 323/667/139 303/609/139 +f 305/611/140 330/645/140 306/612/140 +f 307/613/141 306/612/141 304/614/141 +f 308/615/142 304/614/142 303/616/142 +f 300/617/143 303/616/143 309/618/143 +f 311/620/144 310/671/144 309/621/144 +f 311/620/145 312/622/145 313/623/145 +f 314/624/146 313/623/146 315/625/146 +f 316/626/147 315/625/147 317/627/147 +f 319/629/148 318/628/148 317/627/148 +f 319/629/149 320/630/149 321/631/149 +f 322/633/150 321/672/150 323/634/150 +f 301/635/151 323/634/151 324/636/151 +f 325/637/152 324/636/152 326/638/152 +f 327/639/153 326/638/153 328/640/153 +f 329/641/154 328/640/154 302/642/154 +f 299/644/155 302/673/155 330/645/155 +f 318/648/138 319/650/138 311/674/138 +f 311/674/138 314/646/138 318/648/138 +f 310/649/158 311/674/158 319/650/158 +f 309/652/159 321/668/159 320/653/159 +f 313/657/139 312/654/139 317/655/139 +f 312/654/139 320/653/139 317/655/139 +o Gun +v 0.021772 0.858479 -2.163888 +v 0.021772 0.977946 -2.136619 +v 0.021772 0.977946 -1.813800 +v 0.006439 1.069528 -2.025718 +v 0.006439 0.978873 -1.822862 +v 0.006439 0.978924 -2.135519 +v -0.021772 0.977946 -1.813800 +v -0.021772 0.858479 -2.163888 +v -0.021772 0.862374 -1.530190 +v -0.006439 0.979031 -2.135490 +v -0.006439 0.978873 -1.822863 +v -0.006439 1.069528 -2.025718 +v 0.021772 0.977946 -1.776917 +v 0.021772 0.862374 -1.530190 +v -0.021772 0.977946 -2.136619 +v -0.021772 0.977946 -1.776917 +v -0.006439 1.067725 -2.088842 +v 0.006439 1.035261 -2.120404 +v 0.006439 1.067725 -2.088842 +v -0.006439 1.035261 -2.120404 +v 0.045500 -0.120256 0.684201 +v 0.045500 -0.026668 0.645664 +v 0.045500 -0.037678 0.759438 +v -0.045500 -0.195494 0.673190 +v -0.045500 -0.241370 0.641994 +v -0.045500 -0.226690 0.735583 +v -0.045500 0.083436 0.570427 +v 0.045500 0.083436 0.570427 +v -0.045500 -0.026668 0.645664 +v 0.045500 -0.195494 0.673190 +v -0.045500 -0.120256 0.684201 +v 0.045500 -0.241370 0.641994 +v 0.045500 -0.301928 0.541066 +v 0.045500 -0.329454 0.561251 +v -0.045500 -0.301928 0.541066 +v 0.045500 -0.292752 0.676861 +v -0.045500 -0.329454 0.561251 +v 0.045500 -0.226690 0.735583 +v -0.045500 -0.292752 0.676861 +v 0.045500 -0.098235 0.761274 +v -0.045500 -0.098235 0.761274 +v 0.045500 0.006363 0.860367 +v -0.045500 -0.037678 0.759438 +v 0.045500 0.120138 0.755768 +v -0.045500 0.006363 0.860367 +v -0.045500 0.120138 0.755768 +v -0.054995 0.616618 -0.028039 +v -0.033567 0.562746 -0.960018 +v -0.033567 0.562746 -0.028039 +v -0.054995 0.616618 -1.026899 +v 0.033567 0.562746 -0.960018 +v 0.054995 0.616618 -0.028039 +v 0.033567 0.562746 -0.028039 +v -0.033567 0.390368 -0.028039 +v -0.025180 0.382701 -0.028039 +v -0.004934 0.379525 -0.028039 +v 0.054995 0.616618 -1.026899 +v 0.033567 0.390368 -0.028039 +v 0.033567 0.390368 -0.869522 +v -0.033567 0.390368 -0.869522 +v 0.004934 0.379525 -0.863829 +v -0.004934 0.379525 -0.863829 +v 0.025180 0.382701 -0.865496 +v -0.025180 0.382701 -0.865496 +v 0.025180 0.382701 -0.028039 +v 0.004934 0.379525 -0.028039 +v -0.091806 0.781963 -0.305483 +v 0.000000 0.834967 -0.305483 +v 0.091806 0.781963 -0.305483 +v 0.000000 0.577301 -2.190801 +v 0.131339 0.653130 -0.116135 +v 0.000000 0.577301 -0.116135 +v 0.131339 0.653130 -2.190801 +v 0.131339 0.804788 -0.116135 +v -0.033282 0.869246 -2.190801 +v -0.131339 0.804788 -0.116135 +v -0.033282 0.869246 -0.116135 +v 0.000000 0.834967 -2.190801 +v -0.091806 0.781963 -2.190801 +v -0.131339 0.804788 -2.190801 +v -0.131339 0.653130 -0.116135 +v 0.131339 0.804788 -2.190801 +v 0.033282 0.869246 -0.116135 +v 0.033282 0.869246 -2.190801 +v 0.033282 0.893686 -0.116135 +v -0.033282 0.893686 -0.116135 +v 0.033282 0.893686 -2.190801 +v -0.033282 0.893686 -2.190801 +v 0.091806 0.781963 -2.190801 +v 0.091806 0.675955 -0.305483 +v 0.091806 0.675955 -2.190801 +v 0.000000 0.622951 -2.190801 +v -0.131339 0.653130 -2.190801 +v -0.091806 0.675955 -0.305483 +v -0.091806 0.675955 -2.190801 +v 0.000000 0.622951 -0.305483 +v 0.038663 0.010816 1.719601 +v -0.038663 -0.245511 1.887638 +v 0.038663 -0.245511 1.887638 +v 0.155101 -0.023361 0.976255 +v -0.155153 0.335495 1.332264 +v 0.155152 0.335496 1.332264 +v -0.165394 -1.094236 1.405764 +v -0.111831 -1.094236 1.351958 +v -0.038663 -1.094236 1.332264 +v 0.038663 -1.094236 1.332264 +v -0.038663 -0.735379 1.366441 +v 0.038663 -0.735379 1.366441 +v -0.038663 -0.493293 1.340808 +v 0.038663 -0.493293 1.340808 +v -0.038663 -0.356585 1.278151 +v 0.038663 -0.356585 1.278151 +v -0.038663 -0.259751 1.158532 +v 0.038663 -0.259751 1.158532 +v -0.038663 -0.208486 0.984799 +v 0.038663 -0.208486 0.984799 +v 0.165394 -0.171143 0.992864 +v 0.185000 -0.127654 1.227930 +v 0.165394 -0.193703 1.193231 +v -0.111832 -0.197420 0.977549 +v -0.124343 -0.190359 0.972923 +v -0.155012 -0.125892 0.930686 +v -0.155169 0.386761 1.437643 +v 0.155169 0.386761 1.437643 +v 0.165394 0.187100 1.505419 +v 0.185000 0.161170 1.436487 +v 0.185000 0.353967 1.437475 +v 0.038663 0.264730 1.561425 +v -0.038663 0.213029 1.574350 +v 0.038663 0.213029 1.574350 +v -0.038663 0.101954 1.631311 +v 0.038663 0.101954 1.631311 +v -0.038663 0.010816 1.719601 +v -0.185000 0.353967 1.437475 +v -0.165395 0.187099 1.505419 +v -0.165395 0.371558 1.459304 +v 0.038663 -0.641392 2.049978 +v -0.038663 -1.094236 2.183837 +v 0.038663 -1.094236 2.183837 +v 0.111832 -0.254688 1.870211 +v 0.111832 -0.647907 2.031459 +v 0.165395 -0.279760 1.822601 +v 0.165395 -0.665706 1.980867 +v 0.185000 -0.314010 1.757564 +v 0.111832 -1.094236 2.163393 +v 0.165395 -1.094236 2.107539 +v 0.185000 -1.094236 2.031240 +v 0.185000 -0.690020 1.911755 +v 0.111832 -1.094236 1.351958 +v 0.111832 -0.735275 1.386145 +v 0.165395 -1.094236 1.405764 +v 0.165395 -0.734991 1.439977 +v 0.185000 -1.094236 1.479263 +v 0.111831 -0.488039 1.359967 +v 0.165395 -0.473687 1.412310 +v 0.185000 -0.734604 1.513514 +v 0.111831 -0.344239 1.294058 +v 0.165394 -0.310507 1.337519 +v 0.185000 -0.454081 1.483811 +v 0.111831 -0.242054 1.167829 +v 0.185000 -0.264429 1.396888 +v -0.185000 -0.127654 1.227930 +v -0.165395 -0.171143 0.992864 +v -0.165395 -0.193703 1.193231 +v 0.111831 0.206081 1.555880 +v 0.111831 0.331394 1.524552 +v 0.165394 0.371558 1.459304 +v 0.111831 0.090410 1.615198 +v 0.165394 0.058870 1.571177 +v 0.111831 -0.001489 1.704225 +v 0.165394 -0.035107 1.662217 +v 0.185000 -0.081029 1.604832 +v 0.185000 0.015786 1.511043 +v -0.185000 -0.314010 1.757564 +v -0.165394 -0.665706 1.980867 +v -0.165394 -0.279760 1.822601 +v -0.111831 -0.647907 2.031460 +v -0.111831 -0.254688 1.870211 +v -0.038663 -0.641392 2.049978 +v -0.185000 -1.094236 2.031240 +v -0.185000 -0.690020 1.911756 +v -0.165394 -1.094236 2.107539 +v -0.111831 -1.094236 2.163393 +v -0.185000 -1.094236 1.479263 +v -0.165394 -0.734991 1.439977 +v -0.111831 -0.735275 1.386145 +v -0.185000 -0.734604 1.513514 +v -0.165395 -0.473687 1.412310 +v -0.111832 -0.488039 1.359967 +v -0.185000 -0.454081 1.483811 +v -0.165395 -0.310507 1.337519 +v -0.111832 -0.344239 1.294059 +v -0.185000 -0.264429 1.396888 +v -0.111832 -0.242054 1.167830 +v 0.111831 -0.197420 0.977549 +v 0.124342 -0.190359 0.972923 +v -0.111832 0.331394 1.524552 +v -0.111832 0.206081 1.555880 +v -0.038663 0.264730 1.561425 +v -0.185000 0.161170 1.436487 +v -0.165395 0.058870 1.571177 +v -0.111832 0.090410 1.615198 +v -0.185000 -0.081029 1.604832 +v -0.185000 0.015786 1.511043 +v -0.165395 -0.035107 1.662217 +v -0.111832 -0.001489 1.704225 +v 0.167489 0.373183 1.456990 +v -0.167489 0.373183 1.456990 +v 0.185000 -0.126088 0.963812 +v 0.155011 -0.125892 0.930686 +v 0.185000 -0.038447 1.002724 +v 0.185000 0.311230 1.349627 +v -0.185000 -0.038447 1.002724 +v -0.155102 -0.023361 0.976255 +v -0.185000 0.311230 1.349627 +v -0.185000 -0.126088 0.963812 +v -0.097892 0.268977 1.622983 +v 0.097892 0.149312 1.674509 +v 0.097892 0.268977 1.622983 +v 0.130092 0.958661 0.861598 +v -0.130093 0.708668 1.058814 +v 0.130092 0.708668 1.058814 +v 0.130092 0.613690 1.167382 +v -0.130093 0.530807 1.307363 +v 0.130092 0.530807 1.307363 +v 0.097892 -0.235169 1.903226 +v -0.097891 -0.628431 2.060954 +v 0.097892 -0.628431 2.060954 +v -0.130092 -0.204556 0.922148 +v 0.130093 -0.133963 0.912969 +v 0.130093 -0.204556 0.922148 +v -0.097891 -0.931319 2.170571 +v 0.097892 -0.931319 2.170571 +v 0.130093 -0.924483 1.955257 +v -0.130092 -0.070062 1.401592 +v 0.130093 -0.070062 1.401592 +v -0.130092 -0.225360 0.969494 +v 0.130093 -0.225360 0.969494 +v -0.130092 -0.300993 0.937781 +v 0.130093 -0.300993 0.937781 +v 0.130092 -0.008544 0.212238 +v -0.130093 -0.008544 -0.085101 +v 0.130092 -0.008544 -0.085101 +v -0.130093 0.275124 -0.085101 +v 0.130092 0.275124 -0.085101 +v -0.130093 0.357148 -0.143201 +v 0.130092 0.357148 -0.143201 +v 0.130092 0.525636 -0.143201 +v -0.130093 0.525636 -0.143201 +v 0.130092 0.921066 -0.143201 +v -0.130093 0.921066 0.307933 +v 0.130092 0.921066 0.307933 +v -0.130093 0.965496 0.495906 +v 0.130092 0.965496 0.495906 +v -0.130093 0.958661 0.861598 +v -0.097892 0.057929 1.734014 +v 0.097892 0.057929 1.734014 +v 0.097892 0.415249 1.620324 +v 0.130093 0.477214 1.426684 +v 0.130093 -0.386514 0.876939 +v -0.130092 -0.386514 0.876940 +v 0.130093 -0.442444 0.786799 +v 0.130092 -0.211485 0.282549 +v -0.130093 -0.008544 0.212238 +v -0.130092 -0.442590 0.623577 +v 0.130093 -0.414803 0.465864 +v 0.130093 -0.442590 0.623577 +v -0.130092 -0.414803 0.465864 +v 0.130093 -0.330356 0.359518 +v -0.130092 -0.330356 0.359518 +v -0.130092 -0.930219 2.135928 +v -0.130092 -0.924483 1.955257 +v 0.130093 -0.930219 2.135928 +v 0.130093 -0.249283 1.874193 +v -0.130092 -0.249284 1.874193 +v -0.130092 0.041082 1.706559 +v 0.130093 -0.639977 2.030890 +v -0.130092 -0.639977 2.030890 +v 0.130093 0.134048 1.646022 +v -0.130092 0.134048 1.646022 +v -0.130092 0.262060 1.590903 +v 0.130093 0.262060 1.590903 +v 0.130093 0.425615 1.587929 +v 0.130093 0.041082 1.706559 +v -0.097892 0.415249 1.620324 +v -0.130092 0.425615 1.587929 +v -0.097892 0.149312 1.674509 +v -0.097892 -0.235169 1.903226 +v -0.130092 0.477214 1.426684 +v -0.130092 -0.442444 0.786799 +v -0.130092 0.221493 0.777850 +v -0.130092 0.032680 0.752116 +v -0.130092 -0.044732 0.859700 +v -0.130092 -0.102226 0.333310 +v 0.130092 -0.022441 0.371767 +v -0.130093 -0.022441 0.371767 +v 0.130092 0.652207 0.905577 +v 0.130092 0.841407 0.777850 +v -0.130092 -0.388426 0.502954 +v 0.130093 -0.403589 0.641508 +v 0.130093 -0.388426 0.502954 +v 0.130092 -0.311756 0.399896 +v 0.130092 -0.193827 0.335099 +v -0.130092 -0.311756 0.399896 +v 0.130093 -0.361856 0.843483 +v -0.130092 -0.404840 0.766055 +v -0.130092 -0.361856 0.843483 +v -0.130092 -0.403589 0.641508 +v 0.130092 0.841407 0.131254 +v 0.130092 0.841530 -0.143201 +v -0.130092 -0.193827 0.335099 +v 0.130092 0.046415 0.462863 +v 0.130092 0.032680 0.752116 +v 0.130093 -0.280523 0.902444 +v -0.130092 -0.280523 0.902444 +v 0.130092 -0.102226 0.333310 +v -0.130093 0.046415 0.462863 +v -0.130093 0.357293 0.131254 +v 0.130092 0.357290 0.131254 +v 0.130092 0.525636 0.131254 +v 0.130092 0.221493 0.131254 +v -0.130093 0.221493 0.131254 +v -0.130093 0.221493 0.431851 +v -0.303465 0.659984 0.777850 +v 0.303465 0.659984 0.777850 +v -0.130093 0.841407 0.131254 +v 0.130092 0.841407 0.322044 +v -0.156306 0.411972 -0.143201 +v 0.173056 0.766475 -0.143201 +v -0.130093 0.921066 -0.143201 +v 0.173056 0.766475 0.131254 +v 0.173056 0.694144 -0.143201 +v 0.173056 0.694144 0.131254 +v 0.130092 0.617043 -0.143201 +v 0.156306 0.412767 -0.143201 +v 0.156306 0.467612 0.131254 +v 0.156306 0.467612 -0.143201 +v 0.130092 0.617043 0.131254 +v -0.173057 0.765680 -0.143201 +v -0.130093 0.841530 -0.143201 +v -0.173057 0.693349 -0.143201 +v -0.173057 0.765680 0.131254 +v -0.130093 0.617043 -0.143201 +v -0.173057 0.693349 0.131254 +v -0.130093 0.617043 0.131254 +v -0.130093 0.525636 0.131254 +v -0.156306 0.466817 0.131254 +v -0.156306 0.466817 -0.143201 +v 0.130092 0.221493 0.777850 +v -0.303465 0.402917 0.777850 +v 0.303465 0.402917 0.777850 +v 0.130092 0.406563 0.905577 +v -0.130093 0.405927 0.905757 +v -0.130093 0.650810 0.906495 +v -0.130093 0.841407 0.777850 +v 0.130092 -0.044732 0.859700 +v -0.130092 -0.133963 0.912969 +v -0.130093 0.613690 1.167382 +v -0.130092 -0.211485 0.282549 +v -0.130093 0.841407 0.322044 +v 0.130093 -0.404840 0.766055 +v 0.130092 0.221493 0.431851 +v -0.130093 0.275159 0.131254 +v 0.130092 0.274881 0.131254 +v -0.156306 0.411972 0.131254 +v 0.156306 0.412767 0.131254 +vt 0.050815 0.964187 +vt 0.022923 0.957640 +vt 0.023387 0.882167 +vt 0.000391 0.939742 +vt 0.021578 0.892311 +vt 0.021578 0.965410 +vt 0.023386 0.882167 +vt 0.050813 0.964187 +vt 0.050813 0.816027 +vt 0.021586 0.965403 +vt 0.021586 0.892311 +vt 0.000415 0.939749 +vt 0.065060 0.879800 +vt 0.054868 0.816027 +vt 0.065060 0.816027 +vt 0.066687 0.963664 +vt 0.076868 0.992314 +vt 0.066687 0.992314 +vt 0.066687 0.815504 +vt 0.076868 0.963664 +vt 0.065060 0.888433 +vt 0.054868 0.879800 +vt 0.061471 0.890563 +vt 0.054868 0.888433 +vt 0.006644 0.864557 +vt 0.003633 0.879321 +vt 0.003633 0.864557 +vt 0.006644 0.889907 +vt 0.006644 0.879321 +vt 0.003633 0.903518 +vt 0.003633 0.889907 +vt 0.065057 0.963856 +vt 0.061468 0.963513 +vt 0.058457 0.890564 +vt 0.054872 0.963859 +vt 0.003633 0.812609 +vt 0.058468 0.963499 +vt 0.023440 0.873544 +vt 0.050815 0.816027 +vt 0.008406 0.961878 +vt 0.000815 0.954500 +vt 0.023439 0.873544 +vt 0.022922 0.957640 +vt 0.000844 0.954507 +vt 0.008438 0.961882 +vt 0.076868 0.815504 +vt 0.006644 0.903544 +vt 0.006644 0.812609 +vt 0.023130 0.630533 +vt 0.028439 0.641072 +vt 0.015114 0.640800 +vt 0.023687 0.621763 +vt 0.026907 0.616152 +vt 0.016156 0.618688 +vt 0.051880 0.644663 +vt 0.062490 0.660213 +vt 0.051880 0.660213 +vt 0.051880 0.632862 +vt 0.062490 0.644663 +vt 0.051880 0.623995 +vt 0.062490 0.632862 +vt 0.051880 0.617526 +vt 0.062490 0.623995 +vt 0.051880 0.603802 +vt 0.062490 0.617526 +vt 0.062519 0.663431 +vt 0.073130 0.667411 +vt 0.062519 0.667411 +vt 0.062519 0.649287 +vt 0.073130 0.663431 +vt 0.062519 0.638981 +vt 0.073130 0.649287 +vt 0.062519 0.623707 +vt 0.073130 0.638981 +vt 0.062519 0.616642 +vt 0.073130 0.623707 +vt 0.062519 0.603802 +vt 0.073130 0.616642 +vt 0.051880 0.682243 +vt 0.062490 0.700264 +vt 0.051880 0.700264 +vt 0.062490 0.682243 +vt 0.038162 0.653207 +vt 0.016938 0.659116 +vt 0.003769 0.646815 +vt 0.014364 0.633776 +vt 0.016213 0.618613 +vt 0.023743 0.621688 +vt 0.022455 0.610413 +vt 0.026964 0.616078 +vt 0.035571 0.605121 +vt 0.038162 0.608143 +vt 0.003713 0.646890 +vt 0.016882 0.659191 +vt 0.015057 0.640875 +vt 0.038105 0.653282 +vt 0.028383 0.641147 +vt 0.014307 0.633851 +vt 0.023073 0.630608 +vt 0.022398 0.610487 +vt 0.038105 0.608218 +vt 0.035515 0.605196 +vt 0.062490 0.603802 +vt 0.073130 0.603802 +vt 0.646204 0.426405 +vt 0.878178 0.440836 +vt 0.646204 0.440836 +vt 0.719647 0.492539 +vt 0.698103 0.514756 +vt 0.698103 0.497914 +vt 0.878178 0.384598 +vt 0.646204 0.399029 +vt 0.646204 0.384598 +vt 0.719705 0.520131 +vt 0.733219 0.497914 +vt 0.733219 0.514756 +vt 0.776463 0.497914 +vt 0.778386 0.500018 +vt 0.779183 0.505097 +vt 0.894825 0.426405 +vt 0.894825 0.399029 +vt 0.776463 0.514756 +vt 0.855653 0.341692 +vt 0.646204 0.341692 +vt 0.649263 0.514756 +vt 0.649263 0.497914 +vt 0.855653 0.483742 +vt 0.646204 0.483742 +vt 0.853950 0.332960 +vt 0.646212 0.329338 +vt 0.853970 0.329334 +vt 0.647090 0.512652 +vt 0.646190 0.507573 +vt 0.854224 0.492481 +vt 0.646190 0.487380 +vt 0.854639 0.487380 +vt 0.646192 0.338059 +vt 0.646192 0.332964 +vt 0.854365 0.338054 +vt 0.719647 0.520131 +vt 0.719705 0.492539 +vt 0.779183 0.507573 +vt 0.778386 0.512652 +vt 0.646190 0.505097 +vt 0.647090 0.500018 +vt 0.646190 0.492481 +vt 0.625344 0.493036 +vt 0.640162 0.518702 +vt 0.625344 0.544367 +vt 0.991730 0.947997 +vt 0.418732 0.989883 +vt 0.418732 0.947997 +vt 0.991635 0.719134 +vt 0.418637 0.761020 +vt 0.418637 0.719134 +vt 0.991730 0.831816 +vt 0.418732 0.864225 +vt 0.418732 0.831816 +vt 0.490671 0.507650 +vt 0.475853 0.481984 +vt 0.500255 0.498345 +vt 0.991730 0.864225 +vt 0.418732 0.906111 +vt 0.991635 0.761020 +vt 0.418637 0.793429 +vt 0.991635 0.793430 +vt 0.418685 0.803430 +vt 0.553293 0.462750 +vt 0.580706 0.480770 +vt 0.580706 0.523168 +vt 0.418684 0.821815 +vt 0.991682 0.803430 +vt 0.991682 0.821815 +vt 0.534684 0.462750 +vt 0.553293 0.455917 +vt 0.507087 0.516954 +vt 0.500255 0.516954 +vt 0.945706 0.603823 +vt 0.418637 0.633459 +vt 0.418637 0.603823 +vt 0.945706 0.574187 +vt 0.418637 0.574187 +vt 0.431399 0.507650 +vt 0.418637 0.507650 +vt 0.439836 0.470932 +vt 0.418637 0.544551 +vt 0.945706 0.692732 +vt 0.418637 0.722368 +vt 0.418637 0.692732 +vt 0.945706 0.663096 +vt 0.418637 0.663096 +vt 0.595708 0.544367 +vt 0.580890 0.518702 +vt 0.595708 0.493036 +vt 0.991730 0.989883 +vt 0.482234 0.544367 +vt 0.439836 0.544367 +vt 0.446217 0.533315 +vt 0.475853 0.533315 +vt 0.482234 0.470932 +vt 0.991730 0.906111 +vt 0.543988 0.544367 +vt 0.507270 0.523168 +vt 0.507270 0.480770 +vt 0.534684 0.455917 +vt 0.507087 0.498345 +vt 0.945706 0.633460 +vt 0.446217 0.481984 +vt 0.945706 0.544551 +vt 0.945706 0.722369 +vt 0.943217 0.267157 +vt 0.926816 0.200969 +vt 0.943283 0.201022 +vt 0.518614 0.365977 +vt 0.408575 0.434977 +vt 0.407603 0.364763 +vt 0.691811 0.182540 +vt 0.679816 0.194589 +vt 0.663431 0.198999 +vt 0.790430 0.010515 +vt 0.806586 0.087515 +vt 0.789182 0.087383 +vt 0.807179 0.145714 +vt 0.787864 0.145480 +vt 0.807338 0.184720 +vt 0.787235 0.184419 +vt 0.806826 0.224675 +vt 0.787363 0.224372 +vt 0.804592 0.265004 +vt 0.789455 0.265203 +vt 0.762991 0.269202 +vt 0.734295 0.228422 +vt 0.750382 0.227248 +vt 0.563830 0.425463 +vt 0.561372 0.428039 +vt 0.544436 0.431268 +vt 0.380990 0.436844 +vt 0.380928 0.362943 +vt 0.979855 0.330577 +vt 0.997279 0.332894 +vt 0.977666 0.372086 +vt 0.942886 0.339656 +vt 0.925073 0.327372 +vt 0.943524 0.327508 +vt 0.924933 0.296851 +vt 0.943938 0.297107 +vt 0.926017 0.267118 +vt 0.890449 0.371970 +vt 0.888609 0.330033 +vt 0.898082 0.372863 +vt 0.944098 0.108972 +vt 0.927549 0.003861 +vt 0.945038 0.003989 +vt 0.959510 0.201115 +vt 0.960758 0.109163 +vt 0.976114 0.201189 +vt 0.977479 0.109415 +vt 0.993182 0.201234 +vt 0.962153 0.005475 +vt 0.979285 0.009325 +vt 0.996344 0.014550 +vt 0.994366 0.109702 +vt 0.775076 0.010580 +vt 0.772288 0.086759 +vt 0.759833 0.011018 +vt 0.755934 0.085737 +vt 0.744532 0.011615 +vt 0.769275 0.144608 +vt 0.751693 0.143162 +vt 0.740273 0.084551 +vt 0.767874 0.184311 +vt 0.749248 0.184148 +vt 0.735539 0.141562 +vt 0.768470 0.225353 +vt 0.732209 0.183909 +vt 0.859569 0.229149 +vt 0.830692 0.269217 +vt 0.843603 0.227804 +vt 0.468619 0.053761 +vt 0.510338 0.123074 +vt 0.595077 0.093538 +vt 0.961775 0.328544 +vt 0.957372 0.356859 +vt 0.970094 0.372916 +vt 0.967925 0.378672 +vt 0.962614 0.296741 +vt 0.981202 0.295983 +vt 0.960092 0.266798 +vt 0.976967 0.265877 +vt 0.994071 0.264483 +vt 0.999243 0.294996 +vt 0.876930 0.200545 +vt 0.893760 0.108906 +vt 0.893992 0.200716 +vt 0.910487 0.108862 +vt 0.910592 0.200854 +vt 0.927152 0.108880 +vt 0.876092 0.013774 +vt 0.876866 0.108983 +vt 0.893223 0.008764 +vt 0.910408 0.005131 +vt 0.852123 0.012128 +vt 0.839893 0.086276 +vt 0.836793 0.011364 +vt 0.823504 0.087100 +vt 0.821522 0.010763 +vt 0.806135 0.010538 +vt 0.855599 0.085278 +vt 0.843397 0.143865 +vt 0.825787 0.145081 +vt 0.859584 0.142485 +vt 0.845278 0.184879 +vt 0.826683 0.184818 +vt 0.862281 0.184873 +vt 0.825634 0.225751 +vt 0.818535 0.268782 +vt 0.775293 0.268889 +vt 0.772790 0.270569 +vt 0.910854 0.356249 +vt 0.906755 0.328195 +vt 0.925628 0.339795 +vt 0.871053 0.332174 +vt 0.887683 0.295354 +vt 0.906271 0.296322 +vt 0.875237 0.263718 +vt 0.869636 0.294124 +vt 0.892311 0.265344 +vt 0.909163 0.266501 +vt 0.582746 0.275394 +vt 0.511691 0.273824 +vt 0.532576 0.229852 +vt 0.385204 0.353185 +vt 0.378416 0.357051 +vt 0.385461 0.446926 +vt 0.378416 0.442955 +vt 0.541558 0.357450 +vt 0.542017 0.367230 +vt 0.518528 0.356368 +vt 0.407993 0.355379 +vt 0.520482 0.442763 +vt 0.520351 0.432941 +vt 0.409011 0.444549 +vt 0.558437 0.440307 +vt 0.544431 0.441003 +vt 0.555710 0.356970 +vt 0.559936 0.369073 +vt 0.646114 0.198999 +vt 0.613344 0.166080 +vt 0.629729 0.194589 +vt 0.617734 0.182540 +vt 0.613344 0.042471 +vt 0.696201 0.042471 +vt 0.617734 0.025385 +vt 0.646114 0.008299 +vt 0.629729 0.012877 +vt 0.663431 0.008299 +vt 0.679816 0.012877 +vt 0.691811 0.025385 +vt 0.696201 0.166080 +vt 0.756059 0.278834 +vt 0.569442 0.389177 +vt 0.562759 0.371542 +vt 0.568477 0.408219 +vt 0.970560 0.373529 +vt 0.897611 0.373479 +vt 0.837449 0.278834 +vt 0.578450 0.350139 +vt 0.600326 0.350269 +vt 0.581469 0.311429 +vt 0.582456 0.274854 +vt 0.592028 0.246226 +vt 0.532286 0.229312 +vt 0.600326 0.184395 +vt 0.531487 0.182600 +vt 0.474553 0.313093 +vt 0.511401 0.273284 +vt 0.458214 0.299160 +vt 0.580090 0.000344 +vt 0.900263 0.378672 +vt 0.820992 0.270468 +vt 0.581759 0.311969 +vt 0.600616 0.350809 +vt 0.578739 0.350680 +vt 0.474843 0.313633 +vt 0.458504 0.299700 +vt 0.600616 0.184935 +vt 0.592318 0.246766 +vt 0.580380 0.000884 +vt 0.595367 0.094079 +vt 0.468908 0.054301 +vt 0.531777 0.183140 +vt 0.510628 0.123614 +vt 0.297467 0.534291 +vt 0.274155 0.499064 +vt 0.297243 0.498318 +vt 0.227832 0.136510 +vt 0.174947 0.178032 +vt 0.174947 0.134818 +vt 0.150989 0.134818 +vt 0.123971 0.178032 +vt 0.123971 0.134818 +vt 0.200788 0.500764 +vt 0.132092 0.532286 +vt 0.132160 0.500166 +vt 0.214968 0.437985 +vt 0.226791 0.481199 +vt 0.214968 0.481199 +vt 0.079276 0.532213 +vt 0.079413 0.499857 +vt 0.057683 0.542811 +vt 0.014470 0.373714 +vt 0.057683 0.373714 +vt 0.014470 0.297454 +vt 0.057683 0.297454 +vt 0.014470 0.283833 +vt 0.057683 0.283833 +vt 0.057683 0.113331 +vt 0.013017 0.065497 +vt 0.056230 0.065497 +vt 0.014470 0.016834 +vt 0.057683 0.016834 +vt 0.237608 0.128706 +vt 0.194395 0.112011 +vt 0.237608 0.112011 +vt 0.237608 0.084028 +vt 0.194395 0.084028 +vt 0.395586 0.134818 +vt 0.320659 0.178032 +vt 0.320659 0.134818 +vt 0.288579 0.178032 +vt 0.288579 0.134818 +vt 0.227832 0.179723 +vt 0.255763 0.532612 +vt 0.255630 0.500001 +vt 0.322696 0.499422 +vt 0.102246 0.134818 +vt 0.057683 0.266401 +vt 0.014470 0.266401 +vt 0.057683 0.248783 +vt 0.057683 0.149002 +vt 0.014470 0.113331 +vt 0.014470 0.221674 +vt 0.057683 0.195076 +vt 0.057683 0.221674 +vt 0.014470 0.195076 +vt 0.057683 0.172522 +vt 0.014470 0.172522 +vt 0.016695 0.573883 +vt 0.014470 0.542811 +vt 0.059906 0.573475 +vt 0.200772 0.493328 +vt 0.200752 0.539591 +vt 0.255530 0.540026 +vt 0.081573 0.492375 +vt 0.132204 0.492739 +vt 0.081385 0.539720 +vt 0.132085 0.539722 +vt 0.273731 0.491419 +vt 0.273669 0.541133 +vt 0.297535 0.542407 +vt 0.297180 0.490341 +vt 0.324958 0.491786 +vt 0.255382 0.492566 +vt 0.323509 0.532260 +vt 0.326077 0.540048 +vt 0.274083 0.533455 +vt 0.200769 0.532142 +vt 0.102246 0.178032 +vt 0.072626 0.178537 +vt 0.066927 0.173242 +vt 0.014470 0.248783 +vt 0.252413 0.299074 +vt 0.247711 0.266360 +vt 0.265474 0.253139 +vt 0.347835 0.437985 +vt 0.333125 0.481199 +vt 0.333125 0.437985 +vt 0.278296 0.371798 +vt 0.255762 0.406113 +vt 0.304964 0.380163 +vt 0.126705 0.437985 +vt 0.149854 0.481199 +vt 0.126705 0.481199 +vt 0.105371 0.481199 +vt 0.083023 0.481199 +vt 0.105371 0.437985 +vt 0.185249 0.481199 +vt 0.170540 0.437985 +vt 0.185249 0.437985 +vt 0.149854 0.437985 +vt 0.142525 0.407099 +vt 0.095062 0.406915 +vt 0.094990 0.420685 +vt 0.189013 0.208764 +vt 0.178255 0.228217 +vt 0.182352 0.205687 +vt 0.266064 0.437985 +vt 0.314159 0.481199 +vt 0.266064 0.481199 +vt 0.201933 0.481199 +vt 0.201933 0.437985 +vt 0.083023 0.437985 +vt 0.067806 0.481199 +vt 0.067806 0.437985 +vt 0.314159 0.437985 +vt 0.302377 0.096782 +vt 0.259164 0.096782 +vt 0.259164 0.068822 +vt 0.140317 0.016548 +vt 0.183531 0.016548 +vt 0.183531 0.066473 +vt 0.346660 0.119615 +vt 0.316528 0.047608 +vt 0.346660 0.018813 +vt 0.134626 0.123141 +vt 0.091413 0.123141 +vt 0.091413 0.091454 +vt 0.182465 0.205434 +vt 0.178341 0.227957 +vt 0.189121 0.208518 +vt 0.142811 0.318849 +vt 0.106663 0.304088 +vt 0.096286 0.317803 +vt 0.106731 0.304422 +vt 0.142844 0.319109 +vt 0.096399 0.318133 +vt 0.096132 0.328492 +vt 0.095144 0.391955 +vt 0.142645 0.407391 +vt 0.173442 0.421287 +vt 0.095018 0.421173 +vt 0.142550 0.392168 +vt 0.095208 0.379505 +vt 0.142550 0.379683 +vt 0.095240 0.364539 +vt 0.095994 0.328301 +vt 0.142493 0.338592 +vt 0.095735 0.337534 +vt 0.095447 0.348525 +vt 0.141439 0.364519 +vt 0.095064 0.392252 +vt 0.095040 0.407371 +vt 0.095061 0.379937 +vt 0.142633 0.392298 +vt 0.095152 0.364467 +vt 0.142649 0.379782 +vt 0.259164 0.053641 +vt 0.302377 0.016377 +vt 0.302377 0.053641 +vt 0.141702 0.349557 +vt 0.095557 0.348555 +vt 0.142514 0.338724 +vt 0.095886 0.337698 +vt 0.419487 0.047607 +vt 0.389355 0.119615 +vt 0.389355 0.018813 +vt 0.243991 0.335751 +vt 0.246078 0.369705 +vt 0.275064 0.330321 +vt 0.252421 0.298907 +vt 0.275116 0.330356 +vt 0.244051 0.335934 +vt 0.246192 0.369866 +vt 0.278506 0.371699 +vt 0.255877 0.406248 +vt 0.244051 0.481199 +vt 0.226791 0.437985 +vt 0.244051 0.437985 +vt 0.150989 0.178032 +vt 0.194395 0.128706 +vt 0.194395 0.018352 +vt 0.237608 0.018352 +vt 0.194395 0.031562 +vt 0.237608 0.031562 +vt 0.244744 0.044028 +vt 0.244744 0.056041 +vt 0.237608 0.068846 +vt 0.187260 0.056173 +vt 0.187260 0.044160 +vt 0.194395 0.068846 +vt 0.241962 0.093665 +vt 0.241962 0.102774 +vt 0.190042 0.102906 +vt 0.190042 0.093797 +vt 0.395586 0.178032 +vt 0.014470 0.149002 +vt 0.054613 0.579282 +vt 0.022097 0.579589 +vt 0.066620 0.140727 +vt 0.072218 0.135325 +vt 0.356499 0.246980 +vt 0.443465 0.099671 +vt 0.433400 0.210690 +vt 0.471476 0.094183 +vt 0.456341 0.143787 +vt 0.407763 0.260852 +vt 0.398402 0.276971 +vt 0.390252 0.298924 +vt 0.391156 0.326394 +vt 0.364541 0.338678 +vt 0.344885 0.348510 +vt 0.267887 0.196031 +vt 0.278108 0.210100 +vt 0.272278 0.213559 +vt 0.283524 0.222603 +vt 0.274257 0.237995 +vt 0.322365 0.363503 +vt 0.305026 0.380279 +vt 0.252889 0.186910 +vt 0.262384 0.200164 +vt 0.271393 0.428457 +vt 0.206113 0.428467 +vt 0.175785 0.407489 +vt 0.249506 0.193155 +vt 0.275676 0.226164 +vt 0.193774 0.297327 +vt 0.199154 0.268291 +vt 0.347835 0.481199 +vt 0.471677 0.094230 +vt 0.443665 0.099691 +vt 0.456496 0.143819 +vt 0.356562 0.246916 +vt 0.433493 0.210699 +vt 0.283614 0.222464 +vt 0.278212 0.209955 +vt 0.272378 0.213407 +vt 0.268007 0.195875 +vt 0.253020 0.186738 +vt 0.262499 0.200002 +vt 0.407809 0.260835 +vt 0.398434 0.276945 +vt 0.390263 0.298890 +vt 0.274330 0.237845 +vt 0.364518 0.338619 +vt 0.391142 0.326361 +vt 0.344854 0.348432 +vt 0.249629 0.192979 +vt 0.275762 0.226016 +vt 0.265530 0.252980 +vt 0.322320 0.363406 +vt 0.173251 0.421067 +vt 0.205929 0.428299 +vt 0.175622 0.407277 +vt 0.271272 0.428353 +vt 0.247754 0.266183 +vt 0.199195 0.268058 +vt 0.193783 0.297091 +vt 0.170540 0.481199 +vt 0.225914 0.187076 +vt 0.228912 0.193503 +vt 0.199895 0.191746 +vt 0.206028 0.196086 +vt 0.157686 0.258627 +vt 0.169596 0.225253 +vt 0.177851 0.243385 +vt 0.106758 0.258651 +vt 0.143323 0.296417 +vt 0.143126 0.305374 +vt 0.184116 0.256688 +vt 0.302377 0.110423 +vt 0.302377 0.119336 +vt 0.259164 0.110469 +vt 0.259163 0.119336 +vt 0.306730 0.078591 +vt 0.306730 0.087700 +vt 0.254810 0.087568 +vt 0.254810 0.078459 +vt 0.302377 0.068822 +vt 0.183531 0.123939 +vt 0.140317 0.123939 +vt 0.140317 0.066473 +vt 0.316528 0.090821 +vt 0.091413 0.015750 +vt 0.134626 0.015750 +vt 0.134626 0.091454 +vt 0.106775 0.258282 +vt 0.143314 0.296134 +vt 0.143108 0.305052 +vt 0.157734 0.258343 +vt 0.184169 0.256437 +vt 0.169686 0.224983 +vt 0.177919 0.243125 +vt 0.226046 0.186873 +vt 0.200022 0.191514 +vt 0.206150 0.195860 +vt 0.229036 0.193303 +vt 0.142898 0.329338 +vt 0.142852 0.329212 +vt 0.141690 0.349257 +vt 0.141520 0.364833 +vt 0.252028 0.040835 +vt 0.259164 0.016377 +vt 0.252028 0.028822 +vt 0.309512 0.028954 +vt 0.309512 0.040967 +vt 0.419487 0.090821 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.9761 0.2173 +vn 0.0000 0.9056 0.4242 +vn 0.0000 0.2225 -0.9749 +vn -0.0420 0.7668 -0.6405 +vn 0.0382 0.7683 -0.6390 +vn 0.0000 -1.0000 0.0061 +vn 0.0199 0.9997 0.0174 +vn 0.0205 0.9890 0.1463 +vn -0.0199 0.9997 0.0174 +vn -0.0000 0.9809 0.1946 +vn 0.0000 0.9155 -0.4023 +vn -0.0000 0.4940 -0.8694 +vn -0.0186 0.7451 -0.6667 +vn 0.0187 0.7735 -0.6336 +vn -0.0206 0.9890 0.1463 +vn 0.0000 -0.4751 -0.8800 +vn 0.0000 -0.5642 -0.8256 +vn 0.0000 -0.1223 -0.9925 +vn 0.0000 0.3628 -0.9319 +vn 0.0000 0.7269 -0.6868 +vn 0.0000 0.8575 -0.5145 +vn 0.0000 -0.5913 -0.8064 +vn 0.0000 -0.8388 0.5445 +vn 0.0000 -0.9531 0.3026 +vn 0.0000 -0.4458 0.8952 +vn 0.0000 -0.0834 0.9965 +vn 0.0000 0.0303 0.9995 +vn 0.0000 -0.9165 0.3999 +vn 0.0000 0.6768 0.7362 +vn 0.0000 0.9810 -0.1943 +vn 0.0000 -0.5914 -0.8064 +vn -0.9292 -0.3696 -0.0000 +vn -0.9658 -0.2592 -0.0000 +vn -0.9821 -0.1882 0.0000 +vn 0.0000 -0.7788 -0.6273 +vn 0.0000 -0.6466 -0.7629 +vn 0.9658 -0.2592 -0.0000 +vn 0.9292 -0.3696 -0.0000 +vn 0.9821 -0.1882 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9538 -0.3003 -0.0000 +vn 0.9151 -0.4033 -0.0000 +vn 0.0000 -0.4649 -0.8854 +vn -0.9538 -0.3003 -0.0000 +vn -0.9151 -0.4033 -0.0000 +vn 0.0797 -0.9968 -0.0000 +vn -0.0777 -0.9970 -0.0000 +vn -0.0797 -0.9968 -0.0000 +vn 0.0000 -0.4649 -0.8853 +vn -0.4332 -0.9013 -0.0000 +vn -0.4666 -0.8845 -0.0000 +vn 0.4332 -0.9013 -0.0000 +vn 0.0777 -0.9970 -0.0000 +vn 0.4666 -0.8845 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 0.8801 0.4747 0.0000 +vn -0.5493 0.8356 0.0000 +vn -0.8801 0.4747 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5493 0.8356 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.1301 0.6195 0.7741 +vn -0.1301 0.4620 0.8773 +vn 0.1301 0.4620 0.8773 +vn -0.0000 0.5645 -0.8254 +vn -0.0000 0.8133 -0.5819 +vn 0.0000 -1.0000 -0.0000 +vn 0.1295 0.0940 -0.9871 +vn -0.1323 -0.0052 -0.9912 +vn 0.1322 -0.0052 -0.9912 +vn -0.1340 -0.2621 -0.9557 +vn 0.1340 -0.2621 -0.9557 +vn -0.1365 -0.6074 -0.7826 +vn 0.1365 -0.6074 -0.7826 +vn -0.1352 -0.8771 -0.4608 +vn 0.1352 -0.8771 -0.4608 +vn -0.0808 -0.9622 -0.2603 +vn 0.0808 -0.9622 -0.2603 +vn 0.7746 -0.6264 -0.0870 +vn 0.9945 -0.0968 -0.0405 +vn 0.8887 -0.4230 -0.1767 +vn -0.0000 -0.5480 -0.8365 +vn -0.0000 0.8992 -0.4375 +vn 0.8698 0.1565 0.4679 +vn 0.9938 0.0274 0.1074 +vn 0.9228 0.0804 0.3768 +vn 0.0986 0.3350 0.9370 +vn -0.1326 0.3486 0.9278 +vn 0.1326 0.3486 0.9278 +vn -0.1335 0.5772 0.8056 +vn 0.1335 0.5772 0.8056 +vn -0.1301 0.6195 0.7741 +vn -0.9228 0.0804 0.3768 +vn -0.8698 0.1565 0.4679 +vn -0.7544 0.1070 0.6477 +vn 0.1301 0.3290 0.9353 +vn -0.1273 0.2812 0.9512 +vn 0.1273 0.2812 0.9512 +vn 0.4948 0.4049 0.7689 +vn 0.4968 0.2880 0.8187 +vn 0.8601 0.2377 0.4514 +vn 0.8626 0.1679 0.4771 +vn 0.9905 0.0642 0.1218 +vn 0.4781 0.2490 0.8423 +vn 0.8441 0.1520 0.5141 +vn 0.9881 0.0437 0.1477 +vn 0.9909 0.0446 0.1269 +vn 0.4931 0.0825 -0.8661 +vn 0.5089 -0.0045 -0.8608 +vn 0.8591 0.0485 -0.5095 +vn 0.8741 -0.0026 -0.4858 +vn 0.9904 0.0131 -0.1377 +vn 0.5163 -0.2265 -0.8259 +vn 0.8799 -0.1257 -0.4583 +vn 0.9926 -0.0006 -0.1217 +vn 0.5261 -0.5214 -0.6718 +vn 0.8869 -0.2832 -0.3649 +vn 0.9933 -0.0306 -0.1117 +vn 0.5029 -0.7822 -0.3678 +vn 0.9941 -0.0667 -0.0860 +vn -0.9945 -0.0968 -0.0405 +vn -0.7747 -0.6264 -0.0870 +vn -0.8887 -0.4230 -0.1767 +vn 0.5105 0.3024 0.8049 +vn 0.3336 0.5327 0.7778 +vn 0.7543 0.1069 0.6477 +vn 0.0001 0.8288 0.5595 +vn -0.0001 0.8288 0.5595 +vn -0.0000 0.8185 0.5745 +vn 0.5145 0.4994 0.6971 +vn 0.8785 0.2783 0.3884 +vn 0.4948 0.5430 0.6785 +vn 0.8601 0.3187 0.3982 +vn 0.9905 0.0860 0.1075 +vn 0.9931 0.0683 0.0953 +vn -0.9905 0.0642 0.1219 +vn -0.8626 0.1679 0.4771 +vn -0.8601 0.2377 0.4514 +vn -0.4968 0.2880 0.8187 +vn -0.4948 0.4049 0.7689 +vn -0.1301 0.3290 0.9353 +vn -0.9881 0.0437 0.1477 +vn -0.9909 0.0446 0.1269 +vn -0.8441 0.1520 0.5141 +vn -0.4781 0.2490 0.8423 +vn -0.9904 0.0131 -0.1377 +vn -0.8741 -0.0026 -0.4858 +vn -0.8591 0.0485 -0.5095 +vn -0.5089 -0.0045 -0.8608 +vn -0.4931 0.0825 -0.8661 +vn -0.1295 0.0940 -0.9871 +vn -0.9926 -0.0006 -0.1217 +vn -0.8799 -0.1257 -0.4583 +vn -0.5163 -0.2265 -0.8259 +vn -0.9933 -0.0306 -0.1117 +vn -0.8869 -0.2832 -0.3649 +vn -0.5261 -0.5214 -0.6718 +vn -0.9941 -0.0667 -0.0860 +vn -0.5029 -0.7822 -0.3678 +vn -0.3318 -0.9223 -0.1983 +vn 0.3318 -0.9223 -0.1983 +vn 0.4610 -0.8818 -0.0993 +vn -0.3336 0.5327 0.7778 +vn -0.5105 0.3024 0.8049 +vn -0.0986 0.3350 0.9370 +vn -0.9938 0.0274 0.1074 +vn -0.8785 0.2782 0.3884 +vn -0.5145 0.4994 0.6971 +vn -0.9905 0.0860 0.1075 +vn -0.9931 0.0682 0.0953 +vn -0.8601 0.3187 0.3982 +vn -0.4948 0.5430 0.6785 +vn 0.7184 0.6547 -0.2351 +vn 0.7258 0.6612 -0.1896 +vn 0.7397 0.6729 0.0012 +vn -0.7258 0.6612 -0.1896 +vn -0.7184 0.6547 -0.2351 +vn -0.7397 0.6729 0.0012 +vn 0.7127 0.3923 -0.5816 +vn 0.7116 0.2849 -0.6423 +vn 0.7115 0.2849 -0.6424 +vn 0.7070 0.5751 -0.4116 +vn 0.7123 0.4004 -0.5764 +vn 0.7070 0.5751 -0.4115 +vn -0.7124 0.4004 -0.5764 +vn -0.7070 0.5751 -0.4116 +vn -0.7127 0.3923 -0.5816 +vn -0.7070 0.5751 -0.4115 +vn -0.5760 -0.6122 -0.5417 +vn -0.5677 -0.6176 -0.5443 +vn -0.5896 -0.6030 -0.5373 +vn -0.7116 0.2849 -0.6423 +vn -0.7115 0.2849 -0.6424 +vn 0.5759 -0.6122 -0.5417 +vn 0.5677 -0.6176 -0.5443 +vn 0.5579 -0.6239 -0.5472 +vn 0.0000 0.4061 -0.9138 +vn 0.9813 -0.1926 -0.0011 +vn 0.7426 -0.0035 0.6698 +vn -0.7427 -0.0034 0.6697 +vn -0.9813 -0.1925 -0.0011 +vn 0.0001 0.8185 0.5745 +vn 0.0003 0.8185 0.5746 +vn -0.4610 -0.8818 -0.0993 +vn -0.5579 -0.6239 -0.5472 +vn 0.5896 -0.6030 -0.5373 +vn 0.0000 0.2108 0.9775 +vn 0.0000 0.4723 0.8814 +vn 0.0000 0.6194 0.7851 +vn 0.0000 0.6889 0.7248 +vn 0.0000 0.8100 0.5864 +vn 0.0000 0.8877 0.4603 +vn 0.0000 0.4372 0.8994 +vn 0.0000 0.3563 0.9344 +vn 0.0000 0.0622 -0.9981 +vn 0.0000 -0.3276 -0.9448 +vn 0.0000 0.3403 0.9403 +vn 0.0000 -0.5438 -0.8392 +vn 0.0000 -0.9411 0.3382 +vn 0.0000 -0.3867 0.9222 +vn 0.0000 -0.4862 0.8739 +vn 0.0000 -0.5780 -0.8160 +vn 0.0000 0.9933 -0.1158 +vn 0.0000 0.9943 -0.1065 +vn 0.0000 0.9998 0.0187 +vn 0.0000 0.5230 0.8523 +vn 0.0000 0.0182 0.9998 +vn 0.0000 0.9338 0.3578 +vn 0.0000 -0.7290 0.6845 +vn 0.0000 -0.9616 0.2745 +vn 0.0000 -0.4386 -0.8987 +vn 0.0000 -0.3274 -0.9449 +vn 0.0000 -0.9962 -0.0866 +vn 0.0000 -0.9120 -0.4103 +vn 0.0000 -0.6722 -0.7404 +vn 0.0000 -0.9995 -0.0317 +vn 0.7080 0.3088 0.6351 +vn 0.7072 0.3698 0.6026 +vn -0.7080 0.3088 0.6351 +vn -0.7072 0.3698 0.6026 +vn 0.7072 0.2520 0.6606 +vn 0.7071 0.2406 0.6649 +vn 0.7072 0.2519 0.6607 +vn -0.7071 0.2406 0.6649 +vn -0.7072 0.2520 0.6606 +vn -0.7072 0.2519 0.6607 +vn 0.7084 0.3334 0.6221 +vn 0.7138 0.1476 0.6846 +vn -0.7084 0.3333 0.6221 +vn -0.7138 0.1476 0.6846 +vn 0.7071 0.0129 0.7070 +vn -0.7071 0.0129 0.7070 +vn -0.0000 0.9524 0.3048 +vn 0.0000 -0.2132 0.9770 +vn 0.0000 -0.6337 0.7736 +vn 0.0000 0.9308 0.3656 +vn 0.0000 0.9982 0.0595 +vn 0.0000 0.6570 0.7539 +vn 0.0000 0.2580 0.9661 +vn 0.0000 0.7484 -0.6633 +vn 0.0000 0.9693 -0.2458 +vn 0.9853 0.1709 0.0000 +vn 0.9664 0.2570 0.0001 +vn 0.0000 -0.9442 -0.3293 +vn 0.0000 -0.9989 -0.0474 +vn 0.0000 0.4264 -0.9045 +vn 0.0000 -0.7977 0.6030 +vn 0.9757 -0.2189 0.0000 +vn 0.9625 -0.2713 0.0001 +vn -0.9751 -0.2217 0.0000 +vn -0.9616 -0.2746 0.0001 +vn -0.9752 -0.2212 0.0001 +vn 0.9664 0.2571 0.0001 +vn -0.9855 0.1695 0.0000 +vn 0.9663 0.2574 0.0000 +vn 0.9679 -0.2515 0.0000 +vn 0.9758 -0.2185 0.0001 +vn 0.9776 0.2106 0.0000 +vn -0.9670 0.2549 0.0001 +vn -0.9670 0.2548 0.0001 +vn -0.9673 -0.2536 0.0000 +vn -0.9669 0.2552 0.0000 +vn -0.9781 0.2081 0.0000 +vn 0.5733 0.2131 0.7912 +vn 0.5789 -0.1967 0.7913 +vn 0.5756 0.1979 0.7934 +vn 0.5053 0.4828 0.7152 +vn 0.5758 -0.2183 0.7879 +vn 0.5109 -0.4883 0.7075 +vn -0.5122 -0.4895 0.7058 +vn -0.5766 -0.2205 0.7867 +vn -0.5804 -0.1975 0.7900 +vn -0.5771 0.1993 0.7920 +vn -0.5746 0.2114 0.7907 +vn -0.5052 0.4828 0.7153 +vn 0.0000 -0.6762 -0.7367 +s 1 +f 331/675/160 332/676/160 333/677/160 +f 334/678/160 335/679/160 336/680/160 +f 337/681/161 338/682/161 339/683/161 +f 340/684/161 341/685/161 342/686/161 +f 343/687/162 339/688/163 344/689/163 +f 331/690/164 345/691/165 332/692/166 +f 344/693/167 338/694/167 331/690/167 +f 333/695/168 346/696/162 343/687/162 +f 335/697/169 337/698/170 333/695/168 +f 334/699/171 347/700/172 342/701/171 +f 348/702/173 347/700/172 349/703/172 +f 348/702/173 340/704/174 350/705/173 +f 335/697/169 332/706/166 336/707/175 +f 341/708/176 345/709/165 337/698/170 +f 341/710/176 334/699/171 342/701/171 +f 336/707/175 345/709/165 340/711/174 +f 333/677/160 343/712/160 344/713/160 +f 344/713/160 331/675/160 333/677/160 +f 336/680/160 348/714/160 334/678/160 +f 348/714/160 349/715/160 334/678/160 +f 339/683/161 346/716/161 337/681/161 +f 337/681/161 345/717/161 338/682/161 +f 347/718/161 350/719/161 342/686/161 +f 350/719/161 340/684/161 342/686/161 +f 343/687/162 346/696/162 339/688/163 +f 331/690/164 338/694/164 345/691/165 +f 344/693/167 339/720/167 338/694/167 +f 333/695/168 337/698/170 346/696/162 +f 335/697/169 341/708/176 337/698/170 +f 334/699/171 349/703/172 347/700/172 +f 348/702/173 350/705/173 347/700/172 +f 348/702/173 336/721/175 340/704/174 +f 335/697/169 333/695/168 332/706/166 +f 341/708/176 340/711/174 345/709/165 +f 341/710/176 335/722/169 334/699/171 +f 336/707/175 332/706/166 345/709/165 +f 351/723/160 352/724/160 353/725/160 +f 354/726/161 355/727/161 356/728/161 +f 352/729/177 357/730/178 358/731/178 +f 351/732/179 359/733/177 352/729/177 +f 360/734/180 361/735/179 351/732/179 +f 362/736/181 354/737/180 360/734/180 +f 363/738/182 355/739/181 362/736/181 +f 364/740/183 365/741/183 363/742/183 +f 366/743/184 367/744/185 364/740/185 +f 368/745/186 369/746/184 366/743/184 +f 370/747/187 356/748/186 368/745/186 +f 353/749/188 371/750/187 370/747/187 +f 372/751/189 373/752/189 353/749/189 +f 374/753/190 375/754/190 372/755/190 +f 358/731/191 376/756/191 374/753/191 +f 358/757/160 374/758/160 352/724/160 +f 374/758/160 372/759/160 353/725/160 +f 353/725/160 370/760/160 351/723/160 +f 370/760/160 368/761/160 351/723/160 +f 351/723/160 368/761/160 360/762/160 +f 374/758/160 353/725/160 352/724/160 +f 368/761/160 366/763/160 362/764/160 +f 360/762/160 368/761/160 362/764/160 +f 366/763/160 364/765/160 362/764/160 +f 364/765/160 363/766/160 362/764/160 +f 375/767/161 376/768/161 373/769/161 +f 376/768/161 357/770/161 359/771/161 +f 376/768/161 359/771/161 373/769/161 +f 356/728/161 371/772/161 361/773/161 +f 371/772/161 373/769/161 361/773/161 +f 373/769/161 359/771/161 361/773/161 +f 369/774/161 356/728/161 355/727/161 +f 365/775/161 367/776/161 355/727/161 +f 367/776/161 369/774/161 355/727/161 +f 356/728/161 361/773/161 354/726/161 +f 352/729/177 359/733/177 357/730/178 +f 351/732/179 361/735/179 359/733/177 +f 360/734/180 354/737/180 361/735/179 +f 362/736/181 355/739/181 354/737/180 +f 363/738/182 365/777/182 355/739/181 +f 364/740/183 367/744/192 365/741/183 +f 366/743/184 369/746/184 367/744/185 +f 368/745/186 356/748/186 369/746/184 +f 370/747/187 371/750/187 356/748/186 +f 353/749/188 373/752/188 371/750/187 +f 372/751/189 375/778/189 373/752/189 +f 374/753/190 376/756/190 375/754/190 +f 358/731/191 357/730/191 376/756/191 +f 377/779/193 378/780/194 379/781/195 +f 380/782/196 381/783/197 378/784/197 +f 381/785/198 382/786/199 383/787/200 +f 382/788/201 379/789/201 383/790/201 +f 384/791/201 385/792/201 386/793/201 +f 380/794/202 382/786/202 387/795/202 +f 383/790/201 384/791/201 388/796/201 +f 389/797/203 383/787/200 388/798/204 +f 378/784/197 389/799/205 390/800/205 +f 379/781/195 390/801/206 384/802/207 +f 391/803/208 386/804/209 392/805/210 +f 389/799/205 393/806/211 391/807/205 +f 392/808/210 385/809/212 394/810/213 +f 394/810/213 384/802/207 390/801/206 +f 391/803/208 395/811/214 396/812/215 +f 393/813/216 388/798/204 395/811/214 +f 377/779/193 380/794/193 378/780/194 +f 380/782/196 387/814/196 381/783/197 +f 381/785/198 387/795/199 382/786/199 +f 382/788/201 377/815/201 379/789/201 +f 386/793/201 396/816/201 388/796/201 +f 396/816/201 395/817/201 388/796/201 +f 388/796/201 384/791/201 386/793/201 +f 380/794/202 377/779/202 382/786/202 +f 383/790/201 379/789/201 384/791/201 +f 389/797/203 381/785/198 383/787/200 +f 378/784/197 381/783/197 389/799/205 +f 379/781/195 378/780/194 390/801/206 +f 391/803/208 396/812/215 386/804/209 +f 391/807/205 392/818/205 390/800/205 +f 392/818/205 394/819/211 390/800/205 +f 390/800/205 389/799/205 391/807/205 +f 392/808/210 386/820/209 385/809/212 +f 394/810/213 385/809/212 384/802/207 +f 391/803/208 393/813/216 395/811/214 +f 393/813/216 389/797/203 388/798/204 +f 397/821/217 398/822/217 399/823/217 +f 400/824/218 401/825/219 402/826/218 +f 403/827/219 404/828/220 401/829/219 +f 405/830/221 406/831/222 407/832/221 +f 408/833/217 409/834/217 405/835/217 +f 410/836/222 411/837/223 406/831/222 +f 411/837/223 400/824/224 402/826/224 +f 412/838/220 413/839/225 404/828/220 +f 414/840/160 415/841/160 413/839/160 +f 407/842/201 406/843/201 411/844/201 +f 416/845/202 417/846/202 418/847/202 +f 407/832/161 418/847/161 405/830/161 +f 413/848/201 416/849/201 407/842/201 +f 405/835/217 417/850/217 414/851/217 +f 399/852/224 408/853/224 419/854/224 +f 420/855/226 419/854/161 421/856/226 +f 422/857/217 400/858/217 423/859/217 +f 422/860/202 420/855/226 421/856/226 +f 424/861/227 422/862/202 425/863/227 +f 397/864/160 425/863/227 409/865/160 +f 408/853/218 397/864/218 409/865/218 +f 399/823/217 420/866/217 397/821/217 +f 420/866/217 426/867/217 397/821/217 +f 426/867/217 424/868/217 397/821/217 +f 400/824/218 403/869/219 401/825/219 +f 403/827/219 412/838/220 404/828/220 +f 405/830/221 410/836/222 406/831/222 +f 412/870/217 403/871/217 421/872/217 +f 412/870/217 421/872/217 419/873/217 +f 405/835/217 414/851/217 408/833/217 +f 414/851/217 412/870/217 419/873/217 +f 408/833/217 414/851/217 419/873/217 +f 409/834/217 410/874/217 405/835/217 +f 410/836/222 423/875/223 411/837/223 +f 411/837/223 423/875/223 400/824/224 +f 412/838/220 414/840/225 413/839/225 +f 414/840/160 417/846/160 415/841/160 +f 411/844/201 402/876/201 407/842/201 +f 402/876/201 401/877/201 413/848/201 +f 401/877/201 404/878/201 413/848/201 +f 413/848/201 407/842/201 402/876/201 +f 416/845/202 415/841/202 417/846/202 +f 407/832/161 416/845/161 418/847/161 +f 413/848/201 415/879/201 416/849/201 +f 405/835/217 418/880/217 417/850/217 +f 399/852/224 398/881/224 408/853/224 +f 420/855/226 399/852/161 419/854/161 +f 423/859/217 410/874/217 425/882/217 +f 410/874/217 409/834/217 425/882/217 +f 421/872/217 403/871/217 422/857/217 +f 403/871/217 400/858/217 422/857/217 +f 423/859/217 425/882/217 422/857/217 +f 422/860/202 426/883/202 420/855/226 +f 424/861/227 426/884/202 422/862/202 +f 397/864/160 424/861/227 425/863/227 +f 408/853/218 398/881/218 397/864/218 +f 427/885/228 428/886/229 429/887/230 +f 430/888/231 431/889/232 432/890/232 +f 433/891/233 434/892/233 435/893/233 +f 436/894/234 437/895/235 438/896/236 +f 438/896/236 439/897/237 440/898/238 +f 440/898/238 441/899/239 442/900/240 +f 442/900/240 443/901/241 444/902/242 +f 444/902/242 445/903/243 446/904/244 +f 447/905/245 448/906/246 449/907/247 +f 450/908/248 451/909/248 452/910/248 +f 432/890/232 453/911/249 454/912/249 +f 455/913/250 456/914/251 457/915/252 +f 458/916/253 459/917/254 460/918/255 +f 460/918/255 461/919/256 462/920/257 +f 462/920/257 463/921/258 427/885/228 +f 464/922/259 465/923/260 466/924/261 +f 467/925/262 468/926/263 469/927/264 +f 467/925/262 470/928/265 429/887/230 +f 471/929/266 472/930/267 470/928/265 +f 473/931/268 474/932/269 472/930/267 +f 467/925/262 475/933/270 471/929/266 +f 471/929/266 476/934/271 473/931/268 +f 473/931/268 477/935/272 478/936/273 +f 438/896/236 479/937/274 436/894/234 +f 480/938/275 481/939/276 479/937/274 +f 482/940/277 483/941/278 481/939/276 +f 440/898/238 480/938/275 438/896/236 +f 484/942/279 482/940/277 480/938/275 +f 485/943/280 486/944/281 482/940/277 +f 442/900/240 484/942/279 440/898/238 +f 487/945/282 485/943/280 484/942/279 +f 488/946/283 489/947/284 485/943/280 +f 442/900/240 490/948/285 487/945/282 +f 487/945/282 449/907/247 488/946/283 +f 488/946/283 448/906/246 491/949/286 +f 446/904/244 490/948/285 444/902/242 +f 492/950/287 493/951/288 494/952/289 +f 483/953/278 486/954/281 478/955/273 +f 458/916/253 495/956/290 496/957/291 +f 496/957/291 455/913/250 497/958/292 +f 466/924/293 497/958/294 454/959/295 +f 462/920/257 495/956/290 460/918/255 +f 498/960/296 455/913/250 495/956/290 +f 499/961/297 456/914/251 455/913/250 +f 462/920/257 500/962/298 498/960/296 +f 498/960/296 501/963/299 499/961/297 +f 499/961/297 502/964/300 503/965/301 +f 427/885/228 470/928/265 500/962/298 +f 500/962/298 472/930/267 501/963/299 +f 501/963/299 474/932/269 502/964/300 +f 504/966/302 505/967/303 506/968/304 +f 506/968/304 507/969/305 508/970/306 +f 508/970/306 509/971/307 428/886/229 +f 510/972/308 505/967/303 511/973/309 +f 512/974/310 507/969/305 505/967/303 +f 513/975/311 509/971/307 507/969/305 +f 514/976/312 515/977/313 433/978/314 +f 433/978/314 516/979/315 434/980/316 +f 434/980/316 437/895/235 435/981/317 +f 517/982/318 518/983/319 515/977/313 +f 515/977/313 519/984/320 516/979/315 +f 516/979/315 439/897/237 437/895/235 +f 520/985/321 521/986/322 518/983/319 +f 518/983/319 522/987/323 519/984/320 +f 519/984/320 441/899/239 439/897/237 +f 492/950/287 521/986/322 523/988/324 +f 494/952/289 522/987/323 521/986/322 +f 524/989/325 441/899/239 522/987/323 +f 493/951/288 450/990/326 524/989/325 +f 524/989/325 445/903/243 443/901/241 +f 525/991/327 526/992/328 447/905/245 +f 465/923/260 527/993/329 466/924/261 +f 528/994/330 529/995/331 527/993/329 +f 530/996/332 531/997/333 465/923/260 +f 465/923/260 532/998/334 528/994/330 +f 528/994/330 461/919/256 459/917/254 +f 533/999/335 531/997/333 534/1000/336 +f 535/1001/337 532/998/334 531/997/333 +f 536/1002/338 461/919/256 532/998/334 +f 504/966/302 535/1001/337 533/999/335 +f 506/968/304 536/1002/338 535/1001/337 +f 508/970/306 463/921/258 536/1002/338 +f 534/1003/336 492/1004/287 523/1005/324 +f 466/924/293 496/957/291 497/958/294 +f 527/993/329 458/916/253 496/957/291 +f 429/887/230 509/971/307 467/925/262 +f 457/1006/339 454/912/340 537/1007/341 +f 453/911/342 464/1008/343 538/1009/344 +f 430/888/345 539/1010/346 540/1011/347 +f 432/890/348 541/1012/349 430/888/345 +f 432/890/348 457/1006/339 542/1013/350 +f 543/1014/351 431/889/352 544/1015/353 +f 464/1008/343 431/889/352 545/1016/354 +f 452/910/355 493/1017/356 546/1018/357 +f 546/1018/358 544/1015/353 452/910/359 +f 540/1011/360 447/1019/361 526/1020/362 +f 540/1011/363 544/1015/231 430/888/231 +f 427/885/228 463/921/258 428/886/229 +f 430/888/231 544/1015/231 431/889/232 +f 435/893/233 436/1021/233 483/1022/233 +f 436/1021/233 479/1023/233 481/1024/233 +f 483/1022/233 436/1021/233 481/1024/233 +f 483/1022/233 477/1025/233 510/1026/233 +f 477/1025/233 476/1027/233 469/1028/233 +f 510/1026/233 477/1025/233 469/1028/233 +f 476/1027/233 475/1029/233 469/1028/233 +f 469/1028/233 468/1030/233 510/1026/233 +f 468/1030/233 513/1031/233 512/1032/233 +f 510/1026/233 468/1030/233 512/1032/233 +f 510/1026/233 514/1033/233 483/1022/233 +f 514/1033/233 433/891/233 435/893/233 +f 483/1022/233 514/1033/233 435/893/233 +f 436/894/234 435/981/317 437/895/235 +f 438/896/236 437/895/235 439/897/237 +f 440/898/238 439/897/237 441/899/239 +f 442/900/240 441/899/239 443/901/241 +f 444/902/242 443/901/241 445/903/243 +f 447/905/245 539/1034/364 448/906/246 +f 452/910/248 540/1011/248 446/1035/248 +f 540/1011/248 526/1020/248 525/1036/248 +f 446/1035/248 540/1011/248 525/1036/248 +f 446/1035/248 445/1037/248 452/910/248 +f 445/1037/248 450/908/248 452/910/248 +f 432/890/232 431/889/232 453/911/249 +f 537/1038/365 497/958/292 457/915/252 +f 497/958/292 455/913/250 457/915/252 +f 458/916/253 529/995/331 459/917/254 +f 460/918/255 459/917/254 461/919/256 +f 462/920/257 461/919/256 463/921/258 +f 466/924/261 538/1039/366 464/922/259 +f 464/922/259 530/996/332 465/923/260 +f 467/925/262 509/971/307 468/926/263 +f 467/925/262 471/929/266 470/928/265 +f 471/929/266 473/931/268 472/930/267 +f 473/931/268 478/936/273 474/932/269 +f 467/925/262 469/927/264 475/933/270 +f 471/929/266 475/933/270 476/934/271 +f 473/931/268 476/934/271 477/935/272 +f 438/896/236 480/938/275 479/937/274 +f 480/938/275 482/940/277 481/939/276 +f 482/940/277 486/944/281 483/941/278 +f 440/898/238 484/942/279 480/938/275 +f 484/942/279 485/943/280 482/940/277 +f 485/943/280 489/947/284 486/944/281 +f 442/900/240 487/945/282 484/942/279 +f 487/945/282 488/946/283 485/943/280 +f 488/946/283 491/949/286 489/947/284 +f 442/900/240 444/902/242 490/948/285 +f 487/945/282 490/948/285 449/907/247 +f 488/946/283 449/907/247 448/906/246 +f 446/904/244 525/991/327 490/948/285 +f 492/950/287 546/1040/367 493/951/288 +f 542/1041/160 457/1042/252 456/1043/251 +f 503/1044/301 502/1045/300 491/1046/286 +f 502/1045/300 474/1047/269 491/1046/286 +f 491/1046/286 474/1047/269 489/1048/284 +f 542/1041/160 456/1043/251 541/1049/160 +f 456/1043/251 503/1044/301 448/1050/246 +f 539/1051/364 541/1049/160 448/1050/246 +f 448/1050/246 541/1049/160 456/1043/251 +f 474/1047/269 478/955/273 489/1048/284 +f 491/1046/286 448/1050/246 503/1044/301 +f 478/955/273 477/1052/272 483/953/278 +f 489/1048/284 478/955/273 486/954/281 +f 458/916/253 460/918/255 495/956/290 +f 496/957/291 495/956/290 455/913/250 +f 497/958/294 537/1038/368 454/959/295 +f 454/959/295 453/1053/295 466/924/293 +f 453/1053/295 538/1039/369 466/924/293 +f 462/920/257 498/960/296 495/956/290 +f 498/960/296 499/961/297 455/913/250 +f 499/961/297 503/965/301 456/914/251 +f 462/920/257 427/885/228 500/962/298 +f 498/960/296 500/962/298 501/963/299 +f 499/961/297 501/963/299 502/964/300 +f 427/885/228 429/887/230 470/928/265 +f 500/962/298 470/928/265 472/930/267 +f 501/963/299 472/930/267 474/932/269 +f 504/966/302 511/973/309 505/967/303 +f 506/968/304 505/967/303 507/969/305 +f 508/970/306 507/969/305 509/971/307 +f 510/972/308 512/974/310 505/967/303 +f 512/974/310 513/975/311 507/969/305 +f 513/975/311 468/926/263 509/971/307 +f 514/976/312 517/982/318 515/977/313 +f 433/978/314 515/977/313 516/979/315 +f 434/980/316 516/979/315 437/895/235 +f 517/982/318 520/985/321 518/983/319 +f 515/977/313 518/983/319 519/984/320 +f 516/979/315 519/984/320 439/897/237 +f 520/985/321 523/988/324 521/986/322 +f 518/983/319 521/986/322 522/987/323 +f 519/984/320 522/987/323 441/899/239 +f 492/950/287 494/952/289 521/986/322 +f 494/952/289 524/989/325 522/987/323 +f 524/989/325 443/901/241 441/899/239 +f 524/989/325 494/952/289 493/951/288 +f 493/951/288 451/1054/370 450/990/326 +f 524/989/325 450/990/326 445/903/243 +f 449/907/247 490/948/285 447/905/245 +f 490/948/285 525/991/327 447/905/245 +f 465/923/260 528/994/330 527/993/329 +f 528/994/330 459/917/254 529/995/331 +f 530/996/332 534/1000/336 531/997/333 +f 465/923/260 531/997/333 532/998/334 +f 528/994/330 532/998/334 461/919/256 +f 533/999/335 535/1001/337 531/997/333 +f 535/1001/337 536/1002/338 532/998/334 +f 536/1002/338 463/921/258 461/919/256 +f 504/966/302 506/968/304 535/1001/337 +f 506/968/304 508/970/306 536/1002/338 +f 508/970/306 428/886/229 463/921/258 +f 530/1055/332 464/1056/259 545/1057/161 +f 545/1057/161 543/1058/161 530/1055/332 +f 543/1058/161 546/1059/367 492/1004/287 +f 543/1058/161 492/1004/287 530/1055/332 +f 534/1003/336 530/1055/332 492/1004/287 +f 504/1060/302 533/1061/335 523/1005/324 +f 533/1061/335 534/1003/336 523/1005/324 +f 510/1062/308 511/1063/309 514/1064/312 +f 511/1063/309 504/1060/302 520/1065/321 +f 517/1066/318 514/1064/312 511/1063/309 +f 520/1065/321 517/1066/318 511/1063/309 +f 523/1005/324 520/1065/321 504/1060/302 +f 466/924/293 527/993/329 496/957/291 +f 527/993/329 529/995/331 458/916/253 +f 429/887/230 428/886/229 509/971/307 +f 430/888/345 541/1012/349 539/1010/346 +f 432/890/348 542/1013/350 541/1012/349 +f 432/890/348 454/912/340 457/1006/339 +f 543/1014/351 545/1016/354 431/889/352 +f 464/1008/343 453/911/342 431/889/352 +f 452/910/355 451/909/371 493/1017/356 +f 546/1018/358 543/1014/351 544/1015/353 +f 540/1011/360 539/1010/372 447/1019/361 +f 540/1011/363 452/910/363 544/1015/231 +f 547/1067/373 548/1068/374 549/1069/373 +f 550/1070/375 551/1071/376 552/1072/376 +f 553/1073/377 554/1074/378 555/1075/378 +f 556/1076/379 557/1077/380 558/1078/380 +f 559/1079/381 560/1080/382 561/1081/381 +f 558/1078/380 562/1082/383 563/1083/383 +f 564/1084/384 565/1085/384 566/1086/384 +f 566/1086/385 567/1087/385 568/1088/385 +f 568/1088/386 569/1089/387 570/1090/387 +f 571/1091/233 572/1092/233 573/1093/233 +f 573/1093/217 574/1094/217 575/1095/217 +f 575/1096/388 576/1097/388 577/1098/388 +f 578/1099/217 577/1098/217 579/1100/217 +f 580/1101/202 581/1102/389 582/1103/389 +f 582/1103/389 583/1104/390 584/1105/390 +f 584/1105/390 585/1106/391 550/1070/391 +f 548/1068/374 586/1107/392 587/1108/392 +f 551/1071/376 553/1073/377 552/1072/376 +f 588/1109/393 547/1067/373 549/1069/373 +f 554/1074/378 589/1110/394 555/1075/378 +f 586/1107/392 556/1076/379 587/1108/392 +f 569/1089/387 590/1111/395 570/1090/387 +f 591/1112/395 592/1113/396 590/1111/395 +f 593/1114/397 594/1115/398 571/1091/398 +f 595/1116/399 596/1117/400 597/1118/399 +f 598/1119/400 599/1120/401 596/1117/400 +f 600/1121/401 593/1114/397 599/1120/401 +f 601/1122/402 602/1123/402 603/1124/402 +f 604/1125/403 587/1108/404 556/1076/403 +f 605/1126/405 586/1107/406 606/1127/406 +f 558/1078/407 603/1128/408 607/1129/409 +f 601/1130/410 557/1077/411 608/1131/412 +f 609/1132/413 549/1069/414 548/1068/413 +f 610/1133/415 547/1067/416 611/1134/416 +f 588/1109/417 612/1135/414 613/1136/417 +f 548/1068/413 614/1137/404 609/1132/413 +f 611/1134/416 615/1138/418 616/1139/418 +f 606/1127/406 617/1140/415 610/1133/415 +f 558/1078/407 604/1125/403 556/1076/403 +f 605/1126/405 557/1077/411 618/1141/405 +f 619/1142/394 616/1143/419 615/1144/419 +f 620/1145/396 597/1118/399 592/1113/396 +f 621/1146/161 622/1147/161 623/1148/161 +f 624/1149/420 625/1150/421 626/1151/421 +f 627/1152/160 628/1153/160 552/1154/160 +f 629/1155/422 630/1156/423 631/1157/422 +f 632/1158/424 629/1155/422 631/1157/422 +f 633/1159/425 634/1160/424 632/1158/424 +f 635/1161/426 636/1162/427 637/1163/426 +f 636/1162/427 630/1156/423 638/1164/423 +f 639/1165/428 640/1166/429 580/1167/160 +f 634/1168/161 641/1169/161 600/1170/161 +f 622/1171/430 642/1172/431 643/1173/430 +f 644/1174/432 637/1163/426 645/1175/432 +f 561/1081/381 645/1175/432 559/1079/381 +f 641/1176/425 646/1177/420 624/1178/420 +f 625/1150/421 647/1179/433 626/1151/421 +f 648/1180/201 649/1181/201 650/1182/201 +f 651/1183/202 652/1184/202 653/1185/202 +f 654/1186/217 628/1187/217 655/1188/217 +f 656/1189/233 639/1190/233 657/1191/233 +f 599/1192/160 633/1193/160 632/1194/160 +f 649/1195/434 575/1196/160 577/1197/435 +f 574/1198/161 648/1199/436 576/1200/437 +f 648/1199/436 658/1201/438 576/1200/437 +f 639/1165/428 659/1202/439 640/1166/429 +f 656/1203/440 581/1204/161 660/1205/161 +f 661/1206/441 662/1207/442 659/1202/439 +f 663/1208/442 664/1209/442 662/1207/442 +f 665/1210/443 649/1195/434 577/1197/435 +f 666/1211/444 665/1210/443 667/1212/444 +f 578/1213/444 666/1211/444 667/1212/444 +f 668/1214/442 578/1213/444 664/1209/442 +f 669/1215/445 656/1203/440 670/1216/446 +f 671/1217/447 672/1218/448 669/1215/445 +f 673/1219/447 674/1220/447 671/1217/447 +f 668/1221/201 656/1222/201 675/1223/201 +f 676/1224/449 673/1219/447 579/1225/449 +f 677/1226/449 579/1225/449 678/1227/449 +f 658/1201/438 677/1226/449 678/1227/449 +f 679/1228/217 680/1229/217 681/1230/217 +f 680/1229/217 655/1188/217 681/1230/217 +f 627/1152/450 681/1231/451 655/1232/452 +f 628/1153/453 627/1152/450 655/1232/452 +f 681/1231/451 682/1233/454 679/1234/455 +f 621/1146/456 683/1235/457 680/1236/458 +f 654/1237/459 684/1238/460 685/1239/461 +f 680/1236/458 684/1238/460 654/1237/459 +f 686/1240/462 687/1241/382 623/1242/462 +f 623/1242/462 643/1173/430 686/1240/462 +f 547/1067/373 617/1140/374 548/1068/374 +f 550/1070/375 585/1106/375 551/1071/376 +f 553/1073/377 688/1243/377 554/1074/378 +f 556/1076/379 618/1141/379 557/1077/380 +f 559/1079/381 687/1241/382 560/1080/382 +f 558/1078/380 557/1077/380 562/1082/383 +f 564/1084/384 602/1123/384 565/1085/384 +f 566/1086/385 565/1085/385 567/1087/385 +f 568/1088/386 567/1087/386 569/1089/387 +f 571/1091/233 594/1115/233 572/1092/233 +f 573/1093/217 572/1092/217 574/1094/217 +f 575/1096/388 574/1244/388 576/1097/388 +f 660/1245/217 580/1246/217 670/1247/217 +f 580/1246/217 640/1248/217 670/1247/217 +f 640/1248/217 659/1249/217 662/1250/217 +f 640/1248/217 662/1250/217 664/1251/217 +f 671/1252/217 669/1253/217 670/1247/217 +f 673/1254/217 671/1252/217 670/1247/217 +f 670/1247/217 640/1248/217 664/1251/217 +f 578/1099/217 667/1255/217 577/1098/217 +f 667/1255/217 665/1256/217 577/1098/217 +f 670/1247/217 664/1251/217 673/1254/217 +f 664/1251/217 578/1099/217 673/1254/217 +f 579/1100/217 673/1254/217 578/1099/217 +f 658/1257/217 678/1258/217 576/1097/217 +f 678/1258/217 579/1100/217 576/1097/217 +f 577/1098/217 576/1097/217 579/1100/217 +f 580/1101/202 660/1259/202 581/1102/389 +f 582/1103/389 581/1102/389 583/1104/390 +f 584/1105/390 583/1104/390 585/1106/391 +f 548/1068/374 617/1140/374 586/1107/392 +f 551/1071/376 688/1243/377 553/1073/377 +f 588/1109/393 615/1138/393 547/1067/373 +f 554/1074/378 619/1142/394 589/1110/394 +f 586/1107/392 618/1141/379 556/1076/379 +f 569/1089/387 591/1112/395 590/1111/395 +f 591/1112/395 620/1145/396 592/1113/396 +f 593/1114/397 689/1260/397 594/1115/398 +f 595/1116/399 598/1119/400 596/1117/400 +f 598/1119/400 600/1121/401 599/1120/401 +f 600/1121/401 689/1260/397 593/1114/397 +f 602/1123/402 564/1084/402 603/1124/402 +f 603/1124/402 563/1261/402 562/1262/402 +f 562/1262/402 601/1122/402 603/1124/402 +f 604/1125/403 614/1137/404 587/1108/404 +f 605/1126/405 618/1141/405 586/1107/406 +f 558/1078/407 563/1083/408 603/1128/408 +f 601/1130/410 562/1082/410 557/1077/411 +f 609/1132/413 612/1135/414 549/1069/414 +f 610/1133/415 617/1140/415 547/1067/416 +f 588/1109/417 549/1069/414 612/1135/414 +f 548/1068/413 587/1108/404 614/1137/404 +f 611/1134/416 547/1067/416 615/1138/418 +f 606/1127/406 586/1107/406 617/1140/415 +f 558/1078/407 607/1129/409 604/1125/403 +f 605/1126/405 608/1131/412 557/1077/411 +f 615/1144/419 588/1263/419 619/1142/394 +f 588/1263/419 613/1264/419 589/1110/394 +f 619/1142/394 588/1263/419 589/1110/394 +f 620/1145/396 595/1116/399 597/1118/399 +f 565/1265/161 602/1266/161 605/1267/161 +f 602/1266/161 601/1268/161 608/1269/161 +f 605/1267/161 602/1266/161 608/1269/161 +f 605/1267/161 606/1270/161 565/1265/161 +f 606/1270/161 610/1271/161 565/1265/161 +f 611/1272/161 616/1273/161 619/1274/161 +f 610/1271/161 611/1272/161 565/1265/161 +f 611/1272/161 619/1274/161 565/1265/161 +f 619/1274/161 554/1275/161 565/1265/161 +f 591/1276/161 569/1277/161 645/1278/161 +f 569/1277/161 567/1279/161 645/1278/161 +f 567/1279/161 565/1265/161 687/1280/161 +f 683/1235/161 688/1281/161 684/1238/161 +f 554/1275/161 688/1281/161 683/1235/161 +f 565/1265/161 554/1275/161 683/1235/161 +f 688/1281/161 551/1282/161 684/1238/161 +f 620/1283/161 591/1276/161 637/1284/161 +f 585/1285/161 583/1286/161 685/1239/161 +f 583/1286/161 581/1204/161 690/1287/161 +f 685/1239/161 583/1286/161 690/1287/161 +f 637/1284/161 636/1288/161 620/1283/161 +f 645/1278/161 637/1284/161 591/1276/161 +f 551/1282/161 585/1285/161 685/1239/161 +f 551/1282/161 685/1239/161 684/1238/161 +f 559/1289/161 645/1278/161 567/1279/161 +f 565/1265/161 683/1235/161 623/1148/161 +f 687/1280/161 559/1289/161 567/1279/161 +f 623/1148/161 687/1280/161 565/1265/161 +f 683/1235/161 621/1146/161 623/1148/161 +f 621/1146/161 653/1290/161 647/1291/161 +f 621/1146/161 647/1291/161 622/1147/161 +f 624/1149/420 646/1292/420 625/1150/421 +f 603/1293/160 564/1294/160 607/1295/160 +f 564/1294/160 566/1296/160 604/1297/160 +f 607/1295/160 564/1294/160 604/1297/160 +f 568/1298/160 570/1299/160 644/1300/160 +f 570/1299/160 590/1301/160 644/1300/160 +f 590/1301/160 592/1302/160 635/1303/160 +f 644/1300/160 590/1301/160 635/1303/160 +f 614/1304/160 604/1297/160 566/1296/160 +f 609/1305/160 614/1304/160 566/1296/160 +f 609/1305/160 566/1296/160 612/1306/160 +f 566/1296/160 568/1298/160 560/1307/160 +f 612/1306/160 566/1296/160 589/1308/160 +f 589/1308/160 613/1309/160 612/1306/160 +f 589/1308/160 566/1296/160 555/1310/160 +f 592/1302/160 691/1311/160 635/1303/160 +f 555/1310/160 566/1296/160 682/1233/160 +f 568/1298/160 644/1300/160 561/1312/160 +f 686/1313/160 566/1296/160 560/1307/160 +f 553/1314/160 555/1310/160 682/1233/160 +f 566/1296/160 686/1313/160 682/1233/160 +f 568/1298/160 561/1312/160 560/1307/160 +f 552/1154/160 553/1314/160 627/1152/160 +f 582/1315/160 584/1316/160 657/1317/160 +f 584/1316/160 550/1318/160 628/1153/160 +f 628/1153/160 657/1317/160 584/1316/160 +f 643/1319/160 642/1320/160 679/1234/160 +f 642/1320/160 692/1321/160 679/1234/160 +f 553/1314/160 682/1233/160 627/1152/160 +f 686/1313/160 643/1319/160 679/1234/160 +f 682/1233/160 686/1313/160 679/1234/160 +f 628/1153/160 550/1318/160 552/1154/160 +f 629/1155/422 638/1164/423 630/1156/423 +f 632/1158/424 634/1160/424 629/1155/422 +f 633/1159/425 641/1176/425 634/1160/424 +f 635/1161/426 691/1322/427 636/1162/427 +f 636/1162/427 691/1322/427 630/1156/423 +f 580/1167/160 582/1315/160 639/1165/428 +f 582/1315/160 657/1317/160 639/1165/428 +f 595/1323/161 620/1283/161 636/1288/161 +f 595/1323/161 636/1288/161 638/1324/161 +f 600/1170/161 598/1325/161 634/1168/161 +f 598/1325/161 595/1323/161 629/1326/161 +f 594/1327/161 689/1328/161 624/1329/161 +f 689/1328/161 600/1170/161 641/1169/161 +f 574/1198/161 572/1330/161 652/1331/161 +f 572/1330/161 594/1327/161 652/1331/161 +f 652/1331/161 693/1332/161 574/1198/161 +f 647/1291/161 653/1290/161 626/1333/161 +f 653/1290/161 652/1331/161 594/1327/161 +f 626/1333/161 653/1290/161 594/1327/161 +f 595/1323/161 638/1324/161 629/1326/161 +f 598/1325/161 629/1326/161 634/1168/161 +f 689/1328/161 641/1169/161 624/1329/161 +f 624/1329/161 626/1333/161 594/1327/161 +f 622/1171/430 647/1179/431 642/1172/431 +f 644/1174/432 635/1161/426 637/1163/426 +f 561/1081/381 644/1174/432 645/1175/432 +f 641/1176/425 633/1159/425 646/1177/420 +f 625/1150/421 642/1172/433 647/1179/433 +f 693/1334/201 652/1335/201 694/1336/201 +f 652/1335/201 651/1337/201 694/1336/201 +f 677/1338/201 695/1339/201 648/1180/201 +f 648/1180/201 693/1334/201 649/1181/201 +f 693/1334/201 694/1336/201 649/1181/201 +f 649/1181/201 696/1340/201 666/1341/201 +f 676/1342/201 677/1338/201 648/1180/201 +f 666/1341/201 650/1182/201 649/1181/201 +f 650/1182/201 676/1342/201 648/1180/201 +f 653/1185/202 621/1343/202 679/1344/202 +f 679/1344/202 692/1345/202 653/1185/202 +f 692/1345/202 651/1183/202 653/1185/202 +f 654/1186/217 685/1346/217 628/1187/217 +f 657/1191/233 628/1347/233 685/1348/233 +f 685/1348/233 690/1349/233 657/1191/233 +f 690/1349/233 656/1189/233 657/1191/233 +f 573/1350/160 575/1196/160 651/1351/160 +f 575/1196/160 694/1352/160 651/1351/160 +f 651/1351/160 692/1321/160 571/1353/160 +f 692/1321/160 642/1320/160 625/1354/160 +f 599/1192/160 593/1355/160 633/1193/160 +f 593/1355/160 571/1353/160 646/1356/160 +f 633/1193/160 593/1355/160 646/1356/160 +f 571/1353/160 573/1350/160 651/1351/160 +f 692/1321/160 625/1354/160 571/1353/160 +f 625/1354/160 646/1356/160 571/1353/160 +f 597/1357/160 596/1358/160 631/1359/160 +f 596/1358/160 599/1192/160 632/1194/160 +f 631/1359/160 596/1358/160 632/1194/160 +f 691/1311/160 592/1302/160 597/1357/160 +f 630/1360/160 691/1311/160 597/1357/160 +f 631/1359/160 630/1360/160 597/1357/160 +f 649/1195/434 694/1352/160 575/1196/160 +f 574/1198/161 693/1332/161 648/1199/436 +f 648/1199/436 695/1361/436 658/1201/438 +f 639/1165/428 661/1206/441 659/1202/439 +f 660/1205/161 670/1216/446 656/1203/440 +f 656/1203/440 690/1287/161 581/1204/161 +f 661/1206/441 663/1208/442 662/1207/442 +f 663/1208/442 668/1214/442 664/1209/442 +f 665/1210/443 696/1362/434 649/1195/434 +f 666/1211/444 696/1362/434 665/1210/443 +f 578/1213/444 650/1363/444 666/1211/444 +f 668/1214/442 650/1363/444 578/1213/444 +f 669/1215/445 672/1218/448 656/1203/440 +f 671/1217/447 674/1220/447 672/1218/448 +f 673/1219/447 675/1364/447 674/1220/447 +f 675/1223/201 676/1342/201 668/1221/201 +f 676/1342/201 650/1182/201 668/1221/201 +f 668/1221/201 663/1365/201 639/1366/201 +f 663/1365/201 661/1367/201 639/1366/201 +f 672/1368/201 674/1369/201 656/1222/201 +f 674/1369/201 675/1223/201 656/1222/201 +f 639/1366/201 656/1222/201 668/1221/201 +f 676/1224/449 675/1364/447 673/1219/447 +f 677/1226/449 676/1224/449 579/1225/449 +f 658/1201/438 695/1361/436 677/1226/449 +f 679/1228/217 621/1370/217 680/1229/217 +f 680/1229/217 654/1186/217 655/1188/217 +f 627/1152/450 682/1233/454 681/1231/451 +f 680/1236/458 683/1235/457 684/1238/460 +f 686/1240/462 560/1080/382 687/1241/382 +f 623/1242/462 622/1171/430 643/1173/430 +o Cylinder +v -0.126087 0.227980 0.137402 +v 0.126087 0.227980 0.774998 +v -0.126086 0.227980 0.774998 +v 0.126086 0.227980 0.137402 +v 0.304400 0.406294 0.774998 +v 0.304400 0.406293 0.137402 +v 0.304400 0.658466 0.774998 +v 0.304400 0.658466 0.137402 +v 0.126087 0.836780 0.774998 +v 0.126086 0.836780 0.137402 +v -0.126086 0.836780 0.774998 +v -0.126087 0.836780 0.137402 +v -0.304400 0.658467 0.774998 +v -0.304400 0.658466 0.137402 +v -0.304400 0.406294 0.774998 +v -0.304400 0.406294 0.137402 +vt 0.246533 0.894427 +vt 0.118900 0.944907 +vt 0.118900 0.894427 +vt 0.246533 0.944907 +vt 0.118900 0.995387 +vt 0.246533 0.591549 +vt 0.118900 0.642029 +vt 0.118900 0.591549 +vt 0.246533 0.642029 +vt 0.118900 0.692509 +vt 0.246533 0.692509 +vt 0.118900 0.742988 +vt 0.246533 0.742988 +vt 0.118900 0.793468 +vt 0.375332 0.627244 +vt 0.375332 0.677724 +vt 0.253463 0.627244 +vt 0.246533 0.793468 +vt 0.118900 0.843948 +vt 0.246533 0.843948 +vt 0.339638 0.713512 +vt 0.375332 0.799686 +vt 0.289158 0.835381 +vt 0.246533 0.995387 +vt 0.339638 0.713418 +vt 0.289158 0.713418 +vt 0.253463 0.677724 +vt 0.289158 0.591549 +vt 0.339638 0.591549 +vt 0.253464 0.799686 +vt 0.253463 0.749207 +vt 0.289158 0.713512 +vt 0.375332 0.749207 +vt 0.339638 0.835381 +vn -0.3827 -0.9239 0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.0000 -0.0000 1.0000 +s 1 +f 697/1371/463 698/1372/464 699/1373/463 +f 700/1374/464 701/1375/465 698/1372/464 +f 702/1376/465 703/1377/466 701/1378/465 +f 704/1379/466 705/1380/467 703/1377/466 +f 706/1381/467 707/1382/468 705/1380/467 +f 708/1383/468 709/1384/469 707/1382/468 +f 704/1385/470 702/1386/470 710/1387/470 +f 710/1388/469 711/1389/471 709/1384/469 +f 712/1390/471 699/1373/463 711/1389/471 +f 703/1391/472 707/1392/472 711/1393/472 +f 697/1371/463 700/1374/464 698/1372/464 +f 700/1374/464 702/1394/465 701/1375/465 +f 702/1376/465 704/1379/466 703/1377/466 +f 704/1379/466 706/1381/467 705/1380/467 +f 706/1381/467 708/1383/468 707/1382/468 +f 708/1383/468 710/1388/469 709/1384/469 +f 702/1386/470 700/1395/470 697/1396/470 +f 697/1396/470 712/1397/470 702/1386/470 +f 712/1397/470 710/1387/470 702/1386/470 +f 710/1387/470 708/1398/470 706/1399/470 +f 706/1399/470 704/1385/470 710/1387/470 +f 710/1388/469 712/1390/471 711/1389/471 +f 712/1390/471 697/1371/463 699/1373/463 +f 711/1393/472 699/1400/472 698/1401/472 +f 698/1401/472 701/1402/472 703/1391/472 +f 703/1391/472 705/1403/472 707/1392/472 +f 707/1392/472 709/1404/472 711/1393/472 +f 711/1393/472 698/1401/472 703/1391/472 diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_combustion.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_combustion.png new file mode 100644 index 0000000000000000000000000000000000000000..dd48bd2a5c057c9f34effc4c33e4b71a3e78f6d3 GIT binary patch literal 4810 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/piston_set.png b/src/main/resources/assets/hbm/textures/items/piston_set.png new file mode 100644 index 0000000000000000000000000000000000000000..3132b099ed35e9f8cf12590bf0b44139c8732a64 GIT binary patch literal 319 zcmV-F0l@x=P)E>;L3BvY=pfYpNAxfN7d=aogk!q?AesG5h;m_yUPiU{%`+ RybAyT002ovPDHLkV1fy8hSvZ9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/piston_set_desh.png b/src/main/resources/assets/hbm/textures/items/piston_set_desh.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f974b31b2e6582509a092b1481e780010568be GIT binary patch literal 308 zcmV-40n7f0P)d11nKoe z4TlOK+iafTTB`*>1t1%bsl~B{0e15_2JTd=_`Z+U+Mcs(sAnS=ivm6z$d*fM$IYhm z`NsF0-4Eme)K@F@*k~lllUEu5#YDSlN_)R|2EGjVR(}?twf-$&c0MyX9`7!Uwp%A? zd^_z^7>b$xZ7oqGWnbCu0zjVUxN39xEuF$p(jX|^K9??9=4AM_HwW_o0000Eak- z(VLvGK)~RT#Ll&~|K)8e4lG!);=}2!ox^k;J_iE(hZfL)7b3o?RTWHv9Yxor=L4uYG3oKv$45*{=?(j`wOIw zGJqsDr=K_C;N&#iQ~jOqXxsGn5BIq+8WgJCIp{2tkd%;+P*IR%-)5?>Cv!Z{RH~u+ z;fq_UJ#$|9{jab2ed5FakCBT^4#zrhN~EyW{QuQx#4M8XL-I)L%>a=O?j-+{289(m z8W9%%+FjL+qNAduRz0$3ZdQ<=Gi}3-r5QV>$L&QSyQV5=fb~gSF#X{2iKP)XQ?|;|}f*44Z zB1JeWg)3Fa3281-P_J8yu#1a(D6z?F<}vJh!whfXK?p^{P|EdsOTAtJpwSQlU^H6D zG;y!j6pl^2T5Xw5KV_#=6#!8bU5P!<1Hb{8OkU`ATUrbd1OZCCiT333MUvxAR|Q9r z`Fx4%y2Np8O#J%RTN+UPOxk|;A_LIxx39(w2G91c;`Z`FyKa=YEms~{_B$Nue8c_yFk^~z!O>V&VXL2|kr~W=0 Y&YyH(E-SNv>;M1&07*qoM6N<$f`+h&EC2ui literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/piston_set_steel.png b/src/main/resources/assets/hbm/textures/items/piston_set_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..3132b099ed35e9f8cf12590bf0b44139c8732a64 GIT binary patch literal 319 zcmV-F0l@x=P)E>;L3BvY=pfYpNAxfN7d=aogk!q?AesG5h;m_yUPiU{%`+ RybAyT002ovPDHLkV1fy8hSvZ9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/combustion_engine.png b/src/main/resources/assets/hbm/textures/models/machines/combustion_engine.png index fe8383315543bce55ff237eb641760884cbfd94d..ae94195c2579d216eb12f42b9428d2847682dec4 100644 GIT binary patch delta 4262 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 IM6N<$g1eiRxBvhE delta 2320 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png b/src/main/resources/assets/hbm/textures/models/weapons/lil_pip.png new file mode 100644 index 0000000000000000000000000000000000000000..7709cf279f7b811835c6c58a0a5625c1744e76e4 GIT binary patch literal 4498 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/novac_scope.png b/src/main/resources/assets/hbm/textures/models/weapons/novac_scope.png new file mode 100644 index 0000000000000000000000000000000000000000..47a38039d4280f105375b1a229e6f2c96a5dbca4 GIT binary patch literal 3022 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 JTy1&u{Qu~uFEs!F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/red_key.png b/src/main/resources/assets/hbm/textures/models/weapons/red_key.png new file mode 100644 index 0000000000000000000000000000000000000000..1ce79923f6372301c3e4484f5277b9b0a19be21a GIT binary patch literal 5624 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