diff --git a/changelog b/changelog index 790dde47c..10990a0bc 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,20 @@ +## Added +* Target pistol + * Weapon steel tier pistol that holds 15 rounds and shoots .22 LR + * Accepts silencers + ## Changed +* Reworked the industrial turbine + * New model and texture + * Removed the GUI, it now uses the same in-world compressor toggle as the leviathan turbine + * No longer has a volatile power buffer, power isn't buffered at all anymore, similar to steam engines and MHD turbines + * Steam capacity changes based on compression level, the ratio for turbine cascades is now 1:1:1:1 + * Comes with a flywheel, energy output slowly ramps up as steam is supplied and slowly goes down as steam cuts out +* Leviathan turbines no longer have a power buffer +* Updated russian and chinese localization * The PWR can now be controlled via RoR * The RoR value reader can read core and hull heat as well as fuel depletion in percent - * The RoR controller can set the control rod level in percent as well as jetison all loaded fuel \ No newline at end of file + * The RoR controller can set the control rod level in percent as well as jetison all loaded fuel + +# Fixed +* Fixed proxy tiles that do not use electricity at all visually connecting to cables \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 3f8ea99fe..cf0f5c50f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -968,7 +968,14 @@ public class ModBlocks { public static Block machine_steam_engine; public static Block machine_turbine; - public static Block machine_large_turbine; + @Deprecated public static Block machine_large_turbine; + public static Block machine_industrial_turbine; + public static Block machine_chungus; + + public static Block machine_condenser; + public static Block machine_tower_small; + public static Block machine_tower_large; + public static Block machine_condenser_powered; public static Block machine_deuterium_extractor; public static Block machine_deuterium_tower; @@ -979,12 +986,6 @@ public class ModBlocks { public static Block machine_compressor; public static Block machine_compressor_compact; - public static Block machine_chungus; - public static Block machine_condenser; - public static Block machine_tower_small; - public static Block machine_tower_large; - public static Block machine_condenser_powered; - public static Block machine_electrolyser; public static Block machine_excavator; @@ -2244,7 +2245,8 @@ public class ModBlocks { machine_steam_engine = new MachineSteamEngine().setBlockName("machine_steam_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_turbine = new MachineTurbine(Material.iron).setBlockName("machine_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbine"); machine_large_turbine = new MachineLargeTurbine(Material.iron).setBlockName("machine_large_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_large_turbine"); - machine_chungus = new MachineChungus(Material.iron).setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chungus"); + machine_industrial_turbine = new MachineIndustrialTurbine().setBlockName("machine_industrial_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chungus = new MachineChungus().setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -3282,6 +3284,7 @@ public class ModBlocks { register(machine_steam_engine); register(machine_turbine); register(machine_large_turbine); + register(machine_industrial_turbine); register(machine_chungus); GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName()); @@ -3289,8 +3292,8 @@ public class ModBlocks { register(machine_condenser_powered); GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); - GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); - GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName()); + register(machine_liquefactor); + register(machine_solidifier); register(machine_intake); register(machine_compressor); register(machine_compressor_compact); diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java b/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java index 4ce96d14d..17a5d903b 100644 --- a/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java +++ b/src/main/java/com/hbm/blocks/machine/FurnaceCombination.java @@ -20,8 +20,7 @@ public class FurnaceCombination extends BlockDummyable implements ITooltipProvid @Override public TileEntity createNewTileEntity(World world, int meta) { - if(meta >= 12) - return new TileEntityFurnaceCombination(); + if(meta >= 12) return new TileEntityFurnaceCombination(); return new TileEntityProxyCombo().inventory().fluid(); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChungus.java b/src/main/java/com/hbm/blocks/machine/MachineChungus.java index 16bf80634..8972ca7ac 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChungus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChungus.java @@ -21,6 +21,7 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -28,19 +29,14 @@ import net.minecraftforge.common.util.ForgeDirection; public class MachineChungus extends BlockDummyable implements ITooltipProvider, ILookOverlay { - public MachineChungus(Material mat) { - super(mat); + public MachineChungus() { + super(Material.iron); } @Override public TileEntity createNewTileEntity(World world, int meta) { - - if(meta >= 12) - return new TileEntityChungus(); - - if(meta >= 6) - return new TileEntityProxyCombo(false, true, true); - + if(meta >= 12) return new TileEntityChungus(); + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); return null; } @@ -66,34 +62,14 @@ public class MachineChungus extends BlockDummyable implements ITooltipProvider, int iZ2 = entity.zCoord + dir.offsetZ * 2 + turn.offsetZ * 2; if((x == iX || x == iX2) && (z == iZ || z == iZ2) && y < entity.yCoord + 2) { - world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F); if(!world.isRemote) { - FluidType type = entity.tanks[0].getTankType(); - entity.onLeverPull(type); - - if(type == Fluids.STEAM) { - entity.tanks[0].setTankType(Fluids.HOTSTEAM); - entity.tanks[1].setTankType(Fluids.STEAM); - entity.tanks[0].setFill(entity.tanks[0].getFill() / 10); - entity.tanks[1].setFill(0); - } else if(type == Fluids.HOTSTEAM) { - entity.tanks[0].setTankType(Fluids.SUPERHOTSTEAM); - entity.tanks[1].setTankType(Fluids.HOTSTEAM); - entity.tanks[0].setFill(entity.tanks[0].getFill() / 10); - entity.tanks[1].setFill(0); - } else if(type == Fluids.SUPERHOTSTEAM) { - entity.tanks[0].setTankType(Fluids.ULTRAHOTSTEAM); - entity.tanks[1].setTankType(Fluids.SUPERHOTSTEAM); - entity.tanks[0].setFill(entity.tanks[0].getFill() / 10); - entity.tanks[1].setFill(0); + if(!entity.operational) { + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F); + entity.onLeverPull(); } else { - entity.tanks[0].setTankType(Fluids.STEAM); - entity.tanks[1].setTankType(Fluids.SPENTSTEAM); - entity.tanks[0].setFill(Math.min(entity.tanks[0].getFill() * 1000, entity.tanks[0].getMaxFill())); - entity.tanks[1].setFill(0); + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Cannot change compressor setting while operational!")); } - entity.markDirty(); } return true; @@ -168,7 +144,7 @@ public class MachineChungus extends BlockDummyable implements ITooltipProvider, text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + inputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankInput.getFill()) + "/" + String.format(Locale.US, "%,d", tankInput.getMaxFill()) + "mB"); text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + outputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankOutput.getFill()) + "/" + String.format(Locale.US, "%,d", tankOutput.getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(chungus.power) + "/" + BobMathUtil.getShortNumber(chungus.getMaxPower()) + "HE"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(chungus.powerBuffer) + "HE"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineIndustrialTurbine.java b/src/main/java/com/hbm/blocks/machine/MachineIndustrialTurbine.java new file mode 100644 index 000000000..aedf34003 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineIndustrialTurbine.java @@ -0,0 +1,133 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +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_Coolable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineIndustrialTurbine; +import com.hbm.tileentity.machine.TileEntityTurbineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.i18n.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineIndustrialTurbine extends BlockDummyable implements ITooltipProvider, ILookOverlay { + + public MachineIndustrialTurbine() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineIndustrialTurbine(); + if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!player.isSneaking()) { + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return true; + + TileEntityTurbineBase entity = (TileEntityTurbineBase) world.getTileEntity(pos[0], pos[1], pos[2]); + if(entity != null) { + + ForgeDirection dir = ForgeDirection.getOrientation(entity.getBlockMetadata() - this.offset); + + if(x == entity.xCoord + dir.offsetX * 3 && z == entity.zCoord + dir.offsetZ * 3 && y == entity.yCoord + 1) { + if(!world.isRemote) { + if(!entity.operational) { + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F); + entity.onLeverPull(); + } else { + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Cannot change compressor setting while operational!")); + } + } + return true; + } + } + } + + return false; + } + + @Override public int[] getDimensions() { return new int[] { 2, 0, 3, 3, 1, 1 }; } + @Override public int getOffset() { return 3; } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + dir.offsetX * 3 + rot.offsetX, y, z + dir.offsetZ * 3 + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 3 - rot.offsetX, y, z + dir.offsetZ * 3 - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 1 + rot.offsetX, y, z - dir.offsetZ * 1 + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 1 - rot.offsetX, y, z - dir.offsetZ * 1 - rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 3, y + 2, z + dir.offsetZ * 3); + this.makeExtra(world, x - dir.offsetX * 1, y + 2, z - dir.offsetZ * 1); + this.makeExtra(world, x - dir.offsetX * 3, y + 1, z - dir.offsetZ * 3); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + private static String[] blocks = new String[] {"▖ ", "▘ ", " ▘", " ▖"}; // right hand side quarter blocks break the renderer so we cheat a little + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityMachineIndustrialTurbine)) return; + + TileEntityMachineIndustrialTurbine chungus = (TileEntityMachineIndustrialTurbine) te; + List text = new ArrayList(); + + FluidTank tankInput = chungus.tanks[0]; + FluidTank tankOutput = chungus.tanks[1]; + + FluidType inputType = tankInput.getTankType(); + FluidType outputType = Fluids.NONE; + + if(inputType.hasTrait(FT_Coolable.class)) { + outputType = inputType.getTrait(FT_Coolable.class).coolsTo; + } + + int color = ((int) (0xFF - 0xFF * chungus.spin)) << 16 | ((int)(0xFF * chungus.spin) << 8); + int time = (int) ((world.getTotalWorldTime() / 4) % 4); + + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + inputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankInput.getFill()) + "/" + String.format(Locale.US, "%,d", tankInput.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + outputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankOutput.getFill()) + "/" + String.format(Locale.US, "%,d", tankOutput.getMaxFill()) + "mB"); + text.add("&[" + color + "&]" + EnumChatFormatting.RED + "<- " + EnumChatFormatting.WHITE + BobMathUtil.getShortNumber(chungus.powerBuffer) + "HE (" + + EnumChatFormatting.RESET + blocks[chungus.powerBuffer <= 0 ? 0 : time] + (int) Math.round(chungus.spin * 100) + "%" + EnumChatFormatting.WHITE + ")"); + + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java b/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java index cc8328dd3..2b36ad1a1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineLargeTurbine.java @@ -17,6 +17,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; +@Deprecated public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvider { public MachineLargeTurbine(Material mat) { diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index e597fec39..ef8d2b503 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -77,6 +77,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_akimbo, 1), new Object[] { "UMU", 'U', ModItems.gun_uzi, 'M', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "BRM", "BGS", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', ANY_PLASTIC.grip(), 'S', DESH.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "BBB", "PGM", 'B', DESH.heavyBarrel(), 'P', STEEL.plateCast(), 'G', DESH.grip(), 'M', GUNMETAL.mechanism() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_star_f, 1), new Object[] { "BRM", " G", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_star_f_akimbo, 1), new Object[] { "UMU", 'U', ModItems.gun_star_f, 'M', BIGMT.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3, 1), new Object[] { "BRM", "WGS", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'W', WOOD.grip(), 'G', RUBBER.grip(), 'S', WOOD.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3_zebra, 1), new Object[] { " M ", "MPM", " M ", 'M', BIGMT.mechanism(), 'P', ModItems.gun_g3 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "BBB", "PGM", 'B', WEAPONSTEEL.heavyBarrel(), 'P', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'G', WEAPONSTEEL.grip(), 'M', WEAPONSTEEL.mechanism() }); diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index a20e5c415..c1f29e7a4 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -150,10 +150,13 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { canDestroy.add(Blocks.trapdoor); canDestroy.add(ModBlocks.machine_press); canDestroy.add(ModBlocks.machine_epress); - canDestroy.add(ModBlocks.machine_chemplant); + canDestroy.add(ModBlocks.machine_chemical_plant); + canDestroy.add(ModBlocks.machine_chemical_factory); canDestroy.add(ModBlocks.machine_crystallizer); canDestroy.add(ModBlocks.machine_turbine); - canDestroy.add(ModBlocks.machine_large_turbine); + canDestroy.add(ModBlocks.machine_industrial_turbine); + canDestroy.add(ModBlocks.machine_chungus); + canDestroy.add(ModBlocks.machine_purex); canDestroy.add(ModBlocks.crate_iron); canDestroy.add(ModBlocks.crate_steel); canDestroy.add(ModBlocks.machine_diesel); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index 5d775ed67..78a78b1b8 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -386,8 +386,8 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.hephaestus").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_hephaestus, 1)) .inputItems(new OreDictStack(STEEL.pipe(), 12), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(NB.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModBlocks.glass_quartz, 16))); - this.register(new GenericRecipe("ass.iturbine").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_large_turbine, 1)) - .inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 6), new OreDictStack(DURA.pipe(), 3), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) + this.register(new GenericRecipe("ass.iturbine").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_industrial_turbine, 1)) + .inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 6), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 16), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.leviturbine").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_chungus, 1)) .inputItems(new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.plateWelded(), 16), new OreDictStack(TI.plate(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.flywheel_beryllium, 1), new OreDictStack(GOLD.wireDense(), 48), new OreDictStack(DURA.pipe(), 16), new OreDictStack(STEEL.pipe(), 16)) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index aee8db4f7..1f364ce9b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1406,6 +1406,8 @@ public class ModItems { public static Item gun_uzi_akimbo; public static Item gun_spas12; public static Item gun_panzerschreck; + public static Item gun_star_f; + public static Item gun_star_f_akimbo; public static Item gun_g3; public static Item gun_g3_zebra; public static Item gun_stinger; @@ -6283,6 +6285,8 @@ public class ModItems { GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName()); GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName()); GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); + GameRegistry.registerItem(gun_star_f, gun_star_f.getUnlocalizedName()); + GameRegistry.registerItem(gun_star_f_akimbo, gun_star_f_akimbo.getUnlocalizedName()); GameRegistry.registerItem(gun_g3, gun_g3.getUnlocalizedName()); GameRegistry.registerItem(gun_g3_zebra, gun_g3_zebra.getUnlocalizedName()); GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index cf9acc152..2f280d990 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -66,6 +66,8 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_akimbo, new ItemRenderUziAkimbo()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderSPAS12()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_panzerschreck, new ItemRenderPanzerschreck()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_star_f, new ItemRenderStarF()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_star_f_akimbo, new ItemRenderStarFAkimbo()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3, new ItemRenderG3(ResourceManager.g3_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3_zebra, new ItemRenderG3(ResourceManager.g3_zebra_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_stinger, new ItemRenderStinger()); @@ -263,6 +265,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_uzi) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_spas12) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_panzerschreck) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_star_f) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_g3) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_g3_zebra) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_stinger) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); @@ -305,6 +308,8 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); ((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_star_f_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); + ((ItemGunBaseNT) ModItems.gun_star_f_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_minigun_dual) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); ((ItemGunBaseNT) ModItems.gun_minigun_dual) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_aberrator_eott) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_AMMO_MIRROR); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 61d19e644..c4c909308 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -765,6 +765,81 @@ public class Orchestras { } }; + public static BiConsumer ORCHESTRA_STAR_F = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == GunAnimation.CYCLE) { + if(timer == 0) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, aiming ? 0 : -0.125, aiming ? 0 : -0.1875D, 0, 0.18, -0.12, 0.01, (float)entity.getRNG().nextGaussian() * 5F, 12.5F + (float)entity.getRNG().nextFloat() * 5F, casing.getName()); + PacketDispatcher.wrapper.sendToAllAround(new MuzzleFlashPacket(entity), new TargetPoint(entity.worldObj.provider.dimensionId, entity.posX, entity.posY, entity.posZ, 100)); + } + } + if(type == GunAnimation.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.9F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1.1F); + + } + if(type == GunAnimation.RELOAD) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 22) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + } + if(type == GunAnimation.JAMMED) { + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 19) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + if(timer == 23) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 27) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + } + if(type == GunAnimation.INSPECT) { + if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + } + }; + + public static BiConsumer ORCHESTRA_STAR_F_AKIMBO = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == GunAnimation.CYCLE) { + if(timer == 0) { + int side = ctx.configIndex == 0 ? -1 : 1; + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.3125, aiming ? 0 : -0.125, aiming ? 0 : -0.1875D * side, 0, 0.18, -0.12 * side, 0.01, (float)entity.getRNG().nextGaussian() * 5F, 12.5F + (float)entity.getRNG().nextFloat() * 5F, casing.getName()); + PacketDispatcher.wrapper.sendToAllAround(new MuzzleFlashPacket(entity), new TargetPoint(entity.worldObj.provider.dimensionId, entity.posX, entity.posY, entity.posZ, 100)); + } + } + if(type == GunAnimation.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.9F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1.1F); + + } + if(type == GunAnimation.RELOAD) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 22) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + } + if(type == GunAnimation.JAMMED) { + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 19) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + if(timer == 23) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 27) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + } + if(type == GunAnimation.INSPECT) { + if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1.1F); + } + }; + public static BiConsumer ORCHESTRA_G3 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index 718892761..94f15dcd6 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -17,6 +17,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mods.XWeaponModManager; +import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; @@ -54,23 +55,60 @@ public class XFactory22lr { .setupStandardFire().recoil(LAMBDA_RECOIL_AM180)) .setupStandardConfiguration() .anim(LAMBDA_AM180_ANIMS).orchestra(Orchestras.ORCHESTRA_AM180) - ).setDefaultAmmo(EnumAmmo.P22_SP, 35).setNameMutator(LAMBDA_NAME_AM180) + ).setDefaultAmmo(EnumAmmo.P22_SP, 35).setNameMutator(LAMBDA_NAME_SILENCED) .setUnlocalizedName("gun_am180"); + + ModItems.gun_star_f = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound("hbm:weapon.fire.pistolLight", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap)) + .offset(1, -0.0625 * 1.5, -0.1875D) + .setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F)) + .setupStandardConfiguration() + .anim(LAMBDA_STAR_F_ANIMS).orchestra(Orchestras.ORCHESTRA_STAR_F) + ).setDefaultAmmo(EnumAmmo.P22_SP, 15).setNameMutator(LAMBDA_NAME_SILENCED) + .setUnlocalizedName("gun_star_f"); + + ModItems.gun_star_f_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE, + new GunConfig().dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound("hbm:weapon.fire.pistolLight", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap)) + .offset(1, -0.0625 * 1.5, 0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F)) + .pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_STAR_F_ANIMS).orchestra(Orchestras.ORCHESTRA_STAR_F_AKIMBO), + new GunConfig().dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound("hbm:weapon.fire.pistolLight", 1.0F, 1.0F) + .mag(new MagazineFullReload(1, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap)) + .offset(1, -0.0625 * 1.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F)) + .ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD) + .decider(GunStateDecider.LAMBDA_STANDARD_DECIDER) + .anim(LAMBDA_STAR_F_ANIMS).orchestra(Orchestras.ORCHESTRA_STAR_F_AKIMBO) + ).setDefaultAmmo(EnumAmmo.P9_SP, 30).setUnlocalizedName("gun_star_f_akimbo"); } - public static Function LAMBDA_NAME_AM180 = (stack) -> { + public static Function LAMBDA_NAME_SILENCED = (stack) -> { if(XWeaponModManager.hasUpgrade(stack, 0, XWeaponModManager.ID_SILENCER)) return stack.getUnlocalizedName() + "_silenced"; return null; }; public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { - Lego.handleStandardSmoke(ctx.entity, stack, 3000, 0.05D, 1.1D, 0); + Lego.handleStandardSmoke(ctx.entity, stack, 3000, 0.05D, 1.1D, ctx.configIndex); }; public static BiConsumer LAMBDA_RECOIL_AM180 = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.25)); }; + public static BiConsumer LAMBDA_RECOIL_STAR_F = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(2.5F, (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); + }; + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AM180_ANIMS = (stack, type) -> { if(ClientConfig.GUN_ANIMS_LEGACY.get()) { switch(type) { @@ -109,4 +147,42 @@ public class XFactory22lr { return null; }; + + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_STAR_F_ANIMS = (stack, type) -> { + int ammo = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, MainRegistry.proxy.me().inventory); + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.125 : -0.5, 15, IType.SIN_DOWN).addPos(0, 0, 0, 35, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.5 : -1, 25, IType.SIN_DOWN).addPos(0, 0, 0, 75, IType.SIN_UP)) + .addBus("HAMMER", new BusAnimationSequence().addPos(1, 0, 0, 50, IType.SIN_UP).addPos(0, 0, 0, 50, IType.SIN_DOWN)) + .addBus("BULLET", ammo <= 1 ? new BusAnimationSequence().setPos(100, 0, 0) : new BusAnimationSequence().addPos(0, 0, 0, 90).addPos(0, 0.5, 2.25, 50)); + case CYCLE_DRY: return new BusAnimation() + .addBus("HAMMER", new BusAnimationSequence().addPos(1, 0, 0, 50, IType.SIN_UP).hold(450).addPos(0, 0, 0, 50, IType.SIN_DOWN)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.5 : -1, 100, IType.SIN_FULL).hold(100).addPos(0, 0, 0, 75, IType.SIN_UP)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 600).addPos(-3, 0, 0, 175, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("BULLET", new BusAnimationSequence().setPos(100, 0, 0)); + case RELOAD: + return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(-30, 0, 0, 250, IType.SIN_FULL).hold(1500).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, -1, 100, IType.SIN_FULL).hold(1125).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, -7, -1.5, 300, IType.SIN_UP).hold(400).addPos(0, 0, 0, 300, IType.SIN_UP)) + .addBus("EQUIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(3, 0, 0, 750, IType.SIN_FULL).addPos(-3, 0, 0, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(0, 0, 15, 300, IType.SIN_FULL).hold(900).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("BULLET", new BusAnimationSequence().setPos(ammo <= 1 ? 100 : 0, 0, 0).hold(750).setPos(0, 0, 0).hold(750).addPos(0, 0.5, 2.25, 50)); + case JAMMED: return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(-30, 0, 0, 150, IType.SIN_FULL).hold(800).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 25, 150, IType.SIN_FULL).hold(800).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 750).addPos(0, 0, -0.5, 100, IType.SIN_FULL).hold(100).addPos(0, 0, 0, 100, IType.SIN_UP).hold(100).addPos(0, 0, -0.5, 100, IType.SIN_FULL).hold(100).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("BULLET", new BusAnimationSequence().setPos(0, 0.5, 2.25).hold(750).addPos(0, 0.5, 1.25, 100, IType.SIN_FULL).hold(100).addPos(0, 0.5, 2.25, 100, IType.SIN_UP).hold(100).addPos(0, 0.5, 1.25, 100, IType.SIN_FULL).hold(100).addPos(0, 0.5, 2.25, 100, IType.SIN_UP)); + case INSPECT: return new BusAnimation() + .addBus("TILT", new BusAnimationSequence().addPos(-30, 0, 0, 250, IType.SIN_FULL).hold(1500).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("TURN", new BusAnimationSequence().addPos(0, 0, 25, 250, IType.SIN_FULL).hold(1500).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("SLIDE", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, 0, -0.5, 100, IType.SIN_FULL).hold(1125).addPos(0, 0, 0, 100, IType.SIN_UP)) + .addBus("BULLET", ammo <= 1 ? new BusAnimationSequence().setPos(100, 0, 0) : new BusAnimationSequence().setPos(0, 0.5, 2.25).hold(350).addPos(0, 0.5, 1.25, 100, IType.SIN_FULL).hold(1125).addPos(0, 0.5, 2.25, 100, IType.SIN_UP)); + } + + return null; + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java index 63d1ac9a0..f36444ca8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java +++ b/src/main/java/com/hbm/items/weapon/sedna/hud/HUDComponentAmmoCounter.java @@ -41,7 +41,7 @@ public class HUDComponentAmmoCounter implements IHUDComponent { @Override public int getComponentHeight(EntityPlayer player, ItemStack stack){ - return 19; + return 17; } @Override diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/XWeaponModManager.java b/src/main/java/com/hbm/items/weapon/sedna/mods/XWeaponModManager.java index 25a561aa4..c65d4d64b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/XWeaponModManager.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/XWeaponModManager.java @@ -91,6 +91,7 @@ public class XWeaponModManager { ModItems.gun_spas12, ModItems.gun_panzerschreck }; Item[] wsteelGuns = new Item[] { + ModItems.gun_star_f, ModItems.gun_star_f_akimbo, ModItems.gun_g3, ModItems.gun_g3_zebra, ModItems.gun_stinger, ModItems.gun_chemthrower }; @@ -130,7 +131,7 @@ public class XWeaponModManager { new WeaponModDefinition(EnumModGeneric.BRONZE_DURA).addMod(bronzeGuns, new WeaponModGenericDurability(117)); new WeaponModDefinition(EnumModSpecial.SPEEDLOADER).addMod(ModItems.gun_liberator, new WeaponModLiberatorSpeedloader(200)); - new WeaponModDefinition(EnumModSpecial.SILENCER).addMod(new Item[] {ModItems.gun_am180, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_g3, ModItems.gun_amat}, new WeaponModSilencer(ID_SILENCER)); + new WeaponModDefinition(EnumModSpecial.SILENCER).addMod(new Item[] {ModItems.gun_am180, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_star_f, ModItems.gun_star_f_akimbo, ModItems.gun_g3, ModItems.gun_amat}, new WeaponModSilencer(ID_SILENCER)); new WeaponModDefinition(EnumModSpecial.SCOPE).addMod(new Item[] {ModItems.gun_heavy_revolver, ModItems.gun_g3, ModItems.gun_mas36, ModItems.gun_charge_thrower}, new WeaponModScope(ID_SCOPE)); new WeaponModDefinition(EnumModSpecial.SAW) .addMod(new Item[] {ModItems.gun_maresleg, ModItems.gun_double_barrel}, new WeaponModSawedOff(ID_SAWED_OFF)) @@ -176,7 +177,9 @@ public class XWeaponModManager { BulletConfig[] r762 = new BulletConfig[] {XFactory762mm.r762_sp, XFactory762mm.r762_fmj, XFactory762mm.r762_jhp, XFactory762mm.r762_ap, XFactory762mm.r762_du, XFactory762mm.r762_he}; BulletConfig[] bmg50 = new BulletConfig[] {XFactory50.bmg50_sp, XFactory50.bmg50_fmj, XFactory50.bmg50_jhp, XFactory50.bmg50_ap, XFactory50.bmg50_du, XFactory50.bmg50_he}; new WeaponModDefinition(EnumModCaliber.P9) - .addMod(ModItems.gun_henry, new WeaponModCaliber(300, 28, 10F, p9)); + .addMod(ModItems.gun_henry, new WeaponModCaliber(300, 28, 10F, p9)) + .addMod(ModItems.gun_star_f, new WeaponModCaliber(301, 12, 15F, p9)) + .addMod(ModItems.gun_star_f_akimbo, new WeaponModCaliber(302, 12, 15F, p9)); new WeaponModDefinition(EnumModCaliber.P45) .addMod(ModItems.gun_henry, new WeaponModCaliber(310, 28, 10F, p45)) .addMod(ModItems.gun_greasegun, new WeaponModCaliber(311, 24, 3F, p45)) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 115b054f8..366757216 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -312,6 +312,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatterySocket.class, new RenderBatterySocket()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatteryREDD.class, new RenderBatteryREDD()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineIndustrialTurbine.class, new RenderIndustrialTurbine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorBreeding.class, new RenderBreeder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarBoiler.class, new RenderSolarBoiler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStorageDrum.class, new RenderStorageDrum()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f67415062..faa76ada0 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -105,9 +105,10 @@ public class ResourceManager { public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asVBO(); //Large Turbine - public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asVBO(); - public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); - public static final IModelCustom chungus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chungus.obj")).asVBO(); + public static final IModelCustom steam_engine = new HFRWavefrontObject("models/machines/steam_engine.obj").asVBO(); + public static final IModelCustom turbine = new HFRWavefrontObject("models/machines/turbine.obj").asVBO(); + public static final IModelCustom industrial_turbine = new HFRWavefrontObject("models/machines/industrial_turbine.obj").asVBO(); + public static final IModelCustom chungus = new HFRWavefrontObject("models/machines/chungus.obj").asVBO(); //Cooling Tower public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")).asVBO(); @@ -118,13 +119,13 @@ public class ResourceManager { public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")).asVBO(); //Wood burner - public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")); + public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")).asVBO(); //IGen public static final IModelCustom igen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/igen.obj")); //Combustion Engine - public static final IModelCustom dieselgen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/dieselgen.obj")); + public static final IModelCustom dieselgen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/dieselgen.obj")).asVBO(); public static final IModelCustom combustion_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/combustion_engine.obj")).asVBO(); //Press @@ -159,7 +160,7 @@ public class ResourceManager { public static final IModelCustom purex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/purex.obj")).asVBO(); //Mixer - public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")); + public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")).asVBO(); //Arc Welder public static final IModelCustom arc_welder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/arc_welder.obj"), false).asVBO(); @@ -183,7 +184,7 @@ public class ResourceManager { public static final IModelCustom microwave = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/microwave.obj")); //Big Man Johnson - public static final IModelCustom autosaw = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj")); + public static final IModelCustom autosaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj"), false).asVBO(); //Mining Drill public static final IModelCustom mining_drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_drill.obj")).asVBO(); @@ -546,6 +547,7 @@ public class ResourceManager { //Large Turbine public static final ResourceLocation steam_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/steam_engine.png"); public static final ResourceLocation turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbine.png"); + public static final ResourceLocation industrial_turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/industrial_turbine.png"); public static final ResourceLocation chungus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chungus.png"); //Cooling Tower @@ -913,6 +915,7 @@ public class ResourceManager { public static final IModelCustom uzi = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/uzi.obj")).asVBO(); public static final IModelCustom spas_12 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/spas-12.obj")).asVBO(); public static final IModelCustom panzerschreck = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/panzerschreck.obj")).asVBO(); + public static final IModelCustom star_f = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/star_f.obj")).asVBO(); public static final IModelCustom g3 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/g3.obj")).asVBO(); public static final IModelCustom stinger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stinger.obj")).asVBO(); public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asVBO(); @@ -1037,6 +1040,8 @@ public class ResourceManager { public static final ResourceLocation uzi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/uzi.png"); public static final ResourceLocation uzi_saturnite_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/uzi_saturnite.png"); public static final ResourceLocation panzerschreck_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/panzerschreck.png"); + public static final ResourceLocation star_f_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/star_f.png"); + public static final ResourceLocation star_f_elite_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/star_f_elite.png"); public static final ResourceLocation g3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3.png"); public static final ResourceLocation g3_zebra_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_zebra.png"); public static final ResourceLocation g3_green_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_polymer_green.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStarF.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStarF.java new file mode 100644 index 000000000..7f79b31ef --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStarF.java @@ -0,0 +1,204 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mods.XWeaponModManager; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class ItemRenderStarF extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.75F * offset, -1.75F * offset, 2.5F * offset, + 0, -7.625 / 8D, 1); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.star_f_tex); + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER"); + double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET"); + double[] slide = HbmAnimations.getRelevantTransformation("SLIDE"); + + GL11.glTranslated(0, -2, -8); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 8); + + GL11.glTranslated(0, 1, -3); + GL11.glRotated(turn[2], 0, 0, 1); + GL11.glRotated(tilt[0], 1, 0, 0); + GL11.glTranslated(0, -1, 3); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.star_f.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, -4.25); + GL11.glRotated(60 * (hammer[0] - 1), 1, 0, 0); + GL11.glTranslated(0, -1.75, 4.25); + ResourceManager.star_f.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, slide[2] * 2.3125); + ResourceManager.star_f.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.star_f.renderPart("Mag"); + GL11.glTranslated(bullet[0], bullet[1], bullet[2]); + ResourceManager.star_f.renderPart("Bullet"); + GL11.glPopMatrix(); + + if(hasSilencer(stack)) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.375, -0.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Silencer"); + GL11.glPopMatrix(); + + } else { + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 3, 6.125); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.75D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 3, 6.125); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * gun.shotRand, 1, 0, 0); + this.renderMuzzleFlash(gun.lastShot[0], 75, 7.5); + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, -0.25, 1.75); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-1, -0.5, 0); + } + + @Override + public void setupModTable(ItemStack stack) { + double scale = -6.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.25, -5); + } + + @Override + public void renderModTable(ItemStack stack, int index) { + GL11.glEnable(GL11.GL_LIGHTING); + + renderStandardGun(stack); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type, Object... data) { + GL11.glEnable(GL11.GL_LIGHTING); + + boolean silenced = hasSilencer(stack); + + if(silenced && type == ItemRenderType.INVENTORY) { + double scale = 0.625D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0, -6); + } + + renderStandardGun(stack); + + if(type == ItemRenderType.EQUIPPED && !silenced) { + EntityLivingBase ent = (EntityLivingBase) data[1]; + long shot; + double shotRand = 0; + if(ent == Minecraft.getMinecraft().thePlayer) { + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + shot = gun.lastShot[0]; + shotRand = gun.shotRand; + } else { + shot = ItemRenderWeaponBase.flashMap.getOrDefault(ent, (long) -1); + if(shot < 0) return; + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 3, 6.25); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * shotRand, 1, 0, 0); + this.renderMuzzleFlash(shot, 75, 7.5); + GL11.glPopMatrix(); + } + } + + public boolean hasSilencer(ItemStack stack) { + return XWeaponModManager.hasUpgrade(stack, 0, XWeaponModManager.ID_SILENCER); + } + + public void renderStandardGun(ItemStack stack) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.star_f_tex); + ResourceManager.star_f.renderPart("Gun"); + ResourceManager.star_f.renderPart("Slide"); + ResourceManager.star_f.renderPart("Mag"); + ResourceManager.star_f.renderPart("Hammer"); + boolean silenced = hasSilencer(stack); + if(silenced) { + GL11.glTranslated(0, 2.375, -0.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Silencer"); + } + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStarFAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStarFAkimbo.java new file mode 100644 index 000000000..10687a6db --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStarFAkimbo.java @@ -0,0 +1,293 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mods.XWeaponModManager; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class ItemRenderStarFAkimbo extends ItemRenderWeaponBase { + + @Override public boolean isAkimbo() { return true; } + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.33F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + + float offset = 0.8F; + + for(int i = -1; i <= 1; i += 2) { + int index = i == -1 ? 0 : 1; + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.star_f_elite_tex); + + GL11.glPushMatrix(); + standardAimingTransform(stack, -2F * offset * i, -1.75F * offset, 2.5F * offset, 0, -7.625 / 8D, 1); + + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP", index); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL", index); + double[] hammer = HbmAnimations.getRelevantTransformation("HAMMER", index); + double[] tilt = HbmAnimations.getRelevantTransformation("TILT", index); + double[] turn = HbmAnimations.getRelevantTransformation("TURN", index); + double[] mag = HbmAnimations.getRelevantTransformation("MAG", index); + double[] bullet = HbmAnimations.getRelevantTransformation("BULLET", index); + double[] slide = HbmAnimations.getRelevantTransformation("SLIDE", index); + + GL11.glTranslated(0, -2, -8); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 2, 8); + + GL11.glTranslated(0, 1, -3); + GL11.glRotated(turn[2] * i, 0, 0, 1); + GL11.glRotated(tilt[0], 1, 0, 0); + GL11.glTranslated(0, -1, 3); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.star_f.renderPart("Gun"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, -4.25); + GL11.glRotated(60 * (hammer[0] - 1), 1, 0, 0); + GL11.glTranslated(0, -1.75, 4.25); + ResourceManager.star_f.renderPart("Hammer"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, slide[2] * 2.3125); + ResourceManager.star_f.renderPart("Slide"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.star_f.renderPart("Mag"); + GL11.glTranslated(bullet[0], bullet[1], bullet[2]); + ResourceManager.star_f.renderPart("Bullet"); + GL11.glPopMatrix(); + + if(hasSilencer(stack, index)) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.375, -0.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Silencer"); + GL11.glPopMatrix(); + + } else { + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 3, 6.125); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, index).smokeNodes, 0.75D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + renderMuzzleFlash(gun.shotRand, gun.lastShot[index]); + } + + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + GL11.glTranslated(0, -0.25, 1.75); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void setupThirdPersonAkimbo(ItemStack stack) { + super.setupThirdPersonAkimbo(stack); + GL11.glTranslated(0, -0.25, 1.75); + double scale = 0.75D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void setupInv(ItemStack stack) { + GL11.glAlphaFunc(GL11.GL_GREATER, 0F); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glScaled(1, 1, -1); + GL11.glTranslated(8, 8, 0); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + } + + @Override + public void setupModTable(ItemStack stack) { + double scale = -6.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.25, -5); + } + + @Override + public void renderEquipped(ItemStack stack, Object... data) { + renderStandardGun(stack, 1); + if(!hasSilencer(stack, 1)) renderThirdPersonFlash((EntityLivingBase) data[1], stack, 1); + } + + @Override + public void renderEquippedAkimbo(ItemStack stack, EntityLivingBase ent) { + renderStandardGun(stack, 0); + if(!hasSilencer(stack, 0)) renderThirdPersonFlash(ent, stack, 0); + } + + @Override + public void renderModTable(ItemStack stack, int index) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.star_f_elite_tex); + ResourceManager.star_f.renderPart("Gun"); + ResourceManager.star_f.renderPart("Slide"); + ResourceManager.star_f.renderPart("Mag"); + ResourceManager.star_f.renderPart("Hammer"); + if(hasSilencer(stack, index)) { + GL11.glTranslated(0, 2.375, -0.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Silencer"); + } + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderEntity(ItemStack stack) { + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + boolean anySilenced = hasSilencer(stack, 0) || hasSilencer(stack, 1); + + if(anySilenced) { + GL11.glScaled(0.75, 0.75, 0.75); + } + + GL11.glPushMatrix(); + GL11.glTranslated(-1, 1, 0); + renderStandardGun(stack, 1); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(1, 1, 0); + renderStandardGun(stack, 0); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type, Object... data) { + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + boolean anySilenced = hasSilencer(stack, 0) || hasSilencer(stack, 1); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0.5, 0, 0); + if(anySilenced) { + double scale = 0.625D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0, -4); + } + renderStandardGun(stack, 1); + GL11.glPopMatrix(); + + GL11.glTranslated(0, 0, 5); + + GL11.glPushMatrix(); + GL11.glRotated(225, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glRotated(-90, 1, 0, 0); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(-45, 0, 1, 0); + GL11.glTranslated(-0.5, 0, 0); + if(anySilenced) { + double scale = 0.625D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0, -4); + } + renderStandardGun(stack, 0); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + public boolean hasSilencer(ItemStack stack, int cfg) { + return XWeaponModManager.hasUpgrade(stack, cfg, XWeaponModManager.ID_SILENCER); + } + + public void renderStandardGun(ItemStack stack, int index) { + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.star_f_elite_tex); + ResourceManager.star_f.renderPart("Gun"); + ResourceManager.star_f.renderPart("Slide"); + ResourceManager.star_f.renderPart("Mag"); + ResourceManager.star_f.renderPart("Hammer"); + boolean silenced = hasSilencer(stack, index); + if(silenced) { + GL11.glTranslated(0, 2.375, -0.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart("Silencer"); + } + GL11.glShadeModel(GL11.GL_FLAT); + } + + public void renderThirdPersonFlash(Entity ent, ItemStack stack, int config) { + + long shot; + double shotRand = 0; + if(ent == Minecraft.getMinecraft().thePlayer) { + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + shot = gun.lastShot[config]; + shotRand = gun.shotRand; + } else { + shot = ItemRenderWeaponBase.flashMap.getOrDefault(ent, (long) -1); + if(shot < 0) return; + } + + renderMuzzleFlash(shotRand, shot); + } + + public void renderMuzzleFlash(double shotRand, long shot) { + + GL11.glPushMatrix(); + GL11.glTranslated(0, 3, 6.125); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(90 * shotRand, 1, 0, 0); + this.renderMuzzleFlash(shot, 75, 7.5); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java index 2b65efee2..df9af98ff 100644 --- a/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java +++ b/src/main/java/com/hbm/render/loader/HFRWavefrontObject.java @@ -13,6 +13,8 @@ import java.util.regex.Pattern; import org.lwjgl.opengl.GL11; +import com.hbm.lib.RefStrings; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -51,6 +53,15 @@ public class HFRWavefrontObject implements IModelCustomNamed { private String fileName; private boolean smoothing = true; + public HFRWavefrontObject(String name) throws ModelFormatException { + this(new ResourceLocation(RefStrings.MODID, name)); + } + + public HFRWavefrontObject noSmooth() { + this.smoothing = false; + return this; + } + public HFRWavefrontObject(ResourceLocation resource) throws ModelFormatException { this.resource = resource; this.fileName = resource.toString(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderIndustrialTurbine.java b/src/main/java/com/hbm/render/tileentity/RenderIndustrialTurbine.java new file mode 100644 index 000000000..f412f7171 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderIndustrialTurbine.java @@ -0,0 +1,92 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineIndustrialTurbine; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderIndustrialTurbine extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(tile.getBlockMetadata() - 10) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + TileEntityMachineIndustrialTurbine turbine = (TileEntityMachineIndustrialTurbine) tile; + + bindTexture(ResourceManager.industrial_turbine_tex); + ResourceManager.industrial_turbine.renderPart("Turbine"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated(135 - (turbine.tanks[0].getTankType().getID() - Fluids.STEAM.getID()) * 90, 0, 0, 1); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.industrial_turbine.renderPart("Gauge"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated(turbine.lastRotor + (turbine.rotor - turbine.lastRotor) * interp, 0, 0, -1); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.industrial_turbine.renderPart("Flywheel"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_industrial_turbine); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(1, 0, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glTranslated(0.5, 0, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.industrial_turbine_tex); + + ResourceManager.industrial_turbine.renderPart("Turbine"); + + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated(135, 0, 0, 1); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.industrial_turbine.renderPart("Gauge"); + + double rot = (System.currentTimeMillis() / 5) % 336D; + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated(rot, 0, 0, -1); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.industrial_turbine.renderPart("Flywheel"); + + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } +} diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 0d34129eb..a5f24e673 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -172,13 +172,18 @@ public abstract class DoorDecl { return null; } - public final ResourceLocation[] skins = new ResourceLocation[] { - ResourceManager.pheo_fire_door_tex, - ResourceManager.pheo_fire_door_black_tex, - ResourceManager.pheo_fire_door_orange_tex, - }; + public ResourceLocation[] skins; - @Override public ResourceLocation[] getSEDNASkins() { return skins; } + @SideOnly(Side.CLIENT) @Override public ResourceLocation[] getSEDNASkins() { + if(skins == null) skins = new ResourceLocation[] { + ResourceManager.pheo_fire_door_tex, + ResourceManager.pheo_fire_door_black_tex, + ResourceManager.pheo_fire_door_orange_tex, + }; + return skins; + } + + public int getSkinCount() { return 3; } @Override public int timeToOpen() { return 160; } @Override public int[][] getDoorOpenRanges() { return new int[][] { { -1, 0, 0, 3, 4, 1 } }; } @@ -301,12 +306,17 @@ public abstract class DoorDecl { else return super.getBlockBound(x, y, z, open, forCollision); } - public final ResourceLocation[] skins = new ResourceLocation[] { - ResourceManager.pheo_secure_door_tex, - ResourceManager.pheo_secure_door_grey_tex - }; + public ResourceLocation[] skins; - @Override public ResourceLocation[] getSEDNASkins() { return skins; } + @Override public ResourceLocation[] getSEDNASkins() { + if(skins == null) skins = new ResourceLocation[] { + ResourceManager.pheo_secure_door_tex, + ResourceManager.pheo_secure_door_grey_tex + }; + return skins; + } + + public int getSkinCount() { return 2; } }; public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl() { @@ -327,13 +337,18 @@ public abstract class DoorDecl { return null; } - public final ResourceLocation[] skins = new ResourceLocation[] { - ResourceManager.pheo_airlock_door_tex, - ResourceManager.pheo_airlock_door_clean_tex, - ResourceManager.pheo_airlock_door_green_tex - }; + public ResourceLocation[] skins; - @Override public ResourceLocation[] getSEDNASkins() { return skins; } + @SideOnly(Side.CLIENT) @Override public ResourceLocation[] getSEDNASkins() { + if(skins == null) skins = new ResourceLocation[] { + ResourceManager.pheo_airlock_door_tex, + ResourceManager.pheo_airlock_door_clean_tex, + ResourceManager.pheo_airlock_door_green_tex + }; + return skins; + } + + public int getSkinCount() { return 3; } @Override public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open, boolean forCollision) { @@ -670,11 +685,7 @@ public abstract class DoorDecl { public ResourceLocation[] getSEDNASkins() { return null; } public boolean hasSkins() { return getSkinCount() > 0; } - public int getSkinCount() { - ResourceLocation[] skins = this.getSEDNASkins(); - if(skins == null || skins.length <= 1) return 0; - return skins.length; - } + public int getSkinCount() { return 0; } public ResourceLocation getCyclingSkins() { ResourceLocation[] skins = this.getSEDNASkins(); diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 9a7ee5cfb..2eb2b5081 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.IEnergyConnectorMK2; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluidmk2.IFluidConnectorMK2; import api.hbm.fluidmk2.IFluidReceiverMK2; @@ -148,15 +149,15 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy @Override public boolean canConnect(ForgeDirection dir) { - if(power && getCoreObject() instanceof IEnergyReceiverMK2) { - return ((IEnergyReceiverMK2)getCoreObject()).canConnect(dir); + if(power && getCoreObject() instanceof IEnergyConnectorMK2) { + return ((IEnergyConnectorMK2)getCoreObject()).canConnect(dir); } if(conductor && getCoreObject() instanceof IEnergyConductorMK2) { return ((IEnergyConductorMK2)getCoreObject()).canConnect(dir); } - return true; + return false; } @Override diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 0b89cb049..6a8791bdf 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -347,6 +347,7 @@ public class TileMappings { put(TileEntitySteamEngine.class, "tileentity_steam_engine"); put(TileEntityMachineTurbine.class, "tileentity_turbine"); put(TileEntityMachineLargeTurbine.class, "tileentity_industrial_turbine"); + put(TileEntityMachineIndustrialTurbine.class, "tileentity_ind_turbine"); put(TileEntityChungus.class, "tileentity_chungus"); put(TileEntityMachineCombustionEngine.class, "tileentity_combustion_engine"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index c5c922c8f..0b367a1d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -7,54 +7,35 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; -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_Coolable; -import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IBufPacketReceiver; -import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.TileEntityLoadedBase; -import com.hbm.util.CompatEnergyControl; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.energymk2.IEnergyProviderMK2; -import api.hbm.fluid.IFluidStandardTransceiver; -import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IBufPacketReceiver, IFluidCopiable{ +public class TileEntityChungus extends TileEntityTurbineBase implements SimpleComponent, CompatHandler.OCComponent, IConfigurableMachine { - public long power; private int turnTimer; public float rotor; public float lastRotor; public float fanAcceleration = 0F; - public FluidTank[] tanks; - protected double[] info = new double[3]; - private AudioWrapper audio; private float audioDesync; //Configurable values - public static long maxPower = 100000000000L; public static int inputTankSize = 1_000_000_000; public static int outputTankSize = 1_000_000_000; public static double efficiency = 0.85D; @@ -75,7 +56,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr @Override public void readIfPresent(JsonObject obj) { - maxPower = IConfigurableMachine.grab(obj, "L:maxPower", maxPower); inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency); @@ -83,123 +63,16 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr @Override public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:maxPower").value(maxPower); writer.name("INFO").value("leviathan steam turbine consumes all availible steam per tick"); writer.name("I:inputTankSize").value(inputTankSize); writer.name("I:outputTankSize").value(outputTankSize); writer.name("D:efficiency").value(efficiency); } - - + + @Override public double consumptionPercent() { return 1D; } + @Override public double getEfficiency() { return efficiency; } @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - this.power *= 0.95; - - this.info = new double[3]; - - boolean operational = false; - FluidType in = tanks[0].getTankType(); - boolean valid = false; - if(in.hasTrait(FT_Coolable.class)) { - FT_Coolable trait = in.getTrait(FT_Coolable.class); - double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency; //85% efficiency by default - if(eff > 0) { - tanks[1].setTankType(trait.coolsTo); - int inputOps = tanks[0].getFill() / trait.amountReq; - int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced; - int ops = Math.min(inputOps, outputOps); - tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); - tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); - this.power += (ops * trait.heatEnergy * eff); - info[0] = ops * trait.amountReq; - info[1] = ops * trait.amountProduced; - info[2] = ops * trait.heatEnergy * eff; - valid = true; - operational = ops > 0; - } - } - - if(!valid) tanks[1].setTankType(Fluids.NONE); - if(power > maxPower) power = maxPower; - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.tryProvide(worldObj, xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()); - - for(DirPos pos : this.getConPos()) { - this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } - - if(power > maxPower) - power = maxPower; - - turnTimer--; - - if(operational) turnTimer = 25; - networkPackNT(150); - - } else { - - this.lastRotor = this.rotor; - this.rotor += this.fanAcceleration; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } - - if(turnTimer > 0) { - // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum - this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.075F + audioDesync)); - - Random rand = worldObj.rand; - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection side = dir.getRotation(ForgeDirection.UP); - - for(int i = 0; i < 10; i++) { - worldObj.spawnParticle("cloud", - xCoord + 0.5 + dir.offsetX * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetX * 0.65, - yCoord + 2.5 + rand.nextGaussian() * 0.65, - zCoord + 0.5 + dir.offsetZ * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetZ * 0.65, - -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); - } - - - if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.chungusTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); - audio.startSound(); - } - - float turbineSpeed = this.fanAcceleration / 25F; - audio.updateVolume(getVolume(0.5f * turbineSpeed)); - audio.updatePitch(0.25F + 0.75F * turbineSpeed); - } else { - this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); - - if(audio != null) { - if(this.fanAcceleration > 0) { - float turbineSpeed = this.fanAcceleration / 25F; - audio.updateVolume(getVolume(0.5f * turbineSpeed)); - audio.updatePitch(0.25F + 0.75F * turbineSpeed); - } else { - audio.stopSound(); - audio = null; - } - } - } - } - } - - public void onLeverPull(FluidType previous) { - for(BlockPos pos : getConPos()) { - this.tryUnsubscribe(previous, worldObj, pos.getX(), pos.getY(), pos.getZ()); - } - } - public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -209,37 +82,82 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr new DirPos(xCoord - rot.offsetX * 3, yCoord, zCoord - rot.offsetZ * 3, rot.getOpposite()) }; } + + @Override + public DirPos[] getPowerPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + return new DirPos[] { new DirPos(xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()) }; + } + + @Override + public void onServerTick() { + turnTimer--; + if(operational) turnTimer = 25; + } + + @Override + public void onClientTick() { + + this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } + + if(turnTimer > 0) { + // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.075F + audioDesync)); + + Random rand = worldObj.rand; + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection side = dir.getRotation(ForgeDirection.UP); + + for(int i = 0; i < 10; i++) { + worldObj.spawnParticle("cloud", + xCoord + 0.5 + dir.offsetX * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetX * 0.65, + yCoord + 2.5 + rand.nextGaussian() * 0.65, + zCoord + 0.5 + dir.offsetZ * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetZ * 0.65, + -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); + } + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.chungusTurbineRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F, 20); + audio.startSound(); + } + + float turbineSpeed = this.fanAcceleration / 25F; + audio.updateVolume(getVolume(0.5f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + audio.keepAlive(); + + } else { + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); + + if(audio != null) { + if(this.fanAcceleration > 0) { + float turbineSpeed = this.fanAcceleration / 25F; + audio.updateVolume(getVolume(0.5f * turbineSpeed)); + audio.updatePitch(0.25F + 0.75F * turbineSpeed); + } else { + audio.stopSound(); + audio = null; + } + } + } + } @Override public void serialize(ByteBuf buf) { - buf.writeLong(this.power); + super.serialize(buf); buf.writeInt(this.turnTimer); - this.tanks[0].serialize(buf); - this.tanks[1].serialize(buf); } @Override public void deserialize(ByteBuf buf) { - this.power = buf.readLong(); + super.deserialize(buf); this.turnTimer = buf.readInt(); - this.tanks[0].deserialize(buf); - this.tanks[1].deserialize(buf); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - tanks[0].readFromNBT(nbt, "water"); - tanks[1].readFromNBT(nbt, "steam"); - power = nbt.getLong("power"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - tanks[0].writeToNBT(nbt, "water"); - tanks[1].writeToNBT(nbt, "steam"); - nbt.setLong("power", power); } @Override @@ -247,32 +165,11 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr return TileEntity.INFINITE_EXTENT_AABB; } - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - @Override public boolean canConnect(ForgeDirection dir) { return dir != ForgeDirection.UP && dir != ForgeDirection.DOWN && dir != ForgeDirection.UNKNOWN; } - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void setPower(long power) { - this.power = power; - } - @Override @Optional.Method(modid = "OpenComputers") public String getComponentName() { @@ -321,13 +218,13 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") @Optional.Method(modid = "OpenComputers") public Object[] getPower(Context context, Arguments args) { - return new Object[] {power}; + return new Object[] {powerBuffer}; } @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], powerBuffer}; } @Override @@ -357,34 +254,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr case ("getInfo"): return getInfo(context, args); } - throw new NoSuchMethodException(); - } - - @Override - public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks[1]}; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks[0]}; - } - - @Override - public FluidTank[] getAllTanks() { - return tanks; - } - - @Override - public void provideExtraInfo(NBTTagCompound data) { - data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); - data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); - data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); - data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); - } - - @Override - public FluidTank getTankToPaste() { - return null; + throw new NoSuchMethodException(); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIndustrialTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIndustrialTurbine.java new file mode 100644 index 000000000..d124daadb --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIndustrialTurbine.java @@ -0,0 +1,237 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; +import java.util.Random; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.BlockDummyable; +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_Coolable; +import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.util.fauxpointtwelve.DirPos; + +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineIndustrialTurbine extends TileEntityTurbineBase implements IConfigurableMachine { + + public static int inputTankSize = 512_000; + public static int outputTankSize = 2_048_000; + public static double efficiency = 1D; + + public float rotor; + public float lastRotor; + + public double spin = 0; + public static double ACCELERATION = 1D / 400D; + public long lastPowerTarget = 0; + + private AudioWrapper audio; + private float audioDesync; + + @Override + public String getConfigName() { + return "steamturbineIndustrial"; + } + + @Override + public void readIfPresent(JsonObject obj) { + inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); + outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); + efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("INFO").value("industrial steam turbine consumes 20% of availible steam per tick"); + writer.name("I:inputTankSize").value(inputTankSize); + writer.name("I:outputTankSize").value(outputTankSize); + writer.name("D:efficiency").value(efficiency); + } + + public TileEntityMachineIndustrialTurbine() { + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); + + Random rand = new Random(); + audioDesync = rand.nextFloat() * 0.05F; + } + + // sets the power target so we know how much this steam type can theoretically make, and increments the spin based on actual throughput + @Override + public void generatePower(long power, int steamConsumed) { + FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class); + double eff = trait.getEfficiency(CoolingType.TURBINE) * getEfficiency(); + int maxOps = (int) Math.ceil((tanks[0].getMaxFill() * consumptionPercent()) / trait.amountReq); + this.lastPowerTarget = (long) (maxOps * trait.heatEnergy * eff); // theoretical max output at full blast with this type + double fraction = (double) steamConsumed / (double) (trait.amountReq * maxOps); // % of max steam throughput currently achieved + + if(Math.abs(spin - fraction) <= ACCELERATION) { + this.spin = fraction; + } else if(spin < fraction) { + this.spin += ACCELERATION; + } else if(spin > fraction) { + this.spin -= ACCELERATION; + } + } + + @Override + public void onServerTick() { + if(!operational) { + this.spin -= ACCELERATION; + } + + if(this.spin <= 0) { + this.spin = 0; + } else { + this.powerBuffer = (long) (this.lastPowerTarget * this.spin); + } + } + + @Override + public void onClientTick() { + + this.lastRotor = this.rotor; + this.rotor += this.spin * 30; + + if(this.rotor >= 360) { + this.lastRotor -= 360; + this.rotor -= 360; + } + + if(this.spin > 0 && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) <= 35) { + + float spinNum = (float) Math.min(1F, spin * 2); + float volume = this.getVolume(0.25F + spinNum * 0.75F); + float pitch = 0.5F + spinNum * 0.5F + this.audioDesync; + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.largeTurbineRunning", xCoord + 0.5F, yCoord + 0.5F, zCoord + 0.5F, volume, 20F, pitch, 20); + audio.startSound(); + } + + audio.keepAlive(); + audio.updatePitch(pitch); + audio.updateVolume(volume); + + } else { + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + + @Override + public boolean canConnect(ForgeDirection dir) { + ForgeDirection myDir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + return dir == myDir.getOpposite(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + if(!type.hasTrait(FT_Coolable.class)) return false; + ForgeDirection myDir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + return dir != myDir && dir != myDir.getOpposite(); + } + + @Override public double consumptionPercent() { return 0.2D; } + @Override public double getEfficiency() { return efficiency; } + @Override public boolean doesResizeCompressor() { return true; } + + @Override + public void onChunkUnload() { + super.onChunkUnload(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeDouble(this.spin); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.spin = buf.readDouble(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + lastPowerTarget = nbt.getLong("lastPowerTarget"); + spin = nbt.getDouble("spin"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("lastPowerTarget", lastPowerTarget); + nbt.setDouble("spin", spin); + } + + @Override + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 3 + rot.offsetZ * 2, rot), + new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 3 - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 1 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 1 + rot.offsetZ * 2, rot), + new DirPos(xCoord - dir.offsetX * 1 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 1 - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 3, yCoord + 3, zCoord + dir.offsetZ * 3, ForgeDirection.UP), + new DirPos(xCoord - dir.offsetX * 1, yCoord + 3, zCoord - dir.offsetZ * 1, ForgeDirection.UP), + }; + } + + @Override + public DirPos[] getPowerPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 4, yCoord + 1, zCoord - dir.offsetZ * 4, dir.getOpposite()) + }; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 3, + zCoord + 4 + ); + } + + return bb; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 33f318fb1..28c9ab943 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -1,10 +1,7 @@ package com.hbm.tileentity.machine; import java.util.Random; -import java.io.IOException; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineLargeTurbine; @@ -18,7 +15,6 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IFluidCopiable; -import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; @@ -44,7 +40,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IFluidCopiable { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable { public long power; public FluidTank[] tanks; @@ -76,28 +72,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme audioDesync = rand.nextFloat() * 0.05F; } - @Override - public String getConfigName() { - return "steamturbineIndustrial"; - } - - @Override - public void readIfPresent(JsonObject obj) { - maxPower = IConfigurableMachine.grab(obj, "L:maxPower", maxPower); - inputTankSize = IConfigurableMachine.grab(obj, "I:inputTankSize", inputTankSize); - outputTankSize = IConfigurableMachine.grab(obj, "I:outputTankSize", outputTankSize); - efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("L:maxPower").value(maxPower); - writer.name("INFO").value("industrial steam turbine consumes 20% of availible steam per tick"); - writer.name("I:inputTankSize").value(inputTankSize); - writer.name("I:outputTankSize").value(outputTankSize); - writer.name("D:efficiency").value(efficiency); - } - @Override public String getName() { return "container.machineLargeTurbine"; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java index d0297d2f8..f32c6e9ed 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java @@ -70,7 +70,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner writer.name("D:efficiency").value(efficiency); } - ByteBuf buf; + protected ByteBuf buf; @Override public void updateEntity() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTurbineBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTurbineBase.java new file mode 100644 index 000000000..7e4bedee8 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTurbineBase.java @@ -0,0 +1,184 @@ +package com.hbm.tileentity.machine; + +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_Coolable; +import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; +import com.hbm.tileentity.IBufPacketReceiver; +import com.hbm.tileentity.IFluidCopiable; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.fluidmk2.IFluidStandardTransceiverMK2; +import api.hbm.tile.IInfoProviderEC; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import net.minecraft.nbt.NBTTagCompound; + +public abstract class TileEntityTurbineBase extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiverMK2, IInfoProviderEC, IBufPacketReceiver, IFluidCopiable { + + protected ByteBuf buf; + public long powerBuffer; + + public FluidTank[] tanks; + protected double[] info = new double[3]; + public boolean operational = false; + + public abstract double getEfficiency(); + public abstract DirPos[] getConPos(); + public abstract DirPos[] getPowerPos(); + public abstract double consumptionPercent(); + + public void generatePower(long power, int steamConsumed) { + this.powerBuffer += power; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.powerBuffer = 0; + this.info = new double[3]; + + if(this.buf != null) this.buf.release(); + this.buf = Unpooled.buffer(); + + this.tanks[0].serialize(buf); + + operational = false; + FluidType in = tanks[0].getTankType(); + boolean valid = false; + if(in.hasTrait(FT_Coolable.class)) { + FT_Coolable trait = in.getTrait(FT_Coolable.class); + double eff = trait.getEfficiency(CoolingType.TURBINE) * getEfficiency(); + if(eff > 0) { + tanks[1].setTankType(trait.coolsTo); + int inputOps = (int) Math.ceil((tanks[0].getFill() * consumptionPercent()) / trait.amountReq); + int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced; + int ops = Math.min(inputOps, outputOps); + if(ops > 0) { + tanks[0].setFill(tanks[0].getFill() - ops * trait.amountReq); + tanks[1].setFill(tanks[1].getFill() + ops * trait.amountProduced); + this.generatePower((long) (ops * trait.heatEnergy * eff), ops * trait.amountReq); + } + info[0] = ops * trait.amountReq; + info[1] = ops * trait.amountProduced; + info[2] = ops * trait.heatEnergy * eff; + valid = true; + operational = ops > 0; + } + } + + onServerTick(); + + this.tanks[1].serialize(buf); + this.buf.writeLong(this.powerBuffer); + + if(!valid) tanks[1].setTankType(Fluids.NONE); + + for(DirPos pos : this.getPowerPos()) { + this.tryProvide(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + for(DirPos pos : this.getConPos()) { + this.tryProvide(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + networkPackNT(150); + + } else { + onClientTick(); + } + } + + public void onServerTick() { } + public void onClientTick() { } + + public void onLeverPull() { + + FluidType type = tanks[0].getTankType(); + boolean resize = this.doesResizeCompressor(); + + if(type == Fluids.STEAM) { + tanks[0].setTankType(Fluids.HOTSTEAM); tanks[1].setTankType(Fluids.STEAM); + if(resize) { tanks[0].changeTankSize(tanks[0].getMaxFill() / 10); tanks[1].changeTankSize(tanks[1].getMaxFill() / 10); } + } else if(type == Fluids.HOTSTEAM) { + tanks[0].setTankType(Fluids.SUPERHOTSTEAM); tanks[1].setTankType(Fluids.HOTSTEAM); + if(resize) { tanks[0].changeTankSize(tanks[0].getMaxFill() / 10); tanks[1].changeTankSize(tanks[1].getMaxFill() / 10); } + } else if(type == Fluids.SUPERHOTSTEAM) { + tanks[0].setTankType(Fluids.ULTRAHOTSTEAM); tanks[1].setTankType(Fluids.SUPERHOTSTEAM); + if(resize) { tanks[0].changeTankSize(tanks[0].getMaxFill() / 10); tanks[1].changeTankSize(tanks[1].getMaxFill() / 10); } + } else if(type == Fluids.ULTRAHOTSTEAM) { + tanks[0].setTankType(Fluids.STEAM); tanks[1].setTankType(Fluids.SPENTSTEAM); + if(resize) { tanks[0].changeTankSize(tanks[0].getMaxFill() * 1000); tanks[1].changeTankSize(tanks[1].getMaxFill() * 1000); } + } else { + tanks[0].setTankType(Fluids.STEAM); tanks[1].setTankType(Fluids.SPENTSTEAM); + } + + markDirty(); + } + + public boolean doesResizeCompressor() { + return false; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeBytes(this.buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.tanks[0].deserialize(buf); + this.tanks[1].deserialize(buf); + this.powerBuffer = buf.readLong(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + powerBuffer = nbt.getLong("power"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + nbt.setLong("power", powerBuffer); + } + + @Override public long getPower() { return powerBuffer; } + @Override public long getMaxPower() { return powerBuffer; } + @Override public void setPower(long power) { this.powerBuffer = power; } + + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } + @Override public FluidTank[] getAllTanks() { return tanks; } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setBoolean(CompatEnergyControl.B_ACTIVE, info[1] > 0); + data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, info[0]); + data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]); + data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]); + } + + @Override public FluidTank getTankToPaste() { return null; } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 94e666af3..2b0a8da93 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluidmk2.FluidNetMK2; +import api.hbm.fluidmk2.FluidNode; +import api.hbm.fluidmk2.IFluidReceiverMK2; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.entity.effect.EntitySpear; @@ -41,12 +43,7 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; -import java.util.List; -import java.util.Arrays; -import java.util.ArrayList; -import java.util.Set; -import java.util.HashSet; -import java.util.Iterator; +import java.util.*; /** * Base class for all RBMK components, active or passive. Handles heat and the explosion sequence @@ -502,8 +499,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { /* Hanlde overpressure event */ if(RBMKDials.getOverpressure(worldObj) && !pipes.isEmpty()) { - HashSet pipeBlocks = new HashSet<>(); - HashSet pipeReceivers = new HashSet<>(); + HashSet pipeBlocks = new HashSet<>(); + HashSet> pipeReceivers = new HashSet<>(); //unify all parts into single sets to prevent redundancy pipes.forEach(x -> { @@ -513,20 +510,23 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { int count = 0; int max = Math.min(pipeBlocks.size() / 5, 100); - Iterator itPipes = pipeBlocks.iterator(); - Iterator itReceivers = pipeReceivers.iterator(); + Iterator itPipes = pipeBlocks.iterator(); + Iterator> itReceivers = pipeReceivers.iterator(); while(itPipes.hasNext() && count < max) { - Object pipe = itPipes.next(); - if(pipe instanceof TileEntity) { - TileEntity tile = (TileEntity) pipe; - worldObj.setBlock(tile.xCoord, tile.yCoord, tile.zCoord, Blocks.air); + FluidNode node = itPipes.next(); + for (BlockPos pos : node.positions) { + int x = pos.getX(), y = pos.getY(), z = pos.getZ(); + if (worldObj.getTileEntity(x, y ,z) != null) { + worldObj.setBlock(x, y, z, Blocks.air); + } } count++; } while(itReceivers.hasNext()) { - Object con = itReceivers.next(); + Map.Entry e = itReceivers.next(); + IFluidReceiverMK2 con = e.getKey(); if(con instanceof TileEntity) { TileEntity tile = (TileEntity) con; if(con instanceof IOverpressurable) { @@ -568,6 +568,9 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { RBMKBase.dropLids = true; RBMKBase.digamma = false; + + columns.clear(); + pipes.clear(); } private void getFF(int x, int y, int z) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 8163182e4..87a180b00 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2224,6 +2224,9 @@ item.gun_pepperbox.name=Bündelrevolver item.gun_panzerschreck.name=Panzerschreck item.gun_quadro.name=Vierfachraketenwerfer item.gun_spas12.name=SPAS-12 +item.gun_star_f.name=Sportpistole +item.gun_star_f_akimbo.name=Sportpistolen +item.gun_star_f_silenced.name=Schallgedämpfte Pistole item.gun_stg77.name=StG 77 item.gun_stinger.name=FIM-92 Stinger item.gun_tau.name=Taukanone @@ -4559,9 +4562,11 @@ tile.machine_icf_press.name=ICF-Brennstoffpellet-Fabrikant tile.machine_industrial_boiler.name=Industrieller Boiler tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.1 TU/t$Überdrucksicher tile.machine_industrial_generator.name=Industrieller Generator +tile.machine_industrial_turbine.name=Industrielle Dampfturbine +tile.machine_industrial_turbine.desc=Effizienz: 100%% tile.machine_intake.name=Lufteinlass tile.machine_keyforge.name=Schlossertisch -tile.machine_large_turbine.name=Industrielle Dampfturbine +tile.machine_large_turbine.name=Industrielle Dampfturbine (LEGACY) tile.machine_large_turbine.desc=Effizienz: 100%% tile.machine_lithium_battery.name=Li-Ion-Energiespeicherblock (LEGACY) tile.machine_microwave.name=Mikrowelle diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c1061eeb1..46b0ec7c6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3067,6 +3067,9 @@ item.gun_pepperbox.name=Pepperbox item.gun_panzerschreck.name=Panzerschreck item.gun_quadro.name=Quad Rocket Launcher item.gun_spas12.name=SPAS-12 +item.gun_star_f.name=Target Pistol +item.gun_star_f_akimbo.name=Target Pistols +item.gun_star_f_silenced.name=Silenced Pistol item.gun_stg77.name=StG 77 item.gun_stinger.name=FIM-92 Stinger item.gun_tau.name=Tau Cannon @@ -5824,9 +5827,11 @@ tile.machine_icf_press.desc=Fills ICF Fuel pellets$Left fuel slot is accepted by tile.machine_industrial_boiler.name=Industrial Boiler tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.1 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator +tile.machine_industrial_turbine.name=Industrial Steam Turbine +tile.machine_industrial_turbine.desc=Efficiency: 100%% tile.machine_intake.name=Air Intake tile.machine_keyforge.name=Locksmith Table -tile.machine_large_turbine.name=Industrial Steam Turbine +tile.machine_large_turbine.name=Industrial Steam Turbine (LEGACY) tile.machine_large_turbine.desc=Efficiency: 100%% tile.machine_liquefactor.name=Industrial Liquefaction Machine tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction. diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index e59a7a9de..c367983e8 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1806,44 +1806,42 @@ item.ballistite.name=混合无烟火药 item.bandaid.name=邦迪创可贴 item.bathwater.name=有毒肥皂水 item.bathwater_mk2.name=有毒肥皂水(马香味) -item.battery_advanced.name=高级电池 -item.battery_advanced_cell.name=高级电池组 -item.battery_advanced_cell_12.name=十二联高级电池组 -item.battery_advanced_cell_4.name=四联高级电池组 +item.battery_advanced.name=高级电池(遗留) +item.battery_advanced_cell.name=高级电池组(遗留) +item.battery_advanced_cell_12.name=十二联高级电池组(遗留) +item.battery_advanced_cell_4.name=四联高级电池组(遗留) item.battery_creative.name=无限电池 -item.battery_generic.name=电池 -item.battery_lithium.name=锂电池 -item.battery_lithium_cell.name=锂电池组 -item.battery_lithium_cell_3.name=三联锂电池组 -item.battery_lithium_cell_6.name=六联锂电池组 +item.battery_generic.name=电池(遗留) +item.battery_lithium.name=锂电池(遗留) +item.battery_lithium_cell.name=锂电池组(遗留) +item.battery_lithium_cell_3.name=三联锂电池组(遗留) +item.battery_lithium_cell_6.name=六联锂电池组(遗留) item.battery_potato.name=马铃薯电池 item.battery_potatos.name=马铃薯OS -item.battery_red_cell.name=红石电池组 -item.battery_red_cell_24.name=二十四联红石电池组 -item.battery_red_cell_6.name=六联红石电池组 -item.battery_sc_americium.name=自充电 镅-241电池 -item.battery_sc_gold.name=自充电 金-198电池 -item.battery_sc_lead.name=自充电 铅-209电池 -item.battery_sc_plutonium.name=自充电 钚-238电池 -item.battery_sc_polonium.name=自充电 钋-210电池 -item.battery_sc_technetium.name=自充电 锝-98电池 -item.battery_sc_uranium.name=自充电 铀-238电池 -item.battery_schrabidium.name=Sa326电池 -item.battery_schrabidium_cell.name=Sa326电池组 -item.battery_schrabidium_cell_2.name=双联Sa326电池组 -item.battery_schrabidium_cell_4.name=四联Sa326电池组 +item.battery_red_cell.name=红石电池组(遗留) +item.battery_red_cell_24.name=二十四联红石电池组(遗留) +item.battery_red_cell_6.name=六联红石电池组(遗留) +item.battery_sc_americium.name=自充电 镅-241电池(遗留) +item.battery_sc_gold.name=自充电 金-198电池(遗留) +item.battery_sc_lead.name=自充电 铅-209电池(遗留) +item.battery_sc_plutonium.name=自充电 钚-238电池(遗留) +item.battery_sc_polonium.name=自充电 钋-210电池(遗留) +item.battery_sc_technetium.name=自充电 锝-99电池(遗留) +item.battery_sc_uranium.name=自充电 铀-238电池(遗留) +item.battery_schrabidium.name=Sa326电池(遗留) +item.battery_schrabidium_cell.name=Sa326电池组(遗留) +item.battery_schrabidium_cell_2.name=双联Sa326电池组(遗留) +item.battery_schrabidium_cell_4.name=四联Sa326电池组(遗留) item.battery_spark.name=Spark电池 -item.battery_spark_cell_100.name=Spark神秘储能电池组 -item.battery_spark_cell_1000.name=Spark神秘物质能量空间 -item.battery_spark_cell_10000.name=Spark时空晶体 -item.battery_spark_cell_25.name=Spark神秘汽车电池 -item.battery_spark_cell_2500.name=Spark神秘迪拉克之海 -item.battery_spark_cell_6.name=Spark电池组 -item.battery_spark_cell_power.name=Spark反物理储能装置 -item.battery_steam.name=蒸汽动力储能罐 -item.battery_steam_large.name=大型蒸汽动力储能罐 -item.battery_su.name=SU-电池 -item.battery_su_l.name=大型SU-电池 +item.battery_spark_cell_100.name=Spark神秘储能电池组(遗留) +item.battery_spark_cell_1000.name=Spark神秘物质能量空间(遗留) +item.battery_spark_cell_10000.name=Spark时空晶体(遗留) +item.battery_spark_cell_25.name=Spark神秘汽车电池(遗留) +item.battery_spark_cell_2500.name=Spark神秘迪拉克之海(遗留) +item.battery_spark_cell_6.name=Spark电池组(遗留) +item.battery_spark_cell_power.name=Spark反物理储能装置(遗留) +item.battery_steam.name=蒸汽动力储能罐(遗留) +item.battery_steam_large.name=大型蒸汽动力储能罐(遗留) item.battery_trixite.name=杂牌Spark电池 item.bdcl.name=BDCL item.bedrock_ore.grade.base.name=%s基岩矿石 @@ -2073,8 +2071,6 @@ item.canned_fried.name=炸鸡罐头 item.canned_fried.desc=甚至罐头都是油炸的! item.canned_hotdogs.name=热狗罐头 item.canned_hotdogs.desc=不要与冷猫混淆。 -item.canned_jizz.name=FlimFlam工业牌?马奶罐头 -item.canned_jizz.desc=等等什么—— item.canned_kerosene.name=煤油罐头 item.canned_kerosene.desc=想象一下这句俏皮的台词。 item.canned_leftovers.name=剩菜罐头 @@ -4516,16 +4512,10 @@ shape.wireFine=线 shape.wireDense=致密线 shape.wiresDense=致密线 soundCategory.ntmMachines=NTM机器 - -tile.absorber.name=辐射吸收器 OLD -tile.absorber_green.name=高级辐射吸收器 OLD -tile.absorber_pink.name=精英辐射吸收器 OLD -tile.absorber_red.name=增强型辐射吸收器 OLD - -tile.rad_absorber.base.name=辐射吸收器 -tile.rad_absorber.red.name=高级辐射吸收器 -tile.rad_absorber.green.name=精英辐射吸收器 -tile.rad_absorber.pink.name=增强型辐射吸收器 +tile.absorber.name=辐射吸收器(遗留) +tile.absorber_green.name=高级辐射吸收器(遗留) +tile.absorber_pink.name=精英辐射吸收器(遗留) +tile.absorber_red.name=增强型辐射吸收器(遗留) tile.acid_block.name=酸 tile.ams_base.name=AMS基座 [开发中] tile.ams_emitter.name=AMS发射极 [开发中] @@ -5155,7 +5145,7 @@ tile.machine_bat9000.name=巨尻-9000 储罐 tile.machine_battery.name=蓄电池(遗留) tile.machine_battery_potato.name=马铃薯电池组(遗留) tile.machine_boiler.name=大型锅炉 -tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率:ΔT*0.01 TU/T +tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率:ΔT*0.1 TU/T tile.machine_boiler_electric_off.name=电锅炉 tile.machine_boiler_electric_on.name=电锅炉 tile.machine_boiler_off.name=锅炉 @@ -5169,7 +5159,7 @@ tile.machine_chungus.desc=效率: 85%% tile.machine_coal_off.name=火力发电机 tile.machine_coal_on.name=火力发电机 tile.machine_coker.name=焦化装置 -tile.machine_coker.desc=炼焦,并产生各类流体副产品$需要外部热源$传热速率:ΔT*0.025 TU/T +tile.machine_coker.desc=炼焦,并产生各类流体副产品$需要外部热源$传热速率:ΔT*0.25 TU/T tile.machine_combine_factory.name=CMB炼钢炉 tile.machine_combustion_engine.name=工业内燃机 tile.machine_compressor.name=压缩机 @@ -5217,7 +5207,7 @@ tile.machine_hephaestus.name=地热换热器 tile.machine_icf_press.name=ICF燃料靶丸制造器 tile.machine_icf_press.desc=用于装填ICF靶丸$左侧燃料槽接收顶面/底面输入,右侧燃料槽接收侧面输入$μ子胶囊和空靶丸可从任意面输入 tile.machine_industrial_boiler.name=工业锅炉 -tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率:ΔT*0.01 TU/T$不会爆炸 +tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率:ΔT*0.1 TU/T$不会爆炸 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 tile.machine_large_turbine.name=工业汽轮机 @@ -5522,16 +5512,15 @@ tile.rbmk_control_auto.name=RBMK反应堆自动控制棒 tile.rbmk_control_mod.name=RBMK反应堆慢化控制棒 tile.rbmk_crane_console.name=RBMK起重机控制台 tile.rbmk_heater.name=RBMK流体加热器 -tile.rbmk_heatex.name=RBMK换热器 tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 tile.rbmk_loader.desc=让RBMK反应堆在底部同时拥有水接口和蒸汽接口$在RBMK蒸汽管道下方放置水管道,再在下面放置蒸汽导出器$最后将管道连接至蒸汽导出器即可 tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 tile.rbmk_outgasser.name=RBMK反应堆辐照通道 tile.rbmk_reflector.name=RBMK反应堆碳化钨中子反射器 -tile.rbmk_rod.name=RBMK反应堆燃料棒 -tile.rbmk_rod_mod.name=RBMK反应堆慢化燃料棒 -tile.rbmk_rod_reasim.name=RBMK反应堆燃料棒(ReaSim) -tile.rbmk_rod_reasim_mod.name=RBMK反应堆慢化燃料棒(ReaSim) +tile.rbmk_rod.name=RBMK反应堆燃料通道 +tile.rbmk_rod_mod.name=RBMK反应堆慢化燃料通道 +tile.rbmk_rod_reasim.name=RBMK反应堆燃料通道(ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK反应堆慢化燃料通道(ReaSim) tile.rbmk_steam_inlet.name=RBMK ReaSim进水口 tile.rbmk_steam_inlet.desc=当启用ReaSim锅炉时向反应堆内输入水$从侧面连接至反应堆结构 tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口 @@ -5905,8 +5894,8 @@ item.conveyor_wand.vertical.desc=能放置垂直输送带或者滑槽来垂直 item.gun_g3_a3.name=G3A3 item.gun_g3_infiltrator.name=渗透者 item.gun_greasegun_m3.name=M3 -item.gun_heavy_revolver_scoped.name=带有准镜的.44马格南转轮手枪 -item.gun_henry_lincoln.name=林肯的中继器 +item.gun_heavy_revolver_scoped.name=带瞄准镜的.44马格南转轮手枪 +item.gun_henry_lincoln.name=林肯拉杆枪 item.gun_maresleg_short.name=马腿 item.gun_mas36.name=南方之星 item.gun_uzi_richter.name=里氏 @@ -5918,9 +5907,9 @@ item.weapon_mod_caliber.m357.name=.357马格南改装套件 item.weapon_mod_caliber.m44.name=.44马格南改装套件 item.weapon_mod_caliber.p22.name=.22LR改装套件 item.weapon_mod_caliber.p45.name=.45口径改装套件 -item.weapon_mod_caliber.p9.name=9毫米口径改装套件 +item.weapon_mod_caliber.p9.name=9mm改装套件 item.weapon_mod_caliber.r556.name=5.56mm改装套件 -item.weapon_mod_caliber.r762.name=7.62改装套件 +item.weapon_mod_caliber.r762.name=7.62mm改装套件 item.weapon_mod_generic.bigmt_damage.name=土星弹道优化器 item.weapon_mod_generic.bigmt_dura.name=高耐用性土星部件 item.weapon_mod_generic.bronze_damage.name=青铜弹道优化器 @@ -5935,7 +5924,7 @@ item.weapon_mod_generic.iron_damage.name=铁制弹道优化器 item.weapon_mod_generic.iron_dura.name=高耐用性铁制部件 item.weapon_mod_generic.steel_damage.name=钢制弹道优化器 item.weapon_mod_generic.steel_dura.name=高耐用性钢制部件 -item.weapon_mod_generic.tcalloy_damage.name=耐高温合金弹道优化 +item.weapon_mod_generic.tcalloy_damage.name=耐高温合金弹道优化器 item.weapon_mod_generic.tcalloy_dura.name=高耐用性耐高温合金部件 item.weapon_mod_generic.wsteel_damage.name=武器级钢弹道优化器 item.weapon_mod_generic.wsteel_dura.name=高耐用性武器级钢部件 @@ -6407,3 +6396,23 @@ hbm.key.qmaw=打开QMAW tile.fluid_counter_valve.name=带计数器的流体阀门 tile.fluid_counter_valve.desc=注意流体网络中的回流 tile.machine_battery_redd.name=FEnSU +item.battery_sc.am241.name=镅-241自充电电池 +item.battery_sc.au198.name=金-198自充电电池 +item.battery_sc.co60.name=钴-60自充电电池 +item.battery_sc.empty.name=空自充电电池 +item.battery_sc.pb209.name=铅-209自充电电池 +item.battery_sc.po210.name=钋-210自充电电池 +item.battery_sc.pu238.name=钚-238自充电电池 +item.battery_sc.ra226.name=镭-226自充电电池 +item.battery_sc.tc99.name=锝-99自充电电池 +item.battery_sc.waste.name=核废料自充电电池 +item.canned_slime.name=凝结马黏液 +item.canned_slime.desc=现添加更多骨髓! +tile.rad_absorber.base.name=辐射吸收器 +tile.rad_absorber.green.name=高级辐射吸收器 +tile.rad_absorber.pink.name=精英辐射吸收器 +tile.rad_absorber.red.name=增强型辐射吸收器 +tile.fusion_klystron_creative.name=创造速调管 +tile.fusion_klystron_creative.desc=提供无限的速调管能量。 +tile.machine_battery_socket.desc=让电池物品能够直接接入电网。$同时也具有导线的功能,所有接口都连接至同一个能量网络。 +tile.machine_crucible.desc=传热速率:ΔT*0.25 TU/T diff --git a/src/main/resources/assets/hbm/models/machines/industrial_turbine.obj b/src/main/resources/assets/hbm/models/machines/industrial_turbine.obj new file mode 100644 index 000000000..a551b8a5f --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/industrial_turbine.obj @@ -0,0 +1,2976 @@ +# Blender v2.79 (sub 0) OBJ File: 'industrial_turbine.blend' +# www.blender.org +o Flywheel +v 0.000000 1.625000 -2.000000 +v -0.088388 1.588388 -2.000000 +v -0.125000 1.500000 -2.000000 +v -0.088388 1.411612 -2.000000 +v 0.000000 1.375000 -2.000000 +v 0.088388 1.411612 -2.000000 +v 0.125000 1.500000 -2.000000 +v 0.088388 1.588388 -2.000000 +v 0.000000 1.625000 -1.500000 +v -0.088388 1.588388 -1.500000 +v -0.125000 1.500000 -1.500000 +v -0.088388 1.411612 -1.500000 +v 0.000000 1.375000 -1.500000 +v 0.088388 1.411612 -1.500000 +v 0.125000 1.500000 -1.500000 +v 0.088388 1.588388 -1.500000 +v 0.000000 2.500000 -1.937500 +v 0.000000 2.500000 -1.562500 +v 0.500000 2.366025 -1.937500 +v 0.500000 2.366025 -1.562500 +v 0.866025 2.000000 -1.937500 +v 0.866025 2.000000 -1.562500 +v 1.000000 1.500000 -1.937500 +v 1.000000 1.500000 -1.562500 +v 0.866025 1.000000 -1.937500 +v 0.866025 1.000000 -1.562500 +v 0.500000 0.633975 -1.937500 +v 0.500000 0.633975 -1.562500 +v 0.000000 0.500000 -1.937500 +v 0.000000 0.500000 -1.562500 +v -0.500000 0.633975 -1.937500 +v -0.500000 0.633975 -1.562500 +v -0.866025 1.000000 -1.937500 +v -0.866025 1.000000 -1.562500 +v -1.000000 1.500000 -1.937500 +v -1.000000 1.500000 -1.562500 +v -0.866026 2.000000 -1.937500 +v -0.866026 2.000000 -1.562500 +v -0.500000 2.366025 -1.937500 +v -0.500000 2.366025 -1.562500 +v 0.000000 2.250000 -1.562500 +v -0.375000 2.149519 -1.562500 +v -0.649519 1.875000 -1.562500 +v -0.750000 1.500000 -1.562500 +v -0.649519 1.125000 -1.562500 +v -0.375000 0.850481 -1.562500 +v 0.000000 0.750000 -1.562500 +v 0.375000 0.850481 -1.562500 +v 0.649519 1.125000 -1.562500 +v 0.750000 1.500000 -1.562500 +v 0.649519 1.874999 -1.562500 +v 0.375000 2.149519 -1.562500 +v 0.000000 2.250000 -1.937500 +v -0.375000 2.149519 -1.937500 +v -0.649519 1.875000 -1.937500 +v -0.750000 1.500000 -1.937500 +v -0.649519 1.125000 -1.937500 +v -0.375000 0.850481 -1.937500 +v 0.000000 0.750000 -1.937500 +v 0.375000 0.850481 -1.937500 +v 0.649519 1.125000 -1.937500 +v 0.750000 1.500000 -1.937500 +v 0.649519 1.874999 -1.937500 +v 0.375000 2.149519 -1.937500 +v -0.375000 2.149519 -1.625000 +v 0.000000 2.250000 -1.625000 +v -0.649519 1.875000 -1.625000 +v -0.750000 1.500000 -1.625000 +v -0.649519 1.125000 -1.625000 +v -0.375000 0.850481 -1.625000 +v 0.000000 0.750000 -1.625000 +v 0.375000 0.850481 -1.625000 +v 0.649519 1.125000 -1.625000 +v 0.750000 1.500000 -1.625000 +v 0.649519 1.874999 -1.625000 +v 0.375000 2.149519 -1.625000 +v -0.375000 2.149519 -1.875000 +v 0.000000 2.250000 -1.875000 +v -0.649519 1.875000 -1.875000 +v -0.750000 1.500000 -1.875000 +v -0.649519 1.125000 -1.875000 +v -0.375000 0.850481 -1.875000 +v 0.000000 0.750000 -1.875000 +v 0.375000 0.850481 -1.875000 +v 0.649519 1.125000 -1.875000 +v 0.750000 1.500000 -1.875000 +v 0.649519 1.874999 -1.875000 +v 0.375000 2.149519 -1.875000 +vt 0.981061 0.136364 +vt 0.996212 0.176136 +vt 0.981061 0.181818 +vt 0.996212 0.221591 +vt 0.981061 0.227273 +vt 0.996212 0.267045 +vt 0.981061 0.272727 +vt 0.996212 0.312500 +vt 0.981061 0.318182 +vt 0.996212 0.357955 +vt 0.981061 0.363636 +vt 0.996212 0.403409 +vt 0.981061 0.409091 +vt 0.996212 0.448864 +vt 0.981061 0.454545 +vt 0.996212 0.494318 +vt 0.981061 0.500000 +vt 0.996212 0.539773 +vt 0.981061 0.545455 +vt 0.981061 -0.000000 +vt 0.996212 0.039773 +vt 0.981061 0.045455 +vt 0.996212 0.085227 +vt 0.981061 0.090909 +vt 0.996212 0.096591 +vt 0.958333 0.136364 +vt 0.943182 0.176136 +vt 0.943182 0.142045 +vt 0.958333 0.181818 +vt 0.943182 0.221591 +vt 0.943182 0.187500 +vt 0.958333 0.227273 +vt 0.943182 0.267045 +vt 0.943182 0.232955 +vt 0.958333 0.272727 +vt 0.943182 0.312500 +vt 0.943182 0.278409 +vt 0.958333 0.318182 +vt 0.943182 0.357955 +vt 0.943182 0.323864 +vt 0.958333 0.363636 +vt 0.943182 0.403409 +vt 0.943182 0.369318 +vt 0.958333 0.409091 +vt 0.943182 0.448864 +vt 0.943182 0.414773 +vt 0.958333 0.454545 +vt 0.943182 0.494318 +vt 0.943182 0.460227 +vt 0.958333 0.500000 +vt 0.943182 0.539773 +vt 0.943182 0.505682 +vt 0.958333 -0.000000 +vt 0.943182 0.039773 +vt 0.943182 0.005682 +vt 0.958333 0.045455 +vt 0.943182 0.085227 +vt 0.943182 0.051136 +vt 0.943182 0.096591 +vt 0.958333 0.090909 +vt 0.963603 0.647724 +vt 0.924242 0.681811 +vt 0.884882 0.579549 +vt 0.884882 0.784087 +vt 0.924242 0.681826 +vt 0.963603 0.784087 +vt 0.996212 0.142045 +vt 0.996212 0.187500 +vt 0.996212 0.232955 +vt 0.996212 0.278409 +vt 0.996212 0.323864 +vt 0.996212 0.369318 +vt 0.996212 0.414773 +vt 0.996212 0.460227 +vt 0.996212 0.505682 +vt 0.996212 0.005682 +vt 0.996212 0.051136 +vt 0.996212 0.130682 +vt 0.958333 0.545455 +vt 0.943182 0.130682 +vt 0.901518 0.672677 +vt 0.884882 0.647724 +vt 0.878793 0.613636 +vt 0.901518 0.554596 +vt 0.963603 0.579549 +vt 0.924242 0.545462 +vt 0.946967 0.554596 +vt 0.969692 0.613636 +vt 0.946967 0.672677 +vt 0.946967 0.809041 +vt 0.924242 0.818175 +vt 0.901518 0.809041 +vt 0.878793 0.750000 +vt 0.884882 0.715913 +vt 0.901518 0.690959 +vt 0.946967 0.690959 +vt 0.963603 0.715913 +vt 0.969692 0.750000 +vt 1.000000 0.556818 +vt 0.969697 0.545455 +vt 1.000000 0.545455 +vt 1.000000 0.625000 +vt 0.969697 0.613636 +vt 1.000000 0.613636 +vt 1.000000 0.602273 +vt 0.969697 0.590909 +vt 1.000000 0.590909 +vt 0.969697 0.579545 +vt 1.000000 0.579545 +vt 1.000000 0.568182 +vt 0.969697 0.556818 +vt 1.000000 0.636364 +vt 0.969697 0.625000 +vt 0.969697 0.602273 +vt 0.969697 0.568182 +vt 1.000000 0.403409 +vt 0.939394 0.460227 +vt 0.939394 0.232955 +vt 0.939394 0.323864 +vt 0.939394 0.096591 +vt 0.939394 0.505682 +vt 0.939394 0.369318 +vt 0.939394 0.142045 +vt 0.939394 0.005682 +vt 0.939394 0.414773 +vt 0.939394 0.187500 +vt 0.939394 0.278409 +vt 0.939394 0.051136 +vt 1.000000 0.176136 +vt 1.000000 0.039773 +vt 1.000000 0.448864 +vt 1.000000 0.221591 +vt 1.000000 0.312500 +vt 1.000000 0.085227 +vt 1.000000 0.494318 +vt 1.000000 0.267045 +vt 1.000000 0.357955 +vt 1.000000 0.130682 +vt 1.000000 0.539773 +vt 0.969697 0.636364 +vt 1.000000 0.369318 +vt 0.939394 0.494318 +vt 0.939394 0.267045 +vt 0.939394 0.357955 +vt 0.939394 0.130682 +vt 0.939394 0.539773 +vt 0.939394 0.403409 +vt 0.939394 0.176136 +vt 0.939394 0.039773 +vt 0.939394 0.448864 +vt 0.939394 0.221591 +vt 0.939394 0.312500 +vt 0.939394 0.085227 +vt 1.000000 0.142045 +vt 1.000000 0.005682 +vt 1.000000 0.414773 +vt 1.000000 0.187500 +vt 1.000000 0.278409 +vt 1.000000 0.051136 +vt 1.000000 0.460227 +vt 1.000000 0.232955 +vt 1.000000 0.323864 +vt 1.000000 0.096591 +vt 1.000000 0.505682 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +s off +f 23/1/1 63/2/1 21/3/1 +f 21/3/1 64/4/1 19/5/1 +f 19/5/1 53/6/1 17/7/1 +f 17/7/1 54/8/1 39/9/1 +f 39/9/1 55/10/1 37/11/1 +f 37/11/1 56/12/1 35/13/1 +f 35/13/1 57/14/1 33/15/1 +f 33/15/1 58/16/1 31/17/1 +f 31/17/1 59/18/1 29/19/1 +f 29/20/1 60/21/1 27/22/1 +f 27/22/1 61/23/1 25/24/1 +f 61/25/1 23/1/1 25/24/1 +f 24/26/2 51/27/2 50/28/2 +f 22/29/2 52/30/2 51/31/2 +f 20/32/2 41/33/2 52/34/2 +f 18/35/2 42/36/2 41/37/2 +f 40/38/2 43/39/2 42/40/2 +f 38/41/2 44/42/2 43/43/2 +f 36/44/2 45/45/2 44/46/2 +f 34/47/2 46/48/2 45/49/2 +f 32/50/2 47/51/2 46/52/2 +f 30/53/2 48/54/2 47/55/2 +f 28/56/2 49/57/2 48/58/2 +f 24/26/2 49/59/2 26/60/2 +f 75/61/2 66/62/2 69/63/2 +f 87/64/1 83/65/1 79/66/1 +f 23/1/1 62/67/1 63/2/1 +f 21/3/1 63/68/1 64/4/1 +f 19/5/1 64/69/1 53/6/1 +f 17/7/1 53/70/1 54/8/1 +f 39/9/1 54/71/1 55/10/1 +f 37/11/1 55/72/1 56/12/1 +f 35/13/1 56/73/1 57/14/1 +f 33/15/1 57/74/1 58/16/1 +f 31/17/1 58/75/1 59/18/1 +f 29/20/1 59/76/1 60/21/1 +f 27/22/1 60/77/1 61/23/1 +f 61/25/1 62/78/1 23/1/1 +f 24/26/2 22/29/2 51/27/2 +f 22/29/2 20/32/2 52/30/2 +f 20/32/2 18/35/2 41/33/2 +f 18/35/2 40/38/2 42/36/2 +f 40/38/2 38/41/2 43/39/2 +f 38/41/2 36/44/2 44/42/2 +f 36/44/2 34/47/2 45/45/2 +f 34/47/2 32/50/2 46/48/2 +f 32/50/2 30/79/2 47/51/2 +f 30/53/2 28/56/2 48/54/2 +f 28/56/2 26/60/2 49/57/2 +f 24/26/2 50/80/2 49/59/2 +f 66/62/2 65/81/2 67/82/2 +f 67/82/2 68/83/2 69/63/2 +f 69/63/2 70/84/2 73/85/2 +f 70/84/2 71/86/2 73/85/2 +f 71/86/2 72/87/2 73/85/2 +f 73/85/2 74/88/2 75/61/2 +f 75/61/2 76/89/2 66/62/2 +f 66/62/2 67/82/2 69/63/2 +f 73/85/2 75/61/2 69/63/2 +f 79/66/1 77/90/1 87/64/1 +f 77/90/1 78/91/1 87/64/1 +f 78/91/1 88/92/1 87/64/1 +f 87/64/1 86/93/1 85/94/1 +f 85/94/1 84/95/1 83/65/1 +f 83/65/1 82/96/1 79/66/1 +f 82/96/1 81/97/1 79/66/1 +f 81/97/1 80/98/1 79/66/1 +f 87/64/1 85/94/1 83/65/1 +s 1 +f 6/99/3 13/100/4 5/101/4 +f 4/102/5 11/103/6 3/104/6 +f 2/105/7 9/106/8 1/107/8 +f 1/107/8 16/108/9 8/109/9 +f 7/110/10 14/111/3 6/99/3 +f 5/112/4 12/113/5 4/102/5 +f 3/104/6 10/114/7 2/105/7 +f 8/109/9 15/115/10 7/110/10 +f 18/35/8 19/5/11 17/7/8 +f 20/32/11 21/3/12 19/5/11 +f 22/29/12 23/1/10 21/3/12 +f 24/26/10 25/24/13 23/1/10 +f 26/60/13 27/22/14 25/24/13 +f 28/56/14 29/20/4 27/22/14 +f 30/79/4 31/17/15 29/19/4 +f 32/50/15 33/15/16 31/17/15 +f 34/47/16 35/13/6 33/15/16 +f 36/44/6 37/11/17 35/13/6 +f 38/41/17 39/9/18 37/11/17 +f 40/38/18 17/7/8 39/9/18 +f 55/72/13 80/116/10 56/12/10 +f 46/48/11 69/117/12 45/49/12 +f 41/33/4 76/118/15 52/34/15 +f 43/39/13 65/119/14 42/40/14 +f 50/80/6 73/120/17 49/59/17 +f 47/51/8 70/121/11 46/52/11 +f 44/42/10 67/122/13 43/43/13 +f 51/27/16 74/123/6 50/28/6 +f 48/54/18 71/124/8 47/55/8 +f 45/45/12 68/125/10 44/46/10 +f 52/30/15 75/126/16 51/31/16 +f 42/36/14 66/127/4 41/37/4 +f 49/57/17 72/128/18 48/58/18 +f 62/67/6 87/129/16 63/2/16 +f 59/76/8 84/130/18 60/21/18 +f 56/73/10 81/131/12 57/14/12 +f 63/68/16 88/132/15 64/4/15 +f 53/70/4 77/133/14 54/8/14 +f 60/77/18 85/134/17 61/23/17 +f 57/74/12 82/135/11 58/16/11 +f 64/69/15 78/136/4 53/6/4 +f 54/71/14 79/137/13 55/10/13 +f 61/25/17 86/138/6 62/78/6 +f 58/75/11 83/139/8 59/18/8 +f 6/99/3 14/111/3 13/100/4 +f 4/102/5 12/113/5 11/103/6 +f 2/105/7 10/114/7 9/106/8 +f 1/107/8 9/106/8 16/108/9 +f 7/110/10 15/115/10 14/111/3 +f 5/112/4 13/140/4 12/113/5 +f 3/104/6 11/103/6 10/114/7 +f 8/109/9 16/108/9 15/115/10 +f 18/35/8 20/32/11 19/5/11 +f 20/32/11 22/29/12 21/3/12 +f 22/29/12 24/26/10 23/1/10 +f 24/26/10 26/60/13 25/24/13 +f 26/60/13 28/56/14 27/22/14 +f 28/56/14 30/53/4 29/20/4 +f 30/79/4 32/50/15 31/17/15 +f 32/50/15 34/47/16 33/15/16 +f 34/47/16 36/44/6 35/13/6 +f 36/44/6 38/41/17 37/11/17 +f 38/41/17 40/38/18 39/9/18 +f 40/38/18 18/35/8 17/7/8 +f 55/72/13 79/141/13 80/116/10 +f 46/48/11 70/142/11 69/117/12 +f 41/33/4 66/143/4 76/118/15 +f 43/39/13 67/144/13 65/119/14 +f 50/80/6 74/145/6 73/120/17 +f 47/51/8 71/146/8 70/121/11 +f 44/42/10 68/147/10 67/122/13 +f 51/27/16 75/148/16 74/123/6 +f 48/54/18 72/149/18 71/124/8 +f 45/45/12 69/150/12 68/125/10 +f 52/30/15 76/151/15 75/126/16 +f 42/36/14 65/152/14 66/127/4 +f 49/57/17 73/153/17 72/128/18 +f 62/67/6 86/154/6 87/129/16 +f 59/76/8 83/155/8 84/130/18 +f 56/73/10 80/156/10 81/131/12 +f 63/68/16 87/157/16 88/132/15 +f 53/70/4 78/158/4 77/133/14 +f 60/77/18 84/159/18 85/134/17 +f 57/74/12 81/160/12 82/135/11 +f 64/69/15 88/161/15 78/136/4 +f 54/71/14 77/162/14 79/137/13 +f 61/25/17 85/163/17 86/138/6 +f 58/75/11 82/164/11 83/139/8 +o Gauge +v -0.031250 1.531250 3.468750 +v -0.031250 1.468750 3.468750 +v 0.031250 1.531250 3.468750 +v 0.031250 1.468750 3.468750 +v 0.031250 1.531250 3.500000 +v -0.031250 1.531250 3.500000 +v -0.031250 1.468750 3.500000 +v 0.031250 1.468750 3.500000 +v 0.000000 1.656250 3.468750 +v 0.000000 1.656250 3.500000 +vt 0.606061 0.573864 +vt 0.602273 0.551136 +vt 0.606061 0.551136 +vt 0.594697 0.539773 +vt 0.602273 0.539773 +vt 0.606061 0.539773 +vt 0.590909 0.539773 +vt 0.594697 0.551136 +vt 0.590909 0.551136 +vt 0.602273 0.534091 +vt 0.594697 0.534091 +vt 0.594697 0.573864 +vt 0.590909 0.573864 +vt 0.602273 0.573864 +vt 0.598485 0.573864 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.9701 0.2425 0.0000 +s off +f 97/165/19 93/166/19 91/167/19 +f 95/168/20 96/169/20 93/166/20 +f 91/167/21 96/169/21 92/170/21 +f 90/171/22 94/172/22 89/173/22 +f 92/174/23 95/168/23 90/175/23 +f 89/173/24 98/176/24 97/177/24 +f 97/165/19 98/178/19 93/166/19 +f 98/179/20 94/172/20 93/166/20 +f 94/172/20 95/168/20 93/166/20 +f 91/167/21 93/166/21 96/169/21 +f 90/171/22 95/168/22 94/172/22 +f 92/174/23 96/169/23 95/168/23 +f 89/173/24 94/172/24 98/176/24 +o Turbine +v -1.250000 0.000000 3.500000 +v 1.250000 0.000000 3.500000 +v -1.250000 0.000000 -3.500000 +v 1.250000 0.000000 -3.500000 +v -1.250000 0.500000 -3.500000 +v -1.250000 0.500000 3.500000 +v 1.250000 0.500000 3.500000 +v 1.250000 0.500000 -3.500000 +v -1.250000 0.500000 3.500000 +v 1.250000 0.500000 3.500000 +v -1.250000 0.500000 2.500000 +v 1.250000 0.500000 2.500000 +v -1.250000 0.625000 3.500000 +v 1.250000 0.625000 3.500000 +v -1.250000 0.625000 2.500000 +v 1.250000 0.625000 2.500000 +v -1.000000 0.875000 3.500000 +v 1.000000 0.875000 3.500000 +v -1.000000 0.875000 2.500000 +v 1.000000 0.875000 2.500000 +v -1.000000 2.250000 3.500000 +v 1.000000 2.250000 3.500000 +v -1.000000 2.250000 2.500000 +v 1.000000 2.250000 2.500000 +v 1.000000 2.250000 -1.500000 +v -1.000000 2.250000 -1.500000 +v 1.000000 2.250000 -0.500000 +v -1.000000 2.250000 -0.500000 +v 1.000000 0.875000 -1.500000 +v -1.000000 0.875000 -1.500000 +v 1.000000 0.875000 -0.500000 +v -1.000000 0.875000 -0.500000 +v 1.250000 0.625000 -1.500000 +v -1.250000 0.625000 -1.500000 +v 1.250000 0.625000 -0.500000 +v -1.250000 0.625000 -0.500000 +v 1.250000 0.500000 -1.500000 +v -1.250000 0.500000 -1.500000 +v 1.250000 0.500000 -0.500000 +v -1.250000 0.500000 -0.500000 +v 0.000000 2.500000 0.000000 +v -0.500000 2.366025 0.000000 +v -0.866025 2.000000 0.000000 +v -1.000000 1.500000 0.000000 +v -0.866025 1.000000 0.000000 +v -0.500000 0.633975 0.000000 +v 0.000000 0.500000 0.000000 +v 0.500000 0.633975 0.000000 +v 0.866025 1.000000 0.000000 +v 1.000000 1.500000 0.000000 +v 0.866026 2.000000 0.000000 +v 0.500000 2.366025 0.000000 +v 0.000000 2.500000 0.750000 +v -0.500000 2.366025 0.750000 +v -0.866025 2.000000 0.750000 +v -1.000000 1.500000 0.750000 +v -0.866025 1.000000 0.750000 +v -0.500000 0.633975 0.750000 +v 0.000000 0.500000 0.750000 +v 0.500000 0.633975 0.750000 +v 0.866025 1.000000 0.750000 +v 1.000000 1.500000 0.750000 +v 0.866026 2.000000 0.750000 +v 0.500000 2.366025 0.750000 +v 0.000000 2.250000 0.000000 +v -0.375000 2.149519 0.000000 +v -0.649519 1.875000 0.000000 +v -0.750000 1.500000 0.000000 +v -0.649519 1.125000 0.000000 +v -0.375000 0.850481 0.000000 +v 0.000000 0.750000 0.000000 +v 0.375000 0.850481 0.000000 +v 0.649519 1.125000 0.000000 +v 0.750000 1.500000 0.000000 +v 0.649519 1.875000 0.000000 +v 0.375000 2.149519 0.000000 +v 0.000000 2.000000 -0.250000 +v -0.250000 1.933013 -0.250000 +v -0.433013 1.750000 -0.250000 +v -0.500000 1.500000 -0.250000 +v -0.433013 1.250000 -0.250000 +v -0.250000 1.066988 -0.250000 +v 0.000000 1.000000 -0.250000 +v 0.250000 1.066988 -0.250000 +v 0.433012 1.250000 -0.250000 +v 0.500000 1.500000 -0.250000 +v 0.433013 1.750000 -0.250000 +v 0.250000 1.933013 -0.250000 +v 0.000000 2.250000 -0.250000 +v -0.375000 2.149519 -0.250000 +v -0.649519 1.875000 -0.250000 +v -0.750000 1.500000 -0.250000 +v -0.649519 1.125000 -0.250000 +v -0.375000 0.850481 -0.250000 +v 0.000000 0.750000 -0.250000 +v 0.375000 0.850481 -0.250000 +v 0.649519 1.125000 -0.250000 +v 0.750000 1.500000 -0.250000 +v 0.649519 1.875000 -0.250000 +v 0.375000 2.149519 -0.250000 +v 0.000000 2.000000 -0.500000 +v -0.250000 1.933013 -0.500000 +v -0.433013 1.750000 -0.500000 +v -0.500000 1.500000 -0.500000 +v -0.433013 1.250000 -0.500000 +v -0.250000 1.066988 -0.500000 +v 0.000000 1.000000 -0.500000 +v 0.250000 1.066988 -0.500000 +v 0.433012 1.250000 -0.500000 +v 0.500000 1.500000 -0.500000 +v 0.433013 1.750000 -0.500000 +v 0.250000 1.933013 -0.500000 +v 0.000000 2.250000 0.750000 +v -0.375000 2.149519 0.750000 +v -0.649519 1.875000 0.750000 +v -0.750000 1.500000 0.750000 +v -0.649519 1.125000 0.750000 +v -0.375000 0.850481 0.750000 +v 0.000000 0.750000 0.750000 +v 0.375000 0.850481 0.750000 +v 0.649519 1.125000 0.750000 +v 0.750000 1.500000 0.750000 +v 0.649519 1.875000 0.750000 +v 0.375000 2.149519 0.750000 +v 0.000000 2.250000 1.750000 +v -0.375000 2.149519 1.750000 +v -0.649519 1.875000 1.750000 +v -0.750000 1.500000 1.750000 +v -0.649519 1.125000 1.750000 +v -0.375000 0.850481 1.750000 +v 0.000000 0.750000 1.750000 +v 0.375000 0.850481 1.750000 +v 0.649519 1.125000 1.750000 +v 0.750000 1.500000 1.750000 +v 0.649519 1.875000 1.750000 +v 0.375000 2.149519 1.750000 +v 0.000000 2.000000 1.750000 +v -0.250000 1.933013 1.750000 +v -0.433013 1.750000 1.750000 +v -0.500000 1.500000 1.750000 +v -0.433013 1.250000 1.750000 +v -0.250000 1.066988 1.750000 +v 0.000000 1.000000 1.750000 +v 0.250000 1.066988 1.750000 +v 0.433012 1.250000 1.750000 +v 0.500000 1.500000 1.750000 +v 0.433013 1.750000 1.750000 +v 0.250000 1.933013 1.750000 +v 0.000000 2.000000 2.500000 +v -0.250000 1.933013 2.500000 +v -0.433013 1.750000 2.500000 +v -0.500000 1.500000 2.500000 +v -0.433013 1.250000 2.500000 +v -0.250000 1.066988 2.500000 +v 0.000000 1.000000 2.500000 +v 0.250000 1.066988 2.500000 +v 0.433012 1.250000 2.500000 +v 0.500000 1.500000 2.500000 +v 0.433013 1.750000 2.500000 +v 0.250000 1.933013 2.500000 +v 1.500000 0.750000 3.250000 +v 1.500000 0.250000 3.250000 +v 1.500000 0.750000 2.750000 +v 1.500000 0.250000 2.750000 +v 1.125000 0.750000 2.750000 +v 1.125000 0.750000 3.250000 +v 1.125000 0.250000 3.250000 +v 1.125000 0.250000 2.750000 +v 1.500000 0.750000 -0.750000 +v 1.500000 0.250000 -0.750000 +v 1.500000 0.750000 -1.250000 +v 1.500000 0.250000 -1.250000 +v 1.125000 0.750000 -1.250000 +v 1.125000 0.750000 -0.750000 +v 1.125000 0.250000 -0.750000 +v 1.125000 0.250000 -1.250000 +v -0.250000 3.000000 3.250000 +v 0.250000 3.000000 3.250000 +v -0.250000 3.000000 2.750000 +v 0.250000 3.000000 2.750000 +v -0.250000 2.750000 2.750000 +v -0.250000 2.750000 3.250000 +v 0.250000 2.750000 3.250000 +v 0.250000 2.750000 2.750000 +v -0.500000 2.750000 3.500000 +v 0.500000 2.750000 3.500000 +v -0.500000 2.750000 2.500000 +v 0.500000 2.750000 2.500000 +v -0.250000 3.000000 -0.750000 +v 0.250000 3.000000 -0.750000 +v -0.250000 3.000000 -1.250000 +v 0.250000 3.000000 -1.250000 +v -0.250000 2.750000 -1.250000 +v -0.250000 2.750000 -0.750000 +v 0.250000 2.750000 -0.750000 +v 0.250000 2.750000 -1.250000 +v -0.500000 2.750000 -0.500000 +v 0.500000 2.750000 -0.500000 +v -0.500000 2.750000 -1.500000 +v 0.500000 2.750000 -1.500000 +v -0.250000 0.625000 2.500000 +v 0.250000 0.625000 2.500000 +v -0.250000 0.625000 -0.500000 +v 0.250000 0.625000 -0.500000 +v -0.250000 1.500000 -0.500000 +v -0.250000 1.500000 2.500000 +v 0.250000 1.500000 2.500000 +v 0.250000 1.500000 -0.500000 +v 0.750000 0.625000 2.500000 +v 0.750000 0.625000 -0.500000 +v -0.750000 0.625000 2.500000 +v -0.750000 0.625000 -0.500000 +v 0.750000 0.500000 2.500000 +v 0.750000 0.500000 -0.500000 +v -0.750000 0.500000 2.500000 +v -0.750000 0.500000 -0.500000 +v -1.382583 0.750000 -0.867417 +v -1.437500 0.750000 -1.000000 +v -1.382583 0.750000 -1.132582 +v -1.250000 0.750000 -1.187500 +v -1.117418 0.750000 -1.132582 +v -1.062500 0.750000 -1.000000 +v -1.117418 0.750000 -0.867418 +v -1.250000 0.750000 -0.812500 +v -1.062500 2.367417 3.132582 +v -1.062500 2.367417 2.867418 +v -1.062500 2.500000 2.812500 +v -1.062500 2.632582 2.867418 +v -1.062500 2.687500 3.000000 +v -1.062500 2.632582 3.132582 +v -0.562500 2.312500 3.000000 +v -0.562500 2.500000 3.187500 +v -0.562500 2.367417 3.132582 +v -0.562500 2.367417 2.867418 +v -0.562500 2.500000 2.812500 +v -0.562500 2.632582 2.867418 +v -0.562500 2.687500 3.000000 +v -0.562500 2.632582 3.132582 +v 0.562500 2.632582 -1.132582 +v 0.562500 2.687500 -1.000000 +v -0.625000 0.625000 2.312500 +v 0.625000 0.625000 2.312500 +v -0.625000 0.625000 2.187500 +v 0.625000 0.625000 2.187500 +v -0.625000 0.875000 2.187500 +v -0.625000 0.875000 2.312500 +v 0.625000 0.875000 2.312500 +v 0.625000 0.875000 2.187500 +v -0.375000 1.125000 2.187500 +v -0.375000 1.125000 2.312500 +v 0.375000 1.125000 2.312500 +v 0.375000 1.125000 2.187500 +v 0.562500 2.632582 -0.867418 +v 0.562500 2.500000 -0.812500 +v 0.562500 2.367417 -0.867418 +v 0.562500 2.367417 -1.132582 +v 0.562500 2.500000 -1.187500 +v 0.562500 2.312500 -1.000000 +v 1.062500 2.632582 -1.132582 +v 1.062500 2.687500 -1.000000 +v 1.062500 2.632582 -0.867418 +v 1.062500 2.500000 -0.812500 +v 1.062500 2.367417 -0.867418 +v 1.062500 2.367417 -1.132582 +v 1.250000 0.750000 2.812500 +v 1.117417 0.750000 2.867418 +v 1.062500 0.750000 3.000000 +v 1.117417 0.750000 3.132582 +v 1.250000 0.750000 3.187500 +v 1.382583 0.750000 3.132582 +v 1.437500 0.750000 3.000000 +v 1.382583 0.750000 2.867418 +v 1.250000 2.312500 2.812500 +v 1.117417 2.312500 2.867418 +v 1.062500 2.312500 3.000000 +v 1.117417 2.312500 3.132582 +v 1.250000 2.312500 3.187500 +v 1.382583 2.312500 3.132582 +v 1.437500 2.312500 3.000000 +v 1.382583 2.312500 2.867418 +v 1.195083 2.445082 2.812500 +v 1.101333 2.351332 2.867418 +v 1.101333 2.351332 3.132582 +v 1.195083 2.445082 3.187500 +v 1.288833 2.538832 3.132582 +v 1.327665 2.577665 3.000000 +v 1.288833 2.538832 2.867418 +v 1.062500 2.500000 2.812500 +v 1.062500 2.367417 2.867418 +v 1.062500 2.367417 3.132582 +v 1.062500 2.500000 3.187500 +v 1.062500 2.632582 3.132582 +v 1.062500 2.687500 3.000000 +v 1.062500 2.632582 2.867418 +v 0.562500 2.312500 3.000000 +v 0.562500 2.500000 2.812500 +v 0.562500 2.367417 2.867418 +v 0.562500 2.367417 3.132582 +v 0.562500 2.500000 3.187500 +v 0.562500 2.632582 3.132582 +v 0.562500 2.687500 3.000000 +v 0.562500 2.632582 2.867418 +v -1.500000 0.750000 -1.250000 +v -1.500000 0.250000 -1.250000 +v -1.500000 0.750000 -0.750000 +v -1.500000 0.250000 -0.750000 +v -1.125000 0.750000 -0.750000 +v -1.125000 0.750000 -1.250000 +v -1.125000 0.250000 -1.250000 +v -1.125000 0.250000 -0.750000 +v -1.500000 0.750000 2.750000 +v -1.500000 0.250000 2.750000 +v -1.500000 0.750000 3.250000 +v -1.500000 0.250000 3.250000 +v -1.125000 0.750000 3.250000 +v -1.125000 0.750000 2.750000 +v -1.125000 0.250000 2.750000 +v -1.125000 0.250000 3.250000 +v 0.000000 2.250000 -2.000000 +v -0.375000 2.149519 -2.000000 +v -0.649519 1.875000 -2.000000 +v -0.750000 1.500000 -2.000000 +v -0.649519 1.125000 -2.000000 +v -0.375000 0.850481 -2.000000 +v 0.000000 0.750000 -2.000000 +v 0.375000 0.850481 -2.000000 +v 0.649519 1.125000 -2.000000 +v 0.750000 1.500000 -2.000000 +v 0.649519 1.875000 -2.000000 +v 0.375000 2.149519 -2.000000 +v 0.000000 2.250000 -3.500000 +v -0.375000 2.149519 -3.500000 +v -0.649519 1.875000 -3.500000 +v -0.750000 1.500000 -3.500000 +v -0.649519 1.125000 -3.500000 +v -0.375000 0.850481 -3.500000 +v 0.000000 0.750000 -3.500000 +v 0.375000 0.850481 -3.500000 +v 0.649519 1.125000 -3.500000 +v 0.750000 1.500000 -3.500000 +v 0.649519 1.875000 -3.500000 +v 0.375000 2.149519 -3.500000 +v 0.250000 0.625000 -2.125000 +v 0.250000 1.500000 -2.125000 +v 0.750000 0.625000 -2.125000 +v 0.750000 0.500000 -2.125000 +v 0.250000 0.625000 -3.375000 +v 0.250000 1.500000 -3.375000 +v 0.750000 0.625000 -3.375000 +v 0.750000 0.500000 -3.375000 +v -0.250000 0.625000 -2.125000 +v -0.250000 1.500000 -2.125000 +v -0.750000 0.625000 -2.125000 +v -0.750000 0.500000 -2.125000 +v -0.250000 0.625000 -3.375000 +v -0.250000 1.500000 -3.375000 +v -0.750000 0.625000 -3.375000 +v -0.750000 0.500000 -3.375000 +v 1.062500 2.500000 -1.187500 +v 1.288833 2.538832 -1.132582 +v 1.327665 2.577665 -1.000000 +v 1.288833 2.538832 -0.867418 +v 1.195083 2.445082 -0.812500 +v 1.101333 2.351332 -0.867418 +v 1.101333 2.351332 -1.132582 +v 1.195083 2.445082 -1.187500 +v 1.382583 2.312500 -1.132582 +v 1.437500 2.312500 -1.000000 +v 1.382583 2.312500 -0.867418 +v 1.250000 2.312500 -0.812500 +v 1.117417 2.312500 -0.867418 +v 1.062500 2.312500 -1.000000 +v 1.117417 2.312500 -1.132582 +v 1.250000 2.312500 -1.187500 +v 1.382583 0.750000 -1.132582 +v 1.437500 0.750000 -1.000000 +v 1.382583 0.750000 -0.867418 +v 1.250000 0.750000 -0.812500 +v 1.117417 0.750000 -0.867418 +v 1.062500 0.750000 -1.000000 +v 1.117417 0.750000 -1.132582 +v 1.250000 0.750000 -1.187500 +v -0.500000 1.000000 3.375000 +v 0.500000 1.000000 3.375000 +v -0.500000 2.000000 3.375000 +v 0.500000 2.000000 3.375000 +v -0.500000 2.250000 3.500000 +v 0.500000 2.250000 3.500000 +v -0.500000 0.750000 3.500000 +v 0.500000 0.750000 3.500000 +v 0.000000 1.750000 3.406250 +v -0.176777 1.676777 3.406250 +v -0.250000 1.500000 3.406250 +v -0.176777 1.323223 3.406250 +v 0.000000 1.250000 3.406250 +v 0.176777 1.323223 3.406250 +v 0.250000 1.500000 3.406250 +v 0.176777 1.676777 3.406250 +v 0.000000 1.750000 3.468750 +v -0.176777 1.676777 3.468750 +v -0.250000 1.500000 3.468750 +v -0.176777 1.323223 3.468750 +v 0.000000 1.250000 3.468750 +v 0.176777 1.323223 3.468750 +v 0.250000 1.500000 3.468750 +v 0.176777 1.676777 3.468750 +v -0.500000 1.468750 3.375000 +v 0.500000 1.468750 3.375000 +v -0.500000 1.531250 3.375000 +v 0.500000 1.531250 3.375000 +v -0.500000 1.531250 3.437500 +v -0.500000 1.468750 3.437500 +v 0.500000 1.468750 3.437500 +v 0.500000 1.531250 3.437500 +v -0.500000 1.593750 3.375000 +v 0.500000 1.593750 3.375000 +v -0.500000 1.656250 3.375000 +v 0.500000 1.656250 3.375000 +v -0.500000 1.656250 3.437500 +v -0.500000 1.593750 3.437500 +v 0.500000 1.593750 3.437500 +v 0.500000 1.656250 3.437500 +v -0.500000 1.343750 3.375000 +v 0.500000 1.343750 3.375000 +v -0.500000 1.406250 3.375000 +v 0.500000 1.406250 3.375000 +v -0.500000 1.406250 3.437500 +v -0.500000 1.343750 3.437500 +v 0.500000 1.343750 3.437500 +v 0.500000 1.406250 3.437500 +v -0.218750 1.062500 3.375000 +v -0.156250 1.062500 3.375000 +v -0.218750 1.125000 3.375000 +v -0.156250 1.125000 3.375000 +v -0.218750 1.125000 3.468750 +v -0.218750 1.062500 3.468750 +v -0.156250 1.062500 3.468750 +v -0.156250 1.125000 3.468750 +v -0.121209 1.160041 3.406250 +v -0.093750 1.093750 3.406250 +v -0.121209 1.027459 3.406250 +v -0.187500 1.000000 3.406250 +v -0.253791 1.027459 3.406250 +v -0.281250 1.093750 3.406250 +v -0.253791 1.160041 3.406250 +v -0.187500 1.187500 3.406250 +v -0.110160 1.038507 3.437500 +v -0.242743 1.171090 3.437500 +v -0.264840 1.148993 3.437500 +v -0.132257 1.016410 3.437500 +v -0.242743 1.016410 3.437500 +v -0.110160 1.148993 3.437500 +v -0.132257 1.171090 3.437500 +v -0.264840 1.038507 3.437500 +v 0.125000 0.937500 3.500000 +v 0.375000 0.937500 3.500000 +v 0.125000 1.187500 3.500000 +v 0.375000 1.187500 3.500000 +v 0.375000 1.187500 3.375000 +v 0.125000 1.187500 3.375000 +v 0.375000 0.937500 3.375000 +v 0.125000 0.937500 3.375000 +v -0.187500 1.218750 3.406250 +v -0.275888 1.182138 3.406250 +v -0.312500 1.093750 3.406250 +v -0.275888 1.005362 3.406250 +v -0.187500 0.968750 3.406250 +v -0.099112 1.005362 3.406250 +v -0.062500 1.093750 3.406250 +v -0.099112 1.182138 3.406250 +v -0.187500 1.187500 3.468750 +v -0.121209 1.160041 3.468750 +v -0.093750 1.093750 3.468750 +v -0.121209 1.027459 3.468750 +v -0.187500 1.000000 3.468750 +v -0.253791 1.027459 3.468750 +v -0.281250 1.093750 3.468750 +v -0.253791 1.160041 3.468750 +v -0.275888 1.182138 3.468750 +v -0.187500 1.218750 3.468750 +v -0.312500 1.093750 3.468750 +v -0.275888 1.005362 3.468750 +v -0.187500 0.968750 3.468750 +v -0.099112 1.005362 3.468750 +v -0.062500 1.093750 3.468750 +v -0.099112 1.182138 3.468750 +v -0.625000 0.625000 1.687500 +v 0.625000 0.625000 1.687500 +v -0.625000 0.625000 1.562500 +v 0.625000 0.625000 1.562500 +v -0.625000 0.875000 1.562500 +v -0.625000 0.875000 1.687500 +v 0.625000 0.875000 1.687500 +v 0.625000 0.875000 1.562500 +v -0.375000 1.125000 1.562500 +v -0.375000 1.125000 1.687500 +v 0.375000 1.125000 1.687500 +v 0.375000 1.125000 1.562500 +v -0.625000 0.625000 1.062500 +v 0.625000 0.625000 1.062500 +v -0.625000 0.625000 0.937500 +v 0.625000 0.625000 0.937500 +v -0.625000 0.875000 0.937500 +v -0.625000 0.875000 1.062500 +v 0.625000 0.875000 1.062500 +v 0.625000 0.875000 0.937500 +v -0.375000 1.125000 0.937500 +v -0.375000 1.125000 1.062500 +v 0.375000 1.125000 1.062500 +v 0.375000 1.125000 0.937500 +v -0.625000 0.625000 -0.187500 +v 0.625000 0.625000 -0.187500 +v -0.625000 0.625000 -0.312500 +v 0.625000 0.625000 -0.312500 +v -0.625000 0.875000 -0.312500 +v -0.625000 0.875000 -0.187500 +v 0.625000 0.875000 -0.187500 +v 0.625000 0.875000 -0.312500 +v -0.375000 1.125000 -0.312500 +v -0.375000 1.125000 -0.187500 +v 0.375000 1.125000 -0.187500 +v 0.375000 1.125000 -0.312500 +v -0.625000 0.625000 -2.312500 +v 0.625000 0.625000 -2.312500 +v -0.625000 0.625000 -2.437500 +v 0.625000 0.625000 -2.437500 +v -0.625000 0.875000 -2.437500 +v -0.625000 0.875000 -2.312500 +v 0.625000 0.875000 -2.312500 +v 0.625000 0.875000 -2.437500 +v -0.375000 1.125000 -2.437500 +v -0.375000 1.125000 -2.312500 +v 0.375000 1.125000 -2.312500 +v 0.375000 1.125000 -2.437500 +v -0.625000 0.625000 -3.062500 +v 0.625000 0.625000 -3.062500 +v -0.625000 0.625000 -3.187500 +v 0.625000 0.625000 -3.187500 +v -0.625000 0.875000 -3.187500 +v -0.625000 0.875000 -3.062500 +v 0.625000 0.875000 -3.062500 +v 0.625000 0.875000 -3.187500 +v -0.375000 1.125000 -3.187500 +v -0.375000 1.125000 -3.062500 +v 0.375000 1.125000 -3.062500 +v 0.375000 1.125000 -3.187500 +v -1.250000 2.312500 -0.812500 +v -1.117418 2.312500 -0.867418 +v -1.062500 2.312500 -1.000000 +v -1.117418 2.312500 -1.132582 +v -1.250000 2.312500 -1.187500 +v -1.382583 2.312500 -1.132582 +v -1.437500 2.312500 -1.000000 +v -1.382583 2.312500 -0.867417 +v -1.195083 2.445082 -0.812500 +v -1.101333 2.351332 -0.867418 +v -1.101333 2.351332 -1.132582 +v -1.195083 2.445082 -1.187500 +v -1.288833 2.538832 -1.132582 +v -1.327665 2.577665 -1.000000 +v -1.288833 2.538832 -0.867418 +v -1.062500 2.500000 -0.812500 +v -1.062500 2.367417 -0.867418 +v -1.062500 2.367417 -1.132582 +v -1.062500 2.500000 -1.187500 +v -1.062500 2.632582 -1.132582 +v -1.062500 2.687500 -1.000000 +v -1.062500 2.632582 -0.867418 +v -0.562500 2.312500 -1.000000 +v -0.562500 2.500000 -0.812500 +v -0.562500 2.367417 -0.867418 +v -0.562500 2.367417 -1.132582 +v -0.562500 2.500000 -1.187500 +v -0.562500 2.632582 -1.132582 +v -0.562500 2.687500 -1.000000 +v -0.562500 2.632582 -0.867418 +v -1.062500 2.500000 3.187500 +v -1.288833 2.538832 3.132582 +v -1.327665 2.577665 3.000000 +v -1.288833 2.538832 2.867418 +v -1.195083 2.445082 2.812500 +v -1.101333 2.351332 2.867418 +v -1.101333 2.351332 3.132582 +v -1.195083 2.445082 3.187500 +v -1.382583 2.312500 3.132582 +v -1.437500 2.312500 3.000000 +v -1.382583 2.312500 2.867418 +v -1.250000 2.312500 2.812500 +v -1.117417 2.312500 2.867418 +v -1.062500 2.312500 3.000000 +v -1.117417 2.312500 3.132582 +v -1.250000 2.312500 3.187500 +v -1.382583 0.750000 3.132582 +v -1.437500 0.750000 3.000000 +v -1.382583 0.750000 2.867418 +v -1.250000 0.750000 2.812500 +v -1.117417 0.750000 2.867418 +v -1.062500 0.750000 3.000000 +v -1.117417 0.750000 3.132582 +v -1.250000 0.750000 3.187500 +vt 0.590909 0.465909 +vt 0.454545 0.500000 +vt 0.469697 0.465909 +vt 0.363636 0.681818 +vt 0.212121 0.045455 +vt 0.363636 0.045455 +vt 0.181818 0.045455 +vt 0.030303 0.681818 +vt 0.030303 0.045455 +vt -0.000000 0.045455 +vt -0.000000 0.681818 +vt 0.030303 0.727273 +vt 0.181818 0.681818 +vt 0.181818 0.727273 +vt 0.181818 0.000000 +vt 0.030303 0.000000 +vt 0.212121 0.681818 +vt 0.363636 0.204545 +vt 0.371212 0.295455 +vt 0.363636 0.295455 +vt 0.409091 0.431818 +vt 0.378788 0.477273 +vt 0.378788 0.431818 +vt 0.696970 0.295455 +vt 0.689394 0.204545 +vt 0.696970 0.204545 +vt 0.371212 0.204545 +vt 0.386364 0.295455 +vt 0.386364 0.704545 +vt 0.469697 0.795455 +vt 0.386364 0.795455 +vt 0.674242 0.795455 +vt 0.590909 0.704545 +vt 0.674242 0.704545 +vt 0.590909 0.795455 +vt 0.560606 0.704545 +vt 0.689394 0.295455 +vt 0.674242 0.204545 +vt 0.689394 0.795455 +vt 0.689394 0.704545 +vt 0.590909 0.295455 +vt 0.560606 0.204545 +vt 0.590909 0.204545 +vt 0.674242 0.295455 +vt 0.560606 0.795455 +vt 0.500000 0.704545 +vt 0.386364 0.204545 +vt 0.469697 0.295455 +vt 0.371212 0.704545 +vt 0.371212 0.795455 +vt 0.696970 0.795455 +vt 0.696970 0.704545 +vt 0.363636 0.704545 +vt 0.363636 0.795455 +vt 0.590909 0.965909 +vt 0.454545 1.000000 +vt 0.469697 0.965909 +vt 0.893939 0.142045 +vt 0.878788 0.181818 +vt 0.878788 0.136364 +vt 0.893939 0.187500 +vt 0.878788 0.227273 +vt 0.893939 0.232955 +vt 0.878788 0.272727 +vt 0.893939 0.312500 +vt 0.878788 0.318182 +vt 0.893939 0.357955 +vt 0.878788 0.363636 +vt 0.893939 0.403409 +vt 0.878788 0.409091 +vt 0.893939 0.448864 +vt 0.878788 0.454545 +vt 0.893939 0.494318 +vt 0.878788 0.500000 +vt 0.893939 0.505682 +vt 0.878788 0.545455 +vt 0.893939 0.005682 +vt 0.878788 0.045455 +vt 0.878788 0.000000 +vt 0.893939 0.051136 +vt 0.878788 0.090909 +vt 0.893939 0.096591 +vt 0.924242 0.170455 +vt 0.909091 0.142045 +vt 0.924242 0.147727 +vt 0.924242 0.193182 +vt 0.909091 0.221591 +vt 0.909091 0.187500 +vt 0.924242 0.238636 +vt 0.909091 0.267045 +vt 0.909091 0.232955 +vt 0.924242 0.306818 +vt 0.909091 0.278409 +vt 0.924242 0.284091 +vt 0.924242 0.329545 +vt 0.909091 0.357955 +vt 0.909091 0.323864 +vt 0.924242 0.375000 +vt 0.909091 0.403409 +vt 0.909091 0.369318 +vt 0.924242 0.443182 +vt 0.909091 0.414773 +vt 0.924242 0.420455 +vt 0.924242 0.465909 +vt 0.909091 0.494318 +vt 0.909091 0.460227 +vt 0.924242 0.534091 +vt 0.909091 0.505682 +vt 0.924242 0.511364 +vt 0.924242 0.034091 +vt 0.909091 0.005682 +vt 0.924242 0.011364 +vt 0.924242 0.079545 +vt 0.909091 0.051136 +vt 0.924242 0.056818 +vt 0.924242 0.102273 +vt 0.909091 0.130682 +vt 0.909091 0.096591 +vt 0.833333 0.227273 +vt 0.818182 0.187500 +vt 0.833333 0.181818 +vt 0.833333 0.272727 +vt 0.818182 0.232955 +vt 0.818182 0.312500 +vt 0.818182 0.278409 +vt 0.833333 0.318182 +vt 0.818182 0.357955 +vt 0.818182 0.323864 +vt 0.833333 0.363636 +vt 0.818182 0.403409 +vt 0.818182 0.369318 +vt 0.833333 0.409091 +vt 0.818182 0.448864 +vt 0.818182 0.414773 +vt 0.833333 0.454545 +vt 0.818182 0.494318 +vt 0.818182 0.460227 +vt 0.833333 0.545455 +vt 0.818182 0.505682 +vt 0.833333 0.500000 +vt 0.833333 0.045455 +vt 0.818182 0.005682 +vt 0.833333 0.000000 +vt 0.833333 0.090909 +vt 0.818182 0.051136 +vt 0.833333 0.136364 +vt 0.818182 0.096591 +vt 0.818182 0.142045 +vt 0.757576 0.176136 +vt 0.742424 0.147727 +vt 0.757576 0.142045 +vt 0.757576 0.221591 +vt 0.742424 0.193182 +vt 0.757576 0.187500 +vt 0.757576 0.267045 +vt 0.742424 0.238636 +vt 0.757576 0.232955 +vt 0.757576 0.278409 +vt 0.742424 0.306818 +vt 0.742424 0.284091 +vt 0.757576 0.357955 +vt 0.742424 0.329545 +vt 0.757576 0.323864 +vt 0.757576 0.403409 +vt 0.742424 0.375000 +vt 0.757576 0.369318 +vt 0.757576 0.414773 +vt 0.742424 0.443182 +vt 0.742424 0.420455 +vt 0.757576 0.494318 +vt 0.742424 0.465909 +vt 0.757576 0.460227 +vt 0.757576 0.505682 +vt 0.742424 0.534091 +vt 0.742424 0.511364 +vt 0.757576 0.039773 +vt 0.742424 0.011364 +vt 0.757576 0.005682 +vt 0.757576 0.085227 +vt 0.742424 0.056818 +vt 0.757576 0.051136 +vt 0.757576 0.130682 +vt 0.742424 0.102273 +vt 0.757576 0.096591 +vt 0.386364 0.329545 +vt 0.416667 0.375000 +vt 0.386364 0.375000 +vt 0.386364 0.329545 +vt 0.416667 0.375000 +vt 0.386364 0.375000 +vt 0.363636 0.329545 +vt 0.416667 0.295455 +vt 0.416667 0.329545 +vt 0.386364 0.409091 +vt 0.439394 0.375000 +vt 0.363636 0.329545 +vt 0.416667 0.295455 +vt 0.416667 0.329545 +vt 0.386364 0.409091 +vt 0.439394 0.375000 +vt 0.409091 0.431818 +vt 0.378788 0.477273 +vt 0.378788 0.431818 +vt 0.560606 0.295455 +vt 0.500000 0.204545 +vt 0.424242 0.477273 +vt 0.409091 0.477273 +vt 0.363636 0.431818 +vt 0.378788 0.500000 +vt 0.409091 0.409091 +vt 0.363636 0.431818 +vt 0.469697 0.204545 +vt 0.500000 0.295455 +vt 0.424242 0.477273 +vt 0.409091 0.477273 +vt 0.446970 0.113636 +vt 0.386364 0.136364 +vt 0.386364 0.113636 +vt 0.378788 0.500000 +vt 0.409091 0.409091 +vt 0.469697 0.704545 +vt 0.500000 0.795455 +vt 0.469697 0.534091 +vt 0.606061 0.500000 +vt 0.590909 0.534091 +vt 0.181818 0.988636 +vt -0.000000 1.000000 +vt -0.000000 0.988636 +vt 0.000000 0.738636 +vt 0.181818 0.727273 +vt 0.181818 0.738636 +vt 0.181818 0.943182 +vt -0.000000 0.943182 +vt 0.000000 0.784091 +vt 0.181818 0.784091 +vt 0.000000 0.863636 +vt 0.181818 0.863636 +vt 0.795455 0.818182 +vt 0.871212 0.818182 +vt 0.856061 0.863636 +vt 0.878788 0.818182 +vt 0.871212 0.840909 +vt 0.954545 0.818182 +vt 0.939394 0.863636 +vt 0.787879 0.840909 +vt 0.787879 0.818182 +vt 0.878788 0.840909 +vt 0.871212 0.863636 +vt 0.795455 0.840909 +vt 0.787879 0.863636 +vt 0.386364 0.329545 +vt 0.416667 0.375000 +vt 0.386364 0.375000 +vt 0.386364 0.329545 +vt 0.416667 0.375000 +vt 0.386364 0.375000 +vt 0.363636 0.329545 +vt 0.416667 0.295455 +vt 0.416667 0.329545 +vt 0.386364 0.409091 +vt 0.439394 0.375000 +vt 0.363636 0.329545 +vt 0.416667 0.295455 +vt 0.416667 0.329545 +vt 0.386364 0.409091 +vt 0.439394 0.375000 +vt 0.872709 0.647736 +vt 0.833333 0.681836 +vt 0.793958 0.579536 +vt 0.793958 0.784100 +vt 0.833333 0.681800 +vt 0.872709 0.784100 +vt 0.287879 0.681818 +vt 0.363636 0.693182 +vt 0.287879 0.693182 +vt 0.363636 0.738636 +vt 0.287879 0.818182 +vt 0.287879 0.738636 +vt 0.287879 0.943182 +vt 0.363636 0.954545 +vt 0.287879 0.954545 +vt 0.287879 0.897727 +vt 0.363636 0.943182 +vt 0.363636 0.818182 +vt 0.287879 0.818182 +vt 0.416667 0.840909 +vt 0.363636 0.886364 +vt 0.363636 0.840909 +vt 0.416667 0.886364 +vt 0.424242 0.795455 +vt 0.287879 0.886364 +vt 0.234848 0.840909 +vt 0.287879 0.840909 +vt 0.234848 0.886364 +vt 0.227273 0.931818 +vt 0.227273 0.795455 +vt 0.446970 0.022727 +vt 0.386364 0.022727 +vt 0.446970 -0.000000 +vt 0.378788 -0.000000 +vt 0.454545 -0.000000 +vt 0.469697 0.034091 +vt 0.454545 0.000000 +vt 0.500000 0.022727 +vt 0.560606 0.022727 +vt 0.606061 0.000000 +vt 0.590909 0.034091 +vt 0.500000 0.159091 +vt 0.560606 0.159091 +vt 0.636364 0.545583 +vt 0.666581 0.590909 +vt 0.636364 0.636235 +vt 0.666667 0.528409 +vt 0.606061 0.534091 +vt 0.606061 0.528409 +vt 0.666667 0.534091 +vt 0.606061 0.539773 +vt 0.606061 0.534091 +vt 0.606061 0.545455 +vt 0.666667 0.539773 +vt 0.666667 0.545455 +vt 0.606061 0.545455 +vt 0.666667 0.539773 +vt 0.666667 0.545455 +vt 0.666667 0.528409 +vt 0.606061 0.528409 +vt 0.666667 0.534091 +vt 0.606061 0.539773 +vt 0.666667 0.528409 +vt 0.606061 0.534091 +vt 0.606061 0.528409 +vt 0.606061 0.545455 +vt 0.666667 0.539773 +vt 0.666667 0.545455 +vt 0.666667 0.534091 +vt 0.606061 0.539773 +vt 0.625000 0.664773 +vt 0.621212 0.670455 +vt 0.621212 0.664773 +vt 0.621212 0.681818 +vt 0.625000 0.670455 +vt 0.625000 0.681818 +vt 0.625000 0.653409 +vt 0.621212 0.653409 +vt 0.632576 0.670455 +vt 0.632576 0.664773 +vt 0.613636 0.664773 +vt 0.613636 0.670455 +vt 0.609848 0.670455 +vt 0.606061 0.653409 +vt 0.609848 0.653409 +vt 0.613636 0.653409 +vt 0.609848 0.670455 +vt 0.609848 0.653409 +vt 0.393939 0.534091 +vt 0.386364 0.511364 +vt 0.393939 0.511364 +vt 0.363636 0.511364 +vt 0.371212 0.534091 +vt 0.363636 0.534091 +vt 0.371212 0.545455 +vt 0.386364 0.534091 +vt 0.386364 0.545455 +vt 0.386364 0.500000 +vt 0.371212 0.511364 +vt 0.371212 0.500000 +vt 0.651515 0.647727 +vt 0.643939 0.642045 +vt 0.651515 0.642045 +vt 0.643939 0.647727 +vt 0.636364 0.642045 +vt 0.636364 0.647727 +vt 0.628788 0.642045 +vt 0.621212 0.647727 +vt 0.621212 0.642045 +vt 0.613636 0.642045 +vt 0.606061 0.647727 +vt 0.606061 0.642045 +vt 0.666667 0.647727 +vt 0.659091 0.642045 +vt 0.666667 0.642045 +vt 0.795455 0.818182 +vt 0.871212 0.818182 +vt 0.856061 0.863636 +vt 0.878788 0.818182 +vt 0.871212 0.840909 +vt 0.954545 0.818182 +vt 0.939394 0.863636 +vt 0.787879 0.840909 +vt 0.787879 0.818182 +vt 0.878788 0.840909 +vt 0.871212 0.863636 +vt 0.795455 0.840909 +vt 0.787879 0.863636 +vt 0.795455 0.818182 +vt 0.871212 0.818182 +vt 0.856061 0.863636 +vt 0.878788 0.818182 +vt 0.871212 0.840909 +vt 0.954545 0.818182 +vt 0.939394 0.863636 +vt 0.787879 0.840909 +vt 0.787879 0.818182 +vt 0.878788 0.840909 +vt 0.871212 0.863636 +vt 0.795455 0.840909 +vt 0.787879 0.863636 +vt 0.795455 0.818182 +vt 0.871212 0.818182 +vt 0.856061 0.863636 +vt 0.878788 0.818182 +vt 0.871212 0.840909 +vt 0.954545 0.818182 +vt 0.939394 0.863636 +vt 0.787879 0.840909 +vt 0.787879 0.818182 +vt 0.878788 0.840909 +vt 0.871212 0.863636 +vt 0.795455 0.840909 +vt 0.787879 0.863636 +vt 0.795455 0.818182 +vt 0.871212 0.818182 +vt 0.856061 0.863636 +vt 0.878788 0.818182 +vt 0.871212 0.840909 +vt 0.954545 0.818182 +vt 0.939394 0.863636 +vt 0.787879 0.840909 +vt 0.787879 0.818182 +vt 0.878788 0.840909 +vt 0.871212 0.863636 +vt 0.795455 0.840909 +vt 0.787879 0.863636 +vt 0.795455 0.818182 +vt 0.871212 0.818182 +vt 0.856061 0.863636 +vt 0.878788 0.818182 +vt 0.871212 0.840909 +vt 0.954545 0.818182 +vt 0.939394 0.863636 +vt 0.787879 0.840909 +vt 0.787879 0.818182 +vt 0.878788 0.840909 +vt 0.871212 0.863636 +vt 0.795455 0.840909 +vt 0.787879 0.863636 +vt 0.469697 0.340909 +vt 0.590909 0.340909 +vt 0.606061 0.488636 +vt 0.606061 0.500000 +vt 0.454545 0.488636 +vt 0.469697 0.840909 +vt 0.590909 0.840909 +vt 0.606061 0.988636 +vt 0.606061 1.000000 +vt 0.454545 0.988636 +vt 0.893939 0.176136 +vt 0.893939 0.221591 +vt 0.893939 0.267045 +vt 0.893939 0.278409 +vt 0.893939 0.323864 +vt 0.893939 0.369318 +vt 0.893939 0.414773 +vt 0.893939 0.460227 +vt 0.893939 0.539773 +vt 0.893939 0.039773 +vt 0.893939 0.085227 +vt 0.893939 0.130682 +vt 0.909091 0.176136 +vt 0.924242 0.215909 +vt 0.924242 0.261364 +vt 0.909091 0.312500 +vt 0.924242 0.352273 +vt 0.924242 0.397727 +vt 0.909091 0.448864 +vt 0.924242 0.488636 +vt 0.909091 0.539773 +vt 0.909091 0.039773 +vt 0.909091 0.085227 +vt 0.924242 0.125000 +vt 0.818182 0.221591 +vt 0.818182 0.267045 +vt 0.818182 0.539773 +vt 0.818182 0.039773 +vt 0.818182 0.085227 +vt 0.818182 0.130682 +vt 0.818182 0.176136 +vt 0.742424 0.170455 +vt 0.742424 0.215909 +vt 0.742424 0.261364 +vt 0.757576 0.312500 +vt 0.742424 0.352273 +vt 0.742424 0.397727 +vt 0.757576 0.448864 +vt 0.742424 0.488636 +vt 0.757576 0.539773 +vt 0.742424 0.034091 +vt 0.742424 0.079545 +vt 0.742424 0.125000 +vt 0.363636 0.375000 +vt 0.386364 0.295455 +vt 0.416667 0.409091 +vt 0.439394 0.329545 +vt 0.363636 0.375000 +vt 0.386364 0.295455 +vt 0.416667 0.409091 +vt 0.439394 0.329545 +vt 0.424242 0.431818 +vt 0.363636 0.477273 +vt 0.409091 0.500000 +vt 0.378788 0.409091 +vt 0.363636 0.477273 +vt 0.424242 0.431818 +vt 0.446970 0.136364 +vt 0.409091 0.500000 +vt 0.378788 0.409091 +vt 0.590909 0.659091 +vt 0.469697 0.659091 +vt 0.454545 0.511364 +vt 0.454545 0.500000 +vt 0.606061 0.511364 +vt 0.181818 1.000000 +vt 0.000000 0.727273 +vt 0.181818 0.863636 +vt -0.000000 0.863636 +vt 0.810606 0.863636 +vt 0.954545 0.840909 +vt 0.893939 0.863636 +vt 0.878788 0.863636 +vt 0.795455 0.863636 +vt 0.363636 0.375000 +vt 0.386364 0.295455 +vt 0.416667 0.409091 +vt 0.439394 0.329545 +vt 0.363636 0.375000 +vt 0.386364 0.295455 +vt 0.416667 0.409091 +vt 0.439394 0.329545 +vt 0.810600 0.672699 +vt 0.793958 0.647736 +vt 0.787867 0.613636 +vt 0.810600 0.554574 +vt 0.833333 0.545437 +vt 0.856067 0.554574 +vt 0.872709 0.579536 +vt 0.878800 0.613636 +vt 0.856067 0.672699 +vt 0.856067 0.809063 +vt 0.833333 0.818200 +vt 0.810600 0.809063 +vt 0.787867 0.750000 +vt 0.793958 0.715900 +vt 0.810600 0.690937 +vt 0.856067 0.690937 +vt 0.872709 0.715900 +vt 0.878800 0.750000 +vt 0.363636 0.681818 +vt 0.363636 0.818182 +vt 0.363636 0.897727 +vt 0.416667 0.795455 +vt 0.424242 0.931818 +vt 0.416667 0.931818 +vt 0.234848 0.795455 +vt 0.234848 0.931818 +vt 0.386364 -0.000000 +vt 0.378788 0.136364 +vt 0.454545 0.136364 +vt 0.454545 0.011364 +vt 0.469697 0.159091 +vt 0.606061 0.011364 +vt 0.590909 0.159091 +vt 0.614997 0.622959 +vt 0.606147 0.590909 +vt 0.614997 0.558859 +vt 0.657730 0.558859 +vt 0.657731 0.622959 +vt 0.606061 0.670455 +vt 0.613636 0.670455 +vt 0.628788 0.647727 +vt 0.613636 0.647727 +vt 0.659091 0.647727 +vt 0.810606 0.863636 +vt 0.954545 0.840909 +vt 0.893939 0.863636 +vt 0.878788 0.863636 +vt 0.795455 0.863636 +vt 0.810606 0.863636 +vt 0.954545 0.840909 +vt 0.893939 0.863636 +vt 0.878788 0.863636 +vt 0.795455 0.863636 +vt 0.810606 0.863636 +vt 0.954545 0.840909 +vt 0.893939 0.863636 +vt 0.878788 0.863636 +vt 0.795455 0.863636 +vt 0.810606 0.863636 +vt 0.954545 0.840909 +vt 0.893939 0.863636 +vt 0.878788 0.863636 +vt 0.795455 0.863636 +vt 0.810606 0.863636 +vt 0.954545 0.840909 +vt 0.893939 0.863636 +vt 0.878788 0.863636 +vt 0.795455 0.863636 +vt 0.939394 0.170455 +vt 0.939394 0.034091 +vt 0.939394 0.420455 +vt 0.939394 0.443182 +vt 0.939394 0.215909 +vt 0.939394 0.284091 +vt 0.939394 0.306818 +vt 0.939394 0.079545 +vt 0.939394 0.488636 +vt 0.939394 0.261364 +vt 0.939394 0.329545 +vt 0.939394 0.352273 +vt 0.939394 0.125000 +vt 0.939394 0.534091 +vt 0.939394 0.397727 +vt 0.696970 0.102273 +vt 0.696970 0.511364 +vt 0.696970 0.375000 +vt 0.696970 0.147727 +vt 0.696970 0.011364 +vt 0.696970 0.420455 +vt 0.696970 0.193182 +vt 0.696970 0.284091 +vt 0.696970 0.056818 +vt 0.696970 0.465909 +vt 0.696970 0.238636 +vt 0.696970 0.329545 +vt 0.666667 0.482955 +vt 0.659091 0.528409 +vt 0.659091 0.482955 +vt 0.651515 0.482955 +vt 0.643939 0.528409 +vt 0.643939 0.482955 +vt 0.613636 0.482955 +vt 0.606061 0.528409 +vt 0.606061 0.482955 +vt 0.651515 0.528409 +vt 0.628788 0.482955 +vt 0.621212 0.528409 +vt 0.621212 0.482955 +vt 0.636364 0.528409 +vt 0.636364 0.482955 +vt 0.613636 0.460227 +vt 0.613636 0.465909 +vt 0.606061 0.460227 +vt 0.613636 0.454545 +vt 0.659091 0.460227 +vt 0.666667 0.460227 +vt 0.659091 0.465909 +vt 0.659091 0.454545 +vt 0.628788 0.460227 +vt 0.651515 0.460227 +vt 0.643939 0.460227 +vt 0.651515 0.471591 +vt 0.621212 0.460227 +vt 0.621212 0.471591 +vt 0.636364 0.460227 +vt 0.621212 0.448864 +vt 0.636364 0.437500 +vt 0.628788 0.437500 +vt 0.621212 0.295455 +vt 0.613636 0.437500 +vt 0.613636 0.295455 +vt 0.666667 0.295455 +vt 0.659091 0.437500 +vt 0.659091 0.295455 +vt 0.643939 0.295455 +vt 0.636364 0.437500 +vt 0.636364 0.295455 +vt 0.628788 0.295455 +vt 0.621212 0.437500 +vt 0.606061 0.437500 +vt 0.606061 0.295455 +vt 0.651515 0.437500 +vt 0.651515 0.295455 +vt 0.643939 0.437500 +vt 0.628788 0.437500 +vt 0.636364 0.460227 +vt 0.621212 0.460227 +vt 0.621212 0.448864 +vt 0.651515 0.448864 +vt 0.659091 0.460227 +vt 0.651515 0.460227 +vt 0.643939 0.460227 +vt 0.628788 0.460227 +vt 0.613636 0.460227 +vt 0.613636 0.454545 +vt 0.613636 0.465909 +vt 0.643939 0.482955 +vt 0.636364 0.482955 +vt 0.621212 0.471591 +vt 0.651515 0.471591 +vt 0.628788 0.482955 +vt 0.659091 0.454545 +vt 0.666667 0.460227 +vt 0.659091 0.465909 +vt 0.606061 0.460227 +vt 0.636364 0.528409 +vt 0.621212 0.528409 +vt 0.621212 0.482955 +vt 0.659091 0.482955 +vt 0.651515 0.528409 +vt 0.651515 0.482955 +vt 0.613636 0.482955 +vt 0.606061 0.528409 +vt 0.606061 0.482955 +vt 0.643939 0.528409 +vt 0.666667 0.482955 +vt 0.659091 0.528409 +vt 0.628788 0.528409 +vt 0.613636 0.528409 +vt 0.787879 0.886364 +vt 0.696970 0.920455 +vt 0.696970 0.886364 +vt 0.787879 0.715909 +vt 0.696970 0.750000 +vt 0.696970 0.715909 +vt 0.787879 0.784091 +vt 0.696970 0.818182 +vt 0.696970 0.784091 +vt 0.787879 0.613636 +vt 0.696970 0.647727 +vt 0.696970 0.613636 +vt 0.787879 0.920455 +vt 0.696970 0.954545 +vt 0.787879 0.818182 +vt 0.696970 0.852273 +vt 0.787879 0.647727 +vt 0.696970 0.681818 +vt 0.787879 0.545455 +vt 0.696970 0.579545 +vt 0.696970 0.545455 +vt 0.787879 0.852273 +vt 0.787879 0.681818 +vt 0.787879 0.750000 +vt 0.787879 0.579545 +vt 0.651515 0.448864 +vt 0.643939 0.437500 +vt 0.636364 0.295455 +vt 0.628788 0.295455 +vt 0.651515 0.295455 +vt 0.643939 0.295455 +vt 0.659091 0.295455 +vt 0.651515 0.437500 +vt 0.613636 0.295455 +vt 0.606061 0.437500 +vt 0.606061 0.295455 +vt 0.621212 0.437500 +vt 0.621212 0.295455 +vt 0.666667 0.295455 +vt 0.659091 0.437500 +vt 0.613636 0.437500 +vt 0.670455 0.619318 +vt 0.666667 0.602273 +vt 0.670455 0.602273 +vt 0.670455 0.585227 +vt 0.666667 0.568182 +vt 0.670455 0.568182 +vt 0.666667 0.551136 +vt 0.670455 0.551136 +vt 0.670455 0.534091 +vt 0.666667 0.517045 +vt 0.670455 0.517045 +vt 0.670455 0.636364 +vt 0.666667 0.619318 +vt 0.666667 0.585227 +vt 0.666667 0.534091 +vt 0.666667 0.500000 +vt 0.670455 0.500000 +vt 0.613636 0.653409 +vt 0.621212 0.653409 +vt 0.651515 0.636364 +vt 0.643939 0.636364 +vt 0.606061 0.653409 +vt 0.659091 0.636364 +vt 0.659091 0.653409 +vt 0.666667 0.653409 +vt 0.666667 0.636364 +vt 0.651515 0.653409 +vt 0.613636 0.636364 +vt 0.606061 0.636364 +vt 0.643939 0.653409 +vt 0.621212 0.636364 +vt 0.636364 0.653409 +vt 0.628788 0.653409 +vt 0.628788 0.636364 +vt 0.636364 0.636364 +vt 0.628788 0.528409 +vt 0.613636 0.528409 +vt 0.659091 0.482955 +vt 0.666667 0.528409 +vt 0.659091 0.528409 +vt 0.651515 0.482955 +vt 0.643939 0.528409 +vt 0.643939 0.482955 +vt 0.613636 0.482955 +vt 0.606061 0.528409 +vt 0.606061 0.482955 +vt 0.651515 0.528409 +vt 0.628788 0.482955 +vt 0.621212 0.528409 +vt 0.621212 0.482955 +vt 0.636364 0.528409 +vt 0.636364 0.482955 +vt 0.613636 0.460227 +vt 0.613636 0.465909 +vt 0.606061 0.460227 +vt 0.613636 0.454545 +vt 0.659091 0.460227 +vt 0.666667 0.460227 +vt 0.659091 0.465909 +vt 0.659091 0.454545 +vt 0.636364 0.460227 +vt 0.628788 0.460227 +vt 0.651515 0.460227 +vt 0.643939 0.460227 +vt 0.651515 0.471591 +vt 0.621212 0.460227 +vt 0.621212 0.471591 +vt 0.621212 0.448864 +vt 0.636364 0.437500 +vt 0.628788 0.437500 +vt 0.621212 0.295455 +vt 0.613636 0.437500 +vt 0.613636 0.295455 +vt 0.666667 0.295455 +vt 0.659091 0.437500 +vt 0.659091 0.295455 +vt 0.643939 0.295455 +vt 0.636364 0.437500 +vt 0.636364 0.295455 +vt 0.628788 0.295455 +vt 0.621212 0.437500 +vt 0.606061 0.437500 +vt 0.606061 0.295455 +vt 0.651515 0.437500 +vt 0.651515 0.295455 +vt 0.643939 0.437500 +vt 0.628788 0.437500 +vt 0.643939 0.460227 +vt 0.636364 0.460227 +vt 0.621212 0.460227 +vt 0.621212 0.448864 +vt 0.651515 0.448864 +vt 0.659091 0.460227 +vt 0.651515 0.460227 +vt 0.628788 0.460227 +vt 0.613636 0.460227 +vt 0.613636 0.454545 +vt 0.621212 0.471591 +vt 0.613636 0.465909 +vt 0.643939 0.482955 +vt 0.636364 0.482955 +vt 0.628788 0.482955 +vt 0.651515 0.471591 +vt 0.659091 0.454545 +vt 0.666667 0.460227 +vt 0.659091 0.465909 +vt 0.606061 0.460227 +vt 0.636364 0.528409 +vt 0.621212 0.528409 +vt 0.621212 0.482955 +vt 0.659091 0.482955 +vt 0.651515 0.528409 +vt 0.651515 0.482955 +vt 0.613636 0.482955 +vt 0.606061 0.528409 +vt 0.606061 0.482955 +vt 0.643939 0.528409 +vt 0.666667 0.482955 +vt 0.659091 0.528409 +vt 0.628788 0.528409 +vt 0.613636 0.528409 +vt 0.651515 0.448864 +vt 0.643939 0.437500 +vt 0.636364 0.295455 +vt 0.628788 0.295455 +vt 0.651515 0.295455 +vt 0.643939 0.295455 +vt 0.659091 0.295455 +vt 0.651515 0.437500 +vt 0.613636 0.295455 +vt 0.606061 0.437500 +vt 0.606061 0.295455 +vt 0.621212 0.437500 +vt 0.621212 0.295455 +vt 0.666667 0.295455 +vt 0.659091 0.437500 +vt 0.613636 0.437500 +vt 0.628788 0.528409 +vt 0.613636 0.528409 +vt 0.939394 0.147727 +vt 0.939394 0.011364 +vt 0.939394 0.193182 +vt 0.939394 0.056818 +vt 0.939394 0.465909 +vt 0.939394 0.238636 +vt 0.939394 0.102273 +vt 0.939394 0.511364 +vt 0.939394 0.375000 +vt 0.696970 0.125000 +vt 0.696970 0.534091 +vt 0.696970 0.397727 +vt 0.696970 0.170455 +vt 0.696970 0.034091 +vt 0.696970 0.443182 +vt 0.696970 0.215909 +vt 0.696970 0.306818 +vt 0.696970 0.079545 +vt 0.696970 0.488636 +vt 0.696970 0.261364 +vt 0.696970 0.352273 +vt 0.666667 0.528409 +vt 0.666667 0.437500 +vt 0.666667 0.528409 +vt 0.787879 0.954545 +vt 0.666667 0.437500 +vt 0.666667 0.636364 +vt 0.666667 0.482955 +vt 0.666667 0.437500 +vt 0.666667 0.528409 +vt 0.666667 0.437500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.0000 0.7071 -0.7071 +vn 0.1448 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn 0.1448 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn 0.1866 0.9824 0.0000 +vn -0.4617 -0.4617 0.7574 +vn -0.6737 -0.1363 0.7263 +vn -0.4617 -0.4617 -0.7574 +vn -0.6737 -0.1363 -0.7263 +vn 0.5294 0.5294 0.6630 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.0671 0.0671 0.9955 +vn 0.0473 0.0196 0.9987 +vn 0.9824 0.1866 -0.0000 +vn 0.7194 0.1448 0.6794 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 -0.6794 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1448 0.7194 0.6794 +vn 0.1363 -0.6737 -0.7263 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn -0.1866 0.9824 -0.0000 +vn 0.4617 -0.4617 -0.7574 +vn 0.6737 -0.1363 -0.7263 +vn 0.4617 -0.4617 0.7574 +vn 0.6737 -0.1363 0.7263 +vn -0.5294 0.5294 -0.6630 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 0.6630 +vn -0.0671 0.0671 -0.9955 +vn -0.0473 0.0196 -0.9987 +vn -0.9824 0.1866 -0.0000 +vn -0.7194 0.1448 -0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.7194 0.1448 0.6794 +s off +f 118/180/25 109/181/25 117/182/25 +f 101/183/26 100/184/26 99/185/26 +f 105/186/27 103/187/27 104/188/27 +f 99/189/28 103/187/28 101/190/28 +f 101/191/25 106/192/25 102/193/25 +f 100/194/29 104/188/29 99/195/29 +f 102/196/30 105/186/30 100/184/30 +f 107/197/28 113/198/28 109/199/28 +f 288/200/27 289/201/27 287/202/27 +f 110/203/30 112/204/30 108/205/30 +f 111/206/31 117/207/31 113/198/31 +f 130/208/28 124/209/28 128/210/28 +f 127/211/30 125/212/30 129/213/30 +f 123/214/32 296/215/32 125/212/32 +f 114/216/32 116/217/32 112/204/32 +f 131/218/32 129/213/32 133/219/32 +f 122/220/32 284/221/32 120/222/32 +f 118/223/30 120/222/30 116/217/30 +f 298/224/27 295/225/27 296/215/27 +f 115/226/28 121/227/28 117/207/28 +f 134/228/31 128/210/31 132/229/31 +f 135/230/30 133/219/30 137/231/30 +f 138/232/28 132/229/28 136/233/28 +f 127/234/25 136/235/25 128/236/25 +f 172/237/25 149/238/25 148/239/25 +f 173/240/25 150/241/25 149/238/25 +f 174/242/25 139/243/25 150/241/25 +f 139/243/25 164/244/25 140/245/25 +f 140/245/25 165/246/25 141/247/25 +f 141/247/25 166/248/25 142/249/25 +f 142/249/25 167/250/25 143/251/25 +f 143/251/25 168/252/25 144/253/25 +f 168/254/25 145/255/25 144/253/25 +f 169/256/25 146/257/25 145/258/25 +f 170/259/25 147/260/25 146/257/25 +f 171/261/25 148/239/25 147/260/25 +f 185/262/25 196/263/25 184/264/25 +f 185/265/25 198/266/25 197/267/25 +f 186/268/25 187/269/25 198/270/25 +f 176/271/25 187/272/25 175/273/25 +f 176/274/25 189/275/25 188/276/25 +f 177/277/25 190/278/25 189/279/25 +f 179/280/25 190/281/25 178/282/25 +f 179/283/25 192/284/25 191/285/25 +f 181/286/25 192/287/25 180/288/25 +f 182/289/25 193/290/25 181/291/25 +f 183/292/25 194/293/25 182/294/25 +f 183/295/25 196/296/25 195/297/25 +f 162/298/29 221/299/29 161/300/29 +f 151/301/29 222/302/29 162/298/29 +f 151/301/29 212/303/29 211/304/29 +f 152/305/29 213/306/29 212/307/29 +f 153/308/29 214/309/29 213/310/29 +f 154/311/29 215/312/29 214/313/29 +f 155/314/29 216/315/29 215/316/29 +f 157/317/29 216/318/29 156/319/29 +f 158/320/29 217/321/29 157/322/29 +f 159/323/29 218/324/29 158/320/29 +f 160/325/29 219/326/29 159/323/29 +f 161/300/29 220/327/29 160/325/29 +f 233/328/29 244/329/29 232/330/29 +f 234/331/29 245/332/29 233/333/29 +f 223/334/29 246/335/29 234/336/29 +f 223/337/29 236/338/29 235/339/29 +f 225/340/29 236/341/29 224/342/29 +f 226/343/29 237/344/29 225/345/29 +f 226/346/29 239/347/29 238/348/29 +f 228/349/29 239/350/29 227/351/29 +f 228/352/29 241/353/29 240/354/29 +f 230/355/29 241/356/29 229/357/29 +f 231/358/29 242/359/29 230/360/29 +f 232/361/29 243/362/29 231/363/29 +f 260/364/30 261/365/30 259/366/30 +f 268/367/30 269/368/30 267/369/30 +f 259/366/29 265/370/29 260/364/29 +f 260/364/26 266/371/26 262/372/26 +f 261/365/27 264/373/27 259/366/27 +f 262/372/25 263/374/25 261/365/25 +f 267/369/29 273/375/29 268/367/29 +f 268/367/26 274/376/26 270/377/26 +f 269/368/27 272/378/27 267/369/27 +f 270/377/25 271/379/25 269/368/25 +f 276/380/27 277/381/27 275/382/27 +f 286/383/27 283/384/27 284/221/27 +f 276/380/30 282/385/30 278/386/30 +f 277/381/28 280/387/28 275/382/28 +f 278/386/25 279/388/25 277/381/25 +f 275/382/29 281/389/29 276/380/29 +f 289/201/28 292/390/28 287/202/28 +f 119/391/31 285/392/31 121/227/31 +f 288/200/30 294/393/30 290/394/30 +f 484/395/33 485/396/33 483/397/33 +f 290/394/25 291/398/25 289/201/25 +f 287/202/29 293/399/29 288/200/29 +f 126/400/31 297/401/31 124/209/31 +f 130/402/29 137/403/29 129/404/29 +f 310/405/28 313/406/28 309/407/28 +f 307/408/30 312/409/30 308/410/30 +f 301/411/27 309/407/27 299/412/27 +f 300/413/27 308/410/27 302/414/27 +f 302/414/30 305/415/30 300/413/30 +f 299/412/28 303/416/28 301/411/28 +f 339/417/29 340/418/29 349/419/29 +f 342/420/30 345/421/30 340/418/30 +f 342/420/25 341/422/25 347/423/25 +f 339/417/28 343/424/28 341/425/28 +f 346/426/32 349/427/32 345/421/32 +f 344/428/31 347/429/31 343/424/31 +f 402/430/28 403/431/28 401/432/28 +f 410/433/28 411/434/28 409/435/28 +f 401/432/25 407/436/25 402/430/25 +f 402/430/26 408/437/26 404/438/26 +f 403/431/27 406/439/27 401/432/27 +f 404/438/29 405/440/29 403/431/29 +f 409/435/25 415/441/25 410/433/25 +f 410/433/26 416/442/26 412/443/26 +f 411/434/27 414/444/27 409/435/27 +f 412/443/29 413/445/29 411/434/29 +f 427/446/29 417/447/29 421/448/29 +f 439/449/25 435/450/25 431/451/25 +f 444/452/30 447/453/30 443/454/30 +f 445/455/30 442/456/30 441/457/30 +f 443/454/27 445/455/27 441/457/27 +f 451/458/28 456/459/28 452/460/28 +f 449/461/27 455/462/27 451/458/27 +f 454/463/28 449/461/28 450/464/28 +f 445/465/25 454/466/25 446/467/25 +f 453/468/25 445/465/25 448/469/25 +f 450/470/29 441/471/29 442/472/29 +f 449/473/29 452/474/29 444/475/29 +f 482/476/29 483/397/29 481/477/29 +f 481/477/34 488/478/34 482/476/34 +f 483/397/30 487/479/30 481/477/30 +f 488/480/28 484/395/28 482/476/28 +f 115/481/29 107/482/29 487/483/29 +f 488/484/29 108/485/29 116/486/29 +f 487/483/29 108/485/29 488/484/29 +f 284/221/29 485/487/29 486/488/29 +f 501/489/29 503/490/29 497/491/29 +f 514/492/26 518/493/26 513/494/26 +f 511/495/29 509/496/29 510/497/29 +f 515/498/27 520/499/27 516/500/27 +f 507/501/27 512/502/27 508/503/27 +f 506/504/26 510/497/26 505/505/26 +f 519/506/29 517/507/29 518/493/29 +f 522/508/26 526/509/26 521/510/26 +f 523/511/27 528/512/27 524/513/27 +f 527/514/29 525/515/29 526/509/29 +f 535/516/29 533/517/29 534/518/29 +f 531/519/27 536/520/27 532/521/27 +f 530/522/26 534/518/26 529/523/26 +f 532/524/30 535/516/30 530/525/30 +f 529/526/28 533/517/28 531/527/28 +f 546/528/29 548/529/29 545/530/29 +f 551/531/29 549/532/29 550/533/29 +f 557/534/30 554/535/30 559/536/30 +f 560/537/28 555/538/28 558/539/28 +f 558/540/27 556/541/27 557/542/27 +f 559/543/26 553/544/26 560/545/26 +f 554/535/29 555/538/29 553/544/29 +f 583/546/29 570/547/29 571/548/29 +f 584/549/29 569/550/29 570/547/29 +f 578/551/29 576/552/29 569/550/29 +f 576/552/29 579/553/29 575/554/29 +f 579/553/29 574/555/29 575/554/29 +f 574/555/29 581/556/29 573/557/29 +f 581/558/29 572/559/29 573/560/29 +f 572/559/29 583/546/29 571/548/29 +f 585/561/29 586/562/29 595/563/29 +f 588/564/30 591/565/30 586/562/30 +f 588/564/25 587/566/25 593/567/25 +f 585/561/28 589/568/28 587/569/28 +f 592/570/32 595/571/32 591/565/32 +f 590/572/31 593/573/31 589/568/31 +f 597/574/29 598/575/29 607/576/29 +f 600/577/30 603/578/30 598/575/30 +f 600/577/25 599/579/25 605/580/25 +f 597/574/28 601/581/28 599/582/28 +f 604/583/32 607/584/32 603/578/32 +f 602/585/31 605/586/31 601/581/31 +f 609/587/29 610/588/29 619/589/29 +f 612/590/30 615/591/30 610/588/30 +f 612/590/25 611/592/25 617/593/25 +f 609/587/28 613/594/28 611/595/28 +f 616/596/32 619/597/32 615/591/32 +f 614/598/31 617/599/31 613/594/31 +f 621/600/29 622/601/29 631/602/29 +f 624/603/30 627/604/30 622/601/30 +f 624/603/25 623/605/25 629/606/25 +f 621/600/28 625/607/28 623/608/28 +f 628/609/32 631/610/32 627/604/32 +f 626/611/31 629/612/31 625/607/31 +f 633/613/29 634/614/29 643/615/29 +f 636/616/30 639/617/30 634/614/30 +f 636/616/25 635/618/25 641/619/25 +f 633/613/28 637/620/28 635/621/28 +f 640/622/32 643/623/32 639/617/32 +f 638/624/31 641/625/31 637/620/31 +f 117/182/25 121/626/25 118/180/25 +f 121/626/25 285/392/25 122/627/25 +f 118/180/25 121/626/25 122/627/25 +f 285/392/25 286/383/25 122/627/25 +f 118/180/25 114/628/25 110/629/25 +f 109/181/25 113/630/25 117/182/25 +f 118/180/25 110/629/25 109/181/25 +f 101/183/26 102/196/26 100/184/26 +f 105/186/27 106/192/27 103/187/27 +f 99/189/28 104/188/28 103/187/28 +f 101/191/25 103/187/25 106/192/25 +f 100/194/29 105/186/29 104/188/29 +f 102/196/30 106/192/30 105/186/30 +f 107/197/28 111/206/28 113/198/28 +f 288/200/27 290/394/27 289/201/27 +f 110/203/30 114/216/30 112/204/30 +f 111/206/31 115/226/31 117/207/31 +f 130/208/28 126/400/28 124/209/28 +f 127/211/30 123/214/30 125/212/30 +f 123/214/32 298/224/32 296/215/32 +f 114/216/32 118/223/32 116/217/32 +f 131/218/32 127/211/32 129/213/32 +f 122/220/32 286/383/32 284/221/32 +f 118/223/30 122/220/30 120/222/30 +f 298/224/27 297/401/27 295/225/27 +f 115/226/28 119/391/28 121/227/28 +f 134/228/31 130/208/31 128/210/31 +f 135/230/30 131/218/30 133/219/30 +f 138/232/28 134/228/28 132/229/28 +f 128/236/25 124/631/25 127/234/25 +f 124/631/25 297/401/25 123/632/25 +f 127/234/25 124/631/25 123/632/25 +f 297/401/25 298/224/25 123/632/25 +f 127/234/25 131/633/25 135/634/25 +f 136/235/25 132/635/25 128/236/25 +f 127/234/25 135/634/25 136/235/25 +f 172/237/25 173/636/25 149/238/25 +f 173/240/25 174/637/25 150/241/25 +f 174/242/25 163/638/25 139/243/25 +f 139/243/25 163/639/25 164/244/25 +f 140/245/25 164/640/25 165/246/25 +f 141/247/25 165/641/25 166/248/25 +f 142/249/25 166/642/25 167/250/25 +f 143/251/25 167/643/25 168/252/25 +f 168/254/25 169/644/25 145/255/25 +f 169/256/25 170/645/25 146/257/25 +f 170/259/25 171/646/25 147/260/25 +f 171/261/25 172/647/25 148/239/25 +f 185/262/25 197/648/25 196/263/25 +f 185/265/25 186/649/25 198/266/25 +f 186/268/25 175/650/25 187/269/25 +f 176/271/25 188/651/25 187/272/25 +f 176/274/25 177/652/25 189/275/25 +f 177/277/25 178/653/25 190/278/25 +f 179/280/25 191/654/25 190/281/25 +f 179/283/25 180/655/25 192/284/25 +f 181/286/25 193/656/25 192/287/25 +f 182/289/25 194/657/25 193/290/25 +f 183/292/25 195/658/25 194/293/25 +f 183/295/25 184/659/25 196/296/25 +f 162/298/29 222/660/29 221/299/29 +f 151/301/29 211/661/29 222/302/29 +f 151/301/29 152/305/29 212/303/29 +f 152/305/29 153/308/29 213/306/29 +f 153/308/29 154/311/29 214/309/29 +f 154/311/29 155/314/29 215/312/29 +f 155/314/29 156/319/29 216/315/29 +f 157/317/29 217/662/29 216/318/29 +f 158/320/29 218/663/29 217/321/29 +f 159/323/29 219/664/29 218/324/29 +f 160/325/29 220/665/29 219/326/29 +f 161/300/29 221/666/29 220/327/29 +f 233/328/29 245/667/29 244/329/29 +f 234/331/29 246/668/29 245/332/29 +f 223/334/29 235/669/29 246/335/29 +f 223/337/29 224/670/29 236/338/29 +f 225/340/29 237/671/29 236/341/29 +f 226/343/29 238/672/29 237/344/29 +f 226/346/29 227/673/29 239/347/29 +f 228/349/29 240/674/29 239/350/29 +f 228/352/29 229/675/29 241/353/29 +f 230/355/29 242/676/29 241/356/29 +f 231/358/29 243/677/29 242/359/29 +f 232/361/29 244/678/29 243/362/29 +f 260/364/30 262/372/30 261/365/30 +f 268/367/30 270/377/30 269/368/30 +f 259/366/29 264/679/29 265/370/29 +f 260/364/26 265/680/26 266/371/26 +f 261/365/27 263/681/27 264/373/27 +f 262/372/25 266/682/25 263/374/25 +f 267/369/29 272/683/29 273/375/29 +f 268/367/26 273/684/26 274/376/26 +f 269/368/27 271/685/27 272/378/27 +f 270/377/25 274/686/25 271/379/25 +f 276/380/27 278/386/27 277/381/27 +f 286/383/27 285/392/27 283/384/27 +f 276/380/30 281/687/30 282/385/30 +f 277/381/28 279/688/28 280/387/28 +f 278/386/25 282/689/25 279/388/25 +f 275/382/29 280/690/29 281/389/29 +f 289/201/28 291/691/28 292/390/28 +f 119/391/31 283/384/31 285/392/31 +f 288/200/30 293/692/30 294/393/30 +f 484/395/33 486/693/33 485/396/33 +f 290/394/25 294/694/25 291/398/25 +f 287/202/29 292/695/29 293/399/29 +f 126/400/31 295/225/31 297/401/31 +f 129/404/29 125/696/29 130/402/29 +f 125/696/29 296/215/29 126/697/29 +f 130/402/29 125/696/29 126/697/29 +f 296/215/29 295/225/29 126/697/29 +f 130/402/29 134/698/29 138/699/29 +f 137/403/29 133/700/29 129/404/29 +f 130/402/29 138/699/29 137/403/29 +f 310/405/28 314/701/28 313/406/28 +f 307/408/30 311/702/30 312/409/30 +f 301/411/27 310/405/27 309/407/27 +f 300/413/27 307/408/27 308/410/27 +f 302/414/30 306/703/30 305/415/30 +f 299/412/28 304/704/28 303/416/28 +f 340/418/29 345/421/29 349/419/29 +f 349/419/29 348/705/29 339/417/29 +f 348/705/29 344/428/29 339/417/29 +f 342/420/30 346/426/30 345/421/30 +f 341/422/25 343/706/25 347/423/25 +f 347/423/25 350/707/25 342/420/25 +f 350/707/25 346/426/25 342/420/25 +f 339/417/28 344/428/28 343/424/28 +f 346/426/32 350/708/32 349/427/32 +f 344/428/31 348/709/31 347/429/31 +f 402/430/28 404/438/28 403/431/28 +f 410/433/28 412/443/28 411/434/28 +f 401/432/25 406/710/25 407/436/25 +f 402/430/26 407/711/26 408/437/26 +f 403/431/27 405/712/27 406/439/27 +f 404/438/29 408/713/29 405/440/29 +f 409/435/25 414/714/25 415/441/25 +f 410/433/26 415/715/26 416/442/26 +f 411/434/27 413/716/27 414/444/27 +f 412/443/29 416/717/29 413/445/29 +f 417/447/29 418/718/29 419/719/29 +f 419/719/29 420/720/29 421/448/29 +f 421/448/29 422/721/29 423/722/29 +f 423/722/29 424/723/29 425/724/29 +f 425/724/29 426/725/29 427/446/29 +f 427/446/29 428/726/29 417/447/29 +f 417/447/29 419/719/29 421/448/29 +f 421/448/29 423/722/29 425/724/29 +f 425/724/29 427/446/29 421/448/29 +f 431/451/25 430/727/25 429/728/25 +f 429/728/25 440/729/25 439/449/25 +f 439/449/25 438/730/25 437/731/25 +f 437/731/25 436/732/25 435/450/25 +f 435/450/25 434/733/25 433/734/25 +f 433/734/25 432/735/25 431/451/25 +f 431/451/25 429/728/25 439/449/25 +f 439/449/25 437/731/25 435/450/25 +f 435/450/25 433/734/25 431/451/25 +f 444/452/30 448/736/30 447/453/30 +f 445/455/30 446/737/30 442/456/30 +f 443/454/27 447/453/27 445/455/27 +f 451/458/28 455/462/28 456/459/28 +f 449/461/27 453/738/27 455/462/27 +f 454/463/28 453/738/28 449/461/28 +f 445/465/25 453/468/25 454/466/25 +f 445/465/25 447/739/25 448/469/25 +f 448/469/25 456/740/25 453/468/25 +f 456/740/25 455/741/25 453/468/25 +f 450/470/29 449/473/29 441/471/29 +f 444/475/29 443/742/29 441/471/29 +f 449/473/29 451/743/29 452/474/29 +f 444/475/29 441/471/29 449/473/29 +f 482/476/29 484/395/29 483/397/29 +f 481/477/34 487/744/34 488/478/34 +f 483/397/30 485/745/30 487/479/30 +f 488/480/28 486/746/28 484/395/28 +f 115/481/29 111/747/29 107/482/29 +f 487/483/29 485/487/29 115/481/29 +f 485/487/29 283/384/29 119/748/29 +f 115/481/29 485/487/29 119/748/29 +f 108/485/29 112/749/29 116/486/29 +f 116/486/29 120/750/29 486/488/29 +f 120/750/29 284/221/29 486/488/29 +f 486/488/29 488/484/29 116/486/29 +f 487/483/29 107/482/29 108/485/29 +f 284/221/29 283/384/29 485/487/29 +f 497/491/29 498/751/29 499/752/29 +f 499/752/29 500/753/29 501/489/29 +f 501/489/29 502/754/29 503/490/29 +f 503/490/29 504/755/29 497/491/29 +f 497/491/29 499/752/29 501/489/29 +f 514/492/26 519/506/26 518/493/26 +f 511/495/29 512/502/29 509/496/29 +f 515/498/27 517/507/27 520/499/27 +f 507/501/27 509/496/27 512/502/27 +f 506/504/26 511/495/26 510/497/26 +f 519/506/29 520/499/29 517/507/29 +f 522/508/26 527/514/26 526/509/26 +f 523/511/27 525/515/27 528/512/27 +f 527/514/29 528/512/29 525/515/29 +f 535/516/29 536/520/29 533/517/29 +f 531/519/27 533/517/27 536/520/27 +f 530/522/26 535/516/26 534/518/26 +f 532/524/30 536/520/30 535/516/30 +f 529/526/28 534/518/28 533/517/28 +f 546/528/29 547/756/29 548/529/29 +f 551/531/29 552/757/29 549/532/29 +f 557/534/30 556/541/30 554/535/30 +f 560/537/28 553/544/28 555/538/28 +f 558/540/27 555/538/27 556/541/27 +f 559/543/26 554/535/26 553/544/26 +f 554/535/29 556/541/29 555/538/29 +f 583/546/29 584/549/29 570/547/29 +f 584/549/29 578/551/29 569/550/29 +f 578/551/29 577/758/29 576/552/29 +f 576/552/29 577/758/29 579/553/29 +f 579/553/29 580/759/29 574/555/29 +f 574/555/29 580/759/29 581/556/29 +f 581/558/29 582/760/29 572/559/29 +f 572/559/29 582/760/29 583/546/29 +f 586/562/29 591/565/29 595/563/29 +f 595/563/29 594/761/29 585/561/29 +f 594/761/29 590/572/29 585/561/29 +f 588/564/30 592/570/30 591/565/30 +f 587/566/25 589/762/25 593/567/25 +f 593/567/25 596/763/25 588/564/25 +f 596/763/25 592/570/25 588/564/25 +f 585/561/28 590/572/28 589/568/28 +f 592/570/32 596/764/32 595/571/32 +f 590/572/31 594/765/31 593/573/31 +f 598/575/29 603/578/29 607/576/29 +f 607/576/29 606/766/29 597/574/29 +f 606/766/29 602/585/29 597/574/29 +f 600/577/30 604/583/30 603/578/30 +f 599/579/25 601/767/25 605/580/25 +f 605/580/25 608/768/25 600/577/25 +f 608/768/25 604/583/25 600/577/25 +f 597/574/28 602/585/28 601/581/28 +f 604/583/32 608/769/32 607/584/32 +f 602/585/31 606/770/31 605/586/31 +f 610/588/29 615/591/29 619/589/29 +f 619/589/29 618/771/29 609/587/29 +f 618/771/29 614/598/29 609/587/29 +f 612/590/30 616/596/30 615/591/30 +f 611/592/25 613/772/25 617/593/25 +f 617/593/25 620/773/25 612/590/25 +f 620/773/25 616/596/25 612/590/25 +f 609/587/28 614/598/28 613/594/28 +f 616/596/32 620/774/32 619/597/32 +f 614/598/31 618/775/31 617/599/31 +f 622/601/29 627/604/29 631/602/29 +f 631/602/29 630/776/29 621/600/29 +f 630/776/29 626/611/29 621/600/29 +f 624/603/30 628/609/30 627/604/30 +f 623/605/25 625/777/25 629/606/25 +f 629/606/25 632/778/25 624/603/25 +f 632/778/25 628/609/25 624/603/25 +f 621/600/28 626/611/28 625/607/28 +f 628/609/32 632/779/32 631/610/32 +f 626/611/31 630/780/31 629/612/31 +f 634/614/29 639/617/29 643/615/29 +f 643/615/29 642/781/29 633/613/29 +f 642/781/29 638/624/29 633/613/29 +f 636/616/30 640/622/30 639/617/30 +f 635/618/25 637/782/25 641/619/25 +f 641/619/25 644/783/25 636/616/25 +f 644/783/25 640/622/25 636/616/25 +f 633/613/28 638/624/28 637/620/28 +f 640/622/32 644/784/32 643/623/32 +f 638/624/31 642/785/31 641/625/31 +s 1 +f 141/247/35 152/305/36 140/245/36 +f 148/239/30 159/323/37 147/260/37 +f 145/255/26 156/319/38 144/253/38 +f 142/249/28 153/308/35 141/247/35 +f 149/238/39 160/325/30 148/239/30 +f 146/257/40 157/322/26 145/258/26 +f 143/251/41 154/311/28 142/249/28 +f 150/241/42 161/300/39 149/238/39 +f 140/245/36 151/301/27 139/243/27 +f 147/260/37 158/320/40 146/257/40 +f 144/253/38 155/314/41 143/251/41 +f 139/243/27 162/298/42 150/241/42 +f 169/256/26 194/657/40 170/645/40 +f 166/642/28 191/654/41 167/250/41 +f 173/240/39 198/266/42 174/637/42 +f 163/639/27 188/651/36 164/244/36 +f 170/259/40 195/658/37 171/646/37 +f 167/643/41 192/284/38 168/252/38 +f 174/242/42 187/269/27 163/638/27 +f 164/640/36 189/275/35 165/246/35 +f 171/261/37 196/296/30 172/647/30 +f 168/254/38 193/656/26 169/644/26 +f 165/641/35 190/278/28 166/248/28 +f 173/636/39 196/263/30 197/648/39 +f 184/264/30 209/786/39 185/262/39 +f 181/291/26 206/787/40 182/289/40 +f 179/280/41 202/788/28 203/789/41 +f 185/265/39 210/790/42 186/649/42 +f 176/271/36 199/791/27 200/792/36 +f 182/294/40 207/793/37 183/292/37 +f 179/283/41 204/794/38 180/655/38 +f 186/268/42 199/795/27 175/650/27 +f 177/652/35 200/796/36 201/797/35 +f 183/295/37 208/798/30 184/659/30 +f 180/288/38 205/799/26 181/286/26 +f 177/277/35 202/800/28 178/653/28 +f 217/662/26 228/352/38 216/318/38 +f 214/309/28 225/345/35 213/310/35 +f 221/666/39 232/330/30 220/327/30 +f 218/663/40 229/357/26 217/321/26 +f 214/313/28 227/673/41 226/346/28 +f 222/660/42 233/333/39 221/299/39 +f 212/303/36 223/337/27 211/304/27 +f 219/664/37 230/360/40 218/324/40 +f 216/315/38 227/351/41 215/316/41 +f 211/661/27 234/336/42 222/302/42 +f 213/306/35 224/342/36 212/307/36 +f 220/665/30 231/363/37 219/326/37 +f 244/678/30 255/801/37 243/362/37 +f 241/353/26 252/802/38 240/354/38 +f 238/672/28 249/803/35 237/344/35 +f 245/667/39 256/804/30 244/329/30 +f 242/676/40 253/805/26 241/356/26 +f 239/347/41 250/806/28 238/348/28 +f 246/668/42 257/807/39 245/332/39 +f 236/338/36 247/808/27 235/339/27 +f 243/677/37 254/809/40 242/359/40 +f 240/674/38 251/810/41 239/350/41 +f 235/669/27 258/811/42 246/335/42 +f 237/671/35 248/812/36 236/341/36 +f 470/813/43 354/814/44 362/815/45 +f 457/816/46 337/817/47 357/818/48 +f 361/819/49 356/820/26 470/821/43 +f 362/815/45 355/822/25 457/816/46 +f 359/823/50 352/824/29 360/825/51 +f 357/818/48 338/826/27 358/827/52 +f 462/828/53 361/829/49 470/830/43 +f 469/831/54 462/828/53 470/830/43 +f 463/832/55 470/833/43 362/834/45 +f 471/835/56 470/833/43 463/832/55 +f 460/836/57 358/827/52 359/823/50 +f 464/837/58 357/818/48 458/838/59 +f 464/837/58 362/834/45 457/839/46 +f 461/840/60 359/823/50 360/841/51 +f 459/842/32 357/818/48 358/827/52 +f 462/828/53 360/841/51 361/829/49 +f 468/843/61 462/828/53 469/831/54 +f 466/844/62 460/836/57 467/845/63 +f 367/846/29 374/847/54 366/848/64 +f 365/849/28 372/850/56 364/851/65 +f 370/852/66 377/853/62 369/854/30 +f 368/855/67 375/856/61 367/846/29 +f 366/848/64 373/857/43 365/858/28 +f 364/851/65 371/859/68 363/860/25 +f 363/860/25 378/861/69 370/852/66 +f 369/854/30 376/862/63 368/855/67 +f 378/861/69 384/863/32 377/853/62 +f 376/862/63 382/864/60 375/865/61 +f 371/866/68 380/867/55 379/868/58 +f 371/866/68 385/869/59 378/861/69 +f 377/853/62 383/870/57 376/862/63 +f 375/865/61 381/871/53 374/872/54 +f 382/864/60 388/873/49 381/871/53 +f 384/863/32 392/874/48 391/875/52 +f 383/870/57 389/876/51 382/864/60 +f 380/867/55 386/877/46 379/868/58 +f 379/868/58 392/874/48 385/869/59 +f 383/870/57 391/875/52 390/878/50 +f 372/879/56 373/880/43 380/867/55 +f 380/867/55 373/880/43 387/881/45 +f 374/872/54 381/871/53 373/882/43 +f 381/871/53 388/873/49 373/882/43 +f 392/874/48 399/883/27 391/875/52 +f 390/878/50 397/884/29 389/885/51 +f 387/886/45 394/887/25 386/888/46 +f 388/889/49 393/890/26 373/891/43 +f 386/888/46 400/892/47 392/874/48 +f 373/893/43 395/894/44 387/886/45 +f 391/875/52 398/895/70 390/878/50 +f 389/885/51 396/896/71 388/889/49 +f 433/897/41 422/898/38 421/899/41 +f 440/900/42 417/901/27 428/902/42 +f 430/903/36 419/904/35 418/905/36 +f 437/906/37 426/907/30 425/908/37 +f 434/909/38 423/910/26 422/898/38 +f 431/911/35 420/912/28 419/904/35 +f 438/913/30 427/914/39 426/907/30 +f 435/915/26 424/916/40 423/917/26 +f 432/918/28 421/899/41 420/912/28 +f 439/919/39 428/902/42 427/914/39 +f 429/920/27 418/905/36 417/901/27 +f 436/921/40 425/908/37 424/916/40 +f 472/922/68 458/838/59 465/923/69 +f 472/922/68 463/832/55 464/837/58 +f 467/845/63 461/840/60 468/843/61 +f 466/844/62 458/838/59 459/842/32 +f 474/924/30 467/845/63 475/925/67 +f 480/926/25 465/923/69 473/927/66 +f 479/928/65 472/929/68 480/926/25 +f 477/930/64 470/931/43 478/932/28 +f 475/925/67 468/933/61 476/934/29 +f 473/927/66 466/844/62 474/924/30 +f 478/935/28 471/936/56 479/928/65 +f 476/934/29 469/937/54 477/930/64 +f 492/938/43 499/939/28 491/940/28 +f 490/941/31 497/942/27 489/943/27 +f 489/943/27 504/944/32 496/945/32 +f 495/946/30 502/947/72 494/948/72 +f 493/949/26 500/950/43 492/938/43 +f 491/940/28 498/951/31 490/941/31 +f 496/945/32 503/952/30 495/946/30 +f 494/948/72 501/953/26 493/954/26 +f 564/955/43 579/553/28 563/956/28 +f 538/957/28 570/547/43 537/958/43 +f 565/959/26 580/759/43 564/955/43 +f 539/960/31 571/548/28 538/957/28 +f 566/961/72 581/558/26 565/962/26 +f 540/963/27 572/559/31 539/960/31 +f 567/964/30 582/760/72 566/961/72 +f 541/965/32 573/557/27 540/966/27 +f 568/967/32 583/546/30 567/964/30 +f 542/968/30 574/555/32 541/965/32 +f 561/969/27 584/549/32 568/967/32 +f 562/970/31 578/551/27 561/969/27 +f 543/971/72 575/554/30 542/968/30 +f 563/956/28 577/758/31 562/970/31 +f 544/972/26 576/552/72 543/971/72 +f 537/958/43 569/550/26 544/972/26 +f 358/827/52 351/973/70 359/823/50 +f 360/825/51 353/974/71 361/819/49 +f 323/975/73 329/976/26 331/977/71 +f 675/978/74 336/979/70 328/980/75 +f 324/981/76 329/982/26 688/983/72 +f 323/975/73 330/984/29 675/978/74 +f 326/985/77 333/986/25 325/987/78 +f 328/980/75 335/988/27 327/989/79 +f 680/990/80 324/991/76 688/992/72 +f 687/993/81 680/990/80 688/992/72 +f 681/994/82 688/995/72 323/996/73 +f 689/997/83 688/995/72 681/994/82 +f 677/998/31 326/985/77 678/999/84 +f 682/1000/85 328/980/75 676/1001/86 +f 682/1000/85 323/996/73 675/1002/74 +f 679/1003/87 326/985/77 325/1004/78 +f 677/998/31 328/980/75 327/989/79 +f 679/1003/87 324/991/76 680/990/80 +f 686/1005/88 680/990/80 687/993/81 +f 684/1006/89 678/999/84 685/1007/90 +f 318/1008/25 648/1009/81 319/1010/66 +f 320/1011/30 646/1012/83 321/1013/67 +f 315/1014/64 651/1015/89 316/1016/28 +f 317/1017/65 649/1018/88 318/1008/25 +f 319/1010/66 647/1019/72 320/1020/30 +f 321/1013/67 645/1021/91 322/1022/29 +f 322/1022/29 652/1023/92 315/1014/64 +f 316/1016/28 650/1024/90 317/1017/65 +f 651/1015/89 659/1025/86 658/1026/31 +f 650/1024/90 656/1027/87 649/1028/88 +f 645/1029/91 654/1030/82 653/1031/85 +f 652/1023/92 653/1031/85 659/1025/86 +f 650/1024/90 658/1026/31 657/1032/84 +f 649/1028/88 655/1033/80 648/1034/81 +f 655/1033/80 663/1035/78 662/1036/76 +f 658/1026/31 666/1037/75 665/1038/79 +f 656/1027/87 664/1039/77 663/1035/78 +f 654/1030/82 660/1040/74 653/1031/85 +f 659/1025/86 660/1040/74 666/1037/75 +f 658/1026/31 664/1039/77 657/1032/84 +f 646/1041/83 647/1042/72 654/1030/82 +f 654/1030/82 647/1042/72 661/1043/73 +f 648/1034/81 655/1033/80 647/1044/72 +f 655/1033/80 662/1036/76 647/1044/72 +f 666/1037/75 673/1045/27 665/1038/79 +f 664/1039/77 671/1046/25 663/1047/78 +f 661/1048/73 668/1049/29 660/1050/74 +f 662/1051/76 667/1052/26 647/1053/72 +f 660/1050/74 674/1054/70 666/1037/75 +f 647/1055/72 669/1056/71 661/1048/73 +f 665/1038/79 672/1057/47 664/1039/77 +f 663/1047/78 670/1058/44 662/1051/76 +f 690/1059/91 676/1001/86 683/1060/92 +f 690/1059/91 681/994/82 682/1000/85 +f 685/1007/90 679/1003/87 686/1005/88 +f 684/1006/89 676/1001/86 677/998/31 +f 692/1061/28 685/1007/90 693/1062/65 +f 698/1063/29 683/1060/92 691/1064/64 +f 697/1065/67 690/1066/91 698/1063/29 +f 695/1067/66 688/1068/72 696/1069/30 +f 693/1062/65 686/1070/88 694/1071/25 +f 691/1064/64 684/1006/89 692/1061/28 +f 696/1072/30 689/1073/83 697/1065/67 +f 694/1071/25 687/1074/81 695/1067/66 +f 326/985/77 335/988/27 334/1075/47 +f 324/981/76 333/986/25 332/1076/44 +f 141/247/35 153/308/35 152/305/36 +f 148/239/30 160/325/30 159/323/37 +f 145/255/26 157/317/26 156/319/38 +f 142/249/28 154/311/28 153/308/35 +f 149/238/39 161/300/39 160/325/30 +f 146/257/40 158/320/40 157/322/26 +f 143/251/41 155/314/41 154/311/28 +f 150/241/42 162/298/42 161/300/39 +f 140/245/36 152/305/36 151/301/27 +f 147/260/37 159/323/37 158/320/40 +f 144/253/38 156/319/38 155/314/41 +f 139/243/27 151/301/27 162/298/42 +f 169/256/26 193/290/26 194/657/40 +f 166/642/28 190/281/28 191/654/41 +f 173/240/39 197/267/39 198/266/42 +f 163/639/27 187/272/27 188/651/36 +f 170/259/40 194/293/40 195/658/37 +f 167/643/41 191/285/41 192/284/38 +f 174/242/42 198/270/42 187/269/27 +f 164/640/36 188/276/36 189/275/35 +f 171/261/37 195/297/37 196/296/30 +f 168/254/38 192/287/38 193/656/26 +f 165/641/35 189/279/35 190/278/28 +f 173/636/39 172/237/30 196/263/30 +f 184/264/30 208/1077/30 209/786/39 +f 181/291/26 205/1078/26 206/787/40 +f 179/280/41 178/282/28 202/788/28 +f 185/265/39 209/1079/39 210/790/42 +f 176/271/36 175/273/27 199/791/27 +f 182/294/40 206/1080/40 207/793/37 +f 179/283/41 203/1081/41 204/794/38 +f 186/268/42 210/1082/42 199/795/27 +f 177/652/35 176/274/36 200/796/36 +f 183/295/37 207/1083/37 208/798/30 +f 180/288/38 204/1084/38 205/799/26 +f 177/277/35 201/1085/35 202/800/28 +f 217/662/26 229/675/26 228/352/38 +f 214/309/28 226/343/28 225/345/35 +f 221/666/39 233/328/39 232/330/30 +f 218/663/40 230/355/40 229/357/26 +f 214/313/28 215/312/41 227/673/41 +f 222/660/42 234/331/42 233/333/39 +f 212/303/36 224/670/36 223/337/27 +f 219/664/37 231/358/37 230/360/40 +f 216/315/38 228/349/38 227/351/41 +f 211/661/27 223/334/27 234/336/42 +f 213/306/35 225/340/35 224/342/36 +f 220/665/30 232/361/30 231/363/37 +f 244/678/30 256/1086/30 255/801/37 +f 241/353/26 253/1087/26 252/802/38 +f 238/672/28 250/1088/28 249/803/35 +f 245/667/39 257/1089/39 256/804/30 +f 242/676/40 254/1090/40 253/805/26 +f 239/347/41 251/1091/41 250/806/28 +f 246/668/42 258/1092/42 257/807/39 +f 236/338/36 248/1093/36 247/808/27 +f 243/677/37 255/1094/37 254/809/40 +f 240/674/38 252/1095/38 251/810/41 +f 235/669/27 247/1096/27 258/811/42 +f 237/671/35 249/1097/35 248/812/36 +f 470/813/43 356/1098/26 354/814/44 +f 457/816/46 355/822/25 337/817/47 +f 361/819/49 353/974/71 356/820/26 +f 362/815/45 354/814/44 355/822/25 +f 359/823/50 351/973/70 352/824/29 +f 357/818/48 337/817/47 338/826/27 +f 460/836/57 459/842/32 358/827/52 +f 464/837/58 457/839/46 357/818/48 +f 464/837/58 463/832/55 362/834/45 +f 461/840/60 460/836/57 359/823/50 +f 459/842/32 458/838/59 357/818/48 +f 462/828/53 461/840/60 360/841/51 +f 468/843/61 461/840/60 462/828/53 +f 466/844/62 459/842/32 460/836/57 +f 367/846/29 375/856/61 374/847/54 +f 365/849/28 373/1099/43 372/850/56 +f 370/852/66 378/861/69 377/853/62 +f 368/855/67 376/862/63 375/856/61 +f 366/848/64 374/847/54 373/857/43 +f 364/851/65 372/850/56 371/859/68 +f 363/860/25 371/859/68 378/861/69 +f 369/854/30 377/853/62 376/862/63 +f 378/861/69 385/869/59 384/863/32 +f 376/862/63 383/870/57 382/864/60 +f 371/866/68 372/879/56 380/867/55 +f 371/866/68 379/868/58 385/869/59 +f 377/853/62 384/863/32 383/870/57 +f 375/865/61 382/864/60 381/871/53 +f 382/864/60 389/876/51 388/873/49 +f 384/863/32 385/869/59 392/874/48 +f 383/870/57 390/878/50 389/876/51 +f 380/867/55 387/881/45 386/877/46 +f 379/868/58 386/877/46 392/874/48 +f 383/870/57 384/863/32 391/875/52 +f 392/874/48 400/892/47 399/883/27 +f 390/878/50 398/895/70 397/884/29 +f 387/886/45 395/894/44 394/887/25 +f 388/889/49 396/896/71 393/890/26 +f 386/888/46 394/887/25 400/892/47 +f 373/893/43 393/1100/26 395/894/44 +f 391/875/52 399/883/27 398/895/70 +f 389/885/51 397/884/29 396/896/71 +f 433/897/41 434/909/38 422/898/38 +f 440/900/42 429/920/27 417/901/27 +f 430/903/36 431/911/35 419/904/35 +f 437/906/37 438/913/30 426/907/30 +f 434/909/38 435/1101/26 423/910/26 +f 431/911/35 432/918/28 420/912/28 +f 438/913/30 439/919/39 427/914/39 +f 435/915/26 436/921/40 424/916/40 +f 432/918/28 433/897/41 421/899/41 +f 439/919/39 440/900/42 428/902/42 +f 429/920/27 430/903/36 418/905/36 +f 436/921/40 437/906/37 425/908/37 +f 472/922/68 464/837/58 458/838/59 +f 472/922/68 471/835/56 463/832/55 +f 467/845/63 460/836/57 461/840/60 +f 466/844/62 465/923/69 458/838/59 +f 474/924/30 466/844/62 467/845/63 +f 480/926/25 472/929/68 465/923/69 +f 479/928/65 471/936/56 472/929/68 +f 477/930/64 469/937/54 470/931/43 +f 475/925/67 467/845/63 468/933/61 +f 473/927/66 465/923/69 466/844/62 +f 478/935/28 470/1102/43 471/936/56 +f 476/934/29 468/933/61 469/937/54 +f 492/938/43 500/950/43 499/939/28 +f 490/941/31 498/951/31 497/942/27 +f 489/943/27 497/942/27 504/944/32 +f 495/946/30 503/952/30 502/947/72 +f 493/949/26 501/1103/26 500/950/43 +f 491/940/28 499/939/28 498/951/31 +f 496/945/32 504/944/32 503/952/30 +f 494/948/72 502/947/72 501/953/26 +f 564/955/43 580/759/43 579/553/28 +f 538/957/28 571/548/28 570/547/43 +f 565/959/26 581/556/26 580/759/43 +f 539/960/31 572/559/31 571/548/28 +f 566/961/72 582/760/72 581/558/26 +f 540/963/27 573/560/27 572/559/31 +f 567/964/30 583/546/30 582/760/72 +f 541/965/32 574/555/32 573/557/27 +f 568/967/32 584/549/32 583/546/30 +f 542/968/30 575/554/30 574/555/32 +f 561/969/27 578/551/27 584/549/32 +f 562/970/31 577/758/31 578/551/27 +f 543/971/72 576/552/72 575/554/30 +f 563/956/28 579/553/28 577/758/31 +f 544/972/26 569/550/26 576/552/72 +f 537/958/43 570/547/43 569/550/26 +f 358/827/52 338/826/27 351/973/70 +f 360/825/51 352/824/29 353/974/71 +f 323/975/73 688/1104/72 329/976/26 +f 675/978/74 330/984/29 336/979/70 +f 324/981/76 332/1076/44 329/982/26 +f 323/975/73 331/977/71 330/984/29 +f 326/985/77 334/1075/47 333/986/25 +f 328/980/75 336/979/70 335/988/27 +f 677/998/31 327/989/79 326/985/77 +f 682/1000/85 675/1002/74 328/980/75 +f 682/1000/85 681/994/82 323/996/73 +f 679/1003/87 678/999/84 326/985/77 +f 677/998/31 676/1001/86 328/980/75 +f 679/1003/87 325/1004/78 324/991/76 +f 686/1005/88 679/1003/87 680/990/80 +f 684/1006/89 677/998/31 678/999/84 +f 318/1008/25 649/1018/88 648/1009/81 +f 320/1011/30 647/1105/72 646/1012/83 +f 315/1014/64 652/1023/92 651/1015/89 +f 317/1017/65 650/1024/90 649/1018/88 +f 319/1010/66 648/1009/81 647/1019/72 +f 321/1013/67 646/1012/83 645/1021/91 +f 322/1022/29 645/1021/91 652/1023/92 +f 316/1016/28 651/1015/89 650/1024/90 +f 651/1015/89 652/1023/92 659/1025/86 +f 650/1024/90 657/1032/84 656/1027/87 +f 645/1029/91 646/1041/83 654/1030/82 +f 652/1023/92 645/1029/91 653/1031/85 +f 650/1024/90 651/1015/89 658/1026/31 +f 649/1028/88 656/1027/87 655/1033/80 +f 655/1033/80 656/1027/87 663/1035/78 +f 658/1026/31 659/1025/86 666/1037/75 +f 656/1027/87 657/1032/84 664/1039/77 +f 654/1030/82 661/1043/73 660/1040/74 +f 659/1025/86 653/1031/85 660/1040/74 +f 658/1026/31 665/1038/79 664/1039/77 +f 666/1037/75 674/1054/70 673/1045/27 +f 664/1039/77 672/1057/47 671/1046/25 +f 661/1048/73 669/1056/71 668/1049/29 +f 662/1051/76 670/1058/44 667/1052/26 +f 660/1050/74 668/1049/29 674/1054/70 +f 647/1055/72 667/1106/26 669/1056/71 +f 665/1038/79 673/1045/27 672/1057/47 +f 663/1047/78 671/1046/25 670/1058/44 +f 690/1059/91 682/1000/85 676/1001/86 +f 690/1059/91 689/997/83 681/994/82 +f 685/1007/90 678/999/84 679/1003/87 +f 684/1006/89 683/1060/92 676/1001/86 +f 692/1061/28 684/1006/89 685/1007/90 +f 698/1063/29 690/1066/91 683/1060/92 +f 697/1065/67 689/1073/83 690/1066/91 +f 695/1067/66 687/1074/81 688/1068/72 +f 693/1062/65 685/1007/90 686/1070/88 +f 691/1064/64 683/1060/92 684/1006/89 +f 696/1072/30 688/1107/72 689/1073/83 +f 694/1071/25 686/1070/88 687/1074/81 +f 326/985/77 327/989/79 335/988/27 +f 324/981/76 325/987/78 333/986/25 diff --git a/src/main/resources/assets/hbm/models/weapons/star_f.obj b/src/main/resources/assets/hbm/models/weapons/star_f.obj new file mode 100644 index 000000000..cb14dd867 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/star_f.obj @@ -0,0 +1,2117 @@ +# Blender v3.2.0 OBJ File: 'star-f-small.blend' +# www.blender.org +o Gun +v -0.500000 2.625000 6.125000 +v -0.500000 3.250000 6.125000 +v -0.500000 2.625000 -1.125000 +v -0.500000 3.250000 -1.125000 +v -0.250000 3.500000 6.125000 +v -0.250000 3.500000 -1.125000 +v -0.250000 3.625000 6.125000 +v -0.250000 3.625000 -1.125000 +v 0.500000 2.625000 6.125000 +v 0.500000 2.625000 -1.125000 +v 0.500000 3.250000 6.125000 +v 0.500000 3.250000 -1.125000 +v 0.250000 3.500000 6.125000 +v 0.250000 3.500000 -1.125000 +v 0.250000 3.625000 6.125000 +v 0.250000 3.625000 -1.125000 +v 0.000000 3.312500 6.125000 +v 0.176777 3.239277 6.125000 +v 0.250000 3.062500 6.125000 +v 0.176777 2.885723 6.125000 +v -0.000000 2.812500 6.125000 +v -0.176777 2.885723 6.125000 +v -0.250000 3.062500 6.125000 +v -0.176777 3.239277 6.125000 +v -0.250000 2.500000 -4.687500 +v -0.437500 2.500000 -4.625000 +v -0.437500 2.875000 -4.562500 +v -0.250000 2.875000 -4.625000 +v -0.250000 2.125000 -4.875000 +v -0.437500 2.125000 -4.812500 +v 0.250000 2.500000 -4.687500 +v 0.437500 2.500000 -4.625000 +v 0.437500 2.875000 -4.562500 +v 0.250000 2.875000 -4.625000 +v 0.250000 2.125000 -4.875000 +v 0.437500 2.125000 -4.812500 +v -0.437500 1.750000 1.250000 +v -0.437500 1.750000 -0.500000 +v -0.437500 1.875000 1.750000 +v -0.437500 1.875000 3.125000 +v -0.437500 2.125000 3.250000 +v -0.437500 -0.625000 -2.125000 +v -0.437500 -3.000000 -2.500000 +v -0.437500 0.125000 -1.250000 +v -0.437500 0.375000 -1.250000 +v -0.437500 1.500000 -1.125000 +v -0.437500 1.000000 -1.375000 +v -0.437500 0.625000 -1.375000 +v -0.437500 -0.250000 -1.875000 +v -0.437500 -3.750000 -2.375000 +v -0.437500 -3.750000 -5.375000 +v -0.437500 -3.500000 -5.625000 +v -0.437500 0.250000 -4.625000 +v -0.437500 0.750000 -4.625000 +v -0.437500 1.125000 -5.000000 +v -0.437500 1.250000 -5.750000 +v -0.187500 1.125000 -5.937500 +v -0.187500 1.250000 -6.000000 +v -0.437500 1.500000 -5.750000 +v -0.437500 1.875000 -5.250000 +v -0.250000 1.875000 -5.250000 +v 0.250000 1.875000 -5.250000 +v -0.312500 1.250000 1.000000 +v -0.312500 1.750000 1.250000 +v -0.312500 1.250000 0.875000 +v -0.312500 0.750000 0.875000 +v -0.312500 0.750000 1.000000 +v -0.312500 0.312500 0.625000 +v -0.312500 0.125000 0.000000 +v -0.312500 0.250000 0.750000 +v -0.312500 0.000000 0.000000 +v -0.312500 0.000000 -1.000000 +v -0.312500 -0.250000 -1.875000 +v -0.312500 0.125000 -0.750000 +v -0.312500 0.625000 -1.375000 +v -0.312500 1.750000 0.250000 +v 0.437500 1.750000 1.250000 +v 0.437500 1.750000 -0.500000 +v 0.437500 1.875000 1.750000 +v 0.437500 1.875000 3.125000 +v 0.437500 2.125000 3.250000 +v 0.437500 -0.625000 -2.125000 +v 0.437500 -3.000000 -2.500000 +v 0.437500 0.125000 -1.250000 +v 0.437500 0.375000 -1.250000 +v 0.437500 1.500000 -1.125000 +v 0.437500 1.000000 -1.375000 +v 0.437500 0.625000 -1.375000 +v 0.437500 -0.250000 -1.875000 +v 0.437500 -3.750000 -2.375000 +v 0.437500 -3.750000 -5.375000 +v 0.437500 -3.500000 -5.625000 +v 0.437500 0.250000 -4.625000 +v 0.437500 0.750000 -4.625000 +v 0.437500 1.125000 -5.000000 +v 0.437500 1.250000 -5.750000 +v 0.187500 1.125000 -5.937500 +v 0.187500 1.250000 -6.000000 +v 0.437500 1.500000 -5.750000 +v 0.437500 1.875000 -5.250000 +v 0.312500 1.250000 1.000000 +v 0.312500 1.750000 1.250000 +v 0.312500 1.250000 0.875000 +v 0.312500 0.750000 0.875000 +v 0.312500 0.750000 1.000000 +v 0.312500 0.312500 0.625000 +v 0.312500 0.125000 0.000000 +v 0.312500 0.250000 0.750000 +v 0.312500 0.000000 0.000000 +v 0.312500 0.000000 -1.000000 +v 0.312500 -0.250000 -1.875000 +v 0.312500 0.125000 -0.750000 +v 0.312500 0.625000 -1.375000 +v 0.312500 1.750000 0.250000 +v -0.187500 -3.750000 -2.125000 +v 0.187500 -3.750000 -2.125000 +v -0.125000 0.125000 -0.250000 +v -0.125000 0.625000 -0.625000 +v -0.125000 1.125000 -0.625000 +v -0.125000 1.750000 -0.125000 +v -0.125000 0.125000 -1.375000 +v -0.125000 1.750000 -1.375000 +v 0.125000 0.125000 -0.250000 +v 0.125000 0.625000 -0.625000 +v 0.125000 1.125000 -0.625000 +v 0.125000 1.750000 -0.125000 +v 0.125000 0.125000 -1.375000 +v 0.125000 1.750000 -1.375000 +v 0.000000 3.312500 -1.125000 +v 0.176777 3.239277 -1.125000 +v 0.250000 3.062500 -1.125000 +v 0.176777 2.885723 -1.125000 +v -0.000000 2.812500 -1.125000 +v -0.176777 2.885723 -1.125000 +v -0.250000 3.062500 -1.125000 +v -0.176777 3.239277 -1.125000 +v -0.500000 2.625000 -3.437500 +v 0.500000 2.625000 -3.437500 +v -0.437500 2.125000 1.437500 +v 0.437500 2.125000 1.437500 +v -0.250000 2.875000 -4.000000 +v 0.250000 2.875000 -4.000000 +v -0.250000 2.125000 -4.000000 +v 0.250000 2.125000 -4.000000 +v -0.312500 -3.500000 -5.625000 +v -0.312500 -3.000000 -5.750000 +v -0.312500 -2.500000 -5.750000 +v -0.312500 0.250000 -4.625000 +v 0.312500 -3.500000 -5.625000 +v 0.312500 -3.000000 -5.750000 +v 0.312500 -2.500000 -5.750000 +v 0.312500 0.250000 -4.625000 +v -0.437500 -3.625000 -2.500000 +v -0.437500 -2.875000 -2.625000 +v -0.437500 0.250000 -2.125000 +v -0.437500 1.875000 -1.500000 +v -0.437500 1.875000 -4.750000 +v -0.437500 0.625000 -4.500000 +v -0.437500 0.250000 -4.500000 +v -0.437500 -3.625000 -5.375000 +v -0.812500 1.625000 -4.000000 +v -0.812500 1.625000 -2.250000 +v -0.812500 0.625000 -4.000000 +v -0.812500 0.250000 -4.000000 +v -0.812500 0.250000 -2.625000 +v -0.812500 -3.500000 -3.250000 +v -0.812500 -2.875000 -3.250000 +v -0.812500 -3.500000 -4.625000 +v 0.437500 -3.625000 -2.500000 +v 0.437500 -2.875000 -2.625000 +v 0.437500 0.250000 -4.500000 +v 0.437500 -3.625000 -5.375000 +v 0.437500 0.250000 -2.125000 +v 0.437500 1.875000 -1.500000 +v 0.437500 1.875000 -4.000000 +v 0.437500 1.250000 -4.000000 +v 0.437500 1.250000 -4.250000 +v 0.437500 0.750000 -4.500000 +v 0.812500 -3.500000 -3.250000 +v 0.812500 -3.500000 -4.625000 +v 0.812500 -2.875000 -3.250000 +v 0.812500 0.250000 -2.625000 +v 0.812500 1.625000 -3.750000 +v 0.812500 1.000000 -3.750000 +v 0.812500 1.000000 -4.250000 +v 0.812500 1.625000 -2.125000 +v 0.812500 0.250000 -4.250000 +v 0.437500 1.250000 -4.000000 +v 0.437500 1.750000 -4.000000 +v 0.437500 1.250000 -4.250000 +v 0.437500 0.875000 -4.500000 +v 0.437500 1.750000 -5.000000 +v 0.437500 1.375000 -5.000000 +v 0.437500 1.695083 -5.132583 +v 0.437500 1.562500 -5.187500 +v 0.437500 1.429917 -5.132583 +v 0.437500 0.875000 -4.625000 +v 0.437500 1.125000 -4.750000 +v 0.562500 1.250000 -4.000000 +v 0.562500 1.750000 -4.000000 +v 0.562500 1.250000 -4.250000 +v 0.562500 0.875000 -4.500000 +v 0.562500 1.750000 -5.000000 +v 0.562500 1.375000 -5.000000 +v 0.562500 1.695083 -5.132583 +v 0.562500 1.562500 -5.187500 +v 0.562500 1.429917 -5.132583 +v 0.562500 0.875000 -4.625000 +v 0.562500 1.125000 -4.750000 +v 0.937500 1.625000 -4.125000 +v 0.937500 1.500000 -4.125000 +v 0.937500 1.625000 -4.500000 +v 0.937500 1.500000 -4.500000 +v 0.812500 1.625000 -4.625000 +v 0.812500 1.500000 -4.625000 +v 0.812500 1.625000 -4.000000 +v 0.562500 1.750000 -4.750000 +v 0.562500 1.250000 -4.750000 +v 0.812500 1.500000 -4.000000 +v 0.437500 0.250000 -1.500000 +v 0.437500 0.426777 -1.573223 +v 0.437500 0.500000 -1.750000 +v 0.437500 0.426777 -1.926777 +v 0.437500 0.250000 -2.000000 +v 0.437500 0.073223 -1.926777 +v 0.437500 0.000000 -1.750000 +v 0.437500 0.073223 -1.573223 +v 0.562500 0.250000 -1.500000 +v 0.562500 0.426777 -1.573223 +v 0.562500 0.500000 -1.750000 +v 0.562500 0.426777 -1.926777 +v 0.562500 0.250000 -2.000000 +v 0.562500 0.073223 -1.926777 +v 0.562500 0.000000 -1.750000 +v 0.562500 0.073223 -1.573223 +v -0.187500 3.625000 5.812500 +v -0.187500 3.625000 5.062500 +v 0.187500 3.625000 5.812500 +v 0.187500 3.625000 5.062500 +v -0.062500 3.687500 5.687500 +v -0.062500 3.687500 5.062500 +v 0.062500 3.687500 5.687500 +v 0.062500 3.687500 5.062500 +v -0.062500 3.812500 5.437500 +v -0.062500 3.812500 5.187500 +v 0.062500 3.812500 5.437500 +v 0.062500 3.812500 5.187500 +v 0.250000 2.375000 -3.437500 +v -0.250000 2.375000 -3.437500 +v 0.250000 2.375000 -1.812500 +v -0.250000 2.375000 -1.812500 +vt 0.215278 0.826389 +vt 0.618056 0.861111 +vt 0.215278 0.861111 +vt 0.618056 0.812500 +vt 0.618056 0.826389 +vt 0.215278 0.812500 +vt 0.618056 0.805556 +vt 0.618056 0.916667 +vt 0.618056 0.951389 +vt 0.215278 0.916667 +vt 0.618056 0.965278 +vt 0.215278 0.951389 +vt 0.618056 0.972222 +vt 0.215278 0.965278 +vt 0.215278 0.972222 +vt 0.618056 1.000000 +vt 0.215278 1.000000 +vt 0.173611 0.965278 +vt 0.201389 0.972222 +vt 0.173611 0.972222 +vt 0.187500 0.954861 +vt 0.201389 0.965278 +vt 0.159722 0.916667 +vt 0.187500 0.927083 +vt 0.197321 0.950793 +vt 0.177679 0.950793 +vt 0.159722 0.951389 +vt 0.173611 0.940972 +vt 0.201389 0.940972 +vt 0.197321 0.931151 +vt 0.177679 0.931151 +vt 0.673611 0.888889 +vt 0.701389 0.909722 +vt 0.701389 0.902778 +vt 0.729167 0.902778 +vt 0.756944 0.902778 +vt 0.729167 0.909722 +vt 0.756944 0.909722 +vt 0.798611 0.902778 +vt 0.763889 0.909722 +vt 0.798611 0.909722 +vt 0.840278 0.909722 +vt 0.854167 0.902778 +vt 0.875000 0.937500 +vt 0.902778 0.888889 +vt 0.701389 0.909722 +vt 0.673611 0.888889 +vt 0.701389 0.902778 +vt 0.729167 0.902778 +vt 0.729167 0.909722 +vt 0.756944 0.902778 +vt 0.756944 0.909722 +vt 0.763889 0.909722 +vt 0.798611 0.902778 +vt 0.798611 0.909722 +vt 0.840278 0.909722 +vt 0.875000 0.937500 +vt 0.854167 0.902778 +vt 0.902778 0.888889 +vt 0.833333 0.909722 +vt 0.812500 0.937500 +vt 0.770833 0.909722 +vt 0.361111 0.375000 +vt 0.347222 0.326389 +vt 0.361111 0.326389 +vt 0.541667 0.694444 +vt 0.500000 0.715278 +vt 0.500000 0.701389 +vt 0.430556 0.423611 +vt 0.263889 0.375000 +vt 0.430556 0.375000 +vt 0.250000 0.409722 +vt 0.263889 0.423611 +vt 0.680556 0.465278 +vt 0.520833 0.423611 +vt 0.687500 0.423611 +vt 0.562500 0.645833 +vt 0.701389 0.597222 +vt 0.552083 0.750000 +vt 0.527778 0.736111 +vt 0.715278 0.618056 +vt 0.750000 0.652778 +vt 0.750000 0.638889 +vt 0.743056 0.666667 +vt 0.562500 0.673611 +vt 0.743056 0.687500 +vt 0.756944 0.715278 +vt 0.791667 0.729167 +vt 0.993056 0.736111 +vt 1.000000 0.750000 +vt 0.916667 0.736111 +vt 0.840278 1.000000 +vt 0.770833 1.000000 +vt 0.812500 0.965278 +vt 0.708333 0.909722 +vt 0.770833 0.909722 +vt 0.729167 0.937500 +vt 0.701389 1.000000 +vt 0.729167 0.965278 +vt 0.770833 1.000000 +vt 0.006944 0.736111 +vt 0.083333 0.736111 +vt 0.000000 0.750000 +vt 0.447917 0.750000 +vt 0.458333 0.694444 +vt 0.500000 0.715278 +vt 0.472222 0.736111 +vt 0.437500 0.673611 +vt 0.319444 0.465278 +vt 0.479167 0.423611 +vt 0.493056 0.437500 +vt 0.437500 0.645833 +vt 0.298611 0.597222 +vt 0.284722 0.618056 +vt 0.250000 0.652778 +vt 0.250000 0.638889 +vt 0.256944 0.666667 +vt 0.256944 0.687500 +vt 0.243056 0.715278 +vt 0.208333 0.729167 +vt 0.111111 0.729167 +vt 0.659722 0.972222 +vt 0.631944 0.965278 +vt 0.659722 0.965278 +vt 0.645833 0.954861 +vt 0.655654 0.950793 +vt 0.673611 0.951389 +vt 0.659722 0.940972 +vt 0.673611 0.916667 +vt 0.655654 0.931151 +vt 0.645833 0.927083 +vt 0.636012 0.931151 +vt 0.631944 0.940972 +vt 0.636012 0.950793 +vt 0.250000 0.375000 +vt 0.347222 0.375000 +vt 0.819444 0.861111 +vt 0.791667 0.819444 +vt 0.819444 0.819444 +vt 0.819444 0.750000 +vt 0.791667 0.750000 +vt 0.722222 0.805556 +vt 0.743056 0.819444 +vt 0.888889 0.805556 +vt 0.868056 0.819444 +vt 0.857639 0.840278 +vt 0.753472 0.840278 +vt 0.756944 0.861111 +vt 0.791667 0.861111 +vt 0.854167 0.861111 +vt 0.090278 0.791667 +vt 0.097222 0.847222 +vt 0.034722 1.000000 +vt 0.104167 0.791667 +vt 0.097222 0.847222 +vt 0.097222 0.819444 +vt 0.854167 0.944444 +vt 0.840278 0.937500 +vt 0.854167 0.937500 +vt 0.895833 1.000000 +vt 0.881944 0.993056 +vt 0.895833 0.993056 +vt 0.840278 1.000000 +vt 0.840278 0.944444 +vt 0.812500 0.937500 +vt 0.812500 0.944444 +vt 0.826389 0.958333 +vt 0.819444 0.958333 +vt 0.930977 0.990005 +vt 0.923611 0.993056 +vt 0.923611 0.972222 +vt 0.895833 0.944444 +vt 0.909722 0.958333 +vt 0.881944 0.965278 +vt 0.909722 0.965278 +vt 0.909722 0.993056 +vt 0.840278 0.895833 +vt 0.826389 0.881944 +vt 0.840278 0.868056 +vt 0.604167 0.791667 +vt 0.611111 0.777778 +vt 0.611111 0.798611 +vt 0.673611 0.784722 +vt 0.659722 0.875000 +vt 0.659722 0.784722 +vt 0.618056 0.784722 +vt 0.631944 0.875000 +vt 0.618056 0.913194 +vt 0.618056 0.770833 +vt 0.631944 0.784722 +vt 0.215278 0.805556 +vt 0.673611 0.944444 +vt 0.673611 0.944444 +vt 0.250000 0.388889 +vt 0.506944 0.437500 +vt 0.888889 0.729167 +vt 0.500000 0.701389 +vt 0.312500 0.423611 +vt 0.631944 0.972222 +vt 0.250000 0.326389 +vt 0.097222 0.819444 +vt 0.159722 1.000000 +vt 0.840278 0.993056 +vt 0.930977 0.975273 +vt 0.934028 0.982639 +vt 0.902778 0.944444 +vt 0.830457 0.891765 +vt 0.830457 0.872123 +vt 0.850099 0.872123 +vt 0.854167 0.881944 +vt 0.850099 0.891765 +vt 0.604167 0.784722 +vt 0.673611 0.913194 +vt 0.673611 0.770833 +vt 0.722222 0.840278 +vt 0.711806 0.861111 +vt 0.711806 0.840278 +vt 0.722222 0.819444 +vt 0.673611 0.840278 +vt 0.684028 0.861111 +vt 0.673611 0.861111 +vt 0.673611 0.819444 +vt 0.684028 0.840278 +vt 0.666667 0.770833 +vt 0.666667 0.756944 +vt 0.680556 0.756944 +vt 0.722222 0.798611 +vt 0.711806 0.798611 +vt 0.711806 0.819444 +vt 0.680556 0.750000 +vt 0.684028 0.819444 +vt 0.684028 0.798611 +vt 0.673611 0.798611 +vt 0.673611 0.770833 +vt 0.722222 0.770833 +vt 0.708333 0.756944 +vt 0.687500 0.750000 +vt 0.708333 0.750000 +vt 0.687500 0.756944 +vt 0.965278 0.951389 +vt 1.000000 0.979167 +vt 0.965278 0.979167 +vt 0.965278 0.951389 +vt 0.930556 0.916667 +vt 0.965278 0.916667 +vt 0.965278 0.854167 +vt 1.000000 0.895833 +vt 0.965278 0.895833 +vt 0.930556 0.888889 +vt 0.965278 0.888889 +vt 0.965278 0.923611 +vt 1.000000 0.951389 +vt 0.965278 0.798611 +vt 1.000000 0.854167 +vt 0.930556 0.861111 +vt 0.965278 0.861111 +vt 0.965278 0.750000 +vt 1.000000 0.798611 +vt 0.930556 0.826389 +vt 0.965278 0.826389 +vt 0.930556 0.784722 +vt 0.965278 0.784722 +vt 1.000000 0.923611 +vt 0.930556 0.750000 +vt 0.965278 0.750000 +vt 0.465278 0.375000 +vt 0.437500 0.326389 +vt 0.465278 0.326389 +vt 0.437500 0.375000 +vt 0.756944 0.388889 +vt 0.743056 0.423611 +vt 0.743056 0.375000 +vt 0.701389 0.375000 +vt 0.701389 0.423611 +vt 0.680556 0.375000 +vt 0.680556 0.423611 +vt 0.652778 0.375000 +vt 0.444444 0.423611 +vt 0.444444 0.375000 +vt 0.902778 0.326389 +vt 0.902778 0.340278 +vt 0.861111 0.326389 +vt 0.902778 0.375000 +vt 0.861111 0.375000 +vt 0.902778 0.361111 +vt 0.729167 0.326389 +vt 0.708333 0.375000 +vt 0.708333 0.326389 +vt 0.673611 0.326389 +vt 0.673611 0.375000 +vt 0.659722 0.326389 +vt 0.645833 0.375000 +vt 0.645833 0.326389 +vt 0.625000 0.326389 +vt 0.625000 0.375000 +vt 0.597222 0.326389 +vt 0.597222 0.375000 +vt 0.562500 0.326389 +vt 0.562500 0.375000 +vt 0.652778 0.423611 +vt 0.743056 0.902778 +vt 0.708333 0.888889 +vt 0.743056 0.888889 +vt 0.798611 0.888889 +vt 0.770833 0.902778 +vt 0.770833 0.888889 +vt 0.159722 0.805556 +vt 0.562500 0.798611 +vt 0.159722 0.798611 +vt 0.562500 0.791667 +vt 0.159722 0.791667 +vt 0.562500 0.784722 +vt 0.159722 0.784722 +vt 0.562500 0.777778 +vt 0.159722 0.777778 +vt 0.562500 0.770833 +vt 0.159722 0.770833 +vt 0.562500 0.763889 +vt 0.159722 0.763889 +vt 0.562500 0.756944 +vt 0.159722 0.756944 +vt 0.562500 0.750000 +vt 0.159722 0.750000 +vt 0.034722 1.000000 +vt 0.000000 0.847222 +vt 0.034722 0.847222 +vt 0.000000 0.819444 +vt 0.034722 0.819444 +vt 0.000000 0.791667 +vt 0.034722 0.791667 +vt 0.826389 0.423611 +vt 0.784722 0.402778 +vt 0.902778 0.423611 +vt 0.944444 0.402778 +vt 0.861111 0.708333 +vt 0.958333 0.708333 +vt 0.819444 0.729167 +vt 1.000000 0.729167 +vt 0.944444 0.416667 +vt 0.937500 0.458333 +vt 0.902778 0.458333 +vt 0.833333 0.652778 +vt 0.861111 0.652778 +vt 0.819444 0.722222 +vt 0.784722 0.416667 +vt 0.861111 0.631944 +vt 0.833333 0.631944 +vt 0.965278 0.631944 +vt 0.937500 0.631944 +vt 1.000000 0.722222 +vt 0.173611 0.423611 +vt 0.097222 0.423611 +vt 0.215278 0.402778 +vt 0.055556 0.402778 +vt 0.055556 0.416667 +vt 0.062500 0.458333 +vt 0.097222 0.458333 +vt 0.062500 0.631944 +vt 0.034722 0.631944 +vt 0.152778 0.631944 +vt 0.173611 0.631944 +vt 0.215278 0.416667 +vt 0.145833 0.722222 +vt 0.125000 0.673611 +vt 0.145833 0.687500 +vt 0.125000 0.708333 +vt 0.173611 0.659722 +vt 0.173611 0.694444 +vt 0.152778 0.673611 +vt 0.159722 0.715278 +vt 0.145833 0.694444 +vt 0.173611 0.715278 +vt 0.173611 0.694444 +vt 0.138889 0.729167 +vt 0.034722 0.708333 +vt -0.000000 0.729167 +vt -0.000000 0.722222 +vt 0.902778 1.000000 +vt 0.875000 0.979167 +vt 0.909722 0.944444 +vt 0.895833 0.937500 +vt 0.909722 0.937500 +vt 0.916667 0.937500 +vt 0.909722 0.993056 +vt 0.909722 1.000000 +vt 0.881944 0.944444 +vt 0.875000 0.937500 +vt 0.881944 0.937500 +vt 0.916667 0.993056 +vt 0.916667 1.000000 +vt 0.875000 0.944444 +vt 0.895833 0.944444 +vt 0.868056 0.965278 +vt 0.847222 0.972222 +vt 0.847222 0.965278 +vt 0.875000 0.965278 +vt 0.868056 0.972222 +vt 0.840278 0.979167 +vt 0.895833 0.979167 +vt 0.895833 0.986111 +vt 0.840278 0.958333 +vt 0.840278 0.965278 +vt 0.881944 0.944444 +vt 0.875000 0.958333 +vt 0.847222 0.895833 +vt 0.840278 0.902778 +vt 0.840278 0.895833 +vt 0.805556 0.895833 +vt 0.798611 0.902778 +vt 0.798611 0.895833 +vt 0.819444 0.895833 +vt 0.812500 0.902778 +vt 0.812500 0.895833 +vt 0.833333 0.895833 +vt 0.826389 0.902778 +vt 0.826389 0.895833 +vt 0.854167 0.895833 +vt 0.847222 0.902778 +vt 0.805556 0.902778 +vt 0.819444 0.902778 +vt 0.833333 0.902778 +vt 0.604167 0.770833 +vt 0.569444 0.777778 +vt 0.562500 0.770833 +vt 0.604167 0.805556 +vt 0.569444 0.798611 +vt 0.604167 0.798611 +vt 0.562500 0.777778 +vt 0.569444 0.791667 +vt 0.562500 0.798611 +vt 0.604167 0.777778 +vt 0.583333 0.784722 +vt 0.597222 0.784722 +vt 0.583333 0.791667 +vt 0.597222 0.791667 +vt 0.569444 0.784722 +vt 0.715278 0.750000 +vt 0.729167 0.756944 +vt 0.715278 0.756944 +vt 0.729167 0.770833 +vt 0.722222 0.861111 +vt 0.930556 0.951389 +vt 1.000000 0.750000 +vt 0.756944 0.409722 +vt 0.729167 0.375000 +vt 0.659722 0.375000 +vt 0.708333 0.902778 +vt 0.798611 0.902778 +vt 0.562500 0.805556 +vt 0.000000 1.000000 +vt 0.902778 0.993056 +vt 0.916667 0.944444 +vt 0.875000 0.972222 +vt 0.840278 0.972222 +vt 0.854167 0.902778 +vt 0.562500 0.805556 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.4472 0.8944 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9806 -0.1961 +vn -0.3030 0.2866 -0.9089 +vn -0.3123 0.1562 -0.9370 +vn -0.3013 0.3036 -0.9039 +vn -0.2281 0.6264 -0.7454 +vn 0.3030 0.2866 -0.9089 +vn 0.3123 0.1562 -0.9370 +vn 0.2281 0.6264 -0.7454 +vn 0.3013 0.3036 -0.9039 +vn 0.7071 0.0000 -0.7071 +vn 0.7054 -0.0690 -0.7054 +vn 0.4009 -0.3537 -0.8451 +vn 0.0000 0.8357 -0.5491 +vn -0.0140 0.8211 -0.5706 +vn -0.2349 0.6695 -0.7047 +vn 0.3471 -0.4194 -0.8388 +vn 0.2349 0.6695 -0.7047 +vn 0.0140 0.8211 -0.5706 +vn 0.0000 0.7667 -0.6420 +vn -0.4009 -0.3537 -0.8451 +vn -0.3471 -0.4194 -0.8388 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.2298 0.9732 +vn 0.0000 -0.7809 -0.6247 +vn 0.0000 -0.4332 -0.9013 +vn 0.0000 -0.9871 0.1602 +vn 0.0000 -0.7555 0.6552 +vn 0.0000 0.2567 -0.9665 +vn 0.0000 -0.9903 0.1387 +vn 0.0000 0.7829 -0.6222 +vn 0.0000 -0.9615 0.2747 +vn 0.0000 0.9894 -0.1452 +vn 0.0000 0.9436 0.3310 +vn 0.0000 0.7809 0.6247 +vn 0.0000 -0.9701 0.2425 +vn 0.0000 -0.9925 0.1222 +vn 0.0000 -0.8321 0.5547 +vn 0.0000 -0.9976 0.0687 +vn 0.0000 -0.8892 -0.4576 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.1299 -0.9915 +vn 0.0000 -0.2594 -0.9658 +vn 0.0000 -0.7071 -0.7071 +vn -0.7022 0.1170 0.7022 +vn -0.2729 0.3559 0.8938 +vn -0.0959 0.1244 0.9876 +vn 0.7022 0.1170 0.7022 +vn 0.0959 0.1244 0.9876 +vn 0.2729 0.3559 0.8938 +vn 0.0000 -0.3638 0.9315 +vn 0.0000 -0.7237 0.6901 +vn 0.0000 -0.4927 0.8702 +vn 0.0000 0.2298 0.9732 +vn 0.0000 -0.7359 0.6771 +vn 0.0000 -0.9820 0.1891 +vn 0.0000 -0.3310 0.9436 +vn 0.0000 -0.6247 0.7809 +vn 0.0000 0.6000 0.8000 +vn 0.0000 0.3162 0.9487 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.3786 -0.9255 +vn 0.0000 0.1929 -0.9812 +vn 0.0000 -0.1222 -0.9925 +vn 0.0000 -0.2425 -0.9701 +vn -0.3162 -0.9487 0.0000 +vn -0.5547 0.8321 0.0000 +vn -0.8867 0.0760 0.4560 +vn -0.8639 -0.0284 0.5029 +vn -0.9647 0.0205 0.2624 +vn -0.9677 -0.0236 0.2510 +vn -0.7984 -0.0625 -0.5988 +vn -0.9538 -0.0197 -0.3000 +vn -0.8611 -0.0455 -0.5064 +vn -0.9685 0.0000 -0.2491 +vn -0.8767 0.0832 -0.4737 +vn -0.9548 0.0304 -0.2956 +vn -0.7980 0.0709 -0.5985 +vn -0.9625 0.0446 -0.2676 +vn -0.7885 -0.1687 0.5914 +vn -0.9525 -0.0730 0.2957 +vn -0.9490 -0.0829 0.3041 +vn -0.8433 -0.1605 0.5129 +vn 0.3162 -0.9487 0.0000 +vn 0.8867 0.0760 0.4560 +vn 0.9647 0.0205 0.2624 +vn 0.8639 -0.0284 0.5029 +vn 0.9677 -0.0236 0.2510 +vn 0.9526 -0.0755 0.2947 +vn 0.7885 -0.1687 0.5914 +vn 0.9662 0.0257 -0.2567 +vn 0.8948 0.0456 -0.4441 +vn 0.5521 0.0962 -0.8282 +vn 0.8693 0.0584 -0.4908 +vn 0.5547 0.0000 -0.8321 +vn 0.9782 0.1470 -0.1470 +vn 0.8443 0.0000 -0.5359 +vn 0.4890 0.1292 -0.8627 +vn 0.2857 0.4286 -0.8571 +vn 0.7853 0.4255 -0.4498 +vn 0.5547 0.8321 0.0000 +vn 0.9151 -0.1378 0.3789 +vn 0.7942 -0.2111 0.5697 +vn 0.0000 0.9239 -0.3827 +vn 0.4472 0.8944 0.0000 +vn 0.3278 0.9447 0.0000 +vn 0.0000 -0.8315 -0.5556 +vn 0.0000 -0.5847 -0.8112 +vn 0.0000 -0.8817 0.4719 +vn 0.0000 -0.5547 0.8321 +vn 0.0000 -0.4472 -0.8944 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn 0.5596 0.0000 -0.8287 +vn 0.3054 0.9522 0.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.5691 0.0000 -0.8223 +vn 0.5054 -0.8629 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.5345 -0.8452 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.5871 0.8095 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.5871 0.8095 0.0000 +vn -0.7271 0.6866 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.7271 0.6866 0.0000 +vn 0.0000 0.9818 -0.1899 +vn 0.0000 0.9398 -0.3417 +vn -0.7054 -0.0690 -0.7054 +vn -0.7071 0.0000 -0.7071 +s off +f 2/1/1 3/2/1 1/3/1 +f 2/1/2 6/4/2 4/5/2 +f 5/6/1 8/7/1 6/4/1 +f 10/8/3 1/3/3 3/2/3 +f 12/9/4 9/10/4 10/8/4 +f 14/11/5 11/12/5 12/9/5 +f 16/13/4 13/14/4 14/11/4 +f 15/15/6 8/16/6 7/17/6 +f 5/18/7 15/19/7 7/20/7 +f 17/21/7 13/22/7 5/18/7 +f 1/23/7 9/10/7 21/24/7 +f 17/21/7 18/25/7 13/22/7 +f 24/26/7 17/21/7 5/18/7 +f 5/18/7 2/27/7 24/26/7 +f 24/26/7 2/27/7 23/28/7 +f 13/22/7 18/25/7 11/12/7 +f 18/25/7 19/29/7 11/12/7 +f 21/24/7 9/10/7 20/30/7 +f 19/29/7 20/30/7 9/10/7 +f 9/10/7 11/12/7 19/29/7 +f 21/24/7 22/31/7 1/23/7 +f 22/31/7 23/28/7 1/23/7 +f 1/23/7 23/28/7 2/27/7 +f 64/32/1 65/33/1 63/34/1 +f 65/33/1 67/35/1 63/34/1 +f 70/36/1 66/37/1 68/38/1 +f 71/39/1 68/40/1 69/41/1 +f 74/42/1 71/39/1 69/41/1 +f 72/43/1 75/44/1 73/45/1 +f 103/46/4 102/47/4 101/48/4 +f 105/49/4 103/46/4 101/48/4 +f 104/50/4 108/51/4 106/52/4 +f 106/53/4 109/54/4 107/55/4 +f 109/54/4 112/56/4 107/55/4 +f 113/57/4 110/58/4 111/59/4 +f 117/60/1 118/61/1 121/62/1 +f 80/63/8 41/64/8 40/65/8 +f 55/66/1 59/67/1 56/68/1 +f 91/69/3 50/70/3 51/71/3 +f 116/72/3 50/70/3 90/73/3 +f 43/74/1 51/75/1 50/76/1 +f 53/77/1 43/74/1 42/78/1 +f 55/66/1 30/79/1 60/80/1 +f 49/81/1 53/77/1 42/78/1 +f 45/82/1 49/81/1 44/83/1 +f 49/81/1 48/84/1 54/85/1 +f 47/86/1 54/85/1 48/84/1 +f 47/86/1 46/87/1 30/79/1 +f 46/87/1 38/88/1 30/79/1 +f 40/89/1 41/90/1 39/91/1 +f 39/91/1 41/90/1 30/79/1 +f 38/88/1 39/91/1 30/79/1 +f 120/92/1 122/93/1 119/94/1 +f 119/94/1 121/62/1 118/61/1 +f 123/95/4 127/96/4 124/97/4 +f 126/98/4 125/99/4 128/100/4 +f 125/99/4 127/96/4 128/100/4 +f 80/101/4 79/102/4 81/103/4 +f 36/104/4 81/103/4 79/102/4 +f 95/105/4 99/106/4 100/107/4 +f 95/105/4 36/104/4 94/108/4 +f 83/109/4 91/110/4 92/111/4 +f 83/109/4 93/112/4 82/113/4 +f 89/114/4 93/112/4 94/108/4 +f 89/114/4 85/115/4 84/116/4 +f 89/114/4 94/108/4 88/117/4 +f 87/118/4 94/108/4 36/104/4 +f 87/118/4 36/104/4 86/119/4 +f 86/119/4 36/104/4 78/120/4 +f 78/120/4 79/102/4 77/121/4 +f 8/122/9 14/123/9 6/124/9 +f 6/124/9 14/123/9 129/125/9 +f 129/125/9 136/126/9 6/124/9 +f 6/124/9 136/126/9 4/127/9 +f 136/126/9 135/128/9 4/127/9 +f 4/127/9 135/128/9 3/129/9 +f 135/128/9 134/130/9 3/129/9 +f 134/130/9 133/131/9 3/129/9 +f 3/129/9 133/131/9 10/8/9 +f 133/131/9 132/132/9 10/8/9 +f 132/132/9 131/133/9 10/8/9 +f 129/125/9 14/123/9 130/134/9 +f 14/123/9 12/9/9 130/134/9 +f 130/134/9 12/9/9 131/133/9 +f 12/9/9 10/8/9 131/133/9 +f 140/135/6 41/64/6 81/136/6 +f 141/137/9 144/138/9 143/139/9 +f 61/140/10 144/138/10 62/141/10 +f 62/142/1 144/138/1 35/143/1 +f 61/144/4 29/145/4 143/139/4 +f 25/146/4 143/139/4 29/145/4 +f 144/138/1 31/147/1 35/143/1 +f 34/148/1 31/147/1 142/149/1 +f 28/150/4 141/137/4 25/146/4 +f 149/151/4 151/152/4 152/153/4 +f 145/154/1 147/155/1 146/156/1 +f 201/157/3 188/158/3 190/159/3 +f 192/160/6 217/161/6 203/162/6 +f 189/163/6 217/161/6 192/160/6 +f 199/164/7 189/165/7 188/158/7 +f 200/166/7 219/167/7 216/168/7 +f 205/169/4 203/170/4 204/171/4 +f 202/172/4 209/173/4 201/174/4 +f 218/175/4 201/174/4 209/173/4 +f 209/173/4 204/171/4 218/175/4 +f 217/176/4 204/171/4 203/170/4 +f 230/177/4 228/178/4 234/179/4 +f 241/180/9 239/181/9 237/182/9 +f 137/183/5 251/184/5 249/185/5 +f 138/186/2 250/187/2 10/188/2 +f 138/189/7 249/185/7 248/190/7 +f 2/1/1 4/5/1 3/2/1 +f 2/1/2 5/6/2 6/4/2 +f 5/6/1 7/191/1 8/7/1 +f 10/8/3 9/10/3 1/3/3 +f 12/9/4 11/12/4 9/10/4 +f 14/11/5 13/14/5 11/12/5 +f 16/13/4 15/15/4 13/14/4 +f 15/15/6 16/13/6 8/16/6 +f 5/18/7 13/22/7 15/19/7 +f 64/32/1 76/192/1 65/33/1 +f 65/33/1 66/37/1 67/35/1 +f 70/36/1 67/35/1 66/37/1 +f 71/39/1 70/36/1 68/40/1 +f 74/42/1 72/43/1 71/39/1 +f 72/43/1 74/42/1 75/44/1 +f 103/46/4 114/193/4 102/47/4 +f 105/49/4 104/50/4 103/46/4 +f 104/50/4 105/49/4 108/51/4 +f 106/53/4 108/51/4 109/54/4 +f 109/54/4 110/58/4 112/56/4 +f 113/57/4 112/56/4 110/58/4 +f 80/63/8 81/136/8 41/64/8 +f 55/66/1 60/80/1 59/67/1 +f 91/69/3 90/73/3 50/70/3 +f 116/72/3 115/194/3 50/70/3 +f 43/74/1 52/195/1 51/75/1 +f 53/77/1 52/195/1 43/74/1 +f 55/66/1 54/85/1 30/79/1 +f 49/81/1 54/85/1 53/77/1 +f 45/82/1 48/84/1 49/81/1 +f 47/86/1 30/79/1 54/85/1 +f 38/88/1 37/196/1 39/91/1 +f 119/94/1 122/93/1 121/62/1 +f 125/99/4 124/97/4 127/96/4 +f 95/105/4 96/197/4 99/106/4 +f 95/105/4 100/107/4 36/104/4 +f 83/109/4 90/198/4 91/110/4 +f 83/109/4 92/111/4 93/112/4 +f 89/114/4 82/113/4 93/112/4 +f 89/114/4 88/117/4 85/115/4 +f 87/118/4 88/117/4 94/108/4 +f 78/120/4 36/104/4 79/102/4 +f 8/122/9 16/199/9 14/123/9 +f 140/135/6 139/200/6 41/64/6 +f 141/137/9 142/149/9 144/138/9 +f 61/140/10 143/139/10 144/138/10 +f 25/146/4 141/137/4 143/139/4 +f 144/138/1 142/149/1 31/147/1 +f 149/151/4 150/201/4 151/152/4 +f 145/154/1 148/202/1 147/155/1 +f 201/157/3 199/164/3 188/158/3 +f 189/163/6 200/203/6 217/161/6 +f 199/164/7 200/166/7 189/165/7 +f 200/166/7 199/164/7 219/167/7 +f 207/204/4 206/205/4 204/171/4 +f 206/205/4 205/169/4 204/171/4 +f 202/172/4 208/206/4 209/173/4 +f 217/176/4 218/175/4 204/171/4 +f 230/177/4 229/207/4 228/178/4 +f 228/178/4 235/208/4 234/179/4 +f 234/179/4 233/209/4 230/177/4 +f 233/209/4 232/210/4 230/177/4 +f 232/210/4 231/211/4 230/177/4 +f 241/180/9 243/212/9 239/181/9 +f 137/183/5 3/213/5 251/184/5 +f 138/186/2 248/190/2 250/187/2 +f 138/189/7 137/214/7 249/185/7 +s 1 +f 26/215/11 28/216/12 25/217/13 +f 25/217/13 30/218/14 26/215/11 +f 32/219/15 34/220/16 33/221/16 +f 36/222/17 31/223/18 32/219/15 +f 99/224/19 96/225/20 98/226/21 +f 60/227/22 30/218/14 61/228/23 +f 30/218/14 29/229/24 61/228/23 +f 97/230/25 98/226/21 96/225/20 +f 35/231/26 36/222/17 62/232/27 +f 62/232/27 36/222/17 100/233/22 +f 100/233/22 99/234/28 62/232/27 +f 60/227/22 61/228/23 59/235/28 +f 62/232/27 59/235/28 61/228/23 +f 58/236/29 97/237/25 57/238/30 +f 59/235/28 98/239/31 58/236/31 +f 63/240/32 102/241/8 64/242/8 +f 76/243/33 103/244/34 65/245/34 +f 71/246/35 108/247/36 70/248/36 +f 65/245/34 104/249/37 66/250/37 +f 67/251/32 101/252/32 63/240/32 +f 72/253/38 109/254/35 71/246/35 +f 66/250/37 106/255/39 68/256/39 +f 73/257/40 110/258/38 72/253/38 +f 68/256/39 107/259/41 69/260/41 +f 69/260/41 112/261/42 74/262/42 +f 70/248/36 105/263/32 67/251/32 +f 74/262/42 113/264/43 75/265/43 +f 77/266/44 39/267/45 37/268/44 +f 79/269/45 40/65/3 39/267/45 +f 57/270/46 96/271/47 56/272/47 +f 96/271/47 55/273/48 56/272/47 +f 95/274/48 54/275/49 55/273/48 +f 94/276/49 53/277/50 54/275/49 +f 92/278/51 51/71/52 52/279/51 +f 50/280/53 115/281/54 43/282/55 +f 90/283/56 83/284/57 116/285/58 +f 83/284/57 115/281/54 116/285/58 +f 83/284/57 42/286/59 43/282/55 +f 42/286/59 89/287/60 49/288/60 +f 89/287/60 44/289/61 49/288/60 +f 84/290/61 45/291/62 44/289/61 +f 45/291/62 88/292/62 48/293/62 +f 88/292/62 47/294/32 48/293/62 +f 87/295/32 46/296/63 47/294/32 +f 86/297/63 38/298/64 46/296/63 +f 78/299/64 37/268/3 38/298/64 +f 93/300/50 52/279/51 53/277/50 +f 125/301/65 120/302/66 119/303/65 +f 117/304/67 124/305/68 118/306/68 +f 118/306/68 125/301/65 119/303/65 +f 21/307/6 134/308/5 22/309/5 +f 22/309/5 135/310/4 23/311/4 +f 23/311/4 136/312/69 24/313/69 +f 24/313/69 129/314/3 17/315/3 +f 17/315/3 130/316/70 18/317/70 +f 18/317/70 131/318/1 19/319/1 +f 19/319/1 132/320/2 20/321/2 +f 20/321/2 133/322/6 21/323/6 +f 148/324/71 151/325/72 147/326/72 +f 147/326/72 150/327/73 146/328/73 +f 146/328/73 149/329/74 145/330/74 +f 168/331/75 160/332/75 166/333/75 +f 153/334/75 166/333/75 160/332/75 +f 161/335/76 162/336/76 157/337/76 +f 157/337/76 162/336/76 156/338/76 +f 153/339/77 154/340/78 166/333/79 +f 167/341/80 166/333/79 154/340/78 +f 158/342/81 163/343/82 157/344/83 +f 161/335/84 157/344/83 163/343/82 +f 160/345/85 164/346/86 159/347/87 +f 168/331/88 164/346/86 160/345/85 +f 155/348/89 165/349/90 154/340/78 +f 167/341/80 154/340/78 165/349/90 +f 159/347/87 164/346/86 158/342/81 +f 163/343/82 158/342/81 164/346/86 +f 162/336/91 165/349/90 156/350/92 +f 165/349/90 155/348/89 156/350/92 +f 163/343/82 164/346/86 165/349/90 +f 165/349/90 164/346/86 167/341/80 +f 166/333/79 167/341/80 168/331/88 +f 164/346/86 168/331/88 167/341/80 +f 180/351/93 179/352/93 172/353/93 +f 172/353/93 179/352/93 169/354/93 +f 169/355/94 179/352/95 170/356/96 +f 179/352/95 181/357/97 170/356/96 +f 170/356/96 182/358/98 173/359/99 +f 170/356/96 181/357/97 182/358/98 +f 180/351/100 181/357/97 179/352/95 +f 182/358/98 181/357/97 187/360/101 +f 171/361/102 187/360/101 172/362/103 +f 180/351/100 172/362/103 187/360/101 +f 175/363/104 184/364/105 176/365/104 +f 183/366/106 184/364/105 175/363/104 +f 178/367/107 177/368/108 185/369/109 +f 176/370/110 184/371/105 177/372/110 +f 185/373/109 177/372/110 184/371/105 +f 171/361/102 178/367/107 187/360/101 +f 178/367/107 185/369/109 187/360/101 +f 183/366/110 175/374/110 186/375/110 +f 174/376/110 186/375/110 175/374/110 +f 162/336/91 161/335/84 163/343/82 +f 165/349/90 162/336/91 163/343/82 +f 186/375/111 174/377/112 182/358/98 +f 173/359/99 182/358/98 174/377/112 +f 186/375/111 184/364/105 183/366/106 +f 186/375/111 182/358/98 184/364/105 +f 181/357/97 180/351/100 187/360/101 +f 185/369/109 184/364/105 187/360/101 +f 184/364/105 182/358/98 187/360/101 +f 203/162/113 194/378/31 192/160/113 +f 200/203/114 214/379/115 217/161/114 +f 204/380/116 198/381/117 193/382/116 +f 196/383/52 204/380/116 193/382/116 +f 194/378/31 206/384/9 195/385/9 +f 208/386/3 191/387/118 197/388/3 +f 195/385/9 207/389/52 196/390/52 +f 202/391/118 190/159/119 191/387/118 +f 209/392/117 197/388/120 198/381/117 +f 213/393/121 210/394/122 211/395/122 +f 215/396/123 212/397/121 213/393/121 +f 212/397/6 216/398/124 210/394/6 +f 215/399/123 217/176/125 214/400/126 +f 219/401/127 213/393/3 211/395/3 +f 210/394/122 219/402/128 211/395/122 +f 218/403/69 215/404/129 201/157/69 +f 201/157/69 219/401/127 199/164/69 +f 227/405/130 228/406/7 220/407/7 +f 225/408/52 234/409/3 226/410/3 +f 223/411/31 232/412/9 224/413/9 +f 221/414/131 230/415/6 222/416/6 +f 226/417/3 235/418/130 227/405/130 +f 224/413/9 233/419/52 225/408/52 +f 222/416/6 231/420/31 223/411/31 +f 220/407/7 229/421/131 221/414/131 +f 239/422/114 242/423/132 238/424/114 +f 237/425/133 240/426/134 241/427/135 +f 238/428/136 240/429/136 236/430/136 +f 243/431/137 246/432/4 242/423/132 +f 241/180/31 247/433/113 243/212/31 +f 241/427/135 244/434/1 245/435/1 +f 242/436/136 244/434/136 240/429/136 +f 246/432/6 245/435/113 244/434/6 +f 251/184/138 248/190/6 249/185/6 +f 250/187/138 3/213/139 10/188/139 +f 57/437/30 56/438/140 58/439/29 +f 59/440/141 58/439/29 56/438/140 +f 26/215/11 27/441/12 28/216/12 +f 25/217/13 29/229/24 30/218/14 +f 32/219/15 31/223/18 34/220/16 +f 36/222/17 35/231/26 31/223/18 +f 62/232/27 99/234/28 59/235/28 +f 58/236/29 98/239/21 97/237/25 +f 59/235/28 99/234/28 98/239/31 +f 63/240/32 101/252/32 102/241/8 +f 76/243/33 114/442/33 103/244/34 +f 71/246/35 109/254/35 108/247/36 +f 65/245/34 103/244/34 104/249/37 +f 67/251/32 105/263/32 101/252/32 +f 72/253/38 110/258/38 109/254/35 +f 66/250/37 104/249/37 106/255/39 +f 73/257/40 111/443/40 110/258/38 +f 68/256/39 106/255/39 107/259/41 +f 69/260/41 107/259/41 112/261/42 +f 70/248/36 108/247/36 105/263/32 +f 74/262/42 112/261/42 113/264/43 +f 77/266/44 79/269/45 39/267/45 +f 79/269/45 80/63/3 40/65/3 +f 57/270/46 97/444/46 96/271/47 +f 96/271/47 95/274/48 55/273/48 +f 95/274/48 94/276/49 54/275/49 +f 94/276/49 93/300/50 53/277/50 +f 92/278/51 91/69/52 51/71/52 +f 83/284/57 43/282/55 115/281/54 +f 83/284/57 82/445/59 42/286/59 +f 42/286/59 82/445/59 89/287/60 +f 89/287/60 84/290/61 44/289/61 +f 84/290/61 85/446/62 45/291/62 +f 45/291/62 85/446/62 88/292/62 +f 88/292/62 87/295/32 47/294/32 +f 87/295/32 86/297/63 46/296/63 +f 86/297/63 78/299/64 38/298/64 +f 78/299/64 77/266/3 37/268/3 +f 93/300/50 92/278/51 52/279/51 +f 125/301/65 126/447/66 120/302/66 +f 117/304/67 123/448/67 124/305/68 +f 118/306/68 124/305/68 125/301/65 +f 21/307/6 133/449/6 134/308/5 +f 22/309/5 134/308/5 135/310/4 +f 23/311/4 135/310/4 136/312/69 +f 24/313/69 136/312/69 129/314/3 +f 17/315/3 129/314/3 130/316/70 +f 18/317/70 130/316/70 131/318/1 +f 19/319/1 131/318/1 132/320/2 +f 20/321/2 132/320/2 133/322/6 +f 148/324/71 152/450/71 151/325/72 +f 147/326/72 151/325/72 150/327/73 +f 146/328/73 150/327/73 149/329/74 +f 203/162/113 205/451/31 194/378/31 +f 200/203/114 216/398/124 214/379/115 +f 204/380/116 209/392/117 198/381/117 +f 196/383/52 207/452/52 204/380/116 +f 194/378/31 205/451/31 206/384/9 +f 208/386/3 202/391/118 191/387/118 +f 195/385/9 206/384/9 207/389/52 +f 202/391/118 201/157/119 190/159/119 +f 209/392/117 208/386/120 197/388/120 +f 213/393/121 212/397/121 210/394/122 +f 215/396/123 214/453/126 212/397/121 +f 212/397/6 214/379/115 216/398/124 +f 215/399/123 218/175/125 217/176/125 +f 219/401/127 215/404/129 213/393/3 +f 210/394/122 216/454/128 219/402/128 +f 201/157/69 215/404/129 219/401/127 +f 227/405/130 235/418/130 228/406/7 +f 225/408/52 233/419/52 234/409/3 +f 223/411/31 231/420/31 232/412/9 +f 221/414/131 229/421/131 230/415/6 +f 226/417/3 234/455/3 235/418/130 +f 224/413/9 232/412/9 233/419/52 +f 222/416/6 230/415/6 231/420/31 +f 220/407/7 228/406/7 229/421/131 +f 239/422/114 243/431/137 242/423/132 +f 237/425/133 236/456/133 240/426/134 +f 238/428/136 242/436/136 240/429/136 +f 243/431/137 247/433/4 246/432/4 +f 241/180/31 245/435/113 247/433/113 +f 241/427/135 240/426/134 244/434/1 +f 242/436/136 246/432/136 244/434/136 +f 246/432/6 247/433/113 245/435/113 +f 251/184/138 250/187/138 248/190/6 +f 250/187/138 251/184/138 3/213/139 +o Slide +v -0.625000 2.000000 3.750000 +v -0.625000 2.000000 -4.687500 +v -0.625000 2.875000 3.750000 +v -0.625000 2.875000 -1.125000 +v -0.625000 2.875000 -4.500000 +v -0.625000 2.500000 -4.562500 +v -0.625000 2.125000 -4.750000 +v 0.625000 2.000000 3.750000 +v 0.625000 2.000000 -4.687500 +v 0.625000 2.875000 3.750000 +v 0.625000 2.875000 -1.125000 +v 0.625000 2.875000 -4.500000 +v 0.625000 2.500000 -4.562500 +v 0.625000 2.125000 -4.750000 +v -0.500000 3.375000 -1.125000 +v -0.250000 3.562500 -1.125000 +v -0.250000 3.687500 -1.125000 +v -0.250000 3.562500 -4.000000 +v -0.250000 3.687500 -4.000000 +v -0.500000 3.375000 -4.375000 +v 0.500000 3.375000 -1.125000 +v 0.500000 3.375000 -4.375000 +v 0.250000 3.562500 -1.125000 +v 0.250000 3.562500 -4.000000 +v 0.250000 3.687500 -1.125000 +v 0.250000 3.687500 -4.000000 +v -0.250000 3.375000 -4.437500 +v -0.250000 2.875000 -4.625000 +v -0.437500 2.500000 -4.625000 +v -0.437500 2.125000 -4.812500 +v -0.437500 2.875000 -4.562500 +v -0.437500 2.000000 -4.750000 +v 0.250000 3.375000 -4.437500 +v 0.250000 2.875000 -4.625000 +v 0.437500 2.875000 -4.562500 +v 0.437500 2.500000 -4.625000 +v 0.437500 2.125000 -4.812500 +v 0.437500 2.000000 -4.750000 +v -0.250000 2.875000 -4.000000 +v 0.250000 2.875000 -4.000000 +v -0.437500 2.000000 -1.687500 +v 0.437500 2.000000 -1.687500 +v -0.437500 2.875000 -1.687500 +v 0.437500 2.875000 -1.687500 +v -0.500000 2.875000 3.750000 +v 0.500000 2.875000 3.750000 +v -0.500000 2.625000 3.750000 +v 0.500000 2.625000 3.750000 +v -0.500000 2.875000 -1.125000 +v 0.500000 2.875000 -1.125000 +v -0.437500 2.000000 3.125000 +v 0.437500 2.000000 3.125000 +v -0.500000 2.625000 -1.125000 +v 0.500000 2.625000 -1.125000 +v -0.500000 2.875000 1.187500 +v 0.500000 2.875000 1.187500 +v -0.500000 2.625000 1.187500 +v 0.500000 2.625000 1.187500 +v -0.250000 3.562500 -3.625000 +v -0.375000 3.562500 -3.625000 +v -0.375000 3.812500 -3.625000 +v -0.375000 3.562500 -3.250000 +v -0.375000 3.687500 -3.250000 +v -0.250000 3.562500 -3.125000 +v -0.250000 3.687500 -3.125000 +v -0.125000 3.812500 -3.625000 +v -0.125000 3.687500 -3.625000 +v -0.375000 3.812500 -3.500000 +v -0.125000 3.812500 -3.500000 +v -0.375000 3.687500 -3.500000 +v -0.250000 3.687500 -3.500000 +v -0.125000 3.687500 -3.500000 +v -0.250000 3.687500 -3.625000 +v 0.250000 3.562500 -3.125000 +v 0.250000 3.687500 -3.125000 +v 0.375000 3.562500 -3.250000 +v 0.375000 3.687500 -3.250000 +v 0.375000 3.562500 -3.625000 +v 0.125000 3.687500 -3.625000 +v 0.250000 3.562500 -3.625000 +v 0.250000 3.687500 -3.625000 +v 0.250000 3.687500 -3.500000 +v 0.375000 3.687500 -3.500000 +v 0.375000 3.812500 -3.625000 +v 0.125000 3.812500 -3.625000 +v 0.125000 3.812500 -3.500000 +v 0.375000 3.812500 -3.500000 +v 0.125000 3.687500 -3.500000 +vt 0.736111 0.090278 +vt 0.576389 0.097222 +vt 0.576389 0.090278 +vt 0.527778 0.152778 +vt 0.798611 0.152778 +vt 0.527778 0.201389 +vt 0.996528 0.201389 +vt 1.000000 0.194444 +vt 0.989583 0.173611 +vt 0.736111 0.062500 +vt 0.576389 0.055556 +vt 0.736111 0.055556 +vt 0.784722 0.055556 +vt 0.812500 0.062500 +vt 0.784722 0.062500 +vt 0.770833 0.041667 +vt 0.812500 0.055556 +vt 0.770833 0.013889 +vt 0.826389 -0.000000 +vt 0.826389 0.013889 +vt 0.743056 0.062500 +vt 0.743056 0.090278 +vt 0.475694 0.173611 +vt 0.486111 0.180556 +vt 0.475694 0.180556 +vt 0.454861 0.173611 +vt 0.444444 0.180556 +vt 0.444444 0.173611 +vt 0.486111 0.236111 +vt 0.524306 0.208333 +vt 0.524306 0.236111 +vt 0.513889 0.260417 +vt 0.486111 0.270833 +vt 0.513889 0.184028 +vt 0.486111 0.208333 +vt 0.486111 0.173611 +vt 0.267361 0.104167 +vt 0.427083 0.104167 +vt 0.263889 0.125000 +vt 0.267361 0.100694 +vt 0.298611 0.090278 +vt 0.427083 0.100694 +vt 0.267361 0.052083 +vt 0.298611 0.062500 +vt 0.263889 0.062500 +vt 0.263889 0.027778 +vt 0.427083 0.048611 +vt 0.267361 0.048611 +vt 0.427083 0.052083 +vt 0.253472 0.006944 +vt 0.256944 -0.000000 +vt 0.427083 -0.000000 +vt 0.256944 0.152778 +vt 0.427083 0.152778 +vt 0.253472 0.145833 +vt 0.465278 0.305556 +vt 0.458333 0.319444 +vt 0.458333 0.270833 +vt 0.520833 0.305556 +vt 0.527778 0.319444 +vt 0.520833 0.319444 +vt 0.527778 0.270833 +vt 0.527778 0.145833 +vt 0.798611 0.145833 +vt 0.527778 0.326389 +vt 0.798611 0.319444 +vt 0.798611 0.326389 +vt 0.996528 0.270833 +vt 0.989583 0.298611 +vt 0.986111 0.319444 +vt 0.562500 0.211806 +vt 0.562500 0.260417 +vt 0.763889 0.013889 +vt 0.826389 0.041667 +vt 0.833333 0.013889 +vt 0.638889 -0.000000 +vt 0.770833 -0.000000 +vt 0.958333 0.013889 +vt 0.784722 0.104167 +vt 0.805556 0.111111 +vt 0.784722 0.111111 +vt 0.784722 0.125000 +vt 0.770833 0.131944 +vt 0.770833 0.125000 +vt 0.791667 0.125000 +vt 0.805556 0.118056 +vt 0.812500 0.125000 +vt 0.791667 0.118056 +vt 0.763889 0.125000 +vt 0.770833 0.118056 +vt 0.784722 0.138889 +vt 0.777778 0.138889 +vt 0.784722 0.131944 +vt 0.770833 0.138889 +vt 0.777778 0.118056 +vt 0.777778 0.111111 +vt 0.770833 0.083333 +vt 0.784722 0.090278 +vt 0.763889 0.090278 +vt 0.791667 0.090278 +vt 0.784722 0.083333 +vt 0.791667 0.076389 +vt 0.770833 0.076389 +vt 0.791667 0.069444 +vt 0.798611 0.083333 +vt 0.798611 0.076389 +vt 0.805556 0.083333 +vt 0.812500 0.090278 +vt 0.805556 0.090278 +vt 0.791667 0.097222 +vt 0.805556 0.097222 +vt 0.791667 0.104167 +vt 0.798611 0.104167 +vt 0.736111 0.097222 +vt 0.986111 0.152778 +vt 0.576389 0.062500 +vt 0.486111 0.173611 +vt 0.454861 0.180556 +vt 0.263889 0.090278 +vt 0.465278 0.319444 +vt 1.000000 0.277778 +vt 1.000000 0.260417 +vt 1.000000 0.211806 +vt 0.638889 0.013889 +vt 0.958333 -0.000000 +vt 0.812500 0.104167 +vt 0.791667 0.125000 +vt 0.763889 0.118056 +vt 0.784722 0.090278 +vt 0.763889 0.069444 +vt 0.812500 0.083333 +vt 0.805556 0.104167 +vt 0.756944 0.111111 +vt 0.576389 0.138889 +vt 0.576389 0.111111 +vt 0.756944 0.041667 +vt 0.576389 0.013889 +vt 0.763889 0.013889 +vt 0.576389 0.041667 +vt 0.479167 0.250000 +vt 0.465278 0.270833 +vt 0.465278 0.250000 +vt 0.465278 0.222222 +vt 0.475694 0.222222 +vt 0.486111 0.201389 +vt 0.486111 0.222222 +vt 0.475694 0.201389 +vt 0.465278 0.250000 +vt 0.451389 0.250000 +vt 0.465278 0.222222 +vt 0.454861 0.222222 +vt 0.444444 0.222222 +vt 0.465278 0.270833 +vt 0.444444 0.201389 +vt 0.454861 0.201389 +vt 0.812500 0.118056 +vt 0.763889 0.083333 +vt 0.763889 0.076389 +vt 0.763889 0.138889 +vt 0.812500 0.111111 +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.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.2857 -0.4286 -0.8571 +vn 0.2857 -0.4286 -0.8571 +vn 0.0000 -1.0000 0.0000 +vn -0.9092 0.4164 0.0000 +vn -0.9701 0.2425 0.0000 +vn -0.8331 0.5531 0.0000 +vn -0.6000 0.8000 0.0000 +vn 0.9092 0.4164 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.6000 0.8000 0.0000 +vn 0.8331 0.5531 0.0000 +vn -0.2075 0.6230 -0.7542 +vn -0.0980 0.9147 -0.3920 +vn -0.1843 0.6502 -0.7371 +vn -0.2799 0.3137 -0.9073 +vn -0.3060 0.2526 -0.9179 +vn -0.3030 0.2866 -0.9089 +vn -0.3080 0.2271 -0.9239 +vn -0.2857 0.4286 -0.8571 +vn -0.3013 0.3036 -0.9039 +vn 0.1843 0.6502 -0.7371 +vn 0.2075 0.6230 -0.7542 +vn 0.2799 0.3137 -0.9073 +vn 0.3060 0.2526 -0.9179 +vn 0.3080 0.2271 -0.9239 +vn 0.0980 0.9147 -0.3920 +vn 0.3030 0.2866 -0.9089 +vn 0.3013 0.3036 -0.9039 +vn 0.2857 0.4286 -0.8571 +vn -0.9239 0.0000 0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.9239 0.0000 0.3827 +vn 0.7071 0.0000 0.7071 +s off +f 270/457/142 267/458/142 268/459/142 +f 254/460/142 255/461/142 252/462/142 +f 253/463/142 255/461/142 258/464/142 +f 255/461/142 257/465/142 258/464/142 +f 277/466/143 274/467/143 275/468/143 +f 268/459/144 277/466/144 270/457/144 +f 267/469/145 276/470/145 268/471/145 +f 266/472/145 274/473/145 267/469/145 +f 300/474/145 305/475/145 301/476/145 +f 270/457/146 275/477/146 269/478/146 +f 283/479/147 258/480/147 281/481/147 +f 289/482/148 265/483/148 260/484/148 +f 291/485/146 269/486/146 275/487/146 +f 275/487/142 284/488/142 291/485/142 +f 285/489/142 291/485/142 284/488/142 +f 278/490/143 269/486/143 290/491/143 +f 278/490/143 290/491/143 279/492/143 +f 282/493/143 294/494/143 280/495/143 +f 282/496/149 290/497/149 294/498/149 +f 286/499/149 291/500/149 285/501/149 +f 287/502/142 295/503/142 286/504/142 +f 295/505/149 290/497/149 291/500/149 +f 288/506/142 295/503/142 287/502/142 +f 295/503/142 289/507/142 293/508/142 +f 283/509/143 294/494/143 292/510/143 +f 281/511/143 280/495/143 294/494/143 +f 298/512/145 254/513/145 252/514/145 +f 299/515/145 261/516/145 297/517/145 +f 299/515/145 252/514/145 259/518/145 +f 255/461/144 296/519/144 300/520/144 +f 297/521/144 262/522/144 301/523/144 +f 261/516/143 259/518/143 262/522/143 +f 260/524/143 262/522/143 259/518/143 +f 262/522/143 264/525/143 263/526/143 +f 259/518/149 302/527/149 303/528/149 +f 303/528/149 260/524/149 259/518/149 +f 253/463/149 302/527/149 252/462/149 +f 266/472/145 255/529/145 300/474/145 +f 272/530/145 301/476/145 262/531/145 +f 272/530/145 300/474/145 301/476/145 +f 300/474/143 308/532/143 304/533/143 +f 305/475/142 307/534/142 301/476/142 +f 310/535/149 313/536/149 311/537/149 +f 312/538/144 320/539/144 317/540/144 +f 322/541/144 314/542/144 316/543/144 +f 321/544/142 312/538/142 311/537/142 +f 320/545/143 318/546/143 317/540/143 +f 321/547/145 322/548/145 319/549/145 +f 320/539/145 322/548/145 323/550/145 +f 311/537/146 324/551/146 310/552/146 +f 312/538/146 324/551/146 311/537/146 +f 317/540/146 324/551/146 312/538/146 +f 328/553/144 333/554/144 326/555/144 +f 335/556/143 334/557/143 329/558/143 +f 327/559/149 331/560/149 329/558/149 +f 332/561/146 329/558/146 331/562/146 +f 330/563/142 337/564/142 336/565/142 +f 338/566/144 336/565/144 337/567/144 +f 336/565/146 332/561/146 330/563/146 +f 334/568/145 338/566/145 333/569/145 +f 337/567/145 333/569/145 338/566/145 +f 270/457/142 269/570/142 267/458/142 +f 253/463/142 252/462/142 255/461/142 +f 255/461/142 256/571/142 257/465/142 +f 277/466/143 276/572/143 274/467/143 +f 268/459/144 276/572/144 277/466/144 +f 267/469/145 274/473/145 276/470/145 +f 266/472/145 272/530/145 274/473/145 +f 300/474/145 304/533/145 305/475/145 +f 270/457/146 277/466/146 275/477/146 +f 283/479/147 253/573/147 258/480/147 +f 289/482/148 288/574/148 265/483/148 +f 291/485/146 290/491/146 269/486/146 +f 282/496/149 279/575/149 290/497/149 +f 286/499/149 295/505/149 291/500/149 +f 295/505/149 294/498/149 290/497/149 +f 295/503/142 288/506/142 289/507/142 +f 283/509/143 281/511/143 294/494/143 +f 298/512/145 296/576/145 254/513/145 +f 299/515/145 259/518/145 261/516/145 +f 299/515/145 298/512/145 252/514/145 +f 255/461/144 254/460/144 296/519/144 +f 297/521/144 261/516/144 262/522/144 +f 260/524/143 265/577/143 262/522/143 +f 262/522/143 265/577/143 264/525/143 +f 259/518/149 252/462/149 302/527/149 +f 303/528/149 289/578/149 260/524/149 +f 253/463/149 283/579/149 302/527/149 +f 272/530/145 266/472/145 300/474/145 +f 300/474/143 306/580/143 308/532/143 +f 305/475/142 309/581/142 307/534/142 +f 310/535/149 315/582/149 313/536/149 +f 312/538/144 319/549/144 320/539/144 +f 322/541/144 321/544/144 314/542/144 +f 321/544/142 319/583/142 312/538/142 +f 320/545/143 323/584/143 318/546/143 +f 320/539/145 319/549/145 322/548/145 +f 317/540/146 318/546/146 324/551/146 +f 328/553/144 334/557/144 333/554/144 +f 335/556/143 338/585/143 334/557/143 +f 327/559/149 325/586/149 331/560/149 +f 332/561/146 335/556/146 329/558/146 +f 330/563/142 339/587/142 337/564/142 +f 338/566/144 335/556/144 336/565/144 +f 336/565/146 335/556/146 332/561/146 +f 337/567/145 339/588/145 333/569/145 +s 1 +f 271/589/150 255/590/151 266/591/152 +f 266/591/152 269/570/153 271/589/150 +f 273/592/154 262/593/155 263/594/155 +f 275/468/156 272/595/157 273/592/154 +f 271/596/158 269/597/159 278/598/160 +f 278/598/160 279/599/161 271/596/158 +f 282/600/162 271/596/158 279/599/161 +f 282/600/162 257/601/163 256/602/164 +f 258/480/165 280/603/166 281/481/165 +f 284/604/167 273/605/168 285/606/169 +f 286/607/170 273/605/168 263/608/171 +f 275/609/172 273/605/168 284/604/167 +f 286/607/170 264/610/173 287/611/174 +f 265/483/175 287/611/174 264/610/173 +f 313/536/176 316/612/177 314/542/176 +f 321/544/142 313/536/176 314/542/176 +f 327/559/178 326/613/179 325/614/179 +f 327/559/178 334/557/143 328/553/178 +f 271/589/150 256/615/151 255/590/151 +f 266/591/152 267/458/153 269/570/153 +f 273/592/154 272/595/157 262/593/155 +f 275/468/156 274/467/156 272/595/157 +f 282/600/162 256/602/164 271/596/158 +f 282/600/162 280/603/166 257/601/163 +f 258/480/165 257/601/163 280/603/166 +f 286/607/170 285/606/169 273/605/168 +f 286/607/170 263/608/171 264/610/173 +f 265/483/175 288/574/175 287/611/174 +f 313/536/176 315/616/177 316/612/177 +f 321/544/142 311/537/142 313/536/176 +f 327/559/178 328/553/178 326/613/179 +f 327/559/178 329/558/143 334/557/143 +o Mag +v -0.437500 -3.750000 -4.500000 +v -0.437500 -3.875000 -4.500000 +v -0.437500 -3.875000 -2.375000 +v -0.437500 -3.750000 -2.375000 +v 0.437500 -3.750000 -4.500000 +v 0.437500 -3.875000 -4.500000 +v 0.437500 -3.875000 -2.375000 +v -0.187500 -3.875000 -2.125000 +v 0.187500 -3.875000 -2.125000 +v 0.437500 -3.750000 -2.375000 +v 0.187500 -3.750000 -2.125000 +v -0.187500 -3.750000 -2.125000 +v -0.312500 -3.750000 -2.875000 +v -0.312500 -3.750000 -4.500000 +v 0.312500 -3.750000 -2.875000 +v 0.312500 -3.750000 -4.500000 +v -0.312500 2.500000 -1.937500 +v 0.312500 2.500000 -1.937500 +v -0.312500 2.500000 -3.562500 +v 0.312500 2.500000 -3.562500 +vt 0.388889 0.326389 +vt 0.395833 0.277778 +vt 0.395833 0.326389 +vt 0.388889 0.222222 +vt 0.270833 0.270833 +vt 0.270833 0.222222 +vt 0.256944 0.256944 +vt 0.270833 0.215278 +vt 0.388889 0.277778 +vt 0.270833 0.277778 +vt 0.256944 0.312500 +vt 0.256944 0.291667 +vt 0.270833 0.326389 +vt 0.034722 0.000000 +vt 0.000000 0.347222 +vt 0.000000 0.000000 +vt 0.159722 0.000000 +vt 0.125000 0.347222 +vt 0.125000 0.000000 +vt 0.250000 0.000000 +vt 0.159722 0.347222 +vt 0.034722 0.381944 +vt 0.034722 0.347222 +vt 0.388889 0.270833 +vt 0.256944 0.236111 +vt 0.388889 0.215278 +vt 0.250000 0.347222 +vt 0.125000 0.381944 +vt 0.250000 0.277778 +vt 0.250000 0.291667 +vt 0.250000 0.312500 +vt 0.250000 0.326389 +vt 0.256944 0.326389 +vt 0.256944 0.277778 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.1483 0.9889 +vn 0.0000 0.1483 -0.9889 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +s off +f 340/617/180 345/618/180 341/619/180 +f 341/620/181 346/621/181 342/622/181 +f 348/623/181 342/622/181 346/621/181 +f 343/624/182 341/620/182 342/622/182 +f 346/621/183 344/625/183 349/626/183 +f 349/626/184 351/627/184 350/628/184 +f 343/629/184 344/625/184 340/617/184 +f 354/630/185 356/631/185 352/632/185 +f 353/633/186 359/634/186 355/635/186 +f 352/636/182 358/637/182 353/633/182 +f 359/634/184 356/638/184 357/639/184 +f 359/634/183 354/630/183 355/635/183 +f 340/617/180 344/625/180 345/618/180 +f 341/620/181 345/640/181 346/621/181 +f 348/623/181 347/641/181 342/622/181 +f 343/624/182 340/642/182 341/620/182 +f 346/621/183 345/640/183 344/625/183 +f 349/626/184 343/629/184 351/627/184 +f 343/629/184 349/626/184 344/625/184 +f 354/630/185 357/639/185 356/631/185 +f 353/633/186 358/637/186 359/634/186 +f 352/636/182 356/643/182 358/637/182 +f 359/634/184 358/644/184 356/638/184 +f 359/634/183 357/639/183 354/630/183 +s 1 +f 346/645/187 350/628/188 348/646/188 +f 347/647/189 350/628/188 351/627/189 +f 342/648/190 351/627/189 343/649/190 +f 346/645/187 349/650/187 350/628/188 +f 347/647/189 348/646/188 350/628/188 +f 342/648/190 347/647/189 351/627/189 +o Hammer +v 0.250000 1.937500 -4.000000 +v -0.250000 1.937500 -4.000000 +v 0.250000 1.937500 -4.500000 +v -0.250000 1.937500 -4.500000 +v 0.250000 3.062500 -4.500000 +v -0.250000 3.062500 -4.500000 +v 0.250000 3.437500 -4.750000 +v -0.250000 3.437500 -4.750000 +v 0.250000 3.562500 -4.687500 +v -0.250000 3.562500 -4.687500 +v 0.250000 3.500000 -4.250000 +v -0.250000 3.500000 -4.250000 +v 0.312500 3.500000 -4.937500 +v 0.312500 3.625000 -4.875000 +v 0.312500 3.500000 -5.187500 +v 0.312500 3.625000 -5.187500 +v 0.187500 3.500000 -5.312500 +v 0.187500 3.625000 -5.312500 +v -0.312500 3.625000 -4.875000 +v -0.312500 3.500000 -4.937500 +v -0.312500 3.625000 -5.187500 +v -0.312500 3.500000 -5.187500 +v -0.187500 3.625000 -5.312500 +v -0.187500 3.500000 -5.312500 +v 0.250000 3.562500 -4.000000 +v -0.250000 3.562500 -4.000000 +vt 0.916667 0.062500 +vt 0.944444 0.152778 +vt 0.916667 0.152778 +vt 0.875000 0.069444 +vt 0.878472 0.062500 +vt 0.888889 0.090278 +vt 0.902778 0.065972 +vt 0.986111 0.069444 +vt 0.972222 0.090278 +vt 0.982639 0.062500 +vt 0.958333 0.065972 +vt 0.944444 0.062500 +vt 0.888889 0.152778 +vt 0.972222 0.152778 +vt 1.000000 0.090278 +vt 1.000000 0.152778 +vt 0.840278 0.111111 +vt 0.868056 0.090278 +vt 0.868056 0.111111 +vt 0.944444 0.024306 +vt 0.916667 0.048611 +vt 0.916667 0.024306 +vt 0.895833 0.055556 +vt 0.902778 0.062500 +vt 0.892361 0.062500 +vt 0.875000 0.055556 +vt 0.875000 0.062500 +vt 0.868056 0.055556 +vt 0.843750 0.020833 +vt 0.875000 0.027778 +vt 0.840278 0.027778 +vt 0.902778 0.055556 +vt 0.812500 0.055556 +vt 0.819444 0.055556 +vt 0.812500 0.062500 +vt 0.822917 0.062500 +vt 0.840278 0.055556 +vt 0.840278 0.062500 +vt 0.847222 0.062500 +vt 0.868056 0.062500 +vt 0.840278 0.069444 +vt 0.875000 0.069444 +vt 0.840278 0.083333 +vt 0.871528 0.090278 +vt 0.843750 0.090278 +vt 0.875000 0.083333 +vt 0.847222 0.055556 +vt 0.875000 0.048611 +vt 0.840278 0.048611 +vt 0.944444 0.048611 +vt 0.840278 0.090278 +vt 0.871528 0.020833 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.2898 -0.9571 +vn 0.0000 -0.8128 -0.5825 +vn 0.0000 0.9899 0.1414 +vn 0.0000 0.9987 -0.0515 +vn 0.9824 -0.0835 0.1670 +vn 0.9526 -0.1361 0.2722 +vn 0.9919 -0.0570 0.1139 +vn 0.9239 0.0000 -0.3827 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.9487 0.3162 +vn 0.0000 0.9897 0.1429 +vn -0.9526 -0.1361 0.2722 +vn -0.9824 -0.0835 0.1670 +vn -0.9919 -0.0570 0.1139 +vn -0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.9897 -0.1429 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.9701 -0.2425 +s off +f 384/651/191 361/652/191 360/653/191 +f 366/654/192 368/655/192 364/656/192 +f 370/657/192 364/656/192 368/655/192 +f 367/658/193 365/659/193 369/660/193 +f 365/659/193 371/661/193 369/660/193 +f 365/659/193 361/652/193 385/662/193 +f 364/656/192 360/653/192 362/663/192 +f 384/651/191 385/662/191 361/652/191 +f 370/657/192 384/651/192 364/656/192 +f 365/659/193 385/662/193 371/661/193 +f 365/659/193 363/664/193 361/652/193 +f 364/656/192 384/651/192 360/653/192 +s 1 +f 363/664/194 364/665/195 362/666/194 +f 365/667/195 366/668/196 364/669/195 +f 369/670/197 370/671/198 368/672/197 +f 373/673/199 366/674/200 372/675/201 +f 375/676/202 372/675/201 374/677/202 +f 374/677/202 377/678/203 375/676/202 +f 369/679/204 373/680/205 378/681/205 +f 368/682/200 366/674/200 373/673/199 +f 369/683/206 378/684/207 367/685/206 +f 379/686/208 367/685/206 378/684/207 +f 379/686/208 380/687/209 381/688/209 +f 380/687/209 383/689/210 381/688/209 +f 383/689/210 377/678/203 376/690/203 +f 381/691/211 376/690/211 374/692/211 +f 379/693/212 366/694/196 367/695/196 +f 372/696/212 381/691/211 374/692/211 +f 382/697/213 375/698/213 377/678/213 +f 380/699/213 373/680/205 375/698/213 +f 371/700/198 384/651/214 370/671/198 +f 363/664/194 365/659/195 364/665/195 +f 365/667/195 367/701/196 366/668/196 +f 369/670/197 371/700/198 370/671/198 +f 375/676/202 373/673/199 372/675/201 +f 374/677/202 376/690/203 377/678/203 +f 369/679/204 368/702/204 373/680/205 +f 379/686/208 378/684/207 380/687/209 +f 380/687/209 382/697/210 383/689/210 +f 383/689/210 382/697/210 377/678/203 +f 381/691/211 383/689/211 376/690/211 +f 379/693/212 372/696/212 366/694/196 +f 372/696/212 379/693/212 381/691/211 +f 382/697/213 380/699/213 375/698/213 +f 380/699/213 378/681/205 373/680/205 +f 371/700/198 385/662/214 384/651/214 +o Bullet +v 0.000000 2.749049 -3.459289 +v 0.176777 2.676104 -3.452907 +v 0.250000 2.500000 -3.437500 +v 0.176777 2.323896 -3.422093 +v -0.000000 2.250951 -3.415711 +v -0.176777 2.323896 -3.422093 +v -0.250000 2.500000 -3.437500 +v -0.176777 2.676104 -3.452907 +v 0.000000 2.836205 -2.463094 +v 0.176777 2.763260 -2.456712 +v 0.250000 2.587156 -2.441305 +v 0.176777 2.411052 -2.425898 +v -0.000000 2.338107 -2.419516 +v -0.176777 2.411052 -2.425898 +v -0.250000 2.587156 -2.441305 +v -0.176777 2.763260 -2.456712 +v 0.000000 2.806626 -2.084074 +v 0.132583 2.751917 -2.079288 +v 0.187500 2.619839 -2.067732 +v 0.132583 2.487761 -2.056177 +v -0.000000 2.433053 -2.051391 +v -0.132583 2.487761 -2.056177 +v -0.187500 2.619839 -2.067732 +v -0.132583 2.751917 -2.079288 +v 0.000000 2.724127 -1.951379 +v 0.066291 2.696773 -1.948986 +v 0.093750 2.630734 -1.943208 +v 0.066291 2.564695 -1.937430 +v -0.000000 2.537340 -1.935037 +v -0.066291 2.564695 -1.937430 +v -0.093750 2.630734 -1.943208 +v -0.066291 2.696773 -1.948986 +vt 0.347222 0.215278 +vt 0.333333 0.201389 +vt 0.347222 0.187500 +vt 0.337401 0.211210 +vt 0.337401 0.191568 +vt 0.357043 0.191568 +vt 0.361111 0.201389 +vt 0.357043 0.211210 +vt 0.333333 0.215278 +vt 0.277778 0.208333 +vt 0.333333 0.208333 +vt 0.333333 0.166667 +vt 0.277778 0.159722 +vt 0.333333 0.159722 +vt 0.333333 0.180556 +vt 0.277778 0.173611 +vt 0.333333 0.173611 +vt 0.333333 0.194444 +vt 0.277778 0.187500 +vt 0.333333 0.187500 +vt 0.277778 0.201389 +vt 0.277778 0.166667 +vt 0.277778 0.180556 +vt 0.277778 0.194444 +vt 0.256944 0.173611 +vt 0.256944 0.187500 +vt 0.256944 0.201389 +vt 0.256944 0.166667 +vt 0.256944 0.180556 +vt 0.256944 0.194444 +vt 0.277778 0.215278 +vt 0.256944 0.208333 +vt 0.256944 0.159722 +vt 0.250000 0.180556 +vt 0.250000 0.201389 +vt 0.250000 0.194444 +vt 0.250000 0.215278 +vt 0.250000 0.208333 +vt 0.250000 0.159722 +vt 0.250000 0.173611 +vt 0.250000 0.187500 +vt 0.250000 0.166667 +vt 0.347222 0.180556 +vt 0.340278 0.187500 +vt 0.333333 0.180556 +vt 0.256944 0.215278 +vt 0.345188 0.185466 +vt 0.335367 0.185466 +vt 0.335367 0.175645 +vt 0.340278 0.173611 +vt 0.345188 0.175645 +vn 0.0000 -0.0872 -0.9962 +vn 0.0000 0.9962 -0.0872 +vn 0.7071 0.7044 -0.0616 +vn -0.7071 0.7044 -0.0616 +vn -0.7071 -0.7044 0.0616 +vn -1.0000 -0.0000 0.0000 +vn 0.7071 -0.7044 0.0616 +vn 0.0000 -0.9962 0.0872 +vn 1.0000 0.0000 0.0000 +vn -0.6975 -0.6805 0.2246 +vn -0.9275 0.0326 0.3725 +vn -0.9864 0.0143 0.1638 +vn 0.6975 -0.6805 0.2246 +vn 0.0000 -0.8914 0.4533 +vn -0.0000 -0.9683 0.2497 +vn 0.6975 0.7092 0.1030 +vn 0.9275 0.0326 0.3725 +vn 0.9864 0.0143 0.1638 +vn -0.6558 0.6859 0.3153 +vn -0.6975 0.7092 0.1030 +vn -0.6558 -0.6207 0.4296 +vn 0.6558 -0.6207 0.4296 +vn -0.0000 0.9970 0.0778 +vn 0.6558 0.6859 0.3153 +vn 0.0000 0.9565 0.2916 +vn -0.3730 -0.2975 0.8789 +vn 0.5275 0.0740 0.8463 +vn 0.3730 -0.2975 0.8789 +vn -0.0000 0.5995 0.8004 +vn 0.3730 0.4456 0.8138 +vn -0.5275 0.0740 0.8463 +vn -0.0000 -0.4514 0.8923 +vn -0.3730 0.4456 0.8138 +s off +f 386/703/215 388/704/215 390/705/215 +f 386/703/215 387/706/215 388/704/215 +f 388/704/215 389/707/215 390/705/215 +f 390/705/215 391/708/215 392/709/215 +f 392/709/215 393/710/215 390/705/215 +f 393/710/215 386/703/215 390/705/215 +s 1 +f 386/711/216 395/712/217 387/713/217 +f 393/714/218 394/715/216 386/716/216 +f 391/717/219 400/718/220 392/719/220 +f 389/720/221 398/721/222 390/722/222 +f 387/713/217 396/723/223 388/704/223 +f 393/714/218 400/718/220 401/724/218 +f 390/722/222 399/725/219 391/717/219 +f 388/704/223 397/726/221 389/720/221 +f 399/725/224 408/727/225 400/718/226 +f 397/726/227 406/728/228 398/721/229 +f 395/712/230 404/729/231 396/723/232 +f 400/718/226 409/730/233 401/724/234 +f 398/721/229 407/731/235 399/725/224 +f 396/723/232 405/732/236 397/726/227 +f 394/733/237 403/734/238 395/712/230 +f 401/724/234 402/735/239 394/715/237 +f 406/728/228 415/736/240 407/731/235 +f 405/732/236 412/737/241 413/738/242 +f 403/734/238 410/739/243 411/740/244 +f 409/730/233 410/741/243 402/735/239 +f 407/731/235 416/742/245 408/727/225 +f 406/728/228 413/738/242 414/743/246 +f 403/734/238 412/737/241 404/729/231 +f 409/730/233 416/742/245 417/744/247 +f 412/745/241 410/746/243 416/747/245 +f 386/711/216 394/733/216 395/712/217 +f 393/714/218 401/724/218 394/715/216 +f 391/717/219 399/725/219 400/718/220 +f 389/720/221 397/726/221 398/721/222 +f 387/713/217 395/712/217 396/723/223 +f 393/714/218 392/719/220 400/718/220 +f 390/722/222 398/721/222 399/725/219 +f 388/704/223 396/723/223 397/726/221 +f 399/725/224 407/731/235 408/727/225 +f 397/726/227 405/732/236 406/728/228 +f 395/712/230 403/734/238 404/729/231 +f 400/718/226 408/727/225 409/730/233 +f 398/721/229 406/728/228 407/731/235 +f 396/723/232 404/729/231 405/732/236 +f 394/733/237 402/748/239 403/734/238 +f 401/724/234 409/730/233 402/735/239 +f 406/728/228 414/743/246 415/736/240 +f 405/732/236 404/729/231 412/737/241 +f 403/734/238 402/748/239 410/739/243 +f 409/730/233 417/744/247 410/741/243 +f 407/731/235 415/736/240 416/742/245 +f 406/728/228 405/732/236 413/738/242 +f 403/734/238 411/740/244 412/737/241 +f 409/730/233 408/727/225 416/742/245 +f 412/745/241 411/749/244 410/746/243 +f 410/746/243 417/750/247 416/747/245 +f 416/747/245 415/751/240 412/745/241 +f 415/751/240 414/752/246 412/745/241 +f 414/752/246 413/753/242 412/745/241 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 9b2f9d8a7..c9b6efc3a 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -263,6 +263,7 @@ "weapon.fire.stab": {"category": "player", "sounds": ["weapon/fire/stab1", "weapon/fire/stab2"]}, "weapon.fire.grenade": {"category": "player", "sounds": ["weapon/fire/grenade"]}, "weapon.fire.amat": {"category": "player", "sounds": ["weapon/fire/amat"]}, + "weapon.fire.pistolLight": {"category": "player", "sounds": ["weapon/fire/pistolLight"]}, "weapon.reload.boltClose": {"category": "player", "sounds": ["weapon/reload/boltClose"]}, "weapon.reload.boltOpen": {"category": "player", "sounds": ["weapon/reload/boltOpen"]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/pistolLight.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/pistolLight.ogg new file mode 100644 index 000000000..ba9b6975e Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/weapon/fire/pistolLight.ogg differ diff --git a/src/main/resources/assets/hbm/textures/items/canned_jizz.png b/src/main/resources/assets/hbm/textures/items/canned_slime.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/canned_jizz.png rename to src/main/resources/assets/hbm/textures/items/canned_slime.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/chungus.png b/src/main/resources/assets/hbm/textures/models/machines/chungus.png index 30b909522..88a65a58b 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/chungus.png and b/src/main/resources/assets/hbm/textures/models/machines/chungus.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/industrial_turbine.png b/src/main/resources/assets/hbm/textures/models/machines/industrial_turbine.png new file mode 100644 index 000000000..2f8060c7d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/industrial_turbine.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/star_f.png b/src/main/resources/assets/hbm/textures/models/weapons/star_f.png new file mode 100644 index 000000000..d4f55b762 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/star_f.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/star_f_elite.png b/src/main/resources/assets/hbm/textures/models/weapons/star_f_elite.png new file mode 100644 index 000000000..9d2486120 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/star_f_elite.png differ